[GRASSLIST:2916] Re: Reclassification problem (string with spaces) - solved
Christof Bigler
christof.bigler at colorado.edu
Thu Mar 11 22:55:51 EST 2004
Thanks to the many (internal) e-mails of swlab at cornell.edu, I could
find a solution for the reclassification problem:
r.stats -l in=wr.sud.5.bd.r | cut -d" " -f2- | sort | uniq | awk
'{print ($0 ": " NR)}' > wr.sud.5.bd.r.recl
$0 represents the whole line, with -f2- we get all the columns starting
from #2.
cat wr.sud.5.bd.r.recl
Burned: 1
Burned but surviving: 2
Unburned: 3
r.stats -l in=wr.sud.5.bd.r fs=: | awk -F":" 'BEGIN{while((getline line
< "wr.sud.5.bd.r.recl") > 0){split(line,A,":");R[A[1]]=A[2] }}{print
$1,"=",R[$2],$2}' > wr.sud.5.bd.r.recl2
The 'fs' option forces r.stats to use ':' as separator, -F":" forces
awk to use ':' as separator.
cat wr.sud.5.bd.r.recl2
34 = 3 Unburned
81 = 3 Unburned
87 = 3 Unburned
96 = 1 Burned
97 = 2 Burned but surviving
102 = 3 Unburned
...
cat wr.sud.5.bd.r.recl2 | r.reclass in=wr.sud.5.bd.r
out=wr.sud.5.bd.tmp.r
Christof
Department of Geography
University of Colorado
Boulder, Colorado 80309
On 11.03.2004, at 11:11, Christof Bigler wrote:
> Hi Grass list
>
> I encountered once again some problems with the reclassification of a
> raster map. The map has three category descriptions:
> "Burned", "Burned but surviving", "Unburned". The following problem
> occurs because of the spaces in "Burned but surviving".
>
> When I try to do the following:
> r.stats -l in=wr.sud.5.bd.r | cut -d" " -f2 | sort | uniq | awk
> '{print $1,NR}' > wr.sud.5.bd.r.recl
>
> I get only the following two categories:
> Burned 1
> Unburned 2
>
> which is not a big problem, since I just have to add the missing
> category:
> Unburned 1
> Burned but surviving 2
> Burned 3
>
> I then write a new reclassification rule:
> r.stats -l in=wr.sud.5.bd.r | awk 'BEGIN{while((getline line <
> "wr.sud.5.bd.r.recl") > 0){split(line,A," ");R[A[1]]=A[2] }}{print
> $1,"=",R[$2],$2}' > wr.sud.5.bd.r.recl2
>
> cat wr.sud.5.bd.r.recl2
> 34 = 1 Unburned
> 81 = 1 Unburned
> 87 = 1 Unburned
> 96 = 3 Burned
> 97 = 3 Burned
> 102 = 1 Unburned
> ...
>
> This looks ok, except of CAT_ID which should be "97 = 2 Burned but
> surviving". Again, I could change this manually, but this could be
> kind of tedious, particularly with long lists.
> Is there a way to prevent that strings with spaces between words are
> cut?
>
> Thanks for your help.
>
> Christof
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 2400 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/grass-user/attachments/20040311/774ccaf8/attachment.bin
More information about the grass-user
mailing list