GRASS GIS 7 Programmer's Manual
7.9.dev(2021)-e5379bbd7
|
#include <grass/config.h>
#include <stdio.h>
#include <grass/gis.h>
#include <grass/raster.h>
#include <grass/vector.h>
#include <grass/bitmap.h>
#include <grass/dataquad.h>
#include <grass/qtree.h>
#include <grass/dbmi.h>
Go to the source code of this file.
Data Structures | |
struct | fcell_triple |
struct | interp_params |
Typedefs | |
typedef int | grid_calc_fn(struct interp_params *, struct quaddata *, struct BM *, double, double, double *, double *, double *, double *, double *, double *, double *, double *, double *, double *, off_t, double) |
typedef int | matrix_create_fn(struct interp_params *, struct triple *, int, double **, int *) |
typedef int | check_points_fn(struct interp_params *, struct quaddata *, double *, double *, double, double, struct triple) |
typedef int | secpar_fn(struct interp_params *, int, int, int, struct BM *, double *, double *, double *, double *, double *, double *, int, int) |
typedef double | interp_fn(double, double) |
typedef int | interpder_fn(double, double, double *, double *) |
typedef int | wr_temp_fn(struct interp_params *, int, int, off_t) |
Functions | |
double | IL_dist_square (double *, double *, int) |
double | IL_crst (double, double) |
int | IL_crstg (double, double, double *, double *) |
void | IL_init_params_2d (struct interp_params *, FILE *, int, int, double, int, int, char *, int, int, DCELL *, DCELL *, DCELL *, DCELL *, DCELL *, DCELL *, double, int, int, int, int, double, char *, char *, char *, char *, char *, char *, double, double, double, int, double, double, FILE *, FILE *, FILE *, FILE *, FILE *, FILE *, FILE *, struct TimeStamp *, int, const char *) |
void | IL_init_func_2d (struct interp_params *, grid_calc_fn *, matrix_create_fn *, check_points_fn *, secpar_fn *, interp_fn *, interpder_fn *, wr_temp_fn *) |
int | IL_input_data_2d (struct interp_params *, struct tree_info *, double *, double *, double *, double *, double *, double *, int *) |
struct BM * | IL_create_bitmask (struct interp_params *) |
int | translate_quad (struct multtree *, double, double, double, int) |
int | IL_grid_calc_2d (struct interp_params *, struct quaddata *, struct BM *, double, double, double *, double *, double *, double *, double *, double *, double *, double *, double *, double *, off_t, double) |
int | IL_matrix_create (struct interp_params *, struct triple *, int, double **, int *) |
int | IL_matrix_create_alloc (struct interp_params *, struct triple *, int, double **, int *, double *) |
Creates system of linear equations from interpolated points. More... | |
int | min1 (int, int) |
int | max1 (int, int) |
double | amax1 (double, double) |
double | amin1 (double, double) |
int | IL_interp_segments_new_2d (struct interp_params *, struct tree_info *, struct multtree *, struct BM *, double, double, double *, double *, double *, double *, double *, double *, double *, double *, double *, int, int, double) |
int | IL_output_2d (struct interp_params *, struct Cell_head *, double, double, double, double, double, double, double, double, double, double, double, char *, double, int, int, int) |
int | IL_check_at_points_2d (struct interp_params *, struct quaddata *, double *, double *, double, double, struct triple) |
int | IL_resample_output_2d (struct interp_params *, double, double, double, double, double, double, double, double, double, double, double, char *, double *, struct Cell_head *, struct Cell_head *, char *, int) |
int | IL_resample_interp_segments_2d (struct interp_params *, struct BM *, double, double, double *, double *, double *, double *, double *, double *, double *, double *, double *, off_t, double *, int, int, int, int, int, double, double, double, double, int) |
int | IL_secpar_loop_2d (struct interp_params *, int, int, int, struct BM *, double *, double *, double *, double *, double *, double *, int, int) |
double | smallest_segment (struct multtree *, int) |
int | IL_interp_segments_2d (struct interp_params *, struct tree_info *, struct multtree *, struct BM *, double, double, double *, double *, double *, double *, double *, double *, double *, double *, double *, int, off_t, double) |
int | IL_interp_segments_2d_parallel (struct interp_params *, struct tree_info *, struct multtree *, struct BM *, double, double, double *, double *, double *, double *, double *, double *, double *, double *, double *, int, off_t, double, int) |
int | IL_vector_input_data_2d (struct interp_params *, struct Map_info *, int, char *, char *, struct tree_info *, double *, double *, double *, double *, double *, double *, int *, double *) |
int | process_point (double, double, double, double, struct tree_info *, double, double *, double *, double *, double *, double *, double *, int *, int *, int *) |
int | IL_write_temp_2d (struct interp_params *, int, int, off_t) |
Variables | |
struct line_pnts * | Pnts |
struct line_cats * | Cats2 |
dbDriver * | driver2 |
dbString | sql2 |
struct Map_info | Map2 |
struct field_info * | ff |
int | count |
typedef int check_points_fn(struct interp_params *, struct quaddata *, double *, double *, double, double, struct triple) |
typedef int grid_calc_fn(struct interp_params *, struct quaddata *, struct BM *, double, double, double *, double *, double *, double *, double *, double *, double *, double *, double *, double *, off_t, double) |
typedef int interpder_fn(double, double, double *, double *) |
typedef int matrix_create_fn(struct interp_params *, struct triple *, int, double **, int *) |
typedef int secpar_fn(struct interp_params *, int, int, int, struct BM *, double *, double *, double *, double *, double *, double *, int, int) |
typedef int wr_temp_fn(struct interp_params *, int, int, off_t) |
double amax1 | ( | double | , |
double | |||
) |
Definition at line 54 of file minmax.c.
Referenced by IL_secpar_loop_2d().
double amin1 | ( | double | , |
double | |||
) |
Definition at line 67 of file minmax.c.
Referenced by IL_secpar_loop_2d().
int IL_check_at_points_2d | ( | struct interp_params * | params, |
struct quaddata * | data, | ||
double * | b, | ||
double * | ertot, | ||
double | zmin, | ||
double | dnorm, | ||
struct triple | skip_point | ||
) |
Checks if interpolating function interp() evaluates correct z-values at given points. If smoothing is used calculate the maximum error caused by smoothing.
ertot is a RMS deviation of the interpolated surface.
data | current region |
b | solution of linear equations |
ertot | total error |
zmin | min z-value |
struct BM* IL_create_bitmask | ( | struct interp_params * | params | ) |
Creates a bitmap mask from given raster map
Creates a bitmap mask from maskmap raster file and/or current MASK if present and returns a pointer to the bitmask. If no mask is in force returns NULL.
Definition at line 40 of file input2d.c.
References _, BM_create(), BM_set(), G_fatal_error(), G_find_raster2(), G_message(), interp_params::maskmap, interp_params::nsizc, interp_params::nsizr, NULL, Rast_allocate_c_buf(), Rast_close(), Rast_get_c_row(), Rast_is_c_null_value, Rast_maskfd(), and Rast_open_old().
double IL_crst | ( | double | r, |
double | fi | ||
) |
int IL_crstg | ( | double | r, |
double | fi, | ||
double * | gd1, | ||
double * | gd2 | ||
) |
double IL_dist_square | ( | double * | , |
double * | , | ||
int | |||
) |
Definition at line 19 of file rst/interp_float/distance.c.
int IL_grid_calc_2d | ( | struct interp_params * | params, |
struct quaddata * | data, | ||
struct BM * | bitmask, | ||
double | zmin, | ||
double | zmax, | ||
double * | zminac, | ||
double * | zmaxac, | ||
double * | gmin, | ||
double * | gmax, | ||
double * | c1min, | ||
double * | c1max, | ||
double * | c2min, | ||
double * | c2max, | ||
double * | ertot, | ||
double * | b, | ||
off_t | offset1, | ||
double | dnorm | ||
) |
Calculates grid values for a given segment
Calculates grid for the given segment represented by data (contains n_rows, n_cols, ew_res,ns_res, and all points inside + overlap) using solutions of system of linear equations and interpolating functions interp() and interpder(). Also calls secpar() to compute slope, aspect and curvatures if required.
ertot can be also called RMS deviation of the interpolated surface
data | given segment |
bitmask | bitmask |
zmax | min and max input z-values |
zmaxac | min and max interp. z-values |
gmax | min and max interp. slope val. |
c1max | min and max interp. curv. val. |
c2max | min and max interp. curv. val. |
ertot | total interpolating func. error |
b | solutions of linear equations |
offset1 | offset for temp file writing |
Definition at line 65 of file interp2d.c.
void IL_init_func_2d | ( | struct interp_params * | params, |
grid_calc_fn * | grid_f, | ||
matrix_create_fn * | matr_f, | ||
check_points_fn * | point_f, | ||
secpar_fn * | secp_f, | ||
interp_fn * | interp_f, | ||
interpder_fn * | interpder_f, | ||
wr_temp_fn * | temp_f | ||
) |
Initializes functions used by the library
grid_f | calculates grid for given segment |
matr_f | creates matrix for a given segment |
point_f | checks interpolation function at points |
secp_f | calculates aspect, slope, curvature |
interp_f | radial basis function |
interpder_f | derivatives of radial basis function |
temp_f | writes temp files |
Definition at line 109 of file init2d.c.
References interp_params::check_points, interp_params::grid_calc, interp_params::interp, interp_params::interpder, interp_params::matrix_create, interp_params::secpar, and interp_params::wr_temp.
void IL_init_params_2d | ( | struct interp_params * | params, |
FILE * | inp, | ||
int | elatt, | ||
int | smatt, | ||
double | zm, | ||
int | k1, | ||
int | k2, | ||
char * | msk, | ||
int | rows, | ||
int | cols, | ||
DCELL * | ar1, | ||
DCELL * | ar2, | ||
DCELL * | ar3, | ||
DCELL * | ar4, | ||
DCELL * | ar5, | ||
DCELL * | ar6, | ||
double | tension, | ||
int | k3, | ||
int | sc1, | ||
int | sc2, | ||
int | sc3, | ||
double | sm, | ||
char * | f1, | ||
char * | f2, | ||
char * | f3, | ||
char * | f4, | ||
char * | f5, | ||
char * | f6, | ||
double | dm, | ||
double | x_or, | ||
double | y_or, | ||
int | der, | ||
double | tet, | ||
double | scl, | ||
FILE * | t1, | ||
FILE * | t2, | ||
FILE * | t3, | ||
FILE * | t4, | ||
FILE * | t5, | ||
FILE * | t6, | ||
FILE * | dev, | ||
struct TimeStamp * | ts, | ||
int | c, | ||
const char * | wheresql | ||
) |
Initializes parameters used by the library
inp | input stream |
elatt | which fp att in sites file? 1 = first |
smatt | which fp att in sites file to use for smoothing? (if zero use sm) 1 = first |
zm | multiplier for z-values |
k1 | min number of points per segment for interpolation |
k2 | max number of points per segment |
msk | name of mask |
cols | number of rows and columns |
ar6 | arrays for interpolated values (ar1-ar6) |
tension | tension |
k3 | max number of points for interpolation |
sc3 | multipliers for interpolation values |
sm | smoothing |
f6 | output files (f1-f6) |
dm | min distance between points |
x_or | x of origin |
y_or | y of origin |
der | 1 if compute partial derivatives |
tet | anisotropy angle (0 is East, counter-clockwise) |
scl | anisotropy scaling factor |
t6 | temp files for writing interp. values (t1-t6) |
dev | pointer to deviations file |
c | cross validation |
wheresql | SQL WHERE statement |
int IL_input_data_2d | ( | struct interp_params * | , |
struct tree_info * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
int * | |||
) |
int IL_interp_segments_2d | ( | struct interp_params * | params, |
struct tree_info * | info, | ||
struct multtree * | tree, | ||
struct BM * | bitmask, | ||
double | zmin, | ||
double | zmax, | ||
double * | zminac, | ||
double * | zmaxac, | ||
double * | gmin, | ||
double * | gmax, | ||
double * | c1min, | ||
double * | c1max, | ||
double * | c2min, | ||
double * | c2max, | ||
double * | ertot, | ||
int | totsegm, | ||
off_t | offset1, | ||
double | dnorm | ||
) |
Interpolate recursively a tree of segments
Recursively processes each segment in a tree by:
info | info for the quad tree |
tree | current leaf of the quad tree |
bitmask | bitmask |
zmax | min and max input z-values |
zmaxac | min and max interp. z-values |
gmax | min and max inperp. slope val. |
c1max | min and max interp. curv. val. |
c2max | min and max interp. curv. val. |
ertot | total interplating func. error |
totsegm | total number of segments |
offset1 | offset for temp file writing |
Definition at line 47 of file segmen2d.c.
int IL_interp_segments_2d_parallel | ( | struct interp_params * | params, |
struct tree_info * | info, | ||
struct multtree * | tree, | ||
struct BM * | bitmask, | ||
double | zmin, | ||
double | zmax, | ||
double * | zminac, | ||
double * | zmaxac, | ||
double * | gmin, | ||
double * | gmax, | ||
double * | c1min, | ||
double * | c1max, | ||
double * | c2min, | ||
double * | c2max, | ||
double * | ertot, | ||
int | totsegm, | ||
off_t | offset1, | ||
double | dnorm, | ||
int | threads | ||
) |
See documentation for IL_interp_segments_2d. This is a parallel processing implementation.
info | info for the quad tree |
tree | current leaf of the quad tree |
bitmask | bitmask |
zmax | min and max input z-values |
zmaxac | min and max interp. z-values |
gmax | min and max inperp. slope val. |
c1max | min and max interp. curv. val. |
c2max | min and max interp. curv. val. |
ertot | total interplating func. error |
totsegm | total number of segments |
offset1 | offset for temp file writing |
Definition at line 38 of file segmen2d_parallel.c.
int IL_interp_segments_new_2d | ( | struct interp_params * | , |
struct tree_info * | , | ||
struct multtree * | , | ||
struct BM * | , | ||
double | , | ||
double | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
int | , | ||
int | , | ||
double | |||
) |
int IL_matrix_create | ( | struct interp_params * | params, |
struct triple * | points, | ||
int | n_points, | ||
double ** | matrix, | ||
int * | indx | ||
) |
int IL_matrix_create_alloc | ( | struct interp_params * | params, |
struct triple * | points, | ||
int | n_points, | ||
double ** | matrix, | ||
int * | indx, | ||
double * | A | ||
) |
Creates system of linear equations from interpolated points.
Creates system of linear equations represented by matrix using given points and interpolating function interp()
params | struct interp_params * | |
points | points for interpolation as struct triple | |
n_points | number of points | |
[out] | matrix | the matrix |
indx |
int IL_output_2d | ( | struct interp_params * | params, |
struct Cell_head * | cellhd, | ||
double | zmin, | ||
double | zmax, | ||
double | zminac, | ||
double | zmaxac, | ||
double | c1min, | ||
double | c1max, | ||
double | c2min, | ||
double | c2max, | ||
double | gmin, | ||
double | gmax, | ||
double | ertot, | ||
char * | input, | ||
double | dnorm, | ||
int | dtens, | ||
int | vect, | ||
int | n_points | ||
) |
Creates output files as well as history files and color tables for them.
ertot can be also called RMS deviation of the interpolated surface.
cellhd | current region |
zmax | min,max input z-values |
c1max | min,max interpolated values |
ertot | total interpolating func. error |
input | input file name |
dnorm | normalization factor |
Definition at line 59 of file output2d.c.
int IL_resample_interp_segments_2d | ( | struct interp_params * | , |
struct BM * | , | ||
double | , | ||
double | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
off_t | , | ||
double * | , | ||
int | , | ||
int | , | ||
int | , | ||
int | , | ||
int | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
int | |||
) |
Definition at line 35 of file ressegm2d.c.
References l.
int IL_resample_output_2d | ( | struct interp_params * | , |
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
char * | , | ||
double * | , | ||
struct Cell_head * | , | ||
struct Cell_head * | , | ||
char * | , | ||
int | |||
) |
Definition at line 45 of file resout2d.c.
int IL_secpar_loop_2d | ( | struct interp_params * | params, |
int | ngstc, | ||
int | nszc, | ||
int | k, | ||
struct BM * | bitmask, | ||
double * | gmin, | ||
double * | gmax, | ||
double * | c1min, | ||
double * | c1max, | ||
double * | c2min, | ||
double * | c2max, | ||
int | cond1, | ||
int | cond2 | ||
) |
Compute slope aspect and curvatures
Computes slope, aspect and curvatures (depending on cond1, cond2) for derivative arrays adx,...,adxy between columns ngstc and nszc.
ngstc | starting column |
nszc | ending column |
k | current row |
c2max | min,max interp. values |
cond2 | determine if particular values need to be computed |
Definition at line 39 of file secpar2d.c.
References interp_params::adx, interp_params::adxx, interp_params::adxy, interp_params::ady, interp_params::adyy, amax1(), amin1(), BM_get(), M_R2D, and NULL.
int IL_vector_input_data_2d | ( | struct interp_params * | params, |
struct Map_info * | Map, | ||
int | field, | ||
char * | zcol, | ||
char * | scol, | ||
struct tree_info * | info, | ||
double * | xmin, | ||
double * | xmax, | ||
double * | ymin, | ||
double * | ymax, | ||
double * | zmin, | ||
double * | zmax, | ||
int * | n_points, | ||
double * | dmax | ||
) |
Insert into a quad tree
Inserts input data inside the region into a quad tree. Also translates data. Returns number of segments in the quad tree.
As z values may be used (in Map):
params | interpolation parameters |
Map | input vector map |
field | category field number |
zcol | name of the column containing z values |
scol | name of the column containing smooth values |
info | quadtree info |
n_points | number of points used for interpolation |
dmax | max distance between points |
Definition at line 51 of file vinput2d.c.
int IL_write_temp_2d | ( | struct interp_params * | params, |
int | ngstc, | ||
int | nszc, | ||
off_t | offset2 | ||
) |
Writes az,adx,...,adxy into appropriate place (depending on ngstc, nszc and offset) in corresponding temp file
ngstc | begin. column |
nszc | end. column |
offset2 | offset |
Definition at line 36 of file write2d.c.
References _, interp_params::adx, interp_params::adxx, interp_params::adxy, interp_params::ady, interp_params::adyy, interp_params::az, interp_params::deriv, G_fatal_error(), G_fseek(), G_malloc, interp_params::nsizc, NULL, interp_params::scik1, interp_params::scik2, interp_params::scik3, interp_params::Tmp_fd_dx, interp_params::Tmp_fd_dy, interp_params::Tmp_fd_xx, interp_params::Tmp_fd_xy, interp_params::Tmp_fd_yy, and interp_params::Tmp_fd_z.
int process_point | ( | double | , |
double | , | ||
double | , | ||
double | , | ||
struct tree_info * | , | ||
double | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
double * | , | ||
int * | , | ||
int * | , | ||
int * | |||
) |
Definition at line 306 of file vinput2d.c.
double smallest_segment | ( | struct multtree * | , |
int | |||
) |
Definition at line 346 of file segmen2d.c.
References multtree::data, multtree::leafs, NULL, and quaddata::xmax.
int translate_quad | ( | struct multtree * | , |
double | , | ||
double | , | ||
double | , | ||
int | |||
) |
Definition at line 92 of file input2d.c.
References multtree::data, multtree::leafs, quaddata::n_points, NULL, quaddata::points, translate_quad(), x, quaddata::x_orig, quaddata::xmax, quaddata::y_orig, and quaddata::ymax.
Referenced by translate_quad().
struct line_cats* Cats2 |
int count |
Referenced by BM_create_sparse(), c_ave(), c_count(), c_divr(), c_intr(), c_kurt(), c_skew(), c_sum(), c_var(), db__recv_double_array(), db__recv_float_array(), db__recv_index_array(), db__recv_int_array(), db__recv_short_array(), db__send_index_array(), db_alloc_dirent_array(), db_alloc_handle_array(), db_alloc_index_array(), db_d_append_error(), db_d_list_indexes(), db_d_list_tables(), db_dirent(), db_drop_token(), db_find_token(), db_free_dirent_array(), db_free_handle_array(), db_free_index_array(), db_new_token(), db_table_exists(), G__read_Cell_head(), G__set_flags_from_01_random(), G_asprintf(), G_list(), G_math_f_asum_norm(), G_rasprintf(), G_snprintf(), G_str_to_sql(), G_switch_search_path(), G_vasprintf(), GPJ_get_default_datum_params_by_name(), I_SigSetNClasses(), mm_register_init::mm_register_init(), N_assemble_les_2d_param(), N_assemble_les_3d_param(), N_les_integrate_dirichlet_2d(), N_les_integrate_dirichlet_3d(), N_write_array_2d_to_rast(), N_write_array_3d_to_rast3d(), NetA_betweenness_closeness(), NetA_init_distinct(), Rast__convert_01_flags(), Rast__convert_flags_01(), Rast_add_histogram(), Rast_extend_histogram(), Rast_histogram_eq(), Rast_make_histogram_cs(), Rast_read_histogram(), Rast_read_range(), Rast_read_rstats(), Rast_row_repeat_nomask(), Rast_set_histogram(), Rast_write_histogram_cs(), Rast_write_rstats(), w_ave(), w_count(), w_kurt(), w_skew(), w_sum(), w_var(), and mm_register_init::~mm_register_init().
dbDriver* driver2 |
struct field_info* ff |
struct Map_info Map2 |
struct line_pnts* Pnts |
dbString sql2 |