HOME

GRASS 5.7: Some vector API docs


Tutorial HOME | Table of contents
README
GRASS 5.7 is currently under development. In case the examples described here do not work properly, you are kindly invited to send us further examples and/or code bugfixes/enhancements.

Why is the 5.7 vector engine faster than 5.0?

One reason is that the 'cat's are stored in the geometry file now (in 5.0 it was in a separate file), the second reason is the use of a spatial index.

What is this 'field' thing?

The field is used to link one or several attribute tables to a vector map. Per default field=1 for each vector line: link to table 1. But it is possible that each vector has a different field value, so that various lines in a vector map link to different tables (through the 'dbln' file).
When digitizing with 'v.digit' the field can be set for each vector.

The normal user will not care about 'field'.

Vector data 'dbln' file mechanism

The "normal" user does not have to care about this file (it is usually generated automatically or can be written with 'v.db.connect'). The following text describes some API internals.
GRASS 5.7 attributes model
Each vector element may have none, one or more categories (cats). If many cats are required, they are distinguished by different field numbers (field). Records in a vector attribute table are linked to vector entities by field and category number. The field number identifies a database table and the category number identifies the table record. I.e. for unique combination mapset + map + field + category exists one unique combination driver + database + table + row. When a definition defines more fields for one map i.e. in one map the same vector features are linked to several attribute tables.

For each pair field must be defined table, key column, database, driver. This definition must be written to $MAPSET/vector/MAP/dbln text file. Each row in dbln file contains names separated by spaces in following order ([] - optional):

field table [key [database [driver]]] 
If key, database or driver are omited (on second and higher row only) last definition is used.

Wild cards * and ? may be used. Variables GISDBASE, $LOCATION, $FIELD may be used in table, key, database and driver names. Normally the dbln file is generated by GRASS.

The SHAPE driver does not use the dbln file.

Default vector data storage settings

Default settings are defined in the file
$GISDBASE/$LOCATION_NAME/$MAPSET/VAR

If there is a 'dbln' file present for a vector map, it is used. If a new map is generated, the VAR settings are used.

Differences between DBF and SHAPE driver

In contrast to the DBF driver the SHAPE driver provides on-the-fly a virtual column 'shp_id'.


Further Links (related software, SQL reference etc).


© 2003 Markus Neteler
Comments about this page | FAQ | Download | Support | Docs | Programming | Back 5.7 Tutorial Home
Last change: $Date: 2008-03-27 21:31:14 +0000 (Thu, 27 Mar 2008) $