|
GRASS GIS 8 Programmer's Manual
8.4.2dev(2025)-5620950973
|
#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 *, bool, 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 | arg1, |
| double | arg2 | ||
| ) |
Definition at line 52 of file minmax.c.
Referenced by IL_secpar_loop_2d().
| double amin1 | ( | double | arg1, |
| double | arg2 | ||
| ) |
Definition at line 65 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 37 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, and NULL.
| double IL_crst | ( | double | r, |
| double | fi | ||
| ) |
| int IL_crstg | ( | double | r, |
| double | fi, | ||
| double * | gd1, | ||
| double * | gd2 | ||
| ) |
| double IL_dist_square | ( | double * | pt1, |
| double * | pt2, | ||
| int | dim | ||
| ) |
Definition at line 18 of file rst/interp_float/distance.c.
| 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 | |||
| ) |
| 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 106 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, | ||
| bool | create_devi, | ||
| 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) |
| create_devi | create 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 46 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 36 of file segmen2d_parallel.c.
References b, G_alloc_ivector(), G_alloc_matrix(), G_alloc_vector(), G_fatal_error(), interp_params::KMAX2, NULL, and smallest_segment().
| 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 | ||
| ) |
Definition at line 37 of file matrix.c.
References G_alloc_vector(), IL_matrix_create_alloc(), interp_params::KMAX2, and NULL.
| 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 |
Definition at line 69 of file matrix.c.
References r.
Referenced by IL_matrix_create().
| 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_resample_interp_segments_2d | ( | struct interp_params * | params, |
| 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, | ||
| off_t | offset1, | ||
| double * | dnorm, | ||
| int | overlap, | ||
| int | inp_rows, | ||
| int | inp_cols, | ||
| int | fdsmooth, | ||
| int | fdinp, | ||
| double | ns_res, | ||
| double | ew_res, | ||
| double | inp_ns_res, | ||
| double | inp_ew_res, | ||
| int | dtens | ||
| ) |
Definition at line 33 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 | |||
| ) |
| 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 34 of file secpar2d.c.
References interp_params::adx, interp_params::adxx, interp_params::adxy, interp_params::ady, interp_params::adyy, amax1(), amin1(), BM_get(), 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 50 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 34 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(), 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 | x, |
| double | y, | ||
| double | z, | ||
| double | sm, | ||
| struct tree_info * | info, | ||
| double | zmult, | ||
| double * | xmin, | ||
| double * | xmax, | ||
| double * | ymin, | ||
| double * | ymax, | ||
| double * | zmin, | ||
| double * | zmax, | ||
| int * | npoint, | ||
| int * | OUTRANGE, | ||
| int * | total | ||
| ) |
Definition at line 306 of file vinput2d.c.
| double smallest_segment | ( | struct multtree * | tree, |
| int | n_leafs | ||
| ) |
Definition at line 338 of file segmen2d.c.
References multtree::data, multtree::leafs, NULL, smallest_segment(), and quaddata::xmax.
Referenced by IL_interp_segments_2d_parallel(), and smallest_segment().
| int translate_quad | ( | struct multtree * | tree, |
| double | numberx, | ||
| double | numbery, | ||
| double | numberz, | ||
| int | n_leafs | ||
| ) |
Definition at line 90 of file input2d.c.
References multtree::data, multtree::leafs, quaddata::n_points, NULL, quaddata::points, x, quaddata::x_orig, quaddata::xmax, quaddata::y_orig, and quaddata::ymax.
|
extern |
|
extern |
Referenced by BM_create_sparse(), c_ave(), c_count(), c_divr(), c_intr(), c_kurt(), c_skew(), c_sum(), c_var(), G__read_Cell_head(), G_asprintf(), G_get_timestamps(), G_list(), G_math_A_to_Asp(), G_math_sband_matrix_to_Asp(), G_rasprintf(), G_snprintf(), G_str_replace(), G_str_to_sql(), G_switch_search_path(), G_vasprintf(), GPJ_get_default_datum_params_by_name(), N_les_integrate_dirichlet_2d(), N_les_integrate_dirichlet_3d(), w_ave(), w_count(), w_kurt(), w_skew(), w_sum(), and w_var().
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |