|
@@ -52,11 +52,11 @@ int main(int argc, char *argv[])
|
|
|
struct GModule *module;
|
|
|
struct
|
|
|
{
|
|
|
- struct Option *input, *output, *title, *mult, *nv;
|
|
|
+ struct Option *input, *output, *title, *mult, *nv, *type;
|
|
|
} parm;
|
|
|
struct
|
|
|
{
|
|
|
- struct Flag *i, *f, *d, *s;
|
|
|
+ struct Flag *s;
|
|
|
} flag;
|
|
|
char *null_val_str;
|
|
|
DCELL mult;
|
|
@@ -80,6 +80,14 @@ int main(int argc, char *argv[])
|
|
|
|
|
|
parm.output = G_define_standard_option(G_OPT_R_OUTPUT);
|
|
|
|
|
|
+ parm.type = G_define_option();
|
|
|
+ parm.type->key = "type";
|
|
|
+ parm.type->type = TYPE_STRING;
|
|
|
+ parm.type->required = NO;
|
|
|
+ parm.type->options = "CELL,FCELL,DCELL";
|
|
|
+ parm.type->label = _("Storage type for resultant raster map");
|
|
|
+ parm.type->description = _("Default: CELL for integer values, DCELL for floating-point values");
|
|
|
+
|
|
|
parm.title = G_define_option();
|
|
|
parm.title->key = "title";
|
|
|
parm.title->key_desc = "phrase";
|
|
@@ -103,21 +111,6 @@ int main(int argc, char *argv[])
|
|
|
parm.nv->label = _("String representing NULL value data cell");
|
|
|
parm.nv->guisection = _("NULL data");
|
|
|
|
|
|
- flag.i = G_define_flag();
|
|
|
- flag.i->key = 'i';
|
|
|
- flag.i->description = _("Integer values are imported");
|
|
|
- flag.i->guisection = _("Data type");
|
|
|
-
|
|
|
- flag.f = G_define_flag();
|
|
|
- flag.f->key = 'f';
|
|
|
- flag.f->description = _("Floating point values are imported");
|
|
|
- flag.f->guisection = _("Data type");
|
|
|
-
|
|
|
- flag.d = G_define_flag();
|
|
|
- flag.d->key = 'd';
|
|
|
- flag.d->description = _("Double floating point values are imported");
|
|
|
- flag.d->guisection = _("Data type");
|
|
|
-
|
|
|
flag.s = G_define_flag();
|
|
|
flag.s->key = 's';
|
|
|
flag.s->description =
|
|
@@ -145,16 +138,20 @@ int main(int argc, char *argv[])
|
|
|
null_val_str = parm.nv->answer;
|
|
|
|
|
|
data_type = -1;
|
|
|
- if (flag.i->answer) { /* interger data */
|
|
|
- data_type = CELL_TYPE;
|
|
|
- }
|
|
|
- if (flag.f->answer) { /* floating-point data */
|
|
|
- data_type = FCELL_TYPE;
|
|
|
- }
|
|
|
- if (flag.d->answer) { /* double data; overwrite others */
|
|
|
- data_type = DCELL_TYPE;
|
|
|
+ if (parm.type->answer) {
|
|
|
+ switch(parm.type->answer[0]) {
|
|
|
+ case 'C':
|
|
|
+ data_type = CELL_TYPE;
|
|
|
+ break;
|
|
|
+ case 'F':
|
|
|
+ data_type = FCELL_TYPE;
|
|
|
+ break;
|
|
|
+ case 'D':
|
|
|
+ data_type = DCELL_TYPE;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (strcmp(input, "-") == 0) {
|
|
|
Tmp_file = G_tempfile();
|
|
|
if (NULL == (Tmp_fd = fopen(Tmp_file, "w+")))
|