[GRASS-dev] [GRASS GIS] #2053: r.recode: 0.0 or 1.0 as limits do not seem to be taken into account
GRASS GIS
trac at osgeo.org
Sun Jul 20 12:54:49 PDT 2014
#2053: r.recode: 0.0 or 1.0 as limits do not seem to be taken into account
------------------------------------------+---------------------------------
Reporter: nikosa | Owner: grass-dev@…
Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: unspecified
Keywords: r.recode, DCELL, CELL, rules | Platform: Unspecified
Cpu: Unspecified |
------------------------------------------+---------------------------------
Comment(by annakrat):
I've just run into this problem too. For some reason, r.recode tries to
guess the input type from the recode rules which seems to be nonsense and
leads to the errors above. -1.00 is considered as -1 and it reads the
values from the input map as integers although the map can be DCELL. A
simple change like this (they might be some more elegant way) seems to do
what everyone expects:
{{{
Index: read_rules.c
===================================================================
--- read_rules.c (revision 61256)
+++ read_rules.c (working copy)
@@ -50,7 +50,7 @@
DCELL oLow, oHigh, nLow, nHigh;
int line, n;
- in_type = out_type = CELL_TYPE;
+ in_type = Rast_map_type(name, "");
rules = (char **)G_malloc(INCR * sizeof(char *));
rule_size = INCR;
@@ -98,16 +98,12 @@
lookup the values in the quant table */
switch (sscanf(buf, "%lf:%lf:%lf:%lf", &oLow, &oHigh, &nLow,
&nHigh)) {
case 3:
- update_type(&in_type, oLow);
- update_type(&in_type, oHigh);
update_type(&out_type, nLow);
update_rules(buf);
Rast_fpreclass_add_rule(&rcl_struct, oLow, oHigh, nLow, nLow);
break;
case 4:
- update_type(&in_type, oLow);
- update_type(&in_type, oHigh);
update_type(&out_type, nLow);
update_type(&out_type, nHigh);
update_rules(buf);
}}}
It could be even enough if r.recode reads the map values as doubles always
and takes care just of the output map type.
--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2053#comment:2>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list