GRASS GIS 8 Programmer's Manual  8.4.0dev(2023)-bfef3d3961
defs/gis.h
Go to the documentation of this file.
1 /*
2  *****************************************************************************
3  *
4  * MODULE: Grass Include Files
5  * AUTHOR(S): Original author unknown - probably CERL
6  * Justin Hickey - Thailand - jhickey@hpcc.nectec.or.th
7  * PURPOSE: This file contains the prototypes for all the functions in the
8  * gis library (src/libes/gis).
9  * COPYRIGHT: (C) 2000 by the GRASS Development Team
10  *
11  * This program is free software under the GNU General Public
12  * License (>=v2). Read the file COPYING that comes with GRASS
13  * for details.
14  *
15  *****************************************************************************/
16 
17 #ifndef GRASS_GISDEFS_H
18 #define GRASS_GISDEFS_H
19 
20 /*============================= Include Files ==============================*/
21 
22 /* none */
23 
24 /*=========================== Constants/Defines ============================*/
25 
26 /* none (look in gis.h) */
27 
28 /*=========================== Typedefs/Structures ==========================*/
29 
30 /* none (look in gis.h) */
31 
32 /*============================== Prototypes ================================*/
33 
34 #include <grass/config.h>
35 
36 #ifdef __GNUC__
37 #ifdef __MINGW32__
38 #include <malloc.h>
39 #else
40 #if (defined(__unix__) || defined(unix)) && !defined(USG)
41 #include <sys/param.h>
42 #endif
43 #if (defined(BSD))
44 /* no malloc.h, no alloca.h ?
45  * TODO: better
46  * check if alloca.h exists,
47  * if not, check if malloc.h exists,
48  * if not use stdlib.h */
49 #include <stdlib.h>
50 #else
51 #include <alloca.h>
52 #endif
53 #endif
54 #define G_alloca(n) alloca(n)
55 #define G_freea(p)
56 #else
57 #define G_alloca(n) G_malloc(n)
58 #define G_freea(p) G_free(p)
59 #endif
60 
61 #include <stdarg.h>
62 #include <stdio.h>
63 
64 #ifndef CTYPESGEN
65 #include <setjmp.h>
66 #endif
67 
68 #include <sys/types.h>
69 #include <sys/stat.h>
70 
71 #ifndef RELDIR
72 #define RELDIR "?"
73 #endif
74 
75 /* GDAL < 2.3 does not define HAVE_LONG_LONG when compiled with
76  * Visual Studio as for OSGeo4W, even though long long is available,
77  * and GIntBig falls back to long which is on Windows always 4 bytes.
78  * This patch ensures that GIntBig is defined as long long (8 bytes)
79  * if GDAL is compiled with Visual Studio and GRASS is compiled with
80  * MinGW. This patch must be applied before other GDAL/OGR headers are
81  * included, as done by gprojects.h and vector.h */
82 #if defined(__MINGW32__) && HAVE_GDAL
83 #include <gdal_version.h>
84 #if GDAL_VERSION_NUM < 2030000
85 #include <cpl_config.h>
86 /* HAVE_LONG_LONG_INT comes from GRASS
87  * HAVE_LONG_LONG comes from GDAL */
88 #if HAVE_LONG_LONG_INT && !defined(HAVE_LONG_LONG)
89 #define HAVE_LONG_LONG 1
90 #endif
91 #endif
92 #endif
93 
94 /* adj_cellhd.c */
95 void G_adjust_Cell_head(struct Cell_head *, int, int);
96 void G_adjust_Cell_head3(struct Cell_head *, int, int, int);
97 int G_adjust_window_ll(struct Cell_head *cellhd);
98 
99 /* alloc.c */
100 #define G_incr_void_ptr(ptr, size) \
101  ((void *)((const unsigned char *)(ptr) + (size)))
102 
103 void *G__malloc(const char *, int, size_t);
104 void *G__calloc(const char *, int, size_t, size_t);
105 void *G__realloc(const char *, int, void *, size_t);
106 void G_free(void *);
107 
108 #ifndef G_incr_void_ptr
109 void *G_incr_void_ptr(const void *, size_t);
110 #endif
111 
112 #ifndef CTYPESGEN
113 #define G_malloc(n) G__malloc(RELDIR "/" __FILE__, __LINE__, (n))
114 #define G_calloc(m, n) G__calloc(RELDIR "/" __FILE__, __LINE__, (m), (n))
115 #define G_realloc(p, n) G__realloc(RELDIR "/" __FILE__, __LINE__, (p), (n))
116 #else
117 #define G_malloc(n) G__malloc("<ctypesgen>", 0, (n))
118 #define G_calloc(m, n) G__calloc("<ctypesgen>", 0, (m), (n))
119 #define G_realloc(p, n) G__realloc("<ctypesgen>", 0, (p), (n))
120 #endif
121 
122 /* area.c */
124 double G_area_of_cell_at_row(int);
126 double G_area_of_polygon(const double *, const double *, int);
127 
128 /* area_ellipse.c */
129 void G_begin_zone_area_on_ellipsoid(double, double, double);
130 double G_darea0_on_ellipsoid(double);
131 double G_area_for_zone_on_ellipsoid(double, double);
132 
133 /* area_poly1.c */
134 void G_begin_ellipsoid_polygon_area(double, double);
135 double G_ellipsoid_polygon_area(const double *, const double *, int);
136 
137 /* area_poly2.c */
138 double G_planimetric_polygon_area(const double *, const double *, int);
139 
140 /* area_sphere.c */
141 void G_begin_zone_area_on_sphere(double, double);
142 double G_darea0_on_sphere(double);
143 double G_area_for_zone_on_sphere(double, double);
144 
145 /* ascii_chk.c */
146 void G_ascii_check(char *);
147 
148 /* asprintf.c */
149 /* Do it better if you know how */
150 /* asprintf is not found on MINGW but exists */
151 
152 /*
153  * Because configure script in GDAL test is G_asprintf exists in gis lib
154  * the G_asprintf macro is disabled until a stable version of GDAL
155  * with a different function becomes widely used
156  */
157 int G_vasprintf(char **, const char *, va_list);
158 int G_asprintf(char **, const char *, ...)
159  __attribute__((format(printf, 2, 3)));
160 
161 int G_rasprintf(char **, size_t *, const char *, ...)
162  __attribute__((format(printf, 3, 4)));
163 
164 /* aprintf.c */
165 int G_aprintf(const char *, ...);
166 int G_faprintf(FILE *, const char *, ...);
167 int G_saprintf(char *, const char *, ...);
168 int G_snaprintf(char *, size_t, const char *, ...);
169 int G_vaprintf(const char *, va_list);
170 int G_vfaprintf(FILE *, const char *, va_list);
171 int G_vsaprintf(char *, const char *, va_list);
172 int G_vsnaprintf(char *, size_t, const char *, va_list);
173 
174 /* basename.c */
175 char *G_basename(char *, const char *);
176 size_t G_get_num_decimals(const char *);
177 char *G_double_to_basename_format(double, size_t, size_t);
178 char *G_get_basename_separator(void);
179 char *G_join_basename_strings(const char **, size_t);
180 char *G_generate_basename(const char *, double, size_t, size_t);
181 
182 /* bres_line.c */
183 void G_bresenham_line(int, int, int, int, int (*)(int, int));
184 
185 /* clicker.c */
186 void G_clicker(void);
187 
188 /* color_rules.c */
189 char *G_color_rules_options(void);
190 char *G_color_rules_descriptions(void);
192 void G_list_color_rules(FILE *);
193 void G_list_color_rules_description_type(FILE *, char *);
194 int G_find_color_rule(const char *);
195 
196 /* color_str.c */
197 int G_num_standard_colors(void);
198 
199 /* commas.c */
200 int G_insert_commas(char *);
201 void G_remove_commas(char *);
202 
203 /* compress.c */
204 int G_compressor_number(char *);
205 char *G_compressor_name(int);
206 int G_default_compressor(void);
207 int G_check_compressor(int);
208 int G_write_compressed(int, unsigned char *, int, int);
209 int G_write_unompressed(int, unsigned char *, int);
210 int G_read_compressed(int, int, unsigned char *, int, int);
211 int G_compress_bound(int, int);
212 int G_compress(unsigned char *, int, unsigned char *, int, int);
213 int G_expand(unsigned char *, int, unsigned char *, int, int);
214 
215 /* compress.c : no compression */
216 int G_no_compress(unsigned char *src, int src_sz, unsigned char *dst,
217  int dst_sz);
218 int G_no_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz);
219 
220 /* cmprrle.c : Run Length Encoding (RLE) */
221 int G_rle_compress(unsigned char *src, int src_sz, unsigned char *dst,
222  int dst_sz);
223 int G_rle_expand(unsigned char *src, int src_sz, unsigned char *dst,
224  int dst_sz);
225 
226 /* cmprzlib.c : ZLIB's DEFLATE */
227 int G_zlib_compress(unsigned char *src, int src_sz, unsigned char *dst,
228  int dst_sz);
229 int G_zlib_expand(unsigned char *src, int src_sz, unsigned char *dst,
230  int dst_sz);
231 
232 /* cmprlz4.c : LZ4, extremely fast */
233 int G_lz4_compress(unsigned char *src, int src_sz, unsigned char *dst,
234  int dst_sz);
235 int G_lz4_expand(unsigned char *src, int src_sz, unsigned char *dst,
236  int dst_sz);
237 
238 /* cmprbzip.c : BZIP2, high compression, faster than ZLIB's DEFLATE with level 9
239  */
240 int G_bz2_compress(unsigned char *src, int src_sz, unsigned char *dst,
241  int dst_sz);
242 int G_bz2_expand(unsigned char *src, int src_sz, unsigned char *dst,
243  int dst_sz);
244 
245 /* cmprzstd.c : ZSTD, compression similar to ZLIB's DEFLATE but faster */
246 int G_zstd_compress(unsigned char *src, int src_sz, unsigned char *dst,
247  int dst_sz);
248 int G_zstd_expand(unsigned char *src, int src_sz, unsigned char *dst,
249  int dst_sz);
250 
251 /* add more compression methods here */
252 
253 /* copy_dir.c */
254 int G_recursive_copy(const char *, const char *);
255 
256 /* copy_file.c */
257 int G_copy_file(const char *, const char *);
258 
259 /* counter.c */
260 int G_is_initialized(int *);
261 void G_initialize_done(int *);
262 void G_init_counter(struct Counter *, int);
263 int G_counter_next(struct Counter *);
264 
265 /* date.c */
266 const char *G_date(void);
267 
268 /* datum.c */
269 int G_get_datum_by_name(const char *);
270 const char *G_datum_name(int);
271 const char *G_datum_description(int);
272 const char *G_datum_ellipsoid(int);
273 int G_get_datumparams_from_projinfo(const struct Key_Value *, char *, char *);
274 void G_read_datum_table(void);
275 
276 /* debug.c */
277 void G_init_debug(void);
278 int G_debug(int, const char *, ...) __attribute__((format(printf, 2, 3)));
279 
280 /* distance.c */
282 double G_distance(double, double, double, double);
283 double G_distance_between_line_segments(double, double, double, double, double,
284  double, double, double);
285 double G_distance_point_to_line_segment(double, double, double, double, double,
286  double);
287 
288 /* done_msg.c */
289 void G_done_msg(const char *, ...) __attribute__((format(printf, 1, 2)));
290 
291 /* endian.c */
292 int G_is_little_endian(void);
293 
294 /* env.c */
295 void G_init_env(void);
296 const char *G_getenv(const char *);
297 const char *G_getenv2(const char *, int);
298 const char *G_getenv_nofatal(const char *);
299 const char *G_getenv_nofatal2(const char *, int);
300 void G_setenv(const char *, const char *);
301 void G_setenv2(const char *, const char *, int);
302 void G_setenv_nogisrc(const char *, const char *);
303 void G_setenv_nogisrc2(const char *, const char *, int);
304 void G_unsetenv(const char *);
305 void G_unsetenv2(const char *, int);
306 const char *G_get_env_name(int);
307 void G_set_gisrc_mode(int);
308 int G_get_gisrc_mode(void);
309 void G_create_alt_env(void);
310 void G_switch_env(void);
311 void G__read_mapset_env(void);
312 void G__read_gisrc_env(void);
313 void G__read_gisrc_path(void);
314 
315 /* error.c */
316 #ifndef CTYPESGEN
317 jmp_buf *G_fatal_longjmp(int);
318 #endif
319 
320 int G_info_format(void);
321 void G_message(const char *, ...) __attribute__((format(printf, 1, 2)));
322 void G_verbose_message(const char *, ...) __attribute__((format(printf, 1, 2)));
323 void G_important_message(const char *, ...)
324  __attribute__((format(printf, 1, 2)));
325 void G_fatal_error(const char *, ...) __attribute__((format(printf, 1, 2)))
326 __attribute__((noreturn));
327 void G_warning(const char *, ...) __attribute__((format(printf, 1, 2)));
328 int G_suppress_warnings(int);
329 int G_sleep_on_error(int);
330 void G_set_error_routine(int (*)(const char *, int));
331 void G_unset_error_routine(void);
332 void G_init_logging(void);
333 
334 /* file_name.c */
335 char *G_file_name(char *, const char *, const char *, const char *);
336 char *G_file_name_misc(char *, const char *, const char *, const char *,
337  const char *);
338 char *G_file_name_tmp(char *, const char *, const char *, const char *);
339 char *G_file_name_basedir(char *, const char *, const char *, const char *,
340  const char *);
341 
342 /* find_file.c */
343 const char *G_find_file(const char *, char *, const char *);
344 const char *G_find_file2(const char *, const char *, const char *);
345 const char *G_find_file_misc(const char *, const char *, char *, const char *);
346 const char *G_find_file2_misc(const char *, const char *, const char *,
347  const char *);
348 
349 /* find_etc.c */
350 char *G_find_etc(const char *);
351 
352 /* find_rast.c */
353 const char *G_find_raster(char *, const char *);
354 const char *G_find_raster2(const char *, const char *);
355 
356 /* find_rast3d.c */
357 const char *G_find_raster3d(const char *, const char *);
358 
359 /* find_vect.c */
360 const char *G_find_vector(char *, const char *);
361 const char *G_find_vector2(const char *, const char *);
362 
363 /* geodesic.c */
364 int G_begin_geodesic_equation(double, double, double, double);
365 double G_geodesic_lat_from_lon(double);
366 
367 /* geodist.c */
368 void G_begin_geodesic_distance(double, double);
369 void G_set_geodesic_distance_lat1(double);
370 void G_set_geodesic_distance_lat2(double);
371 double G_geodesic_distance_lon_to_lon(double, double);
372 double G_geodesic_distance(double, double, double, double);
373 
374 /* get_ellipse.c */
375 int G_get_ellipsoid_parameters(double *, double *);
376 int G_get_spheroid_by_name(const char *, double *, double *, double *);
377 int G_get_ellipsoid_by_name(const char *, double *, double *);
378 const char *G_ellipsoid_name(int);
379 const char *G_ellipsoid_description(int);
380 int G_read_ellipsoid_table(int);
381 
382 /* get_projinfo.c */
383 struct Key_Value *G_get_projunits(void);
384 struct Key_Value *G_get_projinfo(void);
385 struct Key_Value *G_get_projepsg(void);
386 char *G_get_projwkt(void);
387 char *G_get_projsrid(void);
388 
389 /* get_window.c */
390 void G_get_window(struct Cell_head *);
391 void G_get_default_window(struct Cell_head *);
392 void G_get_element_window(struct Cell_head *, const char *, const char *,
393  const char *);
394 
395 /* getl.c */
396 int G_getl(char *, int, FILE *);
397 int G_getl2(char *, int, FILE *);
398 
399 /* gisbase.c */
400 const char *G_gisbase(void);
401 
402 /* gisdbase.c */
403 const char *G_gisdbase(void);
404 
405 /* gisinit.c */
406 void G__gisinit(const char *, const char *);
407 void G__no_gisinit(const char *);
408 void G_init_all(void);
409 
410 /* handler.c */
411 void G_add_error_handler(void (*)(void *), void *);
412 void G_remove_error_handler(void (*)(void *), void *);
413 
414 /* home.c */
415 const char *G_home(void);
416 const char *G_config_path(void);
417 
418 /* ilist.c */
419 void G_init_ilist(struct ilist *);
420 void G_free_ilist(struct ilist *);
421 struct ilist *G_new_ilist(void);
422 void G_ilist_add(struct ilist *, int);
423 
424 /* intersect.c */
425 int G_intersect_line_segments(double, double, double, double, double, double,
426  double, double, double *, double *, double *,
427  double *);
428 
429 /* is.c */
430 int G_is_gisbase(const char *);
431 int G_is_location(const char *);
432 int G_is_mapset(const char *);
433 
434 /* key_value1.c */
435 struct Key_Value *G_create_key_value(void);
436 void G_set_key_value(const char *, const char *, struct Key_Value *);
437 const char *G_find_key_value(const char *, const struct Key_Value *);
438 void G_free_key_value(struct Key_Value *);
439 
440 /* key_value2.c */
441 int G_fwrite_key_value(FILE *, const struct Key_Value *);
442 struct Key_Value *G_fread_key_value(FILE *);
443 
444 /* key_value3.c */
445 void G_write_key_value_file(const char *, const struct Key_Value *);
446 struct Key_Value *G_read_key_value_file(const char *);
447 
448 /* key_value4.c */
449 void G_update_key_value_file(const char *, const char *, const char *);
450 int G_lookup_key_value_from_file(const char *, const char *, char[], int);
451 
452 /* legal_name.c */
453 int G_legal_filename(const char *);
454 int G_check_input_output_name(const char *, const char *, int);
455 
456 /* line_dist.c */
458 double G_distance2_point_to_line(double, double, double, double, double,
459  double);
460 
461 /* list.c */
462 void G_list_element(const char *, const char *, const char *,
463  int (*)(const char *, const char *, char *));
464 char **G_list(int, const char *, const char *, const char *);
465 void G_free_list(char **);
466 
467 /* ll_format.c */
468 void G_lat_format(double, char *);
469 const char *G_lat_format_string(void);
470 void G_lon_format(double, char *);
471 const char *G_lon_format_string(void);
472 void G_llres_format(double, char *);
473 const char *G_llres_format_string(void);
474 void G_lat_parts(double, int *, int *, double *, char *);
475 void G_lon_parts(double, int *, int *, double *, char *);
476 
477 /* ll_scan.c */
478 int G_lat_scan(const char *, double *);
479 int G_lon_scan(const char *, double *);
480 int G_llres_scan(const char *, double *);
481 
482 /* location.c */
483 const char *G_location(void);
484 char *G_location_path(void);
485 
486 /* lrand48.c */
487 void G_srand48(long);
488 long G_srand48_auto(void);
489 long G_lrand48(void);
490 long G_mrand48(void);
491 double G_drand48(void);
492 
493 /* ls.c */
494 void G_set_ls_filter(int (*)(const char *, void *), void *);
495 void G_set_ls_exclude_filter(int (*)(const char *, void *), void *);
496 char **G_ls2(const char *, int *);
497 void G_ls(const char *, FILE *);
498 void G_ls_format(char **, int, int, FILE *);
499 
500 /* ls_filter.c */
501 #ifdef HAVE_REGEX_H
502 void *G_ls_regex_filter(const char *, int, int, int);
503 void *G_ls_glob_filter(const char *, int, int);
504 void G_free_ls_filter(void *);
505 #endif
506 
507 /* make_loc.c */
508 int G_make_location(const char *, struct Cell_head *, const struct Key_Value *,
509  const struct Key_Value *);
510 int G_make_location_epsg(const char *, struct Cell_head *,
511  const struct Key_Value *, const struct Key_Value *,
512  const struct Key_Value *);
513 int G_make_location_crs(const char *, struct Cell_head *,
514  const struct Key_Value *, const struct Key_Value *,
515  const char *, const char *);
516 int G_write_projsrid(const char *, const char *);
517 int G_write_projwkt(const char *, const char *);
518 int G_compare_projections(const struct Key_Value *, const struct Key_Value *,
519  const struct Key_Value *, const struct Key_Value *);
520 
521 /* make_mapset.c */
522 int G_make_mapset(const char *, const char *, const char *);
523 
524 /* mapcase.c */
525 char *G_tolcase(char *);
526 char *G_toucase(char *);
527 
528 /* mapset.c */
529 const char *G_mapset(void);
530 char *G_mapset_path(void);
531 
532 /* mapset_msc.c */
533 int G_make_mapset_element(const char *);
534 int G_make_mapset_element_tmp(const char *);
535 int G_make_mapset_object_group(const char *);
536 int G_make_mapset_dir_object(const char *, const char *);
537 int G_make_mapset_object_group_tmp(const char *);
538 int G_make_mapset_object_group_basedir(const char *, const char *);
539 int G__make_mapset_element_misc(const char *, const char *);
540 int G_mapset_permissions(const char *);
541 int G_mapset_permissions2(const char *, const char *, const char *);
542 
543 /* mapset_nme.c */
544 const char *G_get_mapset_name(int);
545 void G_create_alt_search_path(void);
546 void G_switch_search_path(void);
547 void G_reset_mapsets(void);
548 char **G_get_available_mapsets(void);
549 void G_add_mapset_to_search_path(const char *);
550 int G_is_mapset_in_search_path(const char *);
551 
552 /* myname.c */
553 char *G_myname(void);
554 
555 /* named_colr.c */
556 int G_color_values(const char *, float *, float *, float *);
557 const char *G_color_name(int);
558 
559 /* nl_to_spaces.c */
560 void G_newlines_to_spaces(char *);
561 
562 /* nme_in_mps.c */
563 int G_name_is_fully_qualified(const char *, char *, char *);
564 char *G_fully_qualified_name(const char *, const char *);
565 int G_unqualified_name(const char *, const char *, char *, char *);
566 
567 /* open.c */
568 int G_open_new(const char *, const char *);
569 int G_open_old(const char *, const char *, const char *);
570 int G_open_update(const char *, const char *);
571 FILE *G_fopen_new(const char *, const char *);
572 FILE *G_fopen_old(const char *, const char *, const char *);
573 FILE *G_fopen_append(const char *, const char *);
574 FILE *G_fopen_modify(const char *, const char *);
575 
576 /* open_misc.c */
577 int G_open_new_misc(const char *, const char *, const char *);
578 int G_open_old_misc(const char *, const char *, const char *, const char *);
579 int G_open_update_misc(const char *, const char *, const char *);
580 FILE *G_fopen_new_misc(const char *, const char *, const char *);
581 FILE *G_fopen_old_misc(const char *, const char *, const char *, const char *);
582 FILE *G_fopen_append_misc(const char *, const char *, const char *);
583 FILE *G_fopen_modify_misc(const char *, const char *, const char *);
584 
585 /* overwrite.c */
586 int G_check_overwrite(int argc, char **argv);
587 
588 /* pager.c */
589 FILE *G_open_pager(struct Popen *);
590 void G_close_pager(struct Popen *);
591 FILE *G_open_mail(struct Popen *);
592 void G_close_mail(struct Popen *);
593 
594 /* parser.c */
595 void G_disable_interactive(void);
596 struct GModule *G_define_module(void);
597 struct Flag *G_define_flag(void);
598 struct Option *G_define_option(void);
599 struct Option *G_define_standard_option(int);
600 struct Flag *G_define_standard_flag(int);
601 int G_parser(int, char **);
602 void G_usage(void);
603 char *G_recreate_command(void);
604 void G_add_keyword(const char *);
605 void G_set_keywords(const char *);
606 int G_get_overwrite(void);
607 char *G_option_to_separator(const struct Option *);
608 FILE *G_open_option_file(const struct Option *);
609 void G_close_option_file(FILE *);
610 
611 /* parser_dependencies.c */
612 void G_option_rule(int, int, void **);
613 void G_option_exclusive(void *, ...);
614 void G_option_required(void *, ...);
615 void G_option_requires(void *, ...);
616 void G_option_requires_all(void *, ...);
617 void G_option_excludes(void *, ...);
618 void G_option_collective(void *, ...);
619 
620 /* paths.c */
621 int G_mkdir(const char *);
622 int G_is_dirsep(char);
623 int G_is_absolute_path(const char *);
624 char *G_convert_dirseps_to_host(char *);
625 char *G_convert_dirseps_from_host(char *);
626 int G_lstat(const char *, struct stat *);
627 int G_stat(const char *, struct stat *);
628 int G_owner(const char *);
629 
630 /* percent.c */
631 void G_percent(long, long, int);
632 void G_percent_reset(void);
633 void G_progress(long, int);
634 void G_set_percent_routine(int (*)(int));
635 void G_unset_percent_routine(void);
636 
637 /* popen.c */
638 void G_popen_clear(struct Popen *);
639 FILE *G_popen_write(struct Popen *, const char *, const char **);
640 FILE *G_popen_read(struct Popen *, const char *, const char **);
641 void G_popen_close(struct Popen *);
642 
643 /* plot.c */
644 void G_setup_plot(double, double, double, double, int (*)(int, int),
645  int (*)(int, int));
646 void G_setup_fill(int);
647 void G_plot_where_xy(double, double, int *, int *);
648 void G_plot_where_en(int, int, double *, double *);
649 void G_plot_point(double, double);
650 void G_plot_line(double, double, double, double);
651 void G_plot_line2(double, double, double, double);
652 int G_plot_polygon(const double *, const double *, int);
653 int G_plot_area(double *const *, double *const *, int *, int);
654 void G_plot_fx(double (*)(double), double, double);
655 
656 /* pole_in_poly.c */
657 int G_pole_in_polygon(const double *, const double *, int);
658 
659 /* progrm_nme.c */
660 const char *G_program_name(void);
661 const char *G_original_program_name(void);
662 void G_set_program_name(const char *);
663 
664 /* proj1.c */
665 int G_projection(void);
666 
667 /* proj2.c */
668 int G_projection_units(int);
669 const char *G_projection_name(int);
670 
671 /* proj3.c */
672 const char *G_database_unit_name(int);
673 int G_database_unit(void);
674 const char *G_database_projection_name(void);
675 const char *G_database_datum_name(void);
676 const char *G_database_ellipse_name(void);
678 const char *G_database_epsg_code(void);
679 
680 /* put_window.c */
681 int G_put_window(const struct Cell_head *);
682 int G_put_element_window(const struct Cell_head *, const char *, const char *);
683 
684 /* putenv.c */
685 void G_putenv(const char *, const char *);
686 
687 /* radii.c */
688 double G_meridional_radius_of_curvature(double, double, double);
689 double G_transverse_radius_of_curvature(double, double, double);
690 double G_radius_of_conformal_tangent_sphere(double, double, double);
691 
692 /* rd_cellhd.c */
693 void G__read_Cell_head(FILE *, struct Cell_head *);
694 void G__read_Cell_head_array(char **, struct Cell_head *);
695 
696 /* remove.c */
697 int G_remove(const char *, const char *);
698 int G_remove_misc(const char *, const char *, const char *);
699 int G_recursive_remove(const char *);
700 
701 /* rename.c */
702 int G_rename_file(const char *, const char *);
703 int G_rename(const char *, const char *, const char *);
704 
705 /* rhumbline.c */
706 int G_begin_rhumbline_equation(double, double, double, double);
707 double G_rhumbline_lat_from_lon(double);
708 
709 /* rotate.c */
710 void G_rotate_around_point(double, double, double *, double *, double);
711 void G_rotate_around_point_int(int, int, int *, int *, double);
712 
713 /* seek.c */
714 off_t G_ftell(FILE *);
715 void G_fseek(FILE *, off_t, int);
716 
717 /* set_window.c */
718 void G_get_set_window(struct Cell_head *);
719 void G_set_window(struct Cell_head *);
720 void G_unset_window(void);
721 
722 /* short_way.c */
723 void G_shortest_way(double *, double *);
724 
725 /* sleep.c */
726 void G_sleep(unsigned int);
727 
728 /* snprintf.c */
729 int G_snprintf(char *, size_t, const char *, ...)
730  __attribute__((format(printf, 3, 4)));
731 
732 /* strings.c */
733 int G_strcasecmp(const char *, const char *);
734 int G_strncasecmp(const char *, const char *, int);
735 char *G_store(const char *);
736 char *G_store_upper(const char *);
737 char *G_store_lower(const char *);
738 char *G_strchg(char *, char, char);
739 char *G_str_replace(const char *, const char *, const char *);
740 char *G_str_concat(const char **, int, const char *, int);
741 void G_strip(char *);
742 char *G_chop(char *);
743 void G_str_to_upper(char *);
744 void G_str_to_lower(char *);
745 int G_str_to_sql(char *);
746 void G_squeeze(char *);
747 char *G_strcasestr(const char *, const char *);
748 
749 /* tempfile.c */
750 void G_init_tempfile(void);
751 char *G_tempfile(void);
752 char *G_tempfile_basedir(const char *);
753 char *G_tempfile_pid(int);
754 char *G_tempfile_pid_basedir(int, const char *);
755 void G_temp_element(char *);
756 void G__temp_element(char *, int);
757 void G__temp_element_basedir(char *, const char *);
758 
759 /* mkstemp.c */
760 char *G_mktemp(char *);
761 int G_mkstemp(char *, int, int);
762 FILE *G_mkstemp_fp(char *, int, int);
763 
764 /* timestamp.c */
765 void G_init_timestamp(struct TimeStamp *);
766 void G_set_timestamp(struct TimeStamp *, const struct DateTime *);
767 void G_set_timestamp_range(struct TimeStamp *, const struct DateTime *,
768  const struct DateTime *);
769 int G_write_timestamp(FILE *, const struct TimeStamp *);
770 void G_get_timestamps(const struct TimeStamp *, struct DateTime *,
771  struct DateTime *, int *);
772 int G_format_timestamp(const struct TimeStamp *, char *);
773 int G_scan_timestamp(struct TimeStamp *, const char *);
774 int G_has_raster_timestamp(const char *, const char *);
775 int G_read_raster_timestamp(const char *, const char *, struct TimeStamp *);
776 int G_write_raster_timestamp(const char *, const struct TimeStamp *);
777 int G_remove_raster_timestamp(const char *);
778 int G_has_vector_timestamp(const char *, const char *, const char *);
779 int G_read_vector_timestamp(const char *, const char *, const char *,
780  struct TimeStamp *);
781 int G_write_vector_timestamp(const char *, const char *,
782  const struct TimeStamp *);
783 int G_remove_vector_timestamp(const char *, const char *);
784 int G_has_raster3d_timestamp(const char *, const char *);
785 int G_read_raster3d_timestamp(const char *, const char *, struct TimeStamp *);
786 int G_remove_raster3d_timestamp(const char *);
787 int G_write_raster3d_timestamp(const char *, const struct TimeStamp *);
788 
789 /* token.c */
790 char **G_tokenize(const char *, const char *);
791 char **G_tokenize2(const char *, const char *, const char *);
792 int G_number_of_tokens(char **);
793 void G_free_tokens(char **);
794 
795 /* trim_dec.c */
796 void G_trim_decimal(char *);
797 
798 /* units.c */
799 double G_meters_to_units_factor(int);
800 double G_meters_to_units_factor_sq(int);
801 const char *G_get_units_name(int, int, int);
802 int G_units(const char *);
803 int G_is_units_type_spatial(int);
804 int G_is_units_type_temporal(int);
805 
806 /* user_config.c */
807 #ifndef __MINGW32__
808 char *G_rc_path(const char *, const char *);
809 #endif
810 
811 /* verbose.c */
812 int G_verbose(void);
813 int G_verbose_min(void);
814 int G_verbose_std(void);
815 int G_verbose_max(void);
816 int G_set_verbose(int);
817 
818 /* view.c */
819 void G_3dview_warning(int);
820 int G_get_3dview_defaults(struct G_3dview *, struct Cell_head *);
821 int G_put_3dview(const char *, const struct G_3dview *,
822  const struct Cell_head *);
823 int G_get_3dview(const char *, const char *, struct G_3dview *);
824 
825 /* whoami.c */
826 const char *G_whoami(void);
827 
828 /* wind_2_box.c */
829 void G_adjust_window_to_box(const struct Cell_head *, struct Cell_head *, int,
830  int);
831 
832 /* wind_format.c */
833 void G_format_northing(double, char *, int);
834 void G_format_easting(double, char *, int);
835 void G_format_resolution(double, char *, int);
836 
837 /* wind_in.c */
838 int G_point_in_region(double, double);
839 int G_point_in_window(double, double, const struct Cell_head *);
840 
841 /* wind_limits.c */
842 int G_limit_east(double *, int);
843 int G_limit_west(double *, int);
844 int G_limit_north(double *, int);
845 int G_limit_south(double *, int);
846 
847 /* wind_overlap.c */
848 int G_window_overlap(const struct Cell_head *, double, double, double, double);
849 double G_window_percentage_overlap(const struct Cell_head *, double, double,
850  double, double);
851 
852 /* wind_scan.c */
853 int G_scan_northing(const char *, double *, int);
854 int G_scan_easting(const char *, double *, int);
855 int G_scan_resolution(const char *, double *, int);
856 
857 /* window_map.c */
858 double G_adjust_east_longitude(double, double);
859 double G_adjust_easting(double, const struct Cell_head *);
860 void G__init_window(void);
861 
862 /* worker.c */
863 void G_begin_execute(void (*func)(void *), void *, void **, int);
864 void G_end_execute(void **);
865 void G_init_workers(void);
866 void G_finish_workers(void);
867 
868 /* wr_cellhd.c */
869 void G__write_Cell_head(FILE *, const struct Cell_head *, int);
870 void G__write_Cell_head3(FILE *, const struct Cell_head *, int);
871 
872 /* writ_zeros.c */
873 void G_write_zeros(int, size_t);
874 
875 /* xdr.c */
876 void G_xdr_get_int(int *, const void *);
877 void G_xdr_put_int(void *, const int *);
878 void G_xdr_get_float(float *, const void *);
879 void G_xdr_put_float(void *, const float *);
880 void G_xdr_get_double(double *, const void *);
881 void G_xdr_put_double(void *, const double *);
882 
883 /* zero.c */
884 void G_zero(void *, int);
885 
886 /* zone.c */
887 int G_zone(void);
888 
889 #endif /* GRASS_GISDEFS_H */
char * G_file_name_misc(char *, const char *, const char *, const char *, const char *)
Builds full path names to GIS misc data files.
Definition: file_name.c:101
int G_has_vector_timestamp(const char *, const char *, const char *)
Check if timestamp for vector map exists.
Definition: timestamp.c:420
int G_open_update(const char *, const char *)
Open a database file for update.
Definition: gis/open.c:191
void G_unsetenv(const char *)
Remove name from environment.
Definition: env.c:499
void G_percent(long, long, int)
Print percent complete messages.
Definition: percent.c:61
int G_zlib_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprzlib.c:165
void G_3dview_warning(int)
Turns 3D View warnings on and off.
Definition: view.c:45
void G_ascii_check(char *)
Removes non-ascii characters from buffer.
Definition: ascii_chk.c:31
double G_geodesic_distance_lon_to_lon(double, double)
Calculates geodesic distance.
Definition: geodist.c:121
int G_read_raster3d_timestamp(const char *, const char *, struct TimeStamp *)
Read timestamp from 3D raster map.
Definition: timestamp.c:592
int G_put_window(const struct Cell_head *)
Writes the region (window)
Definition: put_window.c:46
void G_set_percent_routine(int(*)(int))
Establishes percent_routine as the routine that will handle the printing of percentage progress messa...
Definition: percent.c:192
void G__read_Cell_head_array(char **, struct Cell_head *)
Read window from NULL terminated array of strings (for internal use only)
Definition: rd_cellhd.c:96
int G_name_is_fully_qualified(const char *, char *, char *)
Check if map name is fully qualified (map @ mapset)
Definition: nme_in_mps.c:36
void G_plot_fx(double(*)(double), double, double)
Plot f(east1) to f(east2)
Definition: plot.c:782
void G_free_list(char **)
Free list.
Definition: gis/list.c:248
char * G_double_to_basename_format(double, size_t, size_t)
Convert a double to a string substituting the dot with underscore 12.3456 => '12_3456'.
Definition: basename.c:76
void G_begin_geodesic_distance(double, double)
Begin geodesic distance.
Definition: geodist.c:50
struct GModule * G_define_module(void)
Initializes a new module.
Definition: parser.c:256
char * G_generate_basename(const char *, double, size_t, size_t)
Generate the format string.
Definition: basename.c:162
int G_make_location_epsg(const char *, struct Cell_head *, const struct Key_Value *, const struct Key_Value *, const struct Key_Value *)
Create a new location.
Definition: make_loc.c:126
void G_percent_reset(void)
Reset G_percent() to 0%; do not add newline.
Definition: percent.c:117
int G_mapset_permissions(const char *)
Check for user mapset permission.
Definition: mapset_msc.c:290
int G_num_standard_colors(void)
Get number of named colors (RGB triplets)
Definition: color_str.c:54
FILE * G_fopen_old(const char *, const char *, const char *)
Open a database file for reading.
Definition: gis/open.c:251
void G_begin_ellipsoid_polygon_area(double, double)
Begin area calculations.
Definition: area_poly1.c:66
void G_unset_percent_routine(void)
After this call subsequent percentage progress messages will be handled in the default method.
Definition: percent.c:203
double G_rhumbline_lat_from_lon(double)
Calculates rhumbline latitude.
Definition: rhumbline.c:97
char * G_basename(char *, const char *)
Truncates filename to the base part (before the last '.') if it matches the extension,...
Definition: basename.c:36
int int G_rasprintf(char **, size_t *, const char *,...) __attribute__((format(printf
const char * G_find_vector2(const char *, const char *)
Find a vector map (look but don't touch)
Definition: find_vect.c:62
char * G_tolcase(char *)
convert string to lower case
Definition: mapcase.c:18
int G_recursive_copy(const char *, const char *)
Copy recursively source directory to destination directory.
Definition: copy_dir.c:70
int G_getl2(char *, int, FILE *)
Gets a line of text from a file of any pedigree.
Definition: getl.c:65
void G_init_all(void)
Initialize environment.
Definition: gisinit.c:144
void G_init_workers(void)
Definition: worker.c:181
const char * G_database_epsg_code(void)
Get EPGS code for the current location.
Definition: proj3.c:236
int G_make_location_crs(const char *, struct Cell_head *, const struct Key_Value *, const struct Key_Value *, const char *, const char *)
Create a new location.
Definition: make_loc.c:185
FILE * G_mkstemp_fp(char *, int, int)
Returns a file descriptor.
Definition: mkstemp.c:163
void G_xdr_put_float(void *, const float *)
Definition: gis/xdr.c:84
struct ilist * G_new_ilist(void)
Return a new integer list.
Definition: ilist.c:43
char ** G_tokenize2(const char *, const char *, const char *)
Tokenize string.
Definition: gis/token.c:83
int G_sleep_on_error(int)
Turn on/off no_sleep flag.
Definition: gis/error.c:242
void G_zero(void *, int)
Zero out a buffer, buf, of length i.
Definition: gis/zero.c:23
int G_vfaprintf(FILE *, const char *, va_list)
vfprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition: aprintf.c:392
void G_free(void *)
Free allocated memory.
Definition: gis/alloc.c:150
int G_is_gisbase(const char *)
Test if specified directory is GISBASE.
Definition: is.c:49
void G_squeeze(char *)
Remove superfluous white space.
Definition: strings.c:445
struct Key_Value * G_get_projinfo(void)
Gets projection information for location.
Definition: get_projinfo.c:61
void G_close_option_file(FILE *)
Close an input/output file returned by G_open_option_file(). If the file pointer is stdin,...
Definition: parser.c:1958
double G_area_of_polygon(const double *, const double *, int)
Area in square meters of polygon.
Definition: gis/area.c:159
char * G_color_rules_options(void)
Get list of color rules for Option->options.
void G_plot_line2(double, double, double, double)
Plot line between latlon coordinates (slowline)
Definition: plot.c:224
FILE * G_fopen_old_misc(const char *, const char *, const char *, const char *)
open a database misc file for reading
Definition: open_misc.c:205
void G_shortest_way(double *, double *)
Shortest way between two eastings.
Definition: short_way.c:28
void G_reset_mapsets(void)
Reset number of mapsets.
Definition: mapset_nme.c:135
void G_set_timestamp(struct TimeStamp *, const struct DateTime *)
void G_switch_env(void)
Switch environments.
Definition: env.c:591
int G_bz2_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprbzip.c:85
long G_mrand48(void)
Generate an integer in the range [-2^31, 2^31)
Definition: lrand48.c:151
char * G_mapset_path(void)
Get current mapset UNIX-like path.
Definition: gis/mapset.c:73
void G__read_Cell_head(FILE *, struct Cell_head *)
Read cell header (for internal use only)
Definition: rd_cellhd.c:56
void G__write_Cell_head(FILE *, const struct Cell_head *, int)
Write cell header or window.
Definition: wr_cellhd.c:28
FILE * G_open_mail(struct Popen *)
Definition: pager.c:45
int G_unqualified_name(const char *, const char *, char *, char *)
Returns unqualified map name (without @ mapset)
Definition: nme_in_mps.c:134
const char * G_database_projection_name(void)
Query cartographic projection for the current location.
Definition: proj3.c:118
const char * G_find_file2(const char *, const char *, const char *)
Searches for a file from the mapset search list or in a specified mapset. (look but don't touch)
Definition: find_file.c:234
int G__make_mapset_element_misc(const char *, const char *)
Create misc element in the current mapset.
Definition: mapset_msc.c:259
const char * G_datum_ellipsoid(int)
Definition: gis/datum.c:76
void void void void G_fatal_error(const char *,...) __attribute__((format(printf
struct Key_Value * G_get_projunits(void)
Gets units information for location.
Definition: get_projinfo.c:32
long G_lrand48(void)
Generate an integer in the range [0, 2^31)
Definition: lrand48.c:136
double G_darea0_on_sphere(double)
Calculates integral for area between two latitudes.
Definition: area_sphere.c:47
const char * G_date(void)
Current date and time.
Definition: date.c:26
int G_faprintf(FILE *, const char *,...)
fprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition: aprintf.c:485
int G_mkstemp(char *, int, int)
Returns a file descriptor.
Definition: mkstemp.c:128
int G_is_location(const char *)
Test if specified directory is location.
Definition: is.c:62
char * G_option_to_separator(const struct Option *)
Get separator string from the option.
Definition: parser.c:1857
void G_warning(const char *,...) __attribute__((format(printf
int G_write_vector_timestamp(const char *, const char *, const struct TimeStamp *)
Write timestamp of vector map.
Definition: timestamp.c:505
int G_parser(int, char **)
Parse command line.
Definition: parser.c:321
int G_pole_in_polygon(const double *, const double *, int)
Check if pole is in polygon.
Definition: pole_in_poly.c:35
void G_option_rule(int, int, void **)
Set generic option rule.
void G_temp_element(char *)
Populates element with a path string.
Definition: tempfile.c:147
int G_expand(unsigned char *, int, unsigned char *, int, int)
Definition: compress.c:233
FILE * G_fopen_append_misc(const char *, const char *, const char *)
Definition: open_misc.c:217
int G_verbose_max(void)
Get max verbosity level.
Definition: verbose.c:81
void G_finish_workers(void)
Definition: worker.c:185
int G_make_mapset_dir_object(const char *, const char *)
Create directory for an object of a given type.
Definition: mapset_msc.c:108
int G_write_timestamp(FILE *, const struct TimeStamp *)
Output TimeStamp structure to a file as a formatted string.
Definition: timestamp.c:158
void G_lat_format(double, char *)
Definition: ll_format.c:40
void G_xdr_get_int(int *, const void *)
Definition: gis/xdr.c:69
double G_area_of_cell_at_row(int)
Cell area in specified row.
Definition: gis/area.c:87
void G_putenv(const char *, const char *)
Sets the UNIX environment variable name to value.
Definition: putenv.c:31
int G_get_spheroid_by_name(const char *, double *, double *, double *)
Get spheroid parameters by name.
Definition: get_ellipse.c:153
FILE * G_open_pager(struct Popen *)
Definition: pager.c:13
void G_plot_point(double, double)
Plot point.
Definition: plot.c:190
int G_scan_easting(const char *, double *, int)
ASCII easting to double.
Definition: wind_scan.c:69
FILE * G_popen_read(struct Popen *, const char *, const char **)
Definition: popen.c:67
void G_set_error_routine(int(*)(const char *, int))
Establishes error_routine as the routine that will handle the printing of subsequent error messages.
Definition: gis/error.c:260
void * G_ls_regex_filter(const char *, int, int, int)
Definition: ls_filter.c:151
void G_setenv(const char *, const char *)
Set environment variable (updates .gisrc)
Definition: env.c:442
char * G_file_name(char *, const char *, const char *, const char *)
Builds full path names to GIS data files.
Definition: file_name.c:61
int G_color_values(const char *, float *, float *, float *)
Definition: named_colr.c:20
int G_begin_cell_area_calculations(void)
Begin cell area calculations.
Definition: gis/area.c:46
void G_plot_where_en(int, int, double *, double *)
Converts x,y to east,north.
Definition: plot.c:178
void G_free_ilist(struct ilist *)
Free allocated memory of an integer list.
Definition: ilist.c:27
void G_setenv2(const char *, const char *, int)
Set environment variable from specific place (updates .gisrc)
Definition: env.c:459
int G_snprintf(char *, size_t, const char *,...) __attribute__((format(printf
char * G_store_upper(const char *)
Copy string to allocated memory and convert copied string to upper case.
Definition: strings.c:117
int G_get_3dview(const char *, const char *, struct G_3dview *)
Gets a 3D View.
Definition: view.c:243
int G_find_color_rule(const char *)
Check if color rule is defined.
void G_done_msg(const char *,...) __attribute__((format(printf
int G_get_ellipsoid_parameters(double *, double *)
get ellipsoid parameters
Definition: get_ellipse.c:66
double G_database_units_to_meters_factor(void)
Conversion to meters.
Definition: proj3.c:146
int G_window_overlap(const struct Cell_head *, double, double, double, double)
Determines if a box overlays a map window.
Definition: wind_overlap.c:35
int G_compare_projections(const struct Key_Value *, const struct Key_Value *, const struct Key_Value *, const struct Key_Value *)
Compare projections including units.
Definition: make_loc.c:231
void G_get_set_window(struct Cell_head *)
Get the current working window (region)
void G_newlines_to_spaces(char *)
Definition: nl_to_spaces.c:3
int G_open_new(const char *, const char *)
Open a new database file.
Definition: gis/open.c:149
int G_write_raster_timestamp(const char *, const struct TimeStamp *)
Write timestamp of raster map.
Definition: timestamp.c:389
char * G_toucase(char *)
convert string to upper case
Definition: mapcase.c:46
void G_progress(long, int)
Print progress info messages.
Definition: percent.c:158
const char * G_get_mapset_name(int)
Get name of the n'th mapset from the current mapset search path.
Definition: mapset_nme.c:44
void G__gisinit(const char *, const char *)
Initialize GIS Library and ensures a valid mapset is available.
Definition: gisinit.c:43
void G_close_pager(struct Popen *)
Definition: pager.c:35
char * G_get_projsrid(void)
Get srid (spatial reference id) for the current location.
Definition: get_projinfo.c:237
void G_init_ilist(struct ilist *)
Init an integer list and free allocated memory.
Definition: ilist.c:58
void G_popen_clear(struct Popen *)
Definition: popen.c:56
struct Option * G_define_standard_option(int)
Create standardised Option structure.
void G_rotate_around_point_int(int, int, int *, int *, double)
Rotate point (int version)
Definition: rotate.c:60
double G_transverse_radius_of_curvature(double, double, double)
Transverse radius of curvature.
Definition: radii.c:106
void G__write_Cell_head3(FILE *, const struct Cell_head *, int)
Write 3D cell header or window.
Definition: wr_cellhd.c:74
int G_rename_file(const char *, const char *)
Rename a file or a directory in the filesystem.
Definition: rename.c:31
void G_option_exclusive(void *,...)
Sets the options to be mutually exclusive.
char * G_tempfile_basedir(const char *)
Returns a temporary file name.
Definition: tempfile.c:77
int G_begin_geodesic_equation(double, double, double, double)
Definition: geodesic.c:38
double G_area_for_zone_on_sphere(double, double)
Calculates area between latitudes.
Definition: area_sphere.c:69
long G_srand48_auto(void)
Seed the pseudo-random number generator from the time and PID.
Definition: lrand48.c:72
void G_lon_format(double, char *)
Definition: ll_format.c:55
jmp_buf * G_fatal_longjmp(int)
Definition: gis/error.c:66
char * G_tempfile_pid_basedir(int, const char *)
Create tempfile from process id in given base directory.
Definition: tempfile.c:120
int G_lz4_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprlz4.c:78
const char * G_gisdbase(void)
Get name of top level database directory.
Definition: gisdbase.c:26
double G_meters_to_units_factor_sq(int)
Units conversion from square meters to square units.
Definition: units.c:88
int G_limit_east(double *, int)
void * G__realloc(const char *, int, void *, size_t)
Memory reallocation.
Definition: gis/alloc.c:119
int G_default_compressor(void)
Definition: compress.c:126
int G_legal_filename(const char *)
Check for legal database file name.
Definition: legal_name.c:34
int G_bz2_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprbzip.c:168
int G_write_raster3d_timestamp(const char *, const struct TimeStamp *)
Write timestamp of 3D raster map.
Definition: timestamp.c:609
char * G_str_replace(const char *, const char *, const char *)
Replace all occurrences of old_str in buffer with new_str.
Definition: strings.c:189
void int G_is_little_endian(void)
Tests for little ENDIAN.
Definition: endian.c:24
void G_xdr_get_float(float *, const void *)
Definition: gis/xdr.c:79
const char * G_find_key_value(const char *, const struct Key_Value *)
Find given key (case sensitive)
Definition: key_value1.c:85
const char * G_home(void)
Get user's home directory.
Definition: home.c:32
void G_set_gisrc_mode(int)
Set where to find/store variables.
Definition: env.c:63
FILE * G_open_option_file(const struct Option *)
Get an input/output file pointer from the option. If the file name is omitted or '-',...
Definition: parser.c:1919
void G_setup_plot(double, double, double, double, int(*)(int, int), int(*)(int, int))
Initialize plotting routines.
Definition: plot.c:97
struct Option * G_define_option(void)
Initializes an Option struct.
Definition: parser.c:211
int G_format_timestamp(const struct TimeStamp *, char *)
Create text string from TimeStamp structure.
Definition: timestamp.c:181
void G_end_execute(void **)
void G_str_to_upper(char *)
Convert string to upper case.
Definition: strings.c:364
void G_set_geodesic_distance_lat1(double)
Sets geodesic distance lat1.
Definition: geodist.c:69
int G_lon_scan(const char *, double *)
Definition: ll_scan.c:50
int G_get_ellipsoid_by_name(const char *, double *, double *)
Get ellipsoid parameters by name.
Definition: get_ellipse.c:104
int G_open_old_misc(const char *, const char *, const char *, const char *)
open a database misc file for reading
Definition: open_misc.c:132
int G_fwrite_key_value(FILE *, const struct Key_Value *)
Write key/value pairs to file.
Definition: key_value2.c:25
FILE * G_fopen_modify_misc(const char *, const char *, const char *)
Definition: open_misc.c:230
int G_str_to_sql(char *)
Make string SQL compliant.
Definition: strings.c:402
int G_snaprintf(char *, size_t, const char *,...)
snprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition: aprintf.c:527
void G__temp_element(char *, int)
Populates element with a path string (internal use only!)
Definition: tempfile.c:159
const char * G_find_file_misc(const char *, const char *, char *, const char *)
Searches for a misc file from the mapset search list or in a specified mapset.
Definition: find_file.c:208
const char * G_config_path(void)
Get user's config path directory.
Definition: home.c:98
int G_read_raster_timestamp(const char *, const char *, struct TimeStamp *)
Read timestamp from raster map.
Definition: timestamp.c:372
void G_option_required(void *,...)
Sets the options to be required.
const char * G_datum_description(int)
Definition: gis/datum.c:66
int G_make_mapset_object_group(const char *)
Create directory for group of elements of a given type.
Definition: mapset_msc.c:74
void G_unsetenv2(const char *, int)
Remove name from environment from specific place.
Definition: env.c:514
int int int G_aprintf(const char *,...)
Adjust the width of string specifiers to the display space instead of the number of bytes for wide ch...
Definition: aprintf.c:465
void G_fseek(FILE *, off_t, int)
Change the file position of the stream.
Definition: gis/seek.c:50
void G_ls(const char *, FILE *)
Prints a directory listing to a stream, in prettified column format.
Definition: ls.c:137
const char * G_find_raster2(const char *, const char *)
Find a raster map (look but don't touch)
Definition: find_rast.c:76
void G_set_ls_exclude_filter(int(*)(const char *, void *), void *)
void G_free_ls_filter(void *)
Definition: ls_filter.c:190
void G_option_collective(void *,...)
Sets the options to be collective.
void void G_verbose_message(const char *,...) __attribute__((format(printf
const char * G_whoami(void)
Gets user's name.
Definition: gis/whoami.c:35
double G_distance_point_to_line_segment(double, double, double, double, double, double)
Returns distance between a point and line segment in meters.
Definition: gis/distance.c:117
char * G_find_etc(const char *)
searches for a file from the etc search list in GRASS_ADDON_ETC returns the full path to where the fi...
Definition: find_etc.c:62
void G_remove_error_handler(void(*)(void *), void *)
Remove existing error handler.
Definition: gis/handler.c:85
void G_close_mail(struct Popen *)
Definition: pager.c:65
const char * G_get_units_name(int, int, int)
Get localized units name.
Definition: units.c:204
int G_lz4_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprlz4.c:146
char * G_tempfile_pid(int)
Create tempfile from process id.
Definition: tempfile.c:90
void G_popen_close(struct Popen *)
Definition: popen.c:72
char * G_tempfile(void)
Returns a temporary file name.
Definition: tempfile.c:62
int G_open_update_misc(const char *, const char *, const char *)
open a database misc file for update
Definition: open_misc.c:152
const char * G_getenv_nofatal2(const char *, int)
Get environment variable from specific place.
Definition: env.c:424
void G_option_excludes(void *,...)
Exclude selected options.
int G_make_mapset_element(const char *)
Create element in the current mapset.
Definition: mapset_msc.c:44
double G_distance2_point_to_line(double, double, double, double, double, double)
Definition: gis/line_dist.c:15
int G_is_absolute_path(const char *)
Checks if a specified path looks like an absolute path on the host system.
Definition: paths.c:62
int G_open_old(const char *, const char *, const char *)
Open a database file for reading.
Definition: gis/open.c:170
int G_get_overwrite(void)
Get overwrite value.
Definition: parser.c:957
void G_free_key_value(struct Key_Value *)
Free allocated Key_Value structure.
Definition: key_value1.c:104
int G_projection_units(int)
Get projection units code (for internal use only)
Definition: proj2.c:32
const char * G_getenv2(const char *, int)
Get variable from specific place.
Definition: env.c:386
char * G_compressor_name(int)
Definition: compress.c:118
int G_lstat(const char *, struct stat *)
Get file status.
Definition: paths.c:145
FILE * G_fopen_new_misc(const char *, const char *, const char *)
open a new database misc file
Definition: open_misc.c:178
const char * G_getenv(const char *)
Get environment variable.
Definition: env.c:360
void G__read_gisrc_env(void)
Force to read the GISRC environment file.
Definition: env.c:112
void G_rotate_around_point(double, double, double *, double *, double)
Rotate point (double version)
Definition: rotate.c:33
void G_setenv_nogisrc2(const char *, const char *, int)
Set environment name to value from specific place (doesn't update .gisrc)
Definition: env.c:486
const char * G_mapset(void)
Get current mapset name.
Definition: gis/mapset.c:33
void G_unset_window(void)
Unset current region.
Definition: get_window.c:135
char * G_mktemp(char *)
Opens a temporary file.
Definition: mkstemp.c:105
char * G_file_name_basedir(char *, const char *, const char *, const char *, const char *)
Builds full path names to GIS data files in temporary directory (for internal use only)
Definition: file_name.c:154
char * G_file_name_tmp(char *, const char *, const char *, const char *)
Builds full path names to GIS data files in temporary directory (for internal use only)
Definition: file_name.c:125
const char * G_color_name(int)
Definition: named_colr.c:35
const char * G_ellipsoid_name(int)
Get ellipsoid name.
Definition: get_ellipse.c:132
void G__temp_element_basedir(char *, const char *)
Populates element with a path string (internal use only!)
Definition: tempfile.c:185
size_t G_get_num_decimals(const char *)
Get number of decimals from a string.
Definition: basename.c:54
void G_set_key_value(const char *, const char *, struct Key_Value *)
Set value for given key.
Definition: key_value1.c:39
int G_limit_north(double *, int)
Limit north (y) coordinate.
Definition: wind_limits.c:71
double G_geodesic_distance(double, double, double, double)
Calculates geodesic distance.
Definition: geodist.c:195
void G_get_default_window(struct Cell_head *)
Get the default region.
Definition: get_window.c:95
void G_bresenham_line(int, int, int, int, int(*)(int, int))
Bresenham line algorithm.
Definition: bres_line.c:30
int G_remove_raster_timestamp(const char *)
Remove timestamp from raster map.
Definition: timestamp.c:405
void G_get_timestamps(const struct TimeStamp *, struct DateTime *, struct DateTime *, int *)
Copy TimeStamp into [two] Datetimes structs.
Definition: timestamp.c:258
int G_make_mapset_object_group_tmp(const char *)
Create directory for type of objects in the temporary directory.
Definition: mapset_msc.c:153
void G_option_requires(void *,...)
Define a list of options from which at least one option is required if first option is present.
char * G_color_rules_description_type(void)
Get color rules description for Option->descriptions.
void G_set_timestamp_range(struct TimeStamp *, const struct DateTime *, const struct DateTime *)
struct Flag * G_define_standard_flag(int)
Create standardised Flag structure.
int G_no_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: compress.c:155
double G_planimetric_polygon_area(const double *, const double *, int)
Calculates planimetric polygon area.
Definition: area_poly2.c:25
char ** G_get_available_mapsets(void)
Get list of available mapsets for current location.
Definition: mapset_nme.c:147
int G_read_compressed(int, int, unsigned char *, int, int)
Definition: compress.c:244
int G_has_raster_timestamp(const char *, const char *)
Check if timestamp for raster map exists.
Definition: timestamp.c:354
int G_copy_file(const char *, const char *)
Copies one file to another.
Definition: copy_file.c:33
void G_adjust_window_to_box(const struct Cell_head *, struct Cell_head *, int, int)
Adjusts window to a rectangular box.
Definition: wind_2_box.c:31
FILE * G_fopen_modify(const char *, const char *)
Open a database file for update (r+ mode)
Definition: gis/open.c:306
void G_set_window(struct Cell_head *)
Establishes window as the current working window (region).
off_t G_ftell(FILE *)
Get the current file position of the stream.
Definition: gis/seek.c:29
int G_vsaprintf(char *, const char *, va_list)
vsprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition: aprintf.c:411
void G_llres_format(double, char *)
Definition: ll_format.c:70
int G_lookup_key_value_from_file(const char *, const char *, char[], int)
Look up for key in file.
Definition: key_value4.c:48
char * G_str_concat(const char **, int, const char *, int)
String concatenation.
Definition: strings.c:267
void G_trim_decimal(char *)
Removes trailing zeros from decimal number.
Definition: trim_dec.c:24
void G_set_keywords(const char *)
Set keywords from the string.
Definition: parser.c:882
const char * G_lon_format_string(void)
Definition: ll_format.c:65
double G_geodesic_lat_from_lon(double)
Definition: geodesic.c:78
void G_list_element(const char *, const char *, const char *, int(*)(const char *, const char *, char *))
General purpose list function.
Definition: gis/list.c:51
void G_update_key_value_file(const char *, const char *, const char *)
Update file, set up value for given key.
Definition: key_value4.c:26
void G_ls_format(char **, int, int, FILE *)
Prints a listing of items to a stream, in prettified column format.
Definition: ls.c:165
char * G_strcasestr(const char *, const char *)
Finds the first occurrence of the sub-string in the null-terminated string ignoring case (upper or lo...
Definition: strings.c:476
int G_rle_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprrle.c:73
int G_get_datumparams_from_projinfo(const struct Key_Value *, char *, char *)
Definition: gis/datum.c:107
const char * G_find_vector(char *, const char *)
Finds a vector map.
Definition: find_vect.c:41
const char * G_get_env_name(int)
Get variable name for index n.
Definition: env.c:546
int G_units(const char *)
Get units code by name.
Definition: units.c:320
void G_read_datum_table(void)
Definition: gis/datum.c:141
void G_add_keyword(const char *)
Add keyword to the list.
Definition: parser.c:866
void G_add_mapset_to_search_path(const char *)
Add mapset to the list of mapsets in search path.
Definition: mapset_nme.c:203
struct Key_Value * G_fread_key_value(FILE *)
Read key/values pairs from file.
Definition: key_value2.c:49
void G_format_resolution(double, char *, int)
Resolution to ASCII.
Definition: wind_format.c:69
void G_init_timestamp(struct TimeStamp *)
Initialize timestamp structure.
Definition: timestamp.c:93
int G_verbose(void)
Get current verbosity level.
Definition: verbose.c:60
void G__read_mapset_env(void)
Force to read the mapset environment file VAR.
Definition: env.c:98
double G_distance_between_line_segments(double, double, double, double, double, double, double, double)
Returns distance between two line segments in meters.
Definition: gis/distance.c:91
int G_mapset_permissions2(const char *, const char *, const char *)
Check for user mapset permission.
Definition: mapset_msc.c:319
int G_remove(const char *, const char *)
Remove a database file.
Definition: remove.c:44
int G_put_3dview(const char *, const struct G_3dview *, const struct Cell_head *)
Saves info to a 3d.view file in the current mapset.
Definition: view.c:163
char * G_store_lower(const char *)
Copy string to allocated memory and convert copied string to lower case.
Definition: strings.c:141
const char * G_find_raster(char *, const char *)
Find a raster map.
Definition: find_rast.c:55
const char * G_projection_name(int)
Get projection name.
Definition: proj2.c:55
int G_verbose_min(void)
Get min verbosity level.
Definition: verbose.c:101
void G_free_tokens(char **)
Free memory allocated to tokens.
Definition: gis/token.c:198
int G_remove_raster3d_timestamp(const char *)
Remove timestamp from 3D raster map.
Definition: timestamp.c:625
const char * G_find_file2_misc(const char *, const char *, const char *, const char *)
Searches for a misc file from the mapset search list or in a specified mapset. (look but don't touch)
Definition: find_file.c:257
int G_remove_misc(const char *, const char *, const char *)
Remove a database misc file.
Definition: remove.c:65
double G_window_percentage_overlap(const struct Cell_head *, double, double, double, double)
Determines percentage of box is contained in the window.
Definition: wind_overlap.c:80
int G_compress(unsigned char *, int, unsigned char *, int, int)
Definition: compress.c:218
int G_begin_rhumbline_equation(double, double, double, double)
Start rhumbline calculations.
Definition: rhumbline.c:58
void G_create_alt_search_path(void)
Define alternative mapset search path.
Definition: mapset_nme.c:106
char ** G_ls2(const char *, int *)
Stores a sorted directory listing in an array.
Definition: ls.c:94
void void void G_important_message(const char *,...) __attribute__((format(printf
void G_strip(char *)
Removes all leading and trailing white space from string.
Definition: strings.c:299
int G_is_units_type_spatial(int)
Check if the unit is of spatial type.
Definition: units.c:134
int G_get_datum_by_name(const char *)
Definition: gis/datum.c:43
char * G_get_projwkt(void)
Get WKT information for the current location.
Definition: get_projinfo.c:127
int G_compressor_number(char *)
Definition: compress.c:100
int G_check_compressor(int)
Definition: compress.c:140
int G_rle_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprrle.c:139
int G_is_mapset(const char *)
Test if specified directory is mapset.
Definition: is.c:75
void G_begin_zone_area_on_sphere(double, double)
Initialize calculations for sphere.
Definition: area_sphere.c:35
int G_asprintf(char **, const char *,...) __attribute__((format(printf
int G_scan_timestamp(struct TimeStamp *, const char *)
Fill a TimeStamp structure from a datetime string.
Definition: timestamp.c:215
void G_str_to_lower(char *)
Convert string to lower case.
Definition: strings.c:382
int G_plot_polygon(const double *, const double *, int)
Plot filled polygon with n vertices.
Definition: plot.c:374
double G_meters_to_units_factor(int)
Units conversion from meters to units.
Definition: units.c:38
char * G_myname(void)
Returns location title.
Definition: myname.c:31
double G_darea0_on_ellipsoid(double)
Calculate integral for area between two latitudes.
Definition: area_ellipse.c:63
double G_adjust_easting(double, const struct Cell_head *)
Returns east not smaller than west.
int G_get_gisrc_mode(void)
Get info where variables are stored.
Definition: env.c:73
void G_sleep(unsigned int)
Definition: sleep.c:11
char * G_recreate_command(void)
Creates command to run non-interactive.
Definition: parser.c:838
void G_xdr_put_double(void *, const double *)
Definition: gis/xdr.c:94
int G_make_mapset_object_group_basedir(const char *, const char *)
Create directory for type of objects in the temporary directory.
Definition: mapset_msc.c:175
void G_switch_search_path(void)
Switch mapset search path.
Definition: mapset_nme.c:117
struct Key_Value * G_read_key_value_file(const char *)
Read key/values pairs from file.
Definition: key_value3.c:55
const char * G_find_raster3d(const char *, const char *)
Search for a 3D raster map in current search path or in a specified mapset.
Definition: find_rast3d.c:28
void G_begin_zone_area_on_ellipsoid(double, double, double)
Begin area calculations for ellipsoid.
Definition: area_ellipse.c:47
void G_set_program_name(const char *)
Set program name.
Definition: progrm_nme.c:61
int G_number_of_tokens(char **)
Return number of tokens.
Definition: gis/token.c:179
char * G_location_path(void)
Get current location UNIX-like path.
Definition: location.c:54
char * G_get_basename_separator(void)
Return the environmental basename variable or the default value.
Definition: basename.c:109
int G_stat(const char *, struct stat *)
Get file status.
Definition: paths.c:128
void G_create_alt_env(void)
Set up alternative environment variables.
Definition: env.c:569
int G_write_compressed(int, unsigned char *, int, int)
Definition: compress.c:323
int G_zlib_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprzlib.c:87
char * G_fully_qualified_name(const char *, const char *)
Get fully qualified element name.
Definition: nme_in_mps.c:101
void G__init_window(void)
Initialize window (region).
const char * G_ellipsoid_description(int)
Get description for nth ellipsoid.
Definition: get_ellipse.c:182
void G_unset_error_routine(void)
After this call subsequent error messages will be handled in the default method.
Definition: gis/error.c:274
int G_read_ellipsoid_table(int)
Read ellipsoid table.
Definition: get_ellipse.c:246
int G_intersect_line_segments(double, double, double, double, double, double, double, double, double *, double *, double *, double *)
Definition: gis/intersect.c:84
char * G_strchg(char *, char, char)
Replace all occurrences of character in string bug with new.
Definition: strings.c:160
void G_add_error_handler(void(*)(void *), void *)
Add new error handler.
Definition: gis/handler.c:71
void G_xdr_get_double(double *, const void *)
Definition: gis/xdr.c:89
double G_distance(double, double, double, double)
Returns distance in meters.
Definition: gis/distance.c:75
void G__read_gisrc_path(void)
Read or read again the GISRC (session) environment variable.
Definition: env.c:125
void G_clicker(void)
Definition: clicker.c:17
int G_lat_scan(const char *, double *)
Definition: ll_scan.c:45
const char * G_llres_format_string(void)
Definition: ll_format.c:81
void G_set_ls_filter(int(*)(const char *, void *), void *)
int G_make_mapset_element_tmp(const char *)
Create element in the temporary directory.
Definition: mapset_msc.c:131
int G_zone(void)
Query cartographic zone.
Definition: zone.c:24
int G_scan_resolution(const char *, double *, int)
ASCII resolution to double.
Definition: wind_scan.c:100
int G_point_in_window(double, double, const struct Cell_head *)
Returns TRUE if coordinate is within the given map region.
Definition: wind_in.c:48
void G_disable_interactive(void)
Disables the ability of the parser to operate interactively.
Definition: parser.c:140
double G_adjust_east_longitude(double, double)
Adjust east longitude.
int G_is_initialized(int *)
Definition: counter.c:60
int G_zstd_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprzstd.c:86
int G_plot_area(double *const *, double *const *, int *, int)
Plot multiple polygons.
Definition: plot.c:504
struct Flag * G_define_flag(void)
Initializes a Flag struct.
Definition: parser.c:157
void * G_ls_glob_filter(const char *, int, int)
Definition: ls_filter.c:171
int G_point_in_region(double, double)
Returns TRUE if coordinate is within the current region settings.
Definition: wind_in.c:25
const char * G_database_unit_name(int)
Get units (localized) name for the current location.
Definition: proj3.c:53
double G_drand48(void)
Generate a floating-point value in the range [0,1)
Definition: lrand48.c:166
void G_write_key_value_file(const char *, const struct Key_Value *)
Write key/value pairs to file.
Definition: key_value3.c:28
int G_limit_south(double *, int)
Limit south (y) coordinate.
Definition: wind_limits.c:100
void G_initialize_done(int *)
Definition: counter.c:77
void G_xdr_put_int(void *, const int *)
Definition: gis/xdr.c:74
int G_is_dirsep(char)
Checks if a specified character is a valid directory separator character on the host system.
Definition: paths.c:45
#define G_incr_void_ptr(ptr, size)
Definition: defs/gis.h:100
int G_owner(const char *)
Get owner id of path.
Definition: paths.c:164
void G_setup_fill(int)
Set row_fill routine to row_solid_fill or row_dotted_fill.
Definition: plot.c:133
int int G_strcasecmp(const char *, const char *)
String compare ignoring case (upper or lower)
Definition: strings.c:47
int G_recursive_remove(const char *)
Recursively remove all files in given directory.
Definition: remove.c:113
const char * G_original_program_name(void)
Return original path of the executed program.
Definition: progrm_nme.c:46
void G_get_element_window(struct Cell_head *, const char *, const char *, const char *)
Get region for selected element (raster, vector, window, etc.)
Definition: get_window.c:110
int G_remove_vector_timestamp(const char *, const char *)
Remove timestamp from vector map.
Definition: timestamp.c:551
void G_ilist_add(struct ilist *, int)
Add item to ilist.
Definition: ilist.c:78
int G_strncasecmp(const char *, const char *, int)
String compare ignoring case (upper or lower) - limited number of characters.
Definition: strings.c:69
void G_set_distance_to_line_tolerance(double)
Definition: gis/line_dist.c:8
int G_vsnaprintf(char *, size_t, const char *, va_list)
vsnprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition: aprintf.c:432
void G__no_gisinit(const char *)
Initialize GIS Library.
Definition: gisinit.c:83
int G_counter_next(struct Counter *)
Definition: counter.c:46
double G_ellipsoid_polygon_area(const double *, const double *, int)
Area of lat-long polygon.
Definition: area_poly1.c:134
int G_open_new_misc(const char *, const char *, const char *)
open a new database misc file
Definition: open_misc.c:111
char * G_convert_dirseps_from_host(char *)
Converts directory separator characters in a string from the native host character to the GRASS separ...
Definition: paths.c:105
FILE * G_popen_write(struct Popen *, const char *, const char **)
Definition: popen.c:62
char * G_join_basename_strings(const char **, size_t)
join an array of strings using the basename separator
Definition: basename.c:126
int G_limit_west(double *, int)
int G_read_vector_timestamp(const char *, const char *, const char *, struct TimeStamp *)
Read timestamp from vector map.
Definition: timestamp.c:456
void G_lat_parts(double, int *, int *, double *, char *)
Definition: ll_format.c:116
int G_set_verbose(int)
Set verbosity level.
Definition: verbose.c:125
int G_zstd_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: cmprzstd.c:162
void G_usage(void)
Command line help/usage message.
Definition: parser_help.c:48
int G_database_unit(void)
Get units id for the current location.
Definition: proj3.c:66
int G_is_units_type_temporal(int)
Check if the unit is of temporal type.
Definition: units.c:166
int G_info_format(void)
Get current message format.
Definition: gis/error.c:537
FILE * G_fopen_append(const char *, const char *)
Open a database file for update (append mode)
Definition: gis/open.c:278
const char * G_database_ellipse_name(void)
Get ellipsoid name for the current location.
Definition: proj3.c:212
int G_llres_scan(const char *, double *)
Definition: ll_scan.c:55
const char * G_location(void)
Get current location name.
Definition: location.c:32
struct Key_Value * G_get_projepsg(void)
Gets EPSG information for the current location.
Definition: get_projinfo.c:102
int G_adjust_window_ll(struct Cell_head *cellhd)
Adjust window for lat/lon.
Definition: adj_cellhd.c:552
void G_begin_execute(void(*func)(void *), void *, void **, int)
int G_check_overwrite(int argc, char **argv)
Check for overwrite mode.
Definition: overwrite.c:34
int G_write_unompressed(int, unsigned char *, int)
const char * G_lat_format_string(void)
Definition: ll_format.c:50
void * G__calloc(const char *, int, size_t, size_t)
Memory allocation.
Definition: gis/alloc.c:73
void G_message(const char *,...) __attribute__((format(printf
void G_set_geodesic_distance_lat2(double)
Sets geodesic distance lat2.
Definition: geodist.c:83
int G_check_input_output_name(const char *, const char *, int)
Check input and output file names.
Definition: legal_name.c:71
void void void void __attribute__((noreturn))
int G_getl(char *, int, FILE *)
Gets a line of text from a file.
Definition: getl.c:31
void * G__malloc(const char *, int, size_t)
Memory allocation.
Definition: gis/alloc.c:32
void G_adjust_Cell_head(struct Cell_head *, int, int)
Adjust cell header.
Definition: adj_cellhd.c:51
const char * G_gisbase(void)
Get full path name of the top level module directory.
Definition: gisbase.c:39
const char * G_database_datum_name(void)
Get datum name for the current location.
Definition: proj3.c:186
void G_write_zeros(int, size_t)
Writes n bytes of zero to file descriptor fd
Definition: writ_zeros.c:30
int G_compress_bound(int, int)
Definition: compress.c:202
int G_no_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition: compress.c:176
int G_put_element_window(const struct Cell_head *, const char *, const char *)
Write the region.
Definition: put_window.c:74
const char * G_program_name(void)
Return module name.
Definition: progrm_nme.c:28
void G_plot_where_xy(double, double, int *, int *)
Converts east,north to x,y.
Definition: plot.c:160
struct Key_Value * G_create_key_value(void)
Allocate and initialize Key_Value structure.
Definition: key_value1.c:23
int G_is_mapset_in_search_path(const char *)
Check if given mapset is in search path.
Definition: mapset_nme.c:217
char * G_rc_path(const char *, const char *)
Returns path to element and item.
Definition: user_config.c:286
void G_init_counter(struct Counter *, int)
Definition: counter.c:38
void G_list_color_rules(FILE *)
Print color rules.
int G_mkdir(const char *)
Creates a new directory.
Definition: paths.c:27
void G_list_color_rules_description_type(FILE *, char *)
Print color rules with description and type.
void G_init_env(void)
Initialize variables.
Definition: env.c:83
char * G_chop(char *)
Chop leading and trailing white spaces.
Definition: strings.c:331
int G_debug(int, const char *,...) __attribute__((format(printf
const char * G_getenv_nofatal(const char *)
Get environment variable.
Definition: env.c:405
int G_scan_northing(const char *, double *, int)
ASCII northing to double.
Definition: wind_scan.c:38
int G_write_projwkt(const char *, const char *)
Write WKT definition to file.
Definition: make_loc.c:511
void G_setenv_nogisrc(const char *, const char *)
Set environment name to value (doesn't update .gisrc)
Definition: env.c:472
char * G_convert_dirseps_to_host(char *)
Converts directory separator characters in a string to the native host separator character (/ on Unix...
Definition: paths.c:83
int G_has_raster3d_timestamp(const char *, const char *)
Check if timestamp for 3D raster map exists.
Definition: timestamp.c:574
int G_begin_polygon_area_calculations(void)
Begin polygon area calculations.
Definition: gis/area.c:120
int G_make_location(const char *, struct Cell_head *, const struct Key_Value *, const struct Key_Value *)
Create a new location.
Definition: make_loc.c:53
int G_insert_commas(char *)
Inserts commas into a number string.
Definition: commas.c:36
double G_meridional_radius_of_curvature(double, double, double)
Meridional radius of curvature.
Definition: radii.c:80
int G_verbose_std(void)
Get standard verbosity level.
Definition: verbose.c:91
void G_lon_parts(double, int *, int *, double *, char *)
Definition: ll_format.c:132
void G_format_easting(double, char *, int)
Easting to ASCII.
Definition: wind_format.c:49
void G_init_tempfile(void)
Initialize environment for creating tempfiles.
Definition: tempfile.c:29
int G_vasprintf(char **, const char *, va_list)
Safe replacement for asprintf().
Definition: asprintf.c:41
char * G_store(const char *)
Copy string to allocated memory.
Definition: strings.c:87
void G_init_logging(void)
Definition: gis/error.c:355
void G_get_window(struct Cell_head *)
Get the current region.
Definition: get_window.c:47
FILE * G_fopen_new(const char *, const char *)
Open a new database file.
Definition: gis/open.c:219
void G_plot_line(double, double, double, double)
Plot line between latlon coordinates (fastline)
Definition: plot.c:209
const char * G_datum_name(int)
Definition: gis/datum.c:56
int G_write_projsrid(const char *, const char *)
Write srid (spatial reference id) to file.
Definition: make_loc.c:563
void G_init_debug(void)
Initiate debugging.
Definition: debug.c:27
int G_vaprintf(const char *, va_list)
vprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition: aprintf.c:379
double G_radius_of_conformal_tangent_sphere(double, double, double)
Radius of conformal tangent sphere.
Definition: radii.c:133
char ** G_tokenize(const char *, const char *)
Tokenize string.
Definition: gis/token.c:47
void G_srand48(long)
Seed the pseudo-random number generator.
Definition: lrand48.c:53
double G_area_for_zone_on_ellipsoid(double, double)
Calculates area between latitudes.
Definition: area_ellipse.c:89
void G_remove_commas(char *)
Removes commas from number string.
Definition: commas.c:85
void G_option_requires_all(void *,...)
Define additionally required options for an option.
int G_make_mapset(const char *, const char *, const char *)
Create a new mapset.
Definition: make_mapset.c:43
void int G_suppress_warnings(int)
Suppress printing a warning message to stderr.
Definition: gis/error.c:222
int G_projection(void)
Query cartographic projection.
Definition: proj1.c:32
int G_get_3dview_defaults(struct G_3dview *, struct Cell_head *)
Sets default for v based on w.
Definition: view.c:58
void G_format_northing(double, char *, int)
Northing to ASCII.
Definition: wind_format.c:29
char ** G_list(int, const char *, const char *, const char *)
List specified type of elements. Application must release the allocated memory.
Definition: gis/list.c:173
void G_adjust_Cell_head3(struct Cell_head *, int, int, int)
Adjust cell header for 3D values.
Definition: adj_cellhd.c:163
char * G_color_rules_descriptions(void)
Get color rules description for Option->descriptions.
const char * G_find_file(const char *, char *, const char *)
Searches for a file from the mapset search list or in a specified mapset.
Definition: find_file.c:186
int int G_begin_distance_calculations(void)
Begin distance calculations.
Definition: gis/distance.c:42
int G_rename(const char *, const char *, const char *)
Rename a database file.
Definition: rename.c:69
int G_saprintf(char *, const char *,...)
sprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition: aprintf.c:505
2D/3D raster map header (used also for region)
Definition: gis.h:437
Definition: gis.h:616
Structure that stores flag info.
Definition: gis.h:585
Structure that stores module info.
Definition: gis.h:602
Definition: gis.h:499
Definition: gis.h:525
Structure that stores option information.
Definition: gis.h:554
Definition: gis.h:620
Definition: gis.h:611
List of integers.
Definition: gis.h:706