File: interpf.h

package info (click to toggle)
grass 6.0.2-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 40,044 kB
  • ctags: 31,303
  • sloc: ansic: 321,125; tcl: 25,676; sh: 11,176; cpp: 10,098; makefile: 5,025; fortran: 1,846; yacc: 493; lex: 462; perl: 133; sed: 1
file content (121 lines) | stat: -rw-r--r-- 6,238 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
 * modified by Brown in June 1999 - added elatt & smatt
 * modified by Mitasova Nov. 9, 1999 - added parameter for dtens to output2d
*/
#include "Vect.h"
#include "bitmap.h"
#include "dataquad.h"
#include "qtree.h"
#include "dbmi.h"

/* for resample program */
struct fcell_triple   {
      double x;
      double y;
      FCELL z;
      double smooth;
};

#ifdef POINT2D_C
  struct line_pnts *Pnts;
  struct line_cats *Cats2;
  dbDriver *driver2;
  dbString sql2;
  struct Map_info Map2;
  struct field_info *ff;
  int count;
#else
  extern struct line_pnts *Pnts;
  extern struct line_cats *Cats2;
  extern dbDriver *driver2;
  extern dbString sql2;
  extern struct Map_info Map2;
  extern struct field_info *ff;
  extern int count;
#endif

struct interp_params 
{
   double zmult;       /* multiplier for z-values */
   FILE *fdinp;         /* input stream */
   int elatt;       /* which floating point attr to use? first = 1, second = 2, etc */
   int smatt;       /* which floating point attr to use for smoothing? first = 1, second = 2, etc */
   int kmin;           /* min number of points per segment for interpolation */
   int kmax;           /* max number of points per segment */ 
   char *maskmap;       /* name of mask */
   int nsizr,nsizc;     /* number of rows and columns */
   DCELL *az,*adx,*ady,*adxx,*adyy,*adxy;  /* array for interpolated values */
   double fi;                               /* tension */
   int    KMAX2;                            /* max num. of points for interp.*/
   int    scik1,scik2,scik3;                /* multipliers for interp. values*/
   double        rsm;               /* smoothing */
   char   *elev,*slope,*aspect,*pcurv,*tcurv,*mcurv; /* output files */
   double dmin;                             /* min distance between points */
   double x_orig, y_orig;                   /* origin */
   int    deriv,cv;                            /* 1 if compute partial derivs */
   double theta;			   /* anisotropy angle, 0=East,counter-clockwise */
   double scalex;			   /* anisotropy scaling factor */
   struct TimeStamp *ts;                      /* timestamp for raster files */
   FILE   *Tmp_fd_z,*Tmp_fd_dx,*Tmp_fd_dy,  /* temp files for writing interp.*/
          *Tmp_fd_xx,*Tmp_fd_yy,*Tmp_fd_xy; /* values */
   FILE   *fddevi;     /* pointer to deviations file */

   int    (*grid_calc) ();                  /*calculates grid for given segm*/
   int    (*matrix_create) ();              /*creates matrix for a given segm*/
   int    (*check_points) ();               /*checks interp. func. at points */
   int    (*secpar) ();                     /* calculates aspect,slope,curv. */
   double (*interp) ();                     /* radial  based interp. function*/
   int    (*interpder) ();                  /* interp. func. for derivatives */
   int    (*wr_temp) ();                    /* writes temp files */

};
/* distance.c */
double IL_dist_square(double *, double *, int);
/* func2d.c */
double IL_crst(double, double);
int IL_crstg(double, double, double *, double *);
/* init2d.c */
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);

void IL_init_func_2d(struct interp_params *, int (*)(), int (*)(), int (*)(), int (*)(), double (*)(), int (*)(), int (*)());
/* input2d.c */
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);
/* interp2d.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 *, int, double);
/* matrix.c */
int IL_matrix_create(struct interp_params *, struct triple *, int, double **, int *);
/* minmax.c */
int min1(int, int);
int max1(int, int);
double amax1(double, double);
double amin1(double, double);
/* newsegm2d.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);
/* output2d.c */
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);
/* point2d.c */
int IL_check_at_points_2d(struct interp_params *, struct quaddata *, double *, double *, double, double, struct triple);
/* resout2d.c */
/* resout2dmod.c */
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);
/* ressegm2d.c */
int IL_resample_interp_segments_2d(struct interp_params *, struct BM *, double, double, double *, double *, double *, double *, double *, double *, double *, double *, double *, int, double *, int, int, int, int, int, double, double, double, double, int);
/* secpar2d.c */
int IL_secpar_loop_2d(struct interp_params *, int, int, int, struct BM *, double *, double *, double *, double *, double *, double *, int, int);
/* segmen2d.c */
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, int, double);
/* vinput2d.c */
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 *);
/* write2d.c */
int IL_write_temp_2d(struct interp_params *, int, int, int);