[GRASS-dev] d.polar: optional EPS output added

Hi,

I have added a new "eps=" parameter to d.polar. This
writes the output to an EPS file instead of launching
'xgraph' (which isn't available on all systems by default).

Description:
Draws polar diagram of angle map such as aspect or flow directions
Usage:
d.polar map=name [undef=value] [eps=string]
Parameters:
    map Name of raster angle map
  undef Pixel value to be interpreted as undefined (different from NULL)
    eps Name of optional EPS output file

My colleague Brune Caprile wrote a LISP program for
me to generate the EPS code from the d.polar raw data,
I rewrite it to SHELL :slight_smile:

Now you can generate high quality polar diagrams.

Enjoy,

Markus

Markus wrote:

I have added a new "eps=" parameter to d.polar. This
writes the output to an EPS file instead of launching
'xgraph' (which isn't available on all systems by default).

Description:
Draws polar diagram of angle map such as aspect or flow directions
Usage:
d.polar map=name [undef=value] [eps=string]
Parameters:
    map Name of raster angle map
  undef Pixel value to be interpreted as undefined (different from NULL)
    eps Name of optional EPS output file

My colleague Brune Caprile wrote a LISP program for
me to generate the EPS code from the d.polar raw data,
I rewrite it to SHELL :slight_smile:

Now you can generate high quality polar diagrams.

(great!)

It would be nice if the xgraph part could be changed to use d.graph,
here is a start:

RADIUS_COEFF=`echo "$TOTALNUMBER $TOTALVALIDNUMBER $MAXRADIUS" | \
  awk '{printf "%.8f", $1/$2 * $3}'`

# ${TMP}_sine_cosine_replic
# ${TMP}_vector
# ${TMP}_outercircle

RING=0.95
cat ${TMP}_sine_cosine_replic | tail +2 | awk -v RING=$RING -v MAX=$MAXRADIUS \
    '{printf "%f %f\n", (($1 / MAX * RING) +1)*50, (($2 / MAX * RING)+1)*50}' \
       > ${TMP}_sine_cosine_replic_normalized

VECT=`cat ${TMP}_vector | tail -n 1 | awk -v RING=$RING -v MAX=$MAXRADIUS \
    '{printf "%f %f\n", (($1 / MAX * RING) +1)*50, (($2 / MAX * RING)+1)*50}'`

d.erase
d.graph << EOF
  # draw the goods
  color red
  polygon
   `cat ${TMP}_sine_cosine_replic_normalized`

  # draw axes
  color black
  width 0
  move 0 50
  draw 100 50
  move 50 0
  draw 50 100

  # draw circle
  # mandatory as drawing proportional to non-square frame

  # draw vector
  color green
  width 2
  move 50 50
  draw $VECT

  # draw compass text
  color black
  width 2
  move 50.5 95
  text N
# move 50.5 1
# text S
# move 1 50.5
# text W
# move 95 50.5
# text E
EOF

Hamish