[GRASSLIST:5828] mapcalc region growing
Jachym Cepicky
jachym.cepicky at centrum.cz
Thu Feb 17 07:41:34 EST 2005
Hallo,
I'm trying to provide some region-growing r.mapcalc script. But that thing does
not work properly and I don't know why.
The script look's like
rg1 = if(sum.spicky[-1,-1] >= 1 && (sum[-1,-1] > sum[1,1]),1, \
if(sum.spicky[-1,0] >= 1 && (sum[-1,0] > sum[1,0]),1, \
if(sum.spicky[-1,1] >= 1 && (sum[-1,1] > sum[1,-1]),1, \
if(sum.spicky[0,-1] >= 1 && (sum[0,-1] > sum[0,1]),1, \
if(sum.spicky[0,1] >= 1 && (sum[0,1] > sum[0,-1]),1, \
if(sum.spicky[1,-1] >= 1 && (sum[1,-1] > sum[-1,1]),1,\
if(sum.spicky[1,0] >= 1 && (sum[1,0] > sum[-1,0]),1, \
if(sum.spicky[1,1] >= 1 && (sum[1,1] > sum[-1,-1]),1,null()))))))))
It shloud be 3x3 matrix:
If one of the boundary (not-central) pixel from the seed map (sum.spicky)
is >= 1
If there is gradient on the input (sum) map in the right direction
1
else
null()
else
null()
Some pictures to see, what is happening:
black and white input raster (sum) with green seeds (sum.spicky)
http://www.fle.czu.cz/~jachym/tmp/sum.png
the same rasters with red rg1 map
http://www.fle.czu.cz/~jachym/tmp/sum_rg1.png
The 'growth region' (red points) matches only the first line of the script
if(sum.spicky[-1,-1] >= 1 && (sum[-1,-1] > sum[1,1]),1,
If I try to run e.g. the thirth line separately from the others
"rg1 = if(sum.spicky[0,-1] >= 1 && (sum[0,-1] > sum[0,1]),1,null())"
it works fine, but not if there some other 'if' in front of it...
Please, where could be the problem?
Jáchym
--
Jachym Cepicky
e-mail: jachym.cepicky at centrum.cz
URL: http://les-ejk.cz
GPG: http://www.fle.czu.cz/~jachym/gnupg_public_key/
More information about the grass-user
mailing list