GRASS Programmer's Manual  6.4.2(2012)
init2d.c
Go to the documentation of this file.
00001 
00002 /*-
00003  * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
00004  * Copyright 1993, H. Mitasova ,
00005  * I. Kosinovsky, and D.Gerdes   
00006  *
00007  * modified by McCauley in August 1995
00008  * modified by Mitasova in August 1995  
00009  * modified by Brown in June 1999 - added elatt & smatt 
00010  *
00011  */
00012 
00013 #include <stdio.h>
00014 #include <math.h>
00015 #include <unistd.h>
00016 #include <grass/gis.h>
00017 #include <grass/interpf.h>
00018 
00019 void IL_init_params_2d(
00020                           /* initialize parameters */
00021                           struct interp_params *params, FILE * inp,     /* input stream */
00022                           int elatt,    /* which fp att in sites file? 1 = first */
00023                           int smatt,    /* which fp att in sites file to use for 
00024                                          * smoothing? (if zero use sm) 1 = first */
00025                           double zm,    /* multiplier for z-values */
00026                           int k1,       /* min number of points per segment for
00027                                          * interpolation */
00028                           int k2,       /* max number of points per segment */
00029                           char *msk,    /* name of mask */
00030                           int rows, int cols,   /* number of rows and columns */
00031                           DCELL * ar1, DCELL * ar2, DCELL * ar3, DCELL * ar4, DCELL * ar5, DCELL * ar6, /* arrays for interpolated
00032                                                                                                          * values */
00033                           double tension,       /* tension */
00034                           int k3,       /* max num. of points for interp. */
00035                           int sc1, int sc2, int sc3,    /* multipliers for interp. values */
00036                           double sm,    /* smoothing */
00037                           char *f1, char *f2, char *f3, char *f4, char *f5, char *f6,   /* output files */
00038                           double dm,    /* min distance between points */
00039                           double x_or, double y_or,     /* origin */
00040                           int der,      /* 1 if compute partial derivs */
00041                           double tet,   /* anisotropy angle, 0=East,counter-clockwise */
00042                           double scl,   /* anisotropy scaling factor */
00043                           FILE * t1, FILE * t2, FILE * t3, FILE * t4, FILE * t5, FILE * t6,     /* temp files for writing interp. values */
00044                           FILE * dev,   /* pointer to deviations file */
00045                           struct TimeStamp *ts, int c,  /* cross validation */
00046                           char *wheresql        /* SQL WHERE */
00047     )
00048 {
00049     params->fdinp = inp;
00050     params->elatt = elatt;
00051     params->smatt = smatt;
00052     params->zmult = zm;
00053     params->kmin = k1;
00054     params->kmax = k2;
00055     params->maskmap = msk;
00056     params->nsizr = rows;
00057     params->nsizc = cols;
00058     params->az = ar1;
00059     params->adx = ar2;
00060     params->ady = ar3;
00061     params->adxx = ar4;
00062     params->adyy = ar5;
00063     params->adxy = ar6;
00064     params->fi = tension, params->KMAX2 = k3;
00065     params->scik1 = sc1;
00066     params->scik2 = sc2;
00067     params->scik3 = sc3;
00068     params->rsm = sm;
00069     params->elev = f1;
00070     params->slope = f2;
00071     params->aspect = f3;
00072     params->pcurv = f4;
00073     params->tcurv = f5;
00074     params->mcurv = f6;
00075     params->dmin = dm;
00076     params->x_orig = x_or;
00077     params->y_orig = y_or;
00078     params->deriv = der;
00079     params->theta = tet;
00080     params->scalex = scl;
00081     params->Tmp_fd_z = t1;
00082     params->Tmp_fd_dx = t2;
00083     params->Tmp_fd_dy = t3;
00084     params->Tmp_fd_xx = t4;
00085     params->Tmp_fd_yy = t5;
00086     params->Tmp_fd_xy = t6;
00087     params->fddevi = dev;
00088     params->ts = ts;
00089     params->cv = c;
00090     params->wheresql = wheresql;
00091 }
00092 
00093 void IL_init_func_2d(struct interp_params *params, int (*grid_f) (void),        /* calculates grid for given segm */
00094                      int (*matr_f) (void),      /* creates matrix for a given segm */
00095                      int (*point_f) (void),     /* checks interp. func. at points */
00096                      int (*secp_f) (void),      /* calculates aspect,slope,curv. */
00097                      double (*interp_f) (void), /* radial  basis function */
00098                      int (*interpder_f) (void), /* derivatives of radial basis func. */
00099                      int (*temp_f) (void)       /* writes temp files */
00100     )
00101 
00102 /* initialize functions */
00103 {
00104     params->grid_calc = grid_f;
00105     params->matrix_create = matr_f;
00106     params->check_points = point_f;
00107     params->secpar = secp_f;
00108     params->interp = interp_f;
00109     params->interpder = interpder_f;
00110     params->wr_temp = temp_f;
00111 
00112 }
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines