GRASS GIS 8 Programmer's Manual 8.2.0(2022)-exported
xisnull.c
Go to the documentation of this file.
1
2#include <grass/gis.h>
3#include <grass/raster.h>
4#include <grass/calc.h>
5
6/**********************************************************************
7isnull(x)
8 return 1 if x is null, 0 otherwise
9**********************************************************************/
10
11int f_isnull(int argc, const int *argt, void **args)
12{
13 int *res = args[0];
14 int i;
15
16 if (argc < 1)
17 return E_ARG_LO;
18 if (argc > 1)
19 return E_ARG_HI;
20
21 if (argt[0] != CELL_TYPE)
22 return E_RES_TYPE;
23
24 switch (argt[1]) {
25 case CELL_TYPE:
26 {
27 CELL *arg1 = args[1];
28
29 for (i = 0; i < columns; i++)
30 res[i] = IS_NULL_C(&arg1[i]) ? 1 : 0;
31 return 0;
32 }
33 case FCELL_TYPE:
34 {
35 FCELL *arg1 = args[1];
36
37 for (i = 0; i < columns; i++)
38 res[i] = IS_NULL_F(&arg1[i]) ? 1 : 0;
39 return 0;
40 }
41 case DCELL_TYPE:
42 {
43 DCELL *arg1 = args[1];
44
45 for (i = 0; i < columns; i++)
46 res[i] = IS_NULL_D(&arg1[i]) ? 1 : 0;
47 return 0;
48 }
49 default:
50 return E_INV_TYPE;
51 }
52}
53
54int c_isnull(int argc, int *argt)
55{
56 if (argc < 1)
57 return E_ARG_LO;
58 if (argc > 1)
59 return E_ARG_HI;
60
61 argt[0] = CELL_TYPE;
62
63 return 0;
64}
int columns
Definition: calc.c:12
int f_isnull(int argc, const int *argt, void **args)
Definition: xisnull.c:11
int c_isnull(int argc, int *argt)
Definition: xisnull.c:54