[GRASSLIST:3992] Re: how to access built-in vector attributes (GRASS 5.7)?
Markus Neteler
neteler at itc.it
Thu Jul 22 08:06:29 EDT 2004
On Wed, Jul 21, 2004 at 03:59:41PM -0500, William K wrote:
> Or whatever they're called. Right now I'm looking at lines. When you
> d.what.vect, it shows cats, fields and attributes, and length and line
> height. I haven't checked polgons yet, but I'm guessing they have
> perimeter and area instead of length.
>
> 1. I would like to v.extract to extract lines above a certain length -
> ie weed out those short blips.
You need to use v.to.db.
1. use db.execute create a new table:
Example:
echo "CREATE TABLE roadlength (cat integer, linelength double)" | db.execute
Link this table as second table to your map:
#check current settings:
v.db.connect -p roads2
#link new table:
v.db.connect m=roads2 dr=dbf data='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf' \
key=cat table=roadlength field=2
2. Verify that the new tables exists now:
v.info -c roads2
v.info -c roads2 field=2
3. Generate new categories in the map:
v.category roads2 out=roadsnew field=2 option=add
v.category input=roadsnew option=report
# should report something like this (for field=2):
# type count min max
# line 825 1 825
# -> 825 lines in this map
4. Populate new attribute table with CATs for each vector line:
(make it corresponding to map)
v.to.db map=roadsnew field=2 option=cat type=line col1=cat
5. Upload line lengths of each vector line to attribute table:
v.to.db map=roadsnew field=2 option=length type=line col1=linelength units=me
6. Check with
d.erase
d.vect roadsnew
d.what.vect
7. Extract data (here: shorter than 2000meters):
v.extract roadsnew out=roadsnew_short field=2 where="linelength < 2000"
d.vect roadsnew_short col=red
Note: Initially you may want to use v.build.polylines to build polylines from lines.
> 2. I want to export the lines with line height as an attribute. Not
> important now, but labelling lines with line height, using different
> colors... (not ready to mess with NVIZ yet, but maybe that's the only
> way?), or extracting certain line heights or ranges of heights.
... see above (now you should be able to do that).
Hope this helps
Markus
More information about the grass-user
mailing list