Hi,
the attached patch should fix the problem with floating point arithmetic.
Martin
2008/1/17, Leonardo Lami <[EMAIL PROTECTED]>:
> Hi all,
> i tried i.landsat.rgb on GRASS 6.3 but I have this error message and the
> color tables of the three raster are setted with all values white.
> I obtained this three brov raster from i.fusion.brovey applied on
> Landsat images.
>
> i.landsat.rgb -p [EMAIL PROTECTED] [EMAIL PROTECTED]
> [EMAIL PROTECTED] strength=90
> Processing [EMAIL PROTECTED] ..
> /usr/lib/grass/scripts/i.landsat.rgb: line 138: [: 36.9801: integer
> expression expected
> /usr/lib/grass/scripts/i.landsat.rgb: line 141: [: 15.7707: integer
> expression expected
> Processing [EMAIL PROTECTED] ..
> /usr/lib/grass/scripts/i.landsat.rgb: line 138: [: 39.6825: integer
> expression expected
> /usr/lib/grass/scripts/i.landsat.rgb: line 141: [: 15.1483: integer
> expression expected
> Processing [EMAIL PROTECTED] ..
> /usr/lib/grass/scripts/i.landsat.rgb: line 138: [: 24.107: integer
> expression expected
> /usr/lib/grass/scripts/i.landsat.rgb: line 141: [: 13.1111: integer
> expression expected
> Color table for <[EMAIL PROTECTED]> set to rules
> Color table for <[EMAIL PROTECTED]> set to rules
> Color table for <[EMAIL PROTECTED]> set to rules
>
>
> Thank you
> Leonardo
> _______________________________________________
> grass-user mailing list
> [email protected]
> http://lists.osgeo.org/mailman/listinfo/grass-user
>
--
Martin Landa <[EMAIL PROTECTED]> * http://gama.fsv.cvut.cz/~landa *
Index: scripts/i.landsat.rgb/i.landsat.rgb
===================================================================
--- scripts/i.landsat.rgb/i.landsat.rgb (revision 29738)
+++ scripts/i.landsat.rgb/i.landsat.rgb (working copy)
@@ -71,6 +71,12 @@
exit 1
fi
+# check if we have awk
+if [ ! -x "`which awk`" ] ; then
+ g.message -e "awk required, please install awk or gawk first"
+ exit 1
+fi
+
# save command line
if [ "$1" != "@ARGS_PARSED@" ] ; then
CMDLINE="`basename $0`"
@@ -116,7 +122,7 @@
if [ 0 -eq $GIS_FLAG_P ] ; then
for i in $RED $GREEN $BLUE ; do
- g.message "Processing [$i] .."
+ g.message "Processing <$i>..."
MIN=`r.univar -ge $i perc=2 | grep "^percentile_" | cut -d'=' -f2`
MAX=`r.univar -ge $i perc=$BRIGHTNESS | grep "^percentile_" | cut -d'=' -f2`
#echo "[$i]: min=$MIN max=$MAX"
@@ -131,18 +137,14 @@
ALL_MAX=0
ALL_MIN=255
for i in $RED $GREEN $BLUE ; do
- g.message "Processing [$i] .."
+ g.message "Processing <$i>..."
MIN=`r.univar -ge $i perc=2 | grep "^percentile_" | cut -d'=' -f2`
MAX=`r.univar -ge $i perc=$BRIGHTNESS | grep "^percentile_" | cut -d'=' -f2`
- #echo "[$i]: min=$MIN max=$MAX"
- if [ $MAX -gt $ALL_MAX ] ; then
- ALL_MAX=$MAX
- fi
- if [ $MIN -lt $ALL_MIN ] ; then
- ALL_MIN=$MIN
- fi
+ # echo "[$i]: min=$MIN max=$MAX"
+ ALL_MAX=`echo "$MAX $ALL_MAX" | awk '{if ($1 > $2) print $1; else print $2}'`
+ ALL_MIN=`echo "$MIN $ALL_MIN" | awk '{if ($1 < $2) print $1; else print $2}'`
done
- #echo "all_min=$ALL_MIN all_max=$ALL_MAX"
+ # echo "all_min=$ALL_MIN all_max=$ALL_MAX"
for i in $RED $GREEN $BLUE ; do
r.colors $i col=rules << EOF
0% black
_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user