Talk:Color tables: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
(few fixes & cosmetics) |
||
(One intermediate revision by one other user not shown) | |||
Line 4: | Line 4: | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
# customize this: | |||
ADDON_DIR="/path/to/grass/svn/grass-addons/raster/r.colors.tools/palettes" | |||
g.region n=100 s=0 w=0 e=450 res=1 | |||
d.mon x0 | d.mon x0 | ||
Line 10: | Line 15: | ||
COLOR_DIR="$GISBASE/etc/colors/" | COLOR_DIR="$GISBASE/etc/colors/" | ||
cd "$COLOR_DIR" | cd "$COLOR_DIR" | ||
RELATIVE=`grep '%' * | cut -f1 -d: | uniq` | RELATIVE=`grep '%' * | cut -f1 -d: | grep -v "matches" | uniq` | ||
ABSOLUTE=`grep -v '%' * | cut -f1 -d: | uniq` | ABSOLUTE=`grep -v '%' * | cut -f1 -d: | grep -v "matches" | uniq` | ||
MIXED=`grep '%' $ABSOLUTE | cut -f1 -d: | uniq` | MIXED=`grep '%' $ABSOLUTE | cut -f1 -d: | grep -v "matches" | uniq` | ||
GRASS_OVERWRITE=1 | |||
export GRASS_OVERWRITE | |||
OUTPUT_DIR=/tmp/grass/colortables/ | OUTPUT_DIR=/tmp/grass/colortables/ | ||
mkdir -p $ | rm -rf $OUTPUT_DIR | ||
mkdir -p $OUTPUT_DIR | |||
cd $OUTPUT_DIR | cd $OUTPUT_DIR | ||
Line 87: | Line 95: | ||
### custom scales | ### custom scales | ||
for CTABLE in `ls $ADDON_DIR` ; do | for CTABLE in `ls $ADDON_DIR` ; do | ||
MIN=`awk '{print $1}' "$ADDON_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | head -n 1` | MIN=`awk '{print $1}' "$ADDON_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | head -n 1` | ||
Line 100: | Line 107: | ||
done | done | ||
echo "Files written to <$OUTPUT_DIR>" | |||
</source> | |||
Script to generate mini-thumbnail versions:<BR> | |||
''by H.Bowman'' (GRASS wiki license) | |||
Requires GRASS 6.5+ newer than Sept. 2009. | |||
<source lang="bash"> | |||
#!/bin/sh | |||
# customize this: | |||
ADDON_DIR="/path/to/grass/svn/grass-addons/raster/r.colors.tools/palettes" | |||
g.region n=85 s=0 w=0 e=15 res=1 | |||
d.mon x0 | |||
d.resize h=85 w=15 | |||
COLOR_DIR="$GISBASE/etc/colors/" | |||
cd "$COLOR_DIR" | |||
RELATIVE=`grep '%' * | cut -f1 -d: | grep -v "matches" | uniq` | |||
ABSOLUTE=`grep -v '%' * | cut -f1 -d: | grep -v "matches" | uniq` | |||
MIXED=`grep '%' $ABSOLUTE | cut -f1 -d: | grep -v "matches" | uniq` | |||
GRASS_OVERWRITE=1 | |||
export GRASS_OVERWRITE | |||
OUTPUT_DIR=/tmp/grass/colortables/ | |||
rm -rf $OUTPUT_DIR | |||
mkdir -p $OUTPUT_DIR | |||
cd $OUTPUT_DIR | |||
draw_and_output() | |||
{ | |||
d.erase | |||
d.colortable -n grad | |||
d.out.file Colortable_$1 --quiet --overwrite | |||
convert -rotate 90 Colortable_$1.png Colortable_$1.png | |||
} | |||
### relative scales. run first so tables like differences with both | |||
### will overwrite | |||
g.region -d res=600 -a | |||
r.mapcalc "grad = row()/1.0" | |||
for CTABLE in $RELATIVE ; do | |||
echo "[$CTABLE]" | |||
r.colors grad color=$CTABLE --quiet | |||
draw_and_output $CTABLE | |||
#read | |||
done | |||
### absolute scales. | |||
for CTABLE in $ABSOLUTE ; do | |||
MIN=`awk '{print $1}' "$COLOR_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | head -n 1` | |||
MAX=`awk '{print $1}' "$COLOR_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | tail -n 1` | |||
if [ `echo "$MIN" | grep -c '%'` -gt 0 ] || \ | |||
[ `echo "$MAX" | grep -c '%'` -gt 0 ] ; then | |||
continue | |||
fi | |||
if [ $CTABLE = "population" ] ; then | |||
MAX=2500000 | |||
fi | |||
echo "[$CTABLE $MIN $MAX]" | |||
GRASS_VERBOSE=0 \ | |||
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)" | |||
r.colors grad color=$CTABLE --quiet | |||
draw_and_output $CTABLE | |||
done | |||
### mixed scales | |||
for CTABLE in $MIXED ; do | |||
MIN=-0.04 | |||
MAX=0.04 | |||
GRASS_VERBOSE=0 \ | |||
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)" | |||
r.colors grad color=$CTABLE --quiet | |||
draw_and_output $CTABLE | |||
done | |||
### custom scales | |||
for CTABLE in `ls $ADDON_DIR` ; do | |||
MIN=`awk '{print $1}' "$ADDON_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | head -n 1` | |||
MAX=`awk '{print $1}' "$ADDON_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | tail -n 1` | |||
echo "[$CTABLE $MIN $MAX]" | |||
GRASS_VERBOSE=0 \ | |||
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)" | |||
r.colors grad rules="$ADDON_DIR/$CTABLE" --quiet | |||
draw_and_output $CTABLE | |||
done | |||
echo "Files written to <$OUTPUT_DIR>" | |||
</source> | </source> |
Latest revision as of 20:58, 13 September 2009
Script to generate the images on this page:
by H.Bowman (GRASS wiki license)
#!/bin/sh
# customize this:
ADDON_DIR="/path/to/grass/svn/grass-addons/raster/r.colors.tools/palettes"
g.region n=100 s=0 w=0 e=450 res=1
d.mon x0
d.resize h=100 w=450
COLOR_DIR="$GISBASE/etc/colors/"
cd "$COLOR_DIR"
RELATIVE=`grep '%' * | cut -f1 -d: | grep -v "matches" | uniq`
ABSOLUTE=`grep -v '%' * | cut -f1 -d: | grep -v "matches" | uniq`
MIXED=`grep '%' $ABSOLUTE | cut -f1 -d: | grep -v "matches" | uniq`
GRASS_OVERWRITE=1
export GRASS_OVERWRITE
OUTPUT_DIR=/tmp/grass/colortables/
rm -rf $OUTPUT_DIR
mkdir -p $OUTPUT_DIR
cd $OUTPUT_DIR
draw_and_output()
{
d.erase
d.font Vera
d.legend grad -c at=55,90,4,96 --quiet
echo "$1" | d.text at=50,22 align=lc size=20 color=black
d.out.file Colortable_$1 --quiet --overwrite
}
### relative scales. run first so tables like differences with both
### will overwrite
r.mapcalc "grad = row()/1.0"
for CTABLE in $RELATIVE ; do
echo "[$CTABLE]"
r.colors grad color=$CTABLE --quiet
draw_and_output $CTABLE
#read
done
### absolute scales.
for CTABLE in $ABSOLUTE ; do
MIN=`awk '{print $1}' "$COLOR_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | head -n 1`
MAX=`awk '{print $1}' "$COLOR_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | tail -n 1`
if [ `echo "$MIN" | grep -c '%'` -gt 0 ] || \
[ `echo "$MAX" | grep -c '%'` -gt 0 ] ; then
continue
fi
if [ $CTABLE = "population" ] ; then
MAX=2500000
fi
echo "[$CTABLE $MIN $MAX]"
GRASS_VERBOSE=0 \
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)"
r.colors grad color=$CTABLE --quiet
draw_and_output $CTABLE
done
### mixed scales
for CTABLE in $MIXED ; do
MIN=-0.04
MAX=0.04
GRASS_VERBOSE=0 \
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)"
r.colors grad color=$CTABLE --quiet
draw_and_output $CTABLE
done
### custom scales
for CTABLE in `ls $ADDON_DIR` ; do
MIN=`awk '{print $1}' "$ADDON_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | head -n 1`
MAX=`awk '{print $1}' "$ADDON_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | tail -n 1`
echo "[$CTABLE $MIN $MAX]"
GRASS_VERBOSE=0 \
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)"
r.colors grad rules="$ADDON_DIR/$CTABLE" --quiet
draw_and_output $CTABLE
done
echo "Files written to <$OUTPUT_DIR>"
Script to generate mini-thumbnail versions:
by H.Bowman (GRASS wiki license)
Requires GRASS 6.5+ newer than Sept. 2009.
#!/bin/sh
# customize this:
ADDON_DIR="/path/to/grass/svn/grass-addons/raster/r.colors.tools/palettes"
g.region n=85 s=0 w=0 e=15 res=1
d.mon x0
d.resize h=85 w=15
COLOR_DIR="$GISBASE/etc/colors/"
cd "$COLOR_DIR"
RELATIVE=`grep '%' * | cut -f1 -d: | grep -v "matches" | uniq`
ABSOLUTE=`grep -v '%' * | cut -f1 -d: | grep -v "matches" | uniq`
MIXED=`grep '%' $ABSOLUTE | cut -f1 -d: | grep -v "matches" | uniq`
GRASS_OVERWRITE=1
export GRASS_OVERWRITE
OUTPUT_DIR=/tmp/grass/colortables/
rm -rf $OUTPUT_DIR
mkdir -p $OUTPUT_DIR
cd $OUTPUT_DIR
draw_and_output()
{
d.erase
d.colortable -n grad
d.out.file Colortable_$1 --quiet --overwrite
convert -rotate 90 Colortable_$1.png Colortable_$1.png
}
### relative scales. run first so tables like differences with both
### will overwrite
g.region -d res=600 -a
r.mapcalc "grad = row()/1.0"
for CTABLE in $RELATIVE ; do
echo "[$CTABLE]"
r.colors grad color=$CTABLE --quiet
draw_and_output $CTABLE
#read
done
### absolute scales.
for CTABLE in $ABSOLUTE ; do
MIN=`awk '{print $1}' "$COLOR_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | head -n 1`
MAX=`awk '{print $1}' "$COLOR_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | tail -n 1`
if [ `echo "$MIN" | grep -c '%'` -gt 0 ] || \
[ `echo "$MAX" | grep -c '%'` -gt 0 ] ; then
continue
fi
if [ $CTABLE = "population" ] ; then
MAX=2500000
fi
echo "[$CTABLE $MIN $MAX]"
GRASS_VERBOSE=0 \
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)"
r.colors grad color=$CTABLE --quiet
draw_and_output $CTABLE
done
### mixed scales
for CTABLE in $MIXED ; do
MIN=-0.04
MAX=0.04
GRASS_VERBOSE=0 \
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)"
r.colors grad color=$CTABLE --quiet
draw_and_output $CTABLE
done
### custom scales
for CTABLE in `ls $ADDON_DIR` ; do
MIN=`awk '{print $1}' "$ADDON_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | head -n 1`
MAX=`awk '{print $1}' "$ADDON_DIR/$CTABLE" | sort -n | grep -v '^#\|^nv' | tail -n 1`
echo "[$CTABLE $MIN $MAX]"
GRASS_VERBOSE=0 \
r.mapcalc "grad = if(row()==1, 1.0 * $MIN, $MAX)"
r.colors grad rules="$ADDON_DIR/$CTABLE" --quiet
draw_and_output $CTABLE
done
echo "Files written to <$OUTPUT_DIR>"