Talk:Color tables: Difference between revisions
Jump to navigation
Jump to search
(thumbs) |
(few fixes & cosmetics) |
||
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> | </source> | ||
Line 109: | Line 118: | ||
<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=85 s=0 w=0 e=15 res=1 | |||
d.mon x0 | d.mon x0 | ||
d.resize h=85 w=15 | d.resize h=85 w=15 | ||
Line 115: | Line 129: | ||
COLOR_DIR="$GISBASE/etc/colors/" | COLOR_DIR="$GISBASE/etc/colors/" | ||
cd "$COLOR_DIR" | cd "$COLOR_DIR" | ||
RELATIVE=`grep '%' * | cut -f1 -d: | uniq` | |||
ABSOLUTE=`grep -v '%' * | cut -f1 -d: | uniq` | RELATIVE=`grep '%' * | cut -f1 -d: | grep -v "matches" | uniq` | ||
MIXED=`grep '%' $ABSOLUTE | cut -f1 -d: | 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/ | OUTPUT_DIR=/tmp/grass/colortables/ | ||
mkdir -p $ | rm -rf $OUTPUT_DIR | ||
mkdir -p $OUTPUT_DIR | |||
cd $OUTPUT_DIR | cd $OUTPUT_DIR | ||
draw_and_output() | draw_and_output() | ||
Line 189: | Line 206: | ||
### 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 202: | Line 218: | ||
done | 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>"