GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)-d6dec75dd4
|
Go to the source code of this file.
Functions | |
N_array_2d * | N_alloc_array_2d (int cols, int rows, int offset, int type) |
Allocate memory for a N_array_2d data structure. More... | |
void | N_free_array_2d (N_array_2d *data) |
Release the memory of a N_array_2d structure. More... | |
int | N_get_array_2d_type (N_array_2d *array) |
Return the data type of the N_array_2d struct. More... | |
void | N_get_array_2d_value (N_array_2d *data, int col, int row, void *value) |
Write the value of the N_array_2d struct at position col, row to value. More... | |
int | N_is_array_2d_value_null (N_array_2d *data, int col, int row) |
Returns 1 if the value of N_array_2d struct at position col, row is of type null, otherwise 0. More... | |
CELL | N_get_array_2d_c_value (N_array_2d *data, int col, int row) |
Returns the value of type CELL at position col, row. More... | |
FCELL | N_get_array_2d_f_value (N_array_2d *data, int col, int row) |
Returns the value of type FCELL at position col, row. More... | |
DCELL | N_get_array_2d_d_value (N_array_2d *data, int col, int row) |
Returns the value of type DCELL at position col, row. More... | |
void | N_put_array_2d_value (N_array_2d *data, int col, int row, char *value) |
Writes a value to the N_array_2d struct at position col, row. More... | |
void | N_put_array_2d_value_null (N_array_2d *data, int col, int row) |
Writes the null value to the N_array_2d struct at position col, row. More... | |
void | N_put_array_2d_c_value (N_array_2d *data, int col, int row, CELL value) |
Writes a CELL value to the N_array_2d struct at position col, row. More... | |
void | N_put_array_2d_f_value (N_array_2d *data, int col, int row, FCELL value) |
Writes a FCELL value to the N_array_2d struct at position col, row. More... | |
void | N_put_array_2d_d_value (N_array_2d *data, int col, int row, DCELL value) |
Writes a DCELL value to the N_array_2d struct at position col, row. More... | |
void | N_print_array_2d_info (N_array_2d *data) |
This function writes the data info of the array data to stdout. More... | |
void | N_print_array_2d (N_array_2d *data) |
Write info and content of the N_array_2d struct to stdout. More... | |
N_array_3d * | N_alloc_array_3d (int cols, int rows, int depths, int offset, int type) |
Allocate memory for a N_array_3d data structure. More... | |
void | N_free_array_3d (N_array_3d *data) |
Release the memory of a N_array_3d. More... | |
int | N_get_array_3d_type (N_array_3d *array) |
Return the data type of the N_array_3d. More... | |
void | N_get_array_3d_value (N_array_3d *data, int col, int row, int depth, void *value) |
This function writes the value of N_array_3d data at position col, row, depth to the variable value. More... | |
int | N_is_array_3d_value_null (N_array_3d *data, int col, int row, int depth) |
This function returns 1 if value of N_array_3d data at position col, row, depth is of type null, otherwise 0. More... | |
float | N_get_array_3d_f_value (N_array_3d *data, int col, int row, int depth) |
This function returns the value of type float at position col, row, depth. More... | |
double | N_get_array_3d_d_value (N_array_3d *data, int col, int row, int depth) |
This function returns the value of type float at position col, row, depth. More... | |
void | N_put_array_3d_value (N_array_3d *data, int col, int row, int depth, char *value) |
This function writes a value to the N_array_3d data at position col, row, depth. More... | |
void | N_put_array_3d_value_null (N_array_3d *data, int col, int row, int depth) |
This function writes a null value to the N_array_3d data at position col, row, depth. More... | |
void | N_put_array_3d_f_value (N_array_3d *data, int col, int row, int depth, float value) |
This function writes a float value to the N_array_3d data at position col, row, depth. More... | |
void | N_put_array_3d_d_value (N_array_3d *data, int col, int row, int depth, double value) |
Writes a double value to the N_array_3d struct at position col, row, depth. More... | |
void | N_print_array_3d_info (N_array_3d *data) |
Write the info of the array to stdout. More... | |
void | N_print_array_3d (N_array_3d *data) |
Write info and content of the array data to stdout. More... | |
N_array_2d* N_alloc_array_2d | ( | int | cols, |
int | rows, | ||
int | offset, | ||
int | type | ||
) |
Allocate memory for a N_array_2d data structure.
This function allocates memory for an array of type N_array_2d and returns the pointer to the new allocated memory.
The data type of this array is set by "type" and must be CELL_TYPE, FCELL_TYPE or DCELL_TYPE accordingly to the raster map data types. The offset sets the number of boundary cols and rows. This option is useful to generate homogeneous Neumann boundary conditions around an array or to establish overlapping boundaries. The array is initialized with 0 by default.
If the offset is greater then 0, negative indices are possible.
The data structure of a array with 3 rows and cols and an offset of 1 will looks like this:
0 0 0 0 0 0 0 1 2 0 0 3 4 5 0 0 6 7 8 0 0 0 0 0 0
0 is the boundary.
Internal a one dimensional array is allocated to save memory and to speed up the memory access. To access the one dimensional array with a two dimensional index use the provided get and put functions. The internal representation of the above data will look like this:
0 0 0 0 0 0 0 1 2 0 0 3 4 5 0 0 6 7 8 0 0 0 0 0 0
cols | int |
rows | int |
offset | int |
type | int |
Definition at line 75 of file n_arrays.c.
Referenced by N_alloc_gradient_field_2d().
N_array_3d* N_alloc_array_3d | ( | int | cols, |
int | rows, | ||
int | depths, | ||
int | offset, | ||
int | type | ||
) |
Allocate memory for a N_array_3d data structure.
This functions allocates an array of type N_array_3d and returns a pointer to the new allocated memory.
The data type of this array set by "type" must be FCELL_TYPE or DCELL_TYPE accordingly to the raster3d map data types. The offsets sets the number of boundary cols, rows and depths. This option is useful to generate homogeneous Neumann boundary conditions around an array or to establish overlapping boundaries. The arrays are initialized with 0 by default.
If the offset is greater then 0, negative indices are possible. The data structure of a array with 3 depths, rows and cols and an offset of 1 will looks like this:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 3 4 5 0 0 6 7 8 0 0 0 0 0 0 0 0 0 0 0 0 9 10 11 0 0 12 13 14 0 0 15 16 17 0 0 0 0 0 0 0 0 0 0 0 0 18 19 20 0 0 21 22 23 0 0 24 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The depth counts from the bottom to the top.
Internal a one dimensional array is allocated to speed up the memory access. To access the dimensional array with a three dimensional indexing use the provided get and put functions.
cols | int |
rows | int |
depths | int |
offset | int |
type | int |
Definition at line 719 of file n_arrays.c.
Referenced by N_alloc_gradient_field_3d().
void N_free_array_2d | ( | N_array_2d * | data | ) |
Release the memory of a N_array_2d structure.
data | N_array_2d * |
Definition at line 132 of file n_arrays.c.
Referenced by N_free_gradient_field_2d().
void N_free_array_3d | ( | N_array_3d * | data | ) |
Release the memory of a N_array_3d.
data | N_array_3d * |
Definition at line 774 of file n_arrays.c.
Referenced by N_free_gradient_field_3d().
CELL N_get_array_2d_c_value | ( | N_array_2d * | data, |
int | col, | ||
int | row | ||
) |
Returns the value of type CELL at position col, row.
The data array can be of type CELL, FCELL or DCELL, the value will be casted to the CELL type.
data | N_array_2d * |
col | int |
row | int |
Definition at line 314 of file n_arrays.c.
Referenced by N_les_integrate_dirichlet_2d().
DCELL N_get_array_2d_d_value | ( | N_array_2d * | data, |
int | col, | ||
int | row | ||
) |
Returns the value of type DCELL at position col, row.
The data array can be of type CELL, FCELL or DCELL, the value will be casted to the DCELL type.
data | N_array_2d * |
col | int |
row | int |
Definition at line 380 of file n_arrays.c.
Referenced by N_compute_gradient_field_2d(), N_get_gradient_2d(), N_get_gradient_neighbours_2d(), and N_les_integrate_dirichlet_2d().
FCELL N_get_array_2d_f_value | ( | N_array_2d * | data, |
int | col, | ||
int | row | ||
) |
Returns the value of type FCELL at position col, row.
The data array can be of type CELL, FCELL or DCELL, the value will be casted to the FCELL type.
data | N_array_2d * |
col | int |
row | int |
Definition at line 347 of file n_arrays.c.
int N_get_array_2d_type | ( | N_array_2d * | array | ) |
Return the data type of the N_array_2d struct.
The data type can be CELL_TYPE, FCELL_TYPE or DCELL_TYPE accordingly to the raster map data types.
array | N_array_2d * |
Definition at line 164 of file n_arrays.c.
References N_array_2d::type.
void N_get_array_2d_value | ( | N_array_2d * | data, |
int | col, | ||
int | row, | ||
void * | value | ||
) |
Write the value of the N_array_2d struct at position col, row to value.
The value must be of the same type as the array. Otherwise you will risk data losses.
data | N_array_2d * |
col | int |
row | int |
value | void * - this variable contains the array value at col, row position |
Definition at line 182 of file n_arrays.c.
double N_get_array_3d_d_value | ( | N_array_3d * | data, |
int | col, | ||
int | row, | ||
int | depth | ||
) |
This function returns the value of type float at position col, row, depth.
The data type can be FCELL_TYPE or DCELL_TYPE accordingly to the raster map data types.
data | N_array_3d * |
col | int |
row | int |
depth | int |
Definition at line 979 of file n_arrays.c.
Referenced by N_compute_gradient_field_3d(), and N_les_integrate_dirichlet_3d().
float N_get_array_3d_f_value | ( | N_array_3d * | data, |
int | col, | ||
int | row, | ||
int | depth | ||
) |
This function returns the value of type float at position col, row, depth.
The data type can be FCELL_TYPE or DCELL_TYPE accordingly to the raster map data types.
data | N_array_3d * |
col | int |
row | int |
depth | int |
Definition at line 948 of file n_arrays.c.
int N_get_array_3d_type | ( | N_array_3d * | array | ) |
Return the data type of the N_array_3d.
The data type can be FCELL_TYPE and DCELL_TYPE accordingly to the raster map data types.
array | N_array_3d * |
Definition at line 803 of file n_arrays.c.
References N_array_3d::type.
void N_get_array_3d_value | ( | N_array_3d * | data, |
int | col, | ||
int | row, | ||
int | depth, | ||
void * | value | ||
) |
This function writes the value of N_array_3d data at position col, row, depth to the variable value.
The value must be from the same type as the array. Otherwise you will risk data losses.
data | N_array_3d * |
col | int |
row | int |
depth | int |
value | void * |
Definition at line 822 of file n_arrays.c.
int N_is_array_2d_value_null | ( | N_array_2d * | data, |
int | col, | ||
int | row | ||
) |
Returns 1 if the value of N_array_2d struct at position col, row is of type null, otherwise 0.
This function checks automatically the type of the array and checks for the data type null value.
data | N_array_2d * |
col | int |
row | int |
Definition at line 231 of file n_arrays.c.
Referenced by N_compute_gradient_field_2d().
int N_is_array_3d_value_null | ( | N_array_3d * | data, |
int | col, | ||
int | row, | ||
int | depth | ||
) |
This function returns 1 if value of N_array_3d data at position col, row, depth is of type null, otherwise 0.
This function checks automatically the type of the array and checks for the data type null value.
data | N_array_3d * |
col | int |
row | int |
depth | int |
Definition at line 873 of file n_arrays.c.
Referenced by N_compute_gradient_field_3d().
void N_print_array_2d | ( | N_array_2d * | data | ) |
Write info and content of the N_array_2d struct to stdout.
Offsets are ignored
data | N_array_2d * |
Definition at line 628 of file n_arrays.c.
void N_print_array_2d_info | ( | N_array_2d * | data | ) |
This function writes the data info of the array data to stdout.
data | N_array_2d * |
Definition at line 603 of file n_arrays.c.
Referenced by N_print_gradient_field_2d_info().
void N_print_array_3d | ( | N_array_3d * | data | ) |
Write info and content of the array data to stdout.
Offsets are ignored
data | N_array_2d * |
Definition at line 1196 of file n_arrays.c.
void N_print_array_3d_info | ( | N_array_3d * | data | ) |
Write the info of the array to stdout.
data | N_array_3d * |
Definition at line 1170 of file n_arrays.c.
Referenced by N_print_gradient_field_3d_info().
void N_put_array_2d_c_value | ( | N_array_2d * | data, |
int | col, | ||
int | row, | ||
CELL | value | ||
) |
Writes a CELL value to the N_array_2d struct at position col, row.
data | N_array_2d * |
col | int |
row | int |
value | CELL |
Definition at line 516 of file n_arrays.c.
void N_put_array_2d_d_value | ( | N_array_2d * | data, |
int | col, | ||
int | row, | ||
DCELL | value | ||
) |
Writes a DCELL value to the N_array_2d struct at position col, row.
data | N_array_2d * |
col | int |
row | int |
value | DCELL |
Definition at line 576 of file n_arrays.c.
Referenced by N_compute_gradient_field_2d(), and N_compute_gradient_field_components_2d().
void N_put_array_2d_f_value | ( | N_array_2d * | data, |
int | col, | ||
int | row, | ||
FCELL | value | ||
) |
Writes a FCELL value to the N_array_2d struct at position col, row.
data | N_array_2d * |
col | int |
row | int |
value | FCELL |
Definition at line 546 of file n_arrays.c.
void N_put_array_2d_value | ( | N_array_2d * | data, |
int | col, | ||
int | row, | ||
char * | value | ||
) |
Writes a value to the N_array_2d struct at position col, row.
The value will be automatically cast to the array type.
data | N_array_2d * |
col | int |
row | int |
value | char * |
Definition at line 412 of file n_arrays.c.
void N_put_array_2d_value_null | ( | N_array_2d * | data, |
int | col, | ||
int | row | ||
) |
Writes the null value to the N_array_2d struct at position col, row.
The null value will be automatically set to the array data type (CELL, FCELL or DCELL).
data | N_array_2d * |
col | int |
row | int |
Definition at line 459 of file n_arrays.c.
void N_put_array_3d_d_value | ( | N_array_3d * | data, |
int | col, | ||
int | row, | ||
int | depth, | ||
double | value | ||
) |
Writes a double value to the N_array_3d struct at position col, row, depth.
data | N_array_3d * |
col | int |
row | int |
depth | int |
value | double |
Definition at line 1148 of file n_arrays.c.
Referenced by N_compute_gradient_field_3d(), and N_compute_gradient_field_components_3d().
void N_put_array_3d_f_value | ( | N_array_3d * | data, |
int | col, | ||
int | row, | ||
int | depth, | ||
float | value | ||
) |
This function writes a float value to the N_array_3d data at position col, row, depth.
data | N_array_3d * |
col | int |
row | int |
depth | int |
value | float |
Definition at line 1121 of file n_arrays.c.
void N_put_array_3d_value | ( | N_array_3d * | data, |
int | col, | ||
int | row, | ||
int | depth, | ||
char * | value | ||
) |
This function writes a value to the N_array_3d data at position col, row, depth.
The value will be automatically cast to the array type.
data | N_array_3d * |
col | int |
row | int |
depth | int |
value | char * |
Definition at line 1010 of file n_arrays.c.
void N_put_array_3d_value_null | ( | N_array_3d * | data, |
int | col, | ||
int | row, | ||
int | depth | ||
) |
This function writes a null value to the N_array_3d data at position col, row, depth.
The null value will be automatically set to the array type.
data | N_array_3d * |
col | int |
row | int |
depth | int |
Definition at line 1060 of file n_arrays.c.