[GRASS-stats] v.reclass
Agustin Lobo
alobolistas at gmail.com
Tue Sep 15 08:40:28 EDT 2009
Hi again,
As a result of an R process, I have to reclassify
the input vector layer. Normally, I would do it
in R, but as the vector is huge, I prefer making the
rules file in R and use v.reclass in grass.
My goal is to reclassify field VALUE of vector Montseny07 according
to a table generated in R:
> b3rec[1:3,]
v
[1,] "18" "274"
[2,] "22" "274"
[3,] "117" "274
so that VALUE 18 would become 274 and so on.
I've made the following in R to create the rules file:
z <- file("delme.txt", "w")
for (i in 1:nrow(b3rec)){
writeLines(text=paste("VALUE",b3rec[i,2]), con = z, sep = "\n")
writeLines(text=paste("WHERE VALUE=",b3rec[i,1],sep=""), con=z, sep
= "\n")
}
close(z)
which creates a file delme.txt such as:
VALUE 274
WHERE VALUE=18
VALUE 274
WHERE VALUE=22
VALUE 274
WHERE VALUE=117
VALUE 274
WHERE VALUE=146
...
My understanding of this rules file was that
where we had VALUE 18, we would have VALUE 274
Nevertheless, when I run v.reclass, I get an error:
> system("v.reclass Montseny07 rules=delme.txt out=Monstseny07b3rec")
ERROR: Unknown rule option: 'VALUE'
So I remade the rules files using
cat 274
WHERE VALUE=18
etc
but then I get a vector object with a table with only one field cat. I
would prefer
having the same table as in the original vector, just with some of the
values
in field VALUE modified according to the rules file. Is there a way of
doing that?
Also, is there the equivalent to "* = *" in r.reclass to get the rest
of values unchanged?
Thanks!
Agus
More information about the grass-stats
mailing list