GRASS GIS 7 Programmer's Manual  7.2.2(2017)-exported
parser_standard_options.c
Go to the documentation of this file.
1 /*!
2  \file lib/gis/parser_standard_options.c
3 
4  \brief GIS Library - Argument parsing functions (standard options)
5 
6  (C) 2001-2016 by the GRASS Development Team
7 
8  This program is free software under the GNU General Public License
9  (>=v2). Read the file COPYING that comes with GRASS for details.
10 
11  \author Original author CERL
12  \author Soeren Gebbert added Dec. 2009 WPS process_description document
13  \author Luca Delucchi added Aug 2011 G_OPT_M_DIR
14 */
15 
16 #include <grass/gis.h>
17 #include <grass/glocale.h>
18 
19 #include "parser_local_proto.h"
20 
21 /*!
22  \brief Create standardised Option structure.
23 
24  This function will create a standardised Option structure defined by
25  parameter <i>opt</i>.
26 
27  Valid parameters are defined by the STD_OPT enum in the file gis.h.
28  A list of valid parameter values sorted to groups is below.
29 
30  This function allocates memory for the Option structure and returns a
31  pointer to this memory.
32 
33  If an invalid parameter was specified a empty Option structure will
34  be returned (not NULL).
35 
36 
37  \par List of STD_OPT values sorted by module group
38  - database:
39  - G_OPT_DB_SQL
40  - G_OPT_DB_WHERE
41  - G_OPT_DB_TABLE
42  - G_OPT_DB_DRIVER
43  - G_OPT_DB_DATABASE
44  - G_OPT_DB_SCHEMA
45  - G_OPT_DB_COLUMN
46  - G_OPT_DB_COLUMNS
47  - G_OPT_DB_KEYCOLUMN
48 
49  - imagery:
50  - G_OPT_I_GROUP
51  - G_OPT_I_SUBGROUP
52 
53  - raster:
54  - G_OPT_R_INPUT
55  - G_OPT_R_INPUTS
56  - G_OPT_R_OUTPUT
57  - G_OPT_R_MAP
58  - G_OPT_R_MAPS
59  - G_OPT_R_BASE
60  - G_OPT_R_COVER
61  - G_OPT_R_ELEV
62  - G_OPT_R_ELEVS
63  - G_OPT_R_TYPE
64  - G_OPT_R_INTERP_TYPE
65  - G_OPT_R_BASENAME_INPUT
66  - G_OPT_R_BASENAME_OUTPUT
67 
68  - raster3d:
69  - G_OPT_R3_INPUT
70  - G_OPT_R3_INPUTS
71  - G_OPT_R3_OUTPUT
72  - G_OPT_R3_MAP
73  - G_OPT_R3_MAPS
74 
75  - vector:
76  - G_OPT_V_INPUT
77  - G_OPT_V_INPUTS
78  - G_OPT_V_OUTPUT
79  - G_OPT_V_MAP
80  - G_OPT_V_MAPS
81  - G_OPT_V_TYPE
82  - G_OPT_V_FIELD
83  - G_OPT_V_FIELD_ALL
84  - G_OPT_V_CAT
85  - G_OPT_V_CATS
86  - G_OPT_V_ID
87  - G_OPT_V_IDS
88 
89  - files
90  - G_OPT_F_INPUT
91  - G_OPT_F_BIN_INPUT
92  - G_OPT_F_OUTPUT
93  - G_OPT_F_SEP
94 
95  - colors
96  - G_OPT_C
97  - G_OPT_CN
98 
99  - misc
100  - G_OPT_M_DIR
101  - G_OPT_M_UNITS
102  - G_OPT_M_DATATYPE
103  - G_OPT_M_MAPSET
104  - G_OPT_M_LOCATION
105  - G_OPT_M_DBASE
106  - G_OPT_M_COORDS
107  - G_OPT_M_COLR
108  - G_OPT_M_REGION
109  - G_OPT_M_NULL_VALUE
110 
111  - temporal GIS framework
112  - G_OPT_STDS_INPUT
113  - G_OPT_STDS_INPUTS
114  - G_OPT_STDS_OUTPUT
115  - G_OPT_STRDS_INPUT
116  - G_OPT_STRDS_INPUTS
117  - G_OPT_STRDS_OUTPUT
118  - G_OPT_STR3DS_INPUT
119  - G_OPT_STR3DS_INPUTS
120  - G_OPT_STR3DS_OUTPUT
121  - G_OPT_STVDS_INPUT
122  - G_OPT_STVDS_INPUTS
123  - G_OPT_STVDS_OUTPUT
124  - G_OPT_MAP_INPUT
125  - G_OPT_MAP_INPUTS
126  - G_OPT_STDS_TYPE
127  - G_OPT_MAP_TYPE
128  - G_OPT_T_TYPE
129  - G_OPT_T_WHERE
130 
131  \param opt type of Option struct to create specified by STD_OPT enum
132 
133  \return pointer to an Option struct
134 */
135 struct Option *G_define_standard_option(int opt)
136 {
137  struct Option *Opt;
138 
139  Opt = G_define_option();
140 
141  switch (opt) {
142  case G_OPT_DB_SQL:
143  Opt->key = "sql";
144  Opt->type = TYPE_STRING;
145  Opt->key_desc = "sql_query";
146  Opt->required = NO;
147  Opt->label = _("SQL select statement");
148  Opt->description =
149  _("For example: 'select * from rybniky where kapri = 'hodne'");
150  break;
151  case G_OPT_DB_WHERE:
152  Opt->key = "where";
153  Opt->type = TYPE_STRING;
154  Opt->key_desc = "sql_query";
155  Opt->required = NO;
156  Opt->label = _("WHERE conditions of SQL statement without 'where' keyword");
157  Opt->description = _("Example: income < 1000 and inhab >= 10000");
158  break;
159  case G_OPT_DB_TABLE:
160  Opt->key = "table";
161  Opt->type = TYPE_STRING;
162  Opt->key_desc = "name";
163  Opt->required = NO;
164  Opt->multiple = NO;
165  Opt->description = _("Name of attribute table");
166  Opt->gisprompt = "old,dbtable,dbtable";
167  break;
168  case G_OPT_DB_DRIVER:
169  Opt->key = "driver";
170  Opt->type = TYPE_STRING;
171  Opt->key_desc = "name";
172  Opt->required = NO;
173  Opt->multiple = NO;
174  Opt->description = _("Name of database driver");
175  Opt->gisprompt = "old,dbdriver,dbdriver";
176  break;
177  case G_OPT_DB_DATABASE:
178  Opt->key = "database";
179  Opt->type = TYPE_STRING;
180  Opt->key_desc = "name";
181  Opt->required = NO;
182  Opt->multiple = NO;
183  Opt->description = _("Name of database");
184  Opt->gisprompt = "old,dbname,dbname";
185  break;
186  case G_OPT_DB_SCHEMA:
187  Opt->key = "schema";
188  Opt->type = TYPE_STRING;
189  Opt->key_desc = "name";
190  Opt->required = NO;
191  Opt->multiple = NO;
192  Opt->label = _("Database schema");
193  Opt->description = _("Do not use this option if schemas "
194  "are not supported by driver/database server");
195  break;
196  case G_OPT_DB_COLUMN:
197  Opt->key = "column";
198  Opt->type = TYPE_STRING;
199  Opt->key_desc = "name";
200  Opt->required = NO;
201  Opt->multiple = NO;
202  Opt->description = _("Name of attribute column");
203  Opt->gisprompt = "old,dbcolumn,dbcolumn";
204  break;
205  case G_OPT_DB_COLUMNS:
206  Opt->key = "columns";
207  Opt->type = TYPE_STRING;
208  Opt->key_desc = "name";
209  Opt->required = NO;
210  Opt->multiple = YES;
211  Opt->description = _("Name of attribute column(s)");
212  Opt->gisprompt = "old,dbcolumn,dbcolumn";
213  break;
214  case G_OPT_DB_KEYCOLUMN:
215  Opt->key = "key";
216  Opt->type = TYPE_STRING;
217  Opt->key_desc = "name";
218  Opt->required = NO;
219  Opt->multiple = NO;
220  Opt->label = _("Name of key column");
221  Opt->description = _("Must refer to an integer column");
222  /* Opt->gisprompt = "old,dbcolumn,dbcolumn"; */
223  Opt->answer = GV_KEY_COLUMN;
224  break;
225 
226  /* imagery group */
227  case G_OPT_I_GROUP:
228  Opt->key = "group";
229  Opt->type = TYPE_STRING;
230  Opt->key_desc = "name";
231  Opt->required = YES;
232  Opt->gisprompt = "old,group,group";
233  Opt->description = _("Name of input imagery group");
234  break;
235  case G_OPT_I_SUBGROUP:
236  Opt->key = "subgroup";
237  Opt->type = TYPE_STRING;
238  Opt->key_desc = "name";
239  Opt->required = YES;
240  Opt->gisprompt = "old,subgroup,subgroup";
241  Opt->description = _("Name of input imagery subgroup");
242  break;
243 
244  /* raster maps */
245  case G_OPT_R_INPUT:
246  Opt->key = "input";
247  Opt->type = TYPE_STRING;
248  Opt->key_desc = "name";
249  Opt->required = YES;
250  Opt->gisprompt = "old,cell,raster";
251  Opt->description = _("Name of input raster map");
252  break;
253  case G_OPT_R_INPUTS:
254  Opt->key = "input";
255  Opt->type = TYPE_STRING;
256  Opt->key_desc = "name";
257  Opt->required = YES;
258  Opt->multiple = YES;
259  Opt->gisprompt = "old,cell,raster";
260  Opt->description = _("Name of input raster map(s)");
261  break;
262  case G_OPT_R_OUTPUT:
263  Opt->key = "output";
264  Opt->type = TYPE_STRING;
265  Opt->key_desc = "name";
266  Opt->required = YES;
267  Opt->gisprompt = "new,cell,raster";
268  Opt->description = _("Name for output raster map");
269  break;
270  case G_OPT_R_OUTPUTS:
271  Opt->key = "output";
272  Opt->type = TYPE_STRING;
273  Opt->key_desc = "name";
274  Opt->required = YES;
275  Opt->multiple = YES;
276  Opt->gisprompt = "new,cell,raster";
277  Opt->description = _("Name for output raster map(s)");
278  break;
279  case G_OPT_R_MAP:
280  Opt->key = "map";
281  Opt->type = TYPE_STRING;
282  Opt->key_desc = "name";
283  Opt->required = YES;
284  Opt->gisprompt = "old,cell,raster";
285  Opt->description = _("Name of raster map");
286  break;
287  case G_OPT_R_MAPS:
288  Opt->key = "map";
289  Opt->type = TYPE_STRING;
290  Opt->key_desc = "name";
291  Opt->required = YES;
292  Opt->multiple = YES;
293  Opt->gisprompt = "old,cell,raster";
294  Opt->description = _("Name of raster map(s)");
295  break;
296  case G_OPT_R_BASE:
297  Opt->key = "base";
298  Opt->type = TYPE_STRING;
299  Opt->key_desc = "name";
300  Opt->required = YES;
301  Opt->gisprompt = "old,cell,raster";
302  Opt->description = _("Name of base raster map");
303  break;
304  case G_OPT_R_COVER:
305  Opt->key = "cover";
306  Opt->type = TYPE_STRING;
307  Opt->key_desc = "name";
308  Opt->required = YES;
309  Opt->gisprompt = "old,cell,raster";
310  Opt->description = _("Name of cover raster map");
311  break;
312  case G_OPT_R_ELEV:
313  Opt->key = "elevation";
314  Opt->type = TYPE_STRING;
315  Opt->key_desc = "name";
316  Opt->required = YES;
317  Opt->gisprompt = "old,cell,raster";
318  Opt->description = _("Name of input elevation raster map");
319  break;
320  case G_OPT_R_ELEVS:
321  Opt->key = "elevation";
322  Opt->type = TYPE_STRING;
323  Opt->key_desc = "name";
324  Opt->required = YES;
325  Opt->multiple = YES;
326  Opt->gisprompt = "old,cell,raster";
327  Opt->description = _("Name of input elevation raster map(s)");
328  break;
329  case G_OPT_R_TYPE:
330  Opt->key = "type";
331  Opt->type = TYPE_STRING;
332  Opt->required = YES;
333  Opt->multiple = NO;
334  Opt->label = _("Type of raster map to be created");
335  Opt->description = _("Storage type for resultant raster map");
336  Opt->options = "CELL,FCELL,DCELL";
337  G_asprintf((char **) &(Opt->descriptions),
338  "CELL;%s;FCELL;%s;DCELL;%s",
339  _("Integer"),
340  _("Single precision floating point"),
341  _("Double precision floating point"));
342  break;
343  case G_OPT_R_INTERP_TYPE:
344  Opt->key = "method";
345  Opt->type = TYPE_STRING;
346  Opt->required = NO;
347  Opt->description = _("Sampling interpolation method");
348  Opt->options = "nearest,bilinear,bicubic";
349  G_asprintf((char **) &(Opt->descriptions),
350  "nearest;%s;bilinear;%s;bicubic;%s",
351  _("Nearest-neighbor interpolation"),
352  _("Bilinear interpolation"),
353  _("Bicubic interpolation"));
354  break;
355  case G_OPT_R_BASENAME_INPUT:
356  Opt->key = "input";
357  Opt->type = TYPE_STRING;
358  Opt->key_desc = "basename";
359  Opt->required = YES;
360  Opt->multiple = NO;
361  Opt->gisprompt = "old,cell,raster";
362  Opt->description = _("Name of input basename raster map(s)");
363  break;
364  case G_OPT_R_BASENAME_OUTPUT:
365  Opt->key = "output";
366  Opt->type = TYPE_STRING;
367  Opt->key_desc = "basename";
368  Opt->required = YES;
369  Opt->multiple = NO;
370  Opt->gisprompt = "new,cell,raster";
371  Opt->description = _("Name for output basename raster map(s)");
372  break;
373 
374  /*g3d maps */
375  case G_OPT_R3_INPUT:
376  Opt->key = "input";
377  Opt->type = TYPE_STRING;
378  Opt->key_desc = "name";
379  Opt->required = YES;
380  Opt->gisprompt = "old,grid3,raster_3d";
381  Opt->description = _("Name of input 3D raster map");
382  break;
383  case G_OPT_R3_INPUTS:
384  Opt->key = "input";
385  Opt->type = TYPE_STRING;
386  Opt->key_desc = "name";
387  Opt->required = YES;
388  Opt->multiple = YES;
389  Opt->gisprompt = "old,grid3,raster_3d";
390  Opt->description = _("Name of input 3D raster map(s)");
391  break;
392  case G_OPT_R3_OUTPUT:
393  Opt->key = "output";
394  Opt->type = TYPE_STRING;
395  Opt->key_desc = "name";
396  Opt->required = YES;
397  Opt->gisprompt = "new,grid3,raster_3d";
398  Opt->description = _("Name for output 3D raster map");
399  break;
400  case G_OPT_R3_MAP:
401  Opt->key = "map";
402  Opt->type = TYPE_STRING;
403  Opt->key_desc = "name";
404  Opt->required = YES;
405  Opt->gisprompt = "old,grid3,raster_3d";
406  Opt->description = _("Name of 3D raster map");
407  break;
408  case G_OPT_R3_MAPS:
409  Opt->key = "map";
410  Opt->type = TYPE_STRING;
411  Opt->key_desc = "name";
412  Opt->required = YES;
413  Opt->multiple = YES;
414  Opt->gisprompt = "old,grid3,raster_3d";
415  Opt->description = _("Name of 3D raster map(s)");
416  break;
417  case G_OPT_R3_TYPE:
418  Opt->key = "type";
419  Opt->type = TYPE_STRING;
420  Opt->required = NO;
421  Opt->multiple = NO;
422  Opt->answer = "default";
423  Opt->options = "default,double,float";
424  Opt->description = _("Data type used in the output raster3d map");
425  break;
426  case G_OPT_R3_PRECISION:
427  Opt->key = "precision";
428  Opt->type = TYPE_STRING;
429  Opt->required = NO;
430  Opt->multiple = NO;
431  Opt->answer = "default";
432  Opt->description =
433  _("Number of digits used as mantissa in the internal map storage, 0 -23 for float, 0 - 52 for double, max or default");
434  break;
435  case G_OPT_R3_COMPRESSION:
436  Opt->key = "compression";
437  Opt->type = TYPE_STRING;
438  Opt->required = NO;
439  Opt->multiple = NO;
440  Opt->answer = "default";
441  Opt->options = "default,zip,none";
442  Opt->description =
443  _("The compression method used in the output raster3d map");
444  break;
445  case G_OPT_R3_TILE_DIMENSION:
446  Opt->key = "tiledimension";
447  Opt->type = TYPE_STRING;
448  Opt->required = NO;
449  Opt->multiple = NO;
450  Opt->key_desc = "XxYxZ";
451  Opt->answer = "default";
452  Opt->description =
453  _("The dimensions of the tiles used in the output raster3d map (XxYxZ or default: 16x16x8)");
454  break;
455 
456  /*vector maps */
457  case G_OPT_V_INPUT:
458  Opt->key = "input";
459  Opt->type = TYPE_STRING;
460  Opt->key_desc = "name";
461  Opt->required = YES;
462  Opt->gisprompt = "old,vector,vector";
463  Opt->label = _("Name of input vector map");
464  Opt->description = _("Or data source for direct OGR access");
465  break;
466  case G_OPT_V_INPUTS:
467  Opt->key = "input";
468  Opt->type = TYPE_STRING;
469  Opt->key_desc = "name";
470  Opt->required = YES;
471  Opt->multiple = YES;
472  Opt->gisprompt = "old,vector,vector";
473  Opt->label = _("Name of input vector map(s)");
474  Opt->description = _("Or data source(s) for direct OGR access");
475  break;
476  case G_OPT_V_OUTPUT:
477  Opt->key = "output";
478  Opt->type = TYPE_STRING;
479  Opt->key_desc = "name";
480  Opt->required = YES;
481  Opt->gisprompt = "new,vector,vector";
482  Opt->description = _("Name for output vector map");
483  break;
484  case G_OPT_V_MAP:
485  Opt->key = "map";
486  Opt->type = TYPE_STRING;
487  Opt->key_desc = "name";
488  Opt->required = YES;
489  Opt->gisprompt = "old,vector,vector";
490  Opt->label = _("Name of vector map");
491  Opt->description = _("Or data source for direct OGR access");
492  break;
493  case G_OPT_V_MAPS:
494  Opt->key = "map";
495  Opt->type = TYPE_STRING;
496  Opt->key_desc = "name";
497  Opt->required = YES;
498  Opt->multiple = YES;
499  Opt->gisprompt = "old,vector,vector";
500  Opt->description = _("Name of vector map(s)");
501  break;
502  case G_OPT_V_TYPE:
503  Opt->key = "type";
504  Opt->type = TYPE_STRING;
505  Opt->required = NO;
506  Opt->multiple = YES;
507  Opt->answer = "point,line,boundary,centroid,area";
508  Opt->options = "point,line,boundary,centroid,area";
509  Opt->description = _("Input feature type");
510  break;
511  case G_OPT_V3_TYPE:
512  Opt->key = "type";
513  Opt->type = TYPE_STRING;
514  Opt->required = NO;
515  Opt->multiple = YES;
516  Opt->answer = "point,line,boundary,centroid,area,face,kernel";
517  Opt->options = "point,line,boundary,centroid,area,face,kernel";
518  Opt->description = _("Input feature type");
519  break;
520  case G_OPT_V_FIELD:
521  Opt->key = "layer";
522  Opt->type = TYPE_STRING;
523  Opt->required = NO;
524  Opt->answer = "1";
525  Opt->label = _("Layer number or name");
526  Opt->description =
527  _("Vector features can have category values in different layers."
528  " This number determines which layer to use. "
529  "When used with direct OGR access this is the layer name.");
530  Opt->gisprompt = "old,layer,layer";
531  break;
532  case G_OPT_V_FIELD_ALL:
533  Opt->key = "layer";
534  Opt->type = TYPE_STRING;
535  Opt->required = NO;
536  Opt->answer = "-1";
537  Opt->label = _("Layer number or name ('-1' for all layers)");
538  Opt->description =
539  _("A single vector map can be connected to multiple database "
540  "tables. This number determines which table to use. "
541  "When used with direct OGR access this is the layer name.");
542  Opt->gisprompt = "old,layer_all,layer";
543  break;
544  case G_OPT_V_CAT:
545  Opt->key = "cat";
546  Opt->type = TYPE_INTEGER;
547  Opt->required = NO;
548  Opt->description = _("Category value");
549  Opt->gisprompt = "old,cat,cats";
550  break;
551  case G_OPT_V_CATS:
552  Opt->key = "cats";
553  Opt->type = TYPE_STRING;
554  Opt->key_desc = "range";
555  Opt->required = NO;
556  Opt->label = _("Category values");
557  Opt->description = _("Example: 1,3,7-9,13");
558  Opt->gisprompt = "old,cats,cats";
559  break;
560  case G_OPT_V_ID:
561  Opt->key = "id";
562  Opt->type = TYPE_INTEGER;
563  Opt->required = NO;
564  Opt->description = _("Feature id");
565  break;
566  case G_OPT_V_IDS:
567  Opt->key = "ids";
568  Opt->type = TYPE_STRING;
569  Opt->key_desc = "range";
570  Opt->required = NO;
571  Opt->label = _("Feature ids");
572  Opt->description = _("Example: 1,3,7-9,13");
573  break;
574 
575  /* files */
576  case G_OPT_F_INPUT:
577  Opt->key = "input";
578  Opt->type = TYPE_STRING;
579  Opt->key_desc = "name";
580  Opt->required = YES;
581  Opt->gisprompt = "old,file,file";
582  Opt->description = _("Name of input file");
583  break;
584  case G_OPT_F_BIN_INPUT:
585  Opt->key = "input";
586  Opt->type = TYPE_STRING;
587  Opt->key_desc = "name";
588  Opt->required = YES;
589  Opt->gisprompt = "old,bin,file";
590  Opt->description = _("Name of input file");
591  break;
592  case G_OPT_F_OUTPUT:
593  Opt->key = "output";
594  Opt->type = TYPE_STRING;
595  Opt->key_desc = "name";
596  Opt->required = YES;
597  Opt->gisprompt = "new,file,file";
598  Opt->description = _("Name for output file");
599  break;
600  case G_OPT_F_SEP:
601  Opt->key = "separator";
602  Opt->type = TYPE_STRING;
603  Opt->key_desc = "character";
604  Opt->required = NO;
605  Opt->gisprompt = "old,separator,separator";
606  Opt->answer = "pipe";
607  Opt->label = _("Field separator");
608  Opt->description = _("Special characters: pipe, comma, space, tab, newline");
609  break;
610 
611  /* colors */
612  case G_OPT_C:
613  Opt->key = "color";
614  Opt->type = TYPE_STRING;
615  Opt->key_desc = "name";
616  Opt->required = NO;
617  Opt->answer = DEFAULT_FG_COLOR;
618  Opt->gisprompt = "old,color,color";
619  Opt->label = _("Color");
620  Opt->description =
621  _("Either a standard color name or R:G:B triplet");
622  break;
623  case G_OPT_CN:
624  Opt->key = "color";
625  Opt->type = TYPE_STRING;
626  Opt->key_desc = "name";
627  Opt->required = NO;
628  Opt->answer = DEFAULT_FG_COLOR;
629  Opt->gisprompt = "old,color_none,color";
630  Opt->label = _("Color");
631  Opt->description =
632  _("Either a standard color name, R:G:B triplet, or \"none\"");
633  break;
634 
635  /* misc */
636 
637  case G_OPT_M_DIR:
638  Opt->key = "input";
639  Opt->type = TYPE_STRING;
640  Opt->key_desc = "name";
641  Opt->required = YES;
642  Opt->gisprompt = "old,dir,dir";
643  Opt->description = _("Name of input directory");
644  break;
645 
646  case G_OPT_M_UNITS:
647  Opt->key = "units";
648  Opt->type = TYPE_STRING;
649  Opt->required = NO;
650  Opt->multiple = NO;
651  Opt->options =
652  "miles,feet,meters,kilometers,acres,hectares";
653  Opt->description = _("Units");
654  break;
655 
656  case G_OPT_M_DATATYPE:
657  Opt->key = "type";
658  Opt->key_desc = "datatype";
659  Opt->type = TYPE_STRING;
660  Opt->required = YES;
661  Opt->multiple = YES;
662  Opt->description = _("Data type(s)");
663  break;
664 
665  case G_OPT_M_MAPSET:
666  Opt->key = "mapset";
667  Opt->type = TYPE_STRING;
668  Opt->required = NO;
669  Opt->multiple = NO;
670  Opt->key_desc = "name";
671  Opt->gisprompt = "old,mapset,mapset";
672  Opt->label = _("Name of mapset (default: current search path)");
673  Opt->description = _("'.' for current mapset");
674  break;
675 
676  case G_OPT_M_LOCATION:
677  Opt->key = "location";
678  Opt->type = TYPE_STRING;
679  Opt->required = NO;
680  Opt->multiple = NO;
681  Opt->label = _("Location name");
682  Opt->description = _("Location name (not location path)");
683  Opt->gisprompt = "old,location,location";
684  Opt->key_desc = "name";
685  break;
686 
687  case G_OPT_M_DBASE:
688  Opt->key = "dbase";
689  Opt->type = TYPE_STRING;
690  Opt->required = NO;
691  Opt->multiple = NO;
692  Opt->label = _("GRASS GIS database directory");
693  Opt->description = _("Default: path to the current GRASS GIS database");
694  Opt->gisprompt = "old,dbase,dbase";
695  Opt->key_desc = "path";
696  break;
697 
698  case G_OPT_M_COORDS:
699  Opt->key = "coordinates";
700  Opt->type = TYPE_DOUBLE;
701  Opt->required = NO;
702  Opt->multiple = NO;
703  Opt->key_desc = "east,north";
704  Opt->gisprompt = "old,coords,coords";
705  Opt->description = _("Coordinates");
706  break;
707 
708  case G_OPT_M_COLR:
709  Opt->key = "color";
710  Opt->key_desc = "style";
711  Opt->type = TYPE_STRING;
712  Opt->required = NO;
713  Opt->options = G_color_rules_options();
714  Opt->description = _("Name of color table");
715  Opt->descriptions = G_color_rules_descriptions();
716  Opt->gisprompt = "old,colortable,colortable";
717  break;
718 
719  case G_OPT_M_NULL_VALUE:
720  Opt->key = "null_value";
721  Opt->key_desc = "string";
722  Opt->type = TYPE_STRING;
723  Opt->required = NO;
724  Opt->multiple = NO;
725  Opt->description = _("String representing NULL value");
726  break;
727 
728  case G_OPT_M_REGION:
729  Opt->key = "region";
730  Opt->type = TYPE_STRING;
731  Opt->key_desc = "name";
732  Opt->required = NO;
733  Opt->gisprompt = "old,windows,region";
734  Opt->description = _("Name of saved region");
735  break;
736 
737  /* Spatio-temporal modules of the temporal GIS framework */
738  case G_OPT_STDS_INPUT:
739  Opt->key = "input";
740  Opt->type = TYPE_STRING;
741  Opt->key_desc = "name";
742  Opt->required = YES;
743  Opt->gisprompt = "old,stds,stds";
744  Opt->description = _("Name of the input space time dataset");
745  break;
746  case G_OPT_STDS_INPUTS:
747  Opt->key = "inputs";
748  Opt->type = TYPE_STRING;
749  Opt->key_desc = "name";
750  Opt->required = YES;
751  Opt->multiple = YES;
752  Opt->gisprompt = "old,stds,stds";
753  Opt->description = _("Name of the input space time datasets");
754  break;
755  case G_OPT_STDS_OUTPUT:
756  Opt->key = "output";
757  Opt->type = TYPE_STRING;
758  Opt->key_desc = "name";
759  Opt->required = YES;
760  Opt->gisprompt = "new,stds,stds";
761  Opt->description = _("Name of the output space time dataset");
762  break;
763  case G_OPT_STRDS_INPUT:
764  Opt->key = "input";
765  Opt->type = TYPE_STRING;
766  Opt->key_desc = "name";
767  Opt->required = YES;
768  Opt->gisprompt = "old,strds,strds";
769  Opt->description = _("Name of the input space time raster dataset");
770  break;
771  case G_OPT_STRDS_INPUTS:
772  Opt->key = "inputs";
773  Opt->type = TYPE_STRING;
774  Opt->key_desc = "name";
775  Opt->required = YES;
776  Opt->multiple = YES;
777  Opt->gisprompt = "old,strds,strds";
778  Opt->description = _("Name of the input space time raster datasets");
779  break;
780  case G_OPT_STRDS_OUTPUT:
781  Opt->key = "output";
782  Opt->type = TYPE_STRING;
783  Opt->key_desc = "name";
784  Opt->required = YES;
785  Opt->gisprompt = "new,strds,strds";
786  Opt->description = _("Name of the output space time raster dataset");
787  break;
788  case G_OPT_STVDS_INPUT:
789  Opt->key = "input";
790  Opt->type = TYPE_STRING;
791  Opt->key_desc = "name";
792  Opt->required = YES;
793  Opt->gisprompt = "old,stvds,stvds";
794  Opt->description = _("Name of the input space time vector dataset");
795  break;
796  case G_OPT_STVDS_INPUTS:
797  Opt->key = "inputs";
798  Opt->type = TYPE_STRING;
799  Opt->key_desc = "name";
800  Opt->required = YES;
801  Opt->multiple = YES;
802  Opt->gisprompt = "old,stvds,stvds";
803  Opt->description = _("Name of the input space time vector datasets");
804  break;
805  case G_OPT_STVDS_OUTPUT:
806  Opt->key = "output";
807  Opt->type = TYPE_STRING;
808  Opt->key_desc = "name";
809  Opt->required = YES;
810  Opt->gisprompt = "new,stvds,stvds";
811  Opt->description = _("Name of the output space time vector dataset");
812  break;
813  case G_OPT_STR3DS_INPUT:
814  Opt->key = "input";
815  Opt->type = TYPE_STRING;
816  Opt->key_desc = "name";
817  Opt->required = YES;
818  Opt->gisprompt = "old,str3ds,str3ds";
819  Opt->description = _("Name of the input space time raster3d dataset");
820  break;
821  case G_OPT_STR3DS_INPUTS:
822  Opt->key = "inputs";
823  Opt->type = TYPE_STRING;
824  Opt->key_desc = "name";
825  Opt->required = YES;
826  Opt->multiple = YES;
827  Opt->gisprompt = "old,str3ds,str3ds";
828  Opt->description = _("Name of the input space time raster3d datasets");
829  break;
830  case G_OPT_STR3DS_OUTPUT:
831  Opt->key = "output";
832  Opt->type = TYPE_STRING;
833  Opt->key_desc = "name";
834  Opt->required = YES;
835  Opt->gisprompt = "new,str3ds,str3ds";
836  Opt->description = _("Name of the output space time raster3d dataset");
837  break;
838  case G_OPT_STDS_TYPE:
839  Opt->key = "type";
840  Opt->type = TYPE_STRING;
841  Opt->key_desc = "name";
842  Opt->required = NO;
843  Opt->answer = "strds";
844  Opt->options = "strds,stvds,str3ds";
845  Opt->description = _("Type of the input space time dataset");
846  break;
847  case G_OPT_MAP_INPUT:
848  Opt->key = "map";
849  Opt->type = TYPE_STRING;
850  Opt->key_desc = "name";
851  Opt->required = YES;
852  Opt->gisprompt = "old,map,map";
853  Opt->description = _("Name of the input map");
854  break;
855  case G_OPT_MAP_INPUTS:
856  Opt->key = "maps";
857  Opt->type = TYPE_STRING;
858  Opt->key_desc = "name";
859  Opt->required = YES;
860  Opt->multiple = YES;
861  Opt->gisprompt = "old,map,map";
862  Opt->description = _("Name of the input maps");
863  break;
864  case G_OPT_MAP_TYPE:
865  Opt->key = "type";
866  Opt->type = TYPE_STRING;
867  Opt->key_desc = "name";
868  Opt->required = NO;
869  Opt->answer = "raster";
870  Opt->options = "raster,vector,raster_3d";
871  Opt->description = _("Type of the input map");
872  break;
873  case G_OPT_T_TYPE:
874  Opt->key = "temporaltype";
875  Opt->type = TYPE_STRING;
876  Opt->key_desc = "name";
877  Opt->required = NO;
878  Opt->answer = "absolute";
879  Opt->options = "absolute,relative";
880  Opt->description = _("The temporal type of the space time dataset");
881  break;
882  case G_OPT_T_WHERE:
883  Opt->key = "where";
884  Opt->type = TYPE_STRING;
885  Opt->key_desc = "sql_query";
886  Opt->required = NO;
887  Opt->label = _("WHERE conditions of SQL statement without 'where' keyword used in the temporal GIS framework");
888  Opt->description = _("Example: start_time > '2001-01-01 12:30:00'");
889  break;
890  case G_OPT_T_SAMPLE:
891  Opt->key = "sampling";
892  Opt->type = TYPE_STRING;
893  Opt->key_desc = "name";
894  Opt->required = NO;
895  Opt->multiple = YES;
896  Opt->answer = "start";
897  Opt->options = "start,during,overlap,contain,equal,follows,precedes";
898  Opt->description = _("The method to be used for sampling the input dataset");
899  break;
900  }
901 
902  return Opt;
903 }
904 
905 /*!
906  \brief Create standardised Flag structure.
907 
908  This function will create a standardised Flag structure defined by
909  parameter <i>flag</i>. A list of valid parameters below. It
910  allocates memory for the Flag structure and returns a pointer to
911  this memory.
912 
913  If an invalid parameter was specified a empty Flag structure will be
914  returned (not NULL).
915 
916  - G_FLG_V_TABLE (do not create attribute table)
917  - G_FLG_V_TOPO (do not build topology)
918 
919  \param flag type of Flag struct to create specified by STD_FLG enum.
920 
921  \return pointer to an Flag struct
922 */
923 struct Flag *G_define_standard_flag(int flag)
924 {
925  struct Flag *Flg;
926 
927  Flg = G_define_flag();
928 
929  switch (flag) {
930  case G_FLG_V_TABLE:
931  Flg->key = 't';
932  Flg->description = _("Do not create attribute table");
933  break;
934  case G_FLG_V_TOPO:
935  Flg->key = 'b';
936  Flg->label = _("Do not build topology");
937  Flg->description = _("Advantageous when handling a large number of points");
938  break;
939  }
940 
941  return Flg;
942 }
struct Option * G_define_standard_option(int opt)
Create standardised Option structure.
int G_asprintf(char **out, const char *fmt,...)
Definition: asprintf.c:70
struct Flag * G_define_standard_flag(int flag)
Create standardised Flag structure.
struct Flag * G_define_flag(void)
Initializes a Flag struct.
Definition: parser.c:156
struct Option * G_define_option(void)
Initializes an Option struct.
Definition: parser.c:210
char * G_color_rules_descriptions(void)
Get color rules description for Option->descriptions.
Definition: color_rules.c:63
char * G_color_rules_options(void)
Get list of color rules for Option->options.
Definition: color_rules.c:25