GRASS GIS 8 Programmer's Manual  8.5.0dev(2024)-36359e2344
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  char *filename;
21  int band_num;
23  int hflip;
24  int vflip;
25 #ifdef HAVE_GDAL
26  GDALDatasetH data;
27  GDALRasterBandH band;
28  GDALDataType type;
29 #endif
30 };
31 
32 #ifdef HAVE_GDAL
33 extern CPLErr Rast_gdal_raster_IO(GDALRasterBandH, GDALRWFlag, int, int, int,
34  int, void *, int, int, GDALDataType, int,
35  int);
36 #endif
37 
38 struct tileinfo /* Information for tiles */
39 {
40  char *name; /* Name of open file */
41  char *mapset; /* Mapset of open file */
42  struct Cell_head cellhd; /* Cell header */
43  struct ilist *clist; /* columns inside current region */
44 };
45 
46 struct R_vrt {
47  int tilecount;
48  struct tileinfo *tileinfo;
49  struct ilist *tlist;
50 };
51 
52 struct fileinfo /* Information for opened cell files */
53 {
54  int open_mode; /* see defines below */
55  struct Cell_head cellhd; /* Cell header */
56  struct Reclass reclass; /* Table reclass */
57  struct Cell_stats statf; /* Cell stats */
58  struct Range range; /* Range structure */
59  struct FPRange fp_range; /* float Range structure */
61  int reclass_flag; /* Automatic reclass flag */
62  off_t *row_ptr; /* File row addresses */
63  COLUMN_MAPPING *col_map; /* Data to window col mapping */
64  double C1, C2; /* Data to window row constants */
65  int cur_row; /* Current data row in memory */
66  int null_cur_row; /* Current null row in memory */
67  int cur_nbytes; /* nbytes per cell for current row */
68  unsigned char *data; /* Decompressed data buffer */
69  int null_fd; /* Null bitmap fd */
70  unsigned char *null_bits; /* Null bitmap buffer */
71  int nbytes; /* bytes per cell */
72  RASTER_MAP_TYPE map_type; /* type: int, float or double map */
73  char *temp_name; /* Temporary name for NEW files */
74  char *null_temp_name; /* Temporary name for NEW NULL files */
75  int null_file_exists; /* for existing raster maps */
76  char *name; /* Name of open file */
77  char *mapset; /* Mapset of open file */
78  int io_error; /* io error warning given */
79  struct Quant quant;
80  struct GDAL_link *gdal;
81  int data_fd; /* Raster data fd */
82  off_t *null_row_ptr; /* Null file row addresses */
83  struct R_vrt *vrt;
84 };
85 
86 struct R__ /* Structure of library globals */
87 {
88  RASTER_MAP_TYPE fp_type; /* type for writing floating maps */
89  int mask_fd; /* File descriptor for automatic mask */
90  int auto_mask; /* Flag denoting automatic masking */
92  int nbytes;
95  int window_set; /* Flag: window set? */
96  int split_window; /* Separate windows for input and output */
97  struct Cell_head rd_window; /* Window used for input */
98  struct Cell_head wr_window; /* Window used for output */
99 
102 };
103 
104 extern struct R__ R__; /* allocated in init */
105 
106 #define OPEN_OLD 1
107 #define OPEN_NEW_COMPRESSED 2
108 #define OPEN_NEW_UNCOMPRESSED 3
int COLUMN_MAPPING
Definition: R.h:17
CPLErr Rast_gdal_raster_IO(GDALRasterBandH, GDALRWFlag, int, int, int, int, void *, int, int, GDALDataType, int, int)
double DCELL
Definition: gis.h:629
int RASTER_MAP_TYPE
Definition: raster.h:25
2D/3D raster map header (used also for region)
Definition: gis.h:440
Definition: raster.h:80
Definition: R.h:87
int compress_nulls
Definition: R.h:94
struct fileinfo * fileinfo
Definition: R.h:101
int auto_mask
Definition: R.h:90
int compression_type
Definition: R.h:93
int window_set
Definition: R.h:95
int want_histogram
Definition: R.h:91
int fileinfo_count
Definition: R.h:100
RASTER_MAP_TYPE fp_type
Definition: R.h:88
int nbytes
Definition: R.h:92
int split_window
Definition: R.h:96
int mask_fd
Definition: R.h:89
struct Cell_head wr_window
Definition: R.h:98
struct Cell_head rd_window
Definition: R.h:97
Definition: R.h:46
struct tileinfo * tileinfo
Definition: R.h:48
struct ilist * tlist
Definition: R.h:49
int tilecount
Definition: R.h:47
Definition: raster.h:211
Definition: raster.h:31
Definition: R.h:53
off_t * row_ptr
Definition: R.h:62
int data_fd
Definition: R.h:81
char * mapset
Definition: R.h:77
struct Quant quant
Definition: R.h:79
RASTER_MAP_TYPE map_type
Definition: R.h:72
int cur_nbytes
Definition: R.h:67
int want_histogram
Definition: R.h:60
unsigned char * null_bits
Definition: R.h:70
struct R_vrt * vrt
Definition: R.h:83
struct FPRange fp_range
Definition: R.h:59
int null_fd
Definition: R.h:69
struct Cell_head cellhd
Definition: R.h:55
COLUMN_MAPPING * col_map
Definition: R.h:63
off_t * null_row_ptr
Definition: R.h:82
struct Reclass reclass
Definition: R.h:56
int cur_row
Definition: R.h:65
int reclass_flag
Definition: R.h:61
struct GDAL_link * gdal
Definition: R.h:80
int io_error
Definition: R.h:78
int open_mode
Definition: R.h:54
int null_file_exists
Definition: R.h:75
unsigned char * data
Definition: R.h:68
char * name
Definition: R.h:76
char * temp_name
Definition: R.h:73
struct Cell_stats statf
Definition: R.h:57
double C2
Definition: R.h:64
double C1
Definition: R.h:64
int null_cur_row
Definition: R.h:66
char * null_temp_name
Definition: R.h:74
struct Range range
Definition: R.h:58
int nbytes
Definition: R.h:71
List of integers.
Definition: gis.h:709
Definition: R.h:39
struct Cell_head cellhd
Definition: R.h:42
char * name
Definition: R.h:40
struct ilist * clist
Definition: R.h:43
char * mapset
Definition: R.h:41