On 07/04/09 00:20, Vishal Mehta wrote:
An update: I got it to ALMOST work using the script below.

So this means you are not getting segfaults anymore ?

Am attaching the animated gif. But 2 issues remain:
1. I'd like to get a nice legend to display on top right of each display/png

Did you try the legendfile= parameter of d.thematic.area ? This creates an instructions file which you can feed into d.graph. Feedback on this is more than welcome and we can tweak that output according to your experience. The instructions file is pure text, so you can easily play around with it to find the right settings.

2. I am getting an error as follows for each iteration, even though the output png's are being exported
/yr is 2090
PNG: GRASS_TRUECOLOR status: TRUE
PNG: collecting to file: pc2090.png,
GRASS_WIDTH=4097, GRASS_HEIGHT=3775
Graphics driver [PNG] started
ERROR: Only X monitors are supported.

This comes from the use of d.out.file which is useless in your script. d.out.file takes all the commands used to display features on an X-monitor and displays them to a PNG. But when you use a PNG-"Monitor" you are already writing to a file. Just take out the call to d.out.file and you should get the same results without the error message.

Moritz

Monitor 'PNG' terminated
yr is 2100
PNG: GRASS_TRUECOLOR status: TRUE
PNG: collecting to file: pc2100.png,
GRASS_WIDTH=4097, GRASS_HEIGHT=3775
Graphics driver [PNG] started
ERROR: Only X monitors are supported.
Monitor 'PNG' terminated
/

I know you're busy, so whenever you can respond is totally fine- Vishal
-----SCRIPT FOLLOWS----
#!/bin/bash
#generate 5yr interval thematic pngs of low series PPIC population projections
# get current region settings from thematic map of interest
g.region vect=CountyPop2 # Store current environment
OLD_GRASS_WIDTH=$GRASS_WIDTH
OLD_GRASS_HEIGHT=$GRASS_HEIGHT
OLD_GRASS_PNGFILE=$GRASS_PNGFILE
OLD_GRASS_TRANSPARENT=$GRASS_TRANSPARENT
OLD_GRASS_TRUECOLOR=$GRASS_TRUECOLOR
LEGEND_WIDTH=500
LEGEND_HEIGHT=500
LEGEND_TEXT_COLOR=white
BACKGROUND_COLOR=black
# define the driver settings
export GRASS_WIDTH=`g.region -g | grep "cols" | cut -d= -f2`
export GRASS_HEIGHT=`g.region -g | grep "rows" | cut -d= -f2`
export GRASS_TRANSPARENT=FALSE ## if transparent the text overlaps in the animated gif created at the end
export GRASS_TRUECOLOR=TRUE ##
yr=2010
while [ $yr -lt 2105 ] ; do

echo "yr is $yr "
export GRASS_PNGFILE=pc$yr.png
d.mon start=PNG
d.mon select=PNG
d.thematic.area map=CountyPop2 column=pc$yr breaks=20,40,60 colors=cyan,blue,yellow,red
d.text -b text="$yr Population" at=50,90 size=4
d.out.file output=$GRASS_PNGFILE format=png
d.mon stop=PNG
#
if [ $yr -eq 2090 ]; then yr=$((yr+10)); else yr=$((yr+5)); fi;
done
#create an animated gif using Image Magick, delay 20/100 sec loop endless
convert -delay 20 -loop 0 *.png population.gif
------
---------------------------------------


On Mon, Apr 6, 2009 at 10:32 AM, Moritz Lennert <mlenn...@club.worldonline.be <mailto:mlenn...@club.worldonline.be>> wrote:

    Thanks. I'll try to look into this as soon as I find the time (but
    am busy writing a report for a large research project right now...).
    Which version of GRASS are you using ?

    Moritz


    On 06/04/09 19:16, Vishal Mehta wrote:

        Moritz, thanks much for your interest in this.

        I'm attaching the shapefile that I used in these past
        conversations. Its California counties, in Latlong WGS84. column
        'pop2000' is 200 population. columns pc2005 to pc2100 are
        percentage changes from pop2000. note that pc2095 is missing
        (the data source is like that).

        All i'm trying to do is create a nice thematic map with
        consistent colors, and a nice legend; which i'll then convert
        into an animated kml. I've done this with rasters: i can share
        that with you as well.

        i've started a blog to put up some of this stuff:
        algoesalgo.wordpress.com <http://algoesalgo.wordpress.com>
        <http://algoesalgo.wordpress.com>

        Thanks again,
        Vishal


        On Mon, Apr 6, 2009 at 5:29 AM, Moritz Lennert
        <mlenn...@club.worldonline.be
        <mailto:mlenn...@club.worldonline.be>
        <mailto:mlenn...@club.worldonline.be
        <mailto:mlenn...@club.worldonline.be>>> wrote:

           Hi again,

           Would it be possible to send me your files offlist, so that I can
           try to reproduce the error ? Or you could see if you can
        reproduce
           it with one of the GRASS demo datasets ?

           Moritz


           On 04/04/09 01:13, Vishal Mehta wrote:

               A couple of strange behaviors with a test vector dataset
        whose
               columns are population projections every 5 years:
               I ran the following script below but:
               1. I see it working ok on the x0 monitor; but the output png
               files are all blank..
               2. and i get messages while the script is running that
        include
               'segmentation fault' but not on EVERY iteration of the loop..

               ---------------------script-------
               #!/bin/bash
               #generate 5yr interval thematic pngs of low series PPIC
               population projectiosn
               yr=2010
               while [ $yr -lt 2105 ] ; do

               #actions here
               echo "yr is $yr "

               d.thematic.area map=CountyPop column=pc$yr breaks=20,40,60
               colors=cyan,blue,yellow,red
               d.out.file output=pop$yr format=png
               #
               yr=$((yr+5))
               done
               ------------------------messages while running above
        script-----

               ---
               yr is 2020
               Segmentation fault
               Saving display from Monitor: [x0] to <pop2020.png>.
               Image size [640 x 480]
               Screen export complete. (writing the file may take a small
               amount of time)
               Image crop [523 x 480]
               Done.
               yr is 2025
               Segmentation fault
               Saving display from Monitor: [x0] to <pop2025.png>.
               Image size [640 x 480]
               Screen export complete. (writing the file may take a small
               amount of time)
               Image crop [523 x 480]
               Done.
               yr is 2030
               Segmentation fault
               Saving display from Monitor: [x0] to <pop2030.png>.
               Image size [640 x 480]
               Screen export complete. (writing the file may take a small
               amount of time)
               Image crop [523 x 480]
               Done.
               yr is 2035
               Saving display from Monitor: [x0] to <pop2035.png>.
               Image size [640 x 480]
               Screen export complete. (writing the file may take a small
               amount of time)
               Image crop [523 x 480]
               Done.
               yr is 2040
               Saving display from Monitor: [x0] to <pop2040.png>.
               Image size [640 x 480]
               Screen export complete. (writing the file may take a small
               amount of time)
               Image crop [523 x 480]
               Done.
               yr is 2045
               Saving display from Monitor: [x0] to <pop2045.png>.
               Image size [640 x 480]
               Screen export complete. (writing the file may take a small
               amount of time)
               Image crop [523 x 480]
               Done.
               ------

               On Thu, Apr 2, 2009 at 11:54 PM, Moritz Lennert
               <mlenn...@club.worldonline.be
        <mailto:mlenn...@club.worldonline.be>
               <mailto:mlenn...@club.worldonline.be
        <mailto:mlenn...@club.worldonline.be>>
               <mailto:mlenn...@club.worldonline.be
        <mailto:mlenn...@club.worldonline.be>
               <mailto:mlenn...@club.worldonline.be
        <mailto:mlenn...@club.worldonline.be>>>> wrote:

                  On 03/04/09 00:23, Vishal Mehta wrote:

                      Hello all,

                      I am better at GRASS raster capabilities than with
        GRASS
               vector
                      handling, so I am writing to get your help.

                      What I want to do is this:
                      1. I will have one vector dataset of watersheds. Each
               record is
                      a polygon, an individual watershed. There are,
        apart from the
                      usual cat fields, 52 attribute columns. Each attribute
               column is
                      modeled weekly snow depth.

                      2. I need to automate the display and export to
        png of 52
                      thematic images - one for each week/column -
        keeping the
               color
                      scheme constant throughout. Then all of the images
        will be
                      packaged into a kml animation.

                      I know how to do the above starting from a stack
        of GRASS
                      rasters, but am not quickly getting a handle on
               displaying GRASS
                      vectors consistently. I've tried d.vect and
               d.vect.thematic. I
                      havent tried d.thematic.area yet.

                      The main issues are that I dont know:
                      - how to assign a constant color scheme  to each map
               (that spans
                      the min and max of all columns); i guess i was
        looking for
                      something as simple as setting color rules like with
               raster data.


                  If you want constant class breaks, i.e. the same class
        number and
                  amplitudes linked to the same colors, then you can
        just manually
                  provide breaks and colors in d.thematic.area.


                       - how to refer to each attribute column by column
        number
               in a
                      loop (d.vect.thematic and d.thematic.area  seem to
        need
               column
                      name as attribute)


                  (assuming you are in a *nix environment with a shell):
                  for col in `v.info <http://v.info> <http://v.info>
        <http://v.info> -c

               MapName`; do d.thematic.area
                  .... column=$col; done
                  (note the backticks around the v.info <http://v.info>
        <http://v.info>
               <http://v.info> command))


                  Moritz




               --        Vishal K. Mehta, PhD
               Scientist
               Stockholm Environment Institute - US
               133 D St Suite F
               Davis CA 95616
               www.sei-us.org <http://www.sei-us.org>
        <http://www.sei-us.org> <http://www.sei-us.org>






-- Vishal K. Mehta, PhD
        Scientist
        Stockholm Environment Institute - US
        133 D St Suite F
        Davis CA 95616
        www.sei-us.org <http://www.sei-us.org> <http://www.sei-us.org>





--
Vishal K. Mehta, PhD
Scientist
Stockholm Environment Institute - US
133 D St Suite F
Davis CA 95616
www.sei-us.org <http://www.sei-us.org>

------------------------------------------------------------------------


_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to