GRASS GIS 7 Programmer's Manual  7.7.svn(2018)-r73378
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
R.h
Go to the documentation of this file.
1 #include <grass/config.h>
2 #include <grass/gis.h>
3 #ifdef HAVE_GDAL
4 #include <gdal.h>
5 #endif
6 
7 #define XDR_FLOAT_NBYTES 4
8 #define XDR_DOUBLE_NBYTES 8
9 #define NULL_ROWS_INMEM 8
10 
11 /* if short is 16 bits, then
12  * short will allow 32767 cols
13  * unsigned short will allow 65536 cols
14  * use int if you need more columns (but this will take more memory).
15  *
16  */
17 typedef int COLUMN_MAPPING;
18 
19 struct GDAL_link
20 {
21  char *filename;
22  int band_num;
24  int hflip;
25  int vflip;
26 #ifdef HAVE_GDAL
27  GDALDatasetH data;
28  GDALRasterBandH band;
29  GDALDataType type;
30 #endif
31 };
32 
33 #ifdef HAVE_GDAL
34 extern CPLErr Rast_gdal_raster_IO(GDALRasterBandH, GDALRWFlag,
35  int, int, int, int,
36  void *, int, int, GDALDataType, int, int);
37 #endif
38 
39 struct tileinfo /* Information for tiles */
40 {
41  char *name; /* Name of open file */
42  char *mapset; /* Mapset of open file */
43  struct Cell_head cellhd; /* Cell header */
44  struct ilist *clist; /* columns inside current region */
45 };
46 
47 struct R_vrt
48 {
49  int tilecount;
50  struct tileinfo *tileinfo;
51  struct ilist *tlist;
52 };
53 
54 struct fileinfo /* Information for opened cell files */
55 {
56  int open_mode; /* see defines below */
57  struct Cell_head cellhd; /* Cell header */
58  struct Reclass reclass; /* Table reclass */
59  struct Cell_stats statf; /* Cell stats */
60  struct Range range; /* Range structure */
61  struct FPRange fp_range; /* float Range structure */
63  int reclass_flag; /* Automatic reclass flag */
64  off_t *row_ptr; /* File row addresses */
65  COLUMN_MAPPING *col_map; /* Data to window col mapping */
66  double C1, C2; /* Data to window row constants */
67  int cur_row; /* Current data row in memory */
68  int null_cur_row; /* Current null row in memory */
69  int cur_nbytes; /* nbytes per cell for current row */
70  unsigned char *data; /* Decompressed data buffer */
71  int null_fd; /* Null bitmap fd */
72  unsigned char *null_bits; /* Null bitmap buffer */
73  int nbytes; /* bytes per cell */
74  RASTER_MAP_TYPE map_type; /* type: int, float or double map */
75  char *temp_name; /* Temporary name for NEW files */
76  char *null_temp_name; /* Temporary name for NEW NULL files */
77  int null_file_exists; /* for existing raster maps */
78  char *name; /* Name of open file */
79  char *mapset; /* Mapset of open file */
80  int io_error; /* io error warning given */
81  struct Quant quant;
82  struct GDAL_link *gdal;
83  int data_fd; /* Raster data fd */
84  off_t *null_row_ptr; /* Null file row addresses */
85  struct R_vrt *vrt;
86 };
87 
88 struct R__ /* Structure of library globals */
89 {
90  RASTER_MAP_TYPE fp_type; /* type for writing floating maps */
91  int mask_fd; /* File descriptor for automatic mask */
92  int auto_mask; /* Flag denoting automatic masking */
94  int nbytes;
97  int window_set; /* Flag: window set? */
98  int split_window; /* Separate windows for input and output */
99  struct Cell_head rd_window; /* Window used for input */
100  struct Cell_head wr_window; /* Window used for output */
101 
104 };
105 
106 extern struct R__ R__; /* allocated in init */
107 
108 #define OPEN_OLD 1
109 #define OPEN_NEW_COMPRESSED 2
110 #define OPEN_NEW_UNCOMPRESSED 3
int tilecount
Definition: R.h:49
struct Cell_head rd_window
Definition: R.h:99
int nbytes
Definition: R.h:73
struct ilist * clist
Definition: R.h:44
int want_histogram
Definition: R.h:62
RASTER_MAP_TYPE map_type
Definition: R.h:74
struct tileinfo * tileinfo
Definition: R.h:50
Definition: R.h:88
char * name
Definition: R.h:78
2D/3D raster map header (used also for region)
Definition: gis.h:390
int data_fd
Definition: R.h:83
off_t * row_ptr
Definition: R.h:64
double DCELL
Definition: gis.h:581
int io_error
Definition: R.h:80
RASTER_MAP_TYPE fp_type
Definition: R.h:90
char * temp_name
Definition: R.h:75
unsigned char * data
Definition: R.h:70
struct R_vrt * vrt
Definition: R.h:85
COLUMN_MAPPING * col_map
Definition: R.h:65
unsigned char * null_bits
Definition: R.h:72
struct GDAL_link * gdal
Definition: R.h:82
struct Range range
Definition: R.h:60
struct Cell_head cellhd
Definition: R.h:43
struct Reclass reclass
Definition: R.h:58
struct Cell_head wr_window
Definition: R.h:100
Definition: raster.h:31
struct ilist * tlist
Definition: R.h:51
double C1
Definition: R.h:66
struct Cell_stats statf
Definition: R.h:59
Definition: raster.h:84
char * name
Definition: R.h:41
int null_fd
Definition: R.h:71
int COLUMN_MAPPING
Definition: R.h:17
char * mapset
Definition: R.h:79
int open_mode
Definition: R.h:56
int cur_row
Definition: R.h:67
int mask_fd
Definition: R.h:91
int fileinfo_count
Definition: R.h:102
struct fileinfo * fileinfo
Definition: R.h:103
char * null_temp_name
Definition: R.h:76
Definition: raster.h:225
int auto_mask
Definition: R.h:92
int cur_nbytes
Definition: R.h:69
int window_set
Definition: R.h:97
double C2
Definition: R.h:66
Definition: R.h:47
int null_file_exists
Definition: R.h:77
int compress_nulls
Definition: R.h:96
off_t * null_row_ptr
Definition: R.h:84
struct Cell_head cellhd
Definition: R.h:57
Definition: R.h:54
List of integers.
Definition: gis.h:667
int RASTER_MAP_TYPE
Definition: raster.h:25
int null_cur_row
Definition: R.h:68
struct Quant quant
Definition: R.h:81
int want_histogram
Definition: R.h:93
int nbytes
Definition: R.h:94
Definition: R.h:39
char * mapset
Definition: R.h:42
int split_window
Definition: R.h:98
struct FPRange fp_range
Definition: R.h:61
int compression_type
Definition: R.h:95
int reclass_flag
Definition: R.h:63