[GRASS-user] Some questions about d.vect and d.rast

Johannes Radinger jradinger at gmx.at
Fri Apr 29 11:03:46 EDT 2011


Am 29.04.2011 um 16:05 schrieb Moritz Lennert:

> On 29/04/11 11:34, Moritz Lennert wrote:
>> On 29/04/11 00:37, Hamish wrote:
>>> Johannes wrote:
>>>> First I've two general questions about d.vect:
>>>> 1) Is it possible to use own symbol for the point icons?
>>> 
>>> see
>>> http://grass.osgeo.org/wiki/IconSymbols#Authoring_instructions
>>> 
>>>> 2) How can I change the line type (e.g dashed line, etc.)?
>>> 
>>> You can't. (only in ps.map)
>>> Maybe it will be possible in grass7?
>> 
>> One possible option (although admittedly somewhat brute force) is to use
>> v.to.points, playing with the dmax parameter in v.to.point or with the
>> symbol size to differentiate.
>> 
>> You can only use symbols that are the same in all directions (e.g.
>> circles) since the orientation of the symbol will not follow the
>> orientation of the line.
>> 
> 
> And more as proof-of-concept fun on Friday afternoon than anything serious (but who knows :-) ), here's a (convoluted) way to actually getting line patterns (using roadsmajor from NC demo data set) with d.vect:
> 
> #Split the lines into smaller segments to get more detailed azimuths
> v.split roadsmajor out=temp length=100
> 
> #attach unique categories to each new line segment in layer 2, create table for layer 2 and retrieve whatever info is interesting from the original roads attribute table (in our case we'll only use MULTILANE)
> v.category temp option=add layer=2 out=roads
> v.db.addtable roads layer=2
> v.db.addcol roads layer=2 col="multilane varchar(1)"
> v.to.db roads layer=2 qlayer=1 option=query qcolumn=MULTILANE columns=multilane
> 
> #add columns for azimuth (CC from north) and aziumthccw (CCW from east) and fill them
> v.db.addcol roads col="azimuth double precision" layer=2
> v.db.addcol roads col="azimuthccw double precision" layer=2
> 
> v.to.db roads option=azimuth colu=azimuth layer=2
> echo "update roads_2 set azimuthccw=450-azimuth where azimuth>90" | db.execute
> echo "update roads_2 set azimuthccw=90-azimuth where azimuth<=90" | db.execute
> 
> #transform lines into points
> v.to.points roads out=roadspoint dmax=100 llayer=2
> 
> #draw excerpt of the roads in a map with two linepatterns depending on multilane property
> 
> GRASS_RENDER_IMMEDIATE=TRUE
> GRASS_HEIGHT=960
> GRASS_WIDTH=1280
> 
> g.region n=233208 s=221687 w=624737 e=642078
> 
> d.vect roadspoint icon=linepatterns/line02 rot_column=azimuthccw where="multilane='n'"
> 
> export GRASS_PNG_READ=TRUE
> d.vect roadspoint icon=linepatterns/line10 rot_column=azimuthccw where="multilane='y'"
> 
> 
> And here are the symbols used
> 
> linepatterns/line02:
> 
> VERSION 1.0
> BOX -0.5 -0.5 0.5 0.5
> STRING
>  LINE
>     -0.1 0
>     0.1 0
>  END
> END
> 
> linepatterns/line10:
> 
> VERSION 1.0
> BOX -0.5 -0.5 0.5 0.5
> STRING
>  LINE
>     -0.5 0
>     0.5 0
>  END
> END
> 
> 
> The result is shown on the attached map.
> 
> Enjoy your weekend !
> ;-)


Oh really nice, I like that work around. :) Will test it this weekend but will also use ps.map.
Nice weekend as well!

/Johannes

> 
> Moritz--
> Institut de Gestion de l'Environnement et d'Aménagement du Territoire (IGEAT)
> Université Libre de Bruxelles
> Bvd du Triomphe, CP 246 (Campus Plaine)
> 1050 Bruxelles
> Belgique
> 
> tél. + 32 2 650.56.16 / 50.72 (secr.)
> fax  + 32 2 650.50.92
> <linepatterns.png>_______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-user



More information about the grass-user mailing list