vectorascii(1)

GRASS ASCII vector format specification
A vector map in GRASS native vector format may contain a mix of primitives including points, lines, boundaries, centroids, areas, faces, and kernels. The GRASS ASCII vector format may contain also a header with various metadata (see example below).

The header is similar as the head file of vector binary format but contains bounding box also. Key words are:

ORGANIZATION
DIGIT DATE
DIGIT NAME
MAP NAME
MAP DATE
MAP SCALE
OTHER INFO
ZONE
WEST EDGE
EAST EDGE
SOUTH EDGE
NORTH EDGE
MAP THRESH

The body begins with the row:

VERTI:

followed by records of primitives:

TYPE NUMBER_OF_COORDINATES [NUMBER_OF_CATEGORIES]
 X Y [Z]
....
 X Y [Z]
[ LAYER CATEGORY]
....
[ LAYER CATEGORY]

Everything above in [ ] is optional.

The primitive codes are as follows:

    •   ’P’: point

    •   ’L’: line

    •   ’B’: boundary

    •   ’C’: centroid

    •   ’F’: face (3D boundary)

    •   ’K’: kernel (3D centroid)

    •   ’A’: area (boundary) - better use ’B’; kept only for backward compatibility
The coordinates are listed following the initial line containing the primitive code, the total number of coordinates in the series, and (optionally) the number of categories (1 for a single layer, higher for multiple layers). Below that 1 or several lines follow to indicate the layer number and the category number (ID).

The order of coordinates is

X Y [Z]

In pre-GRASS 6 versions of the ASCII format, the order of coordinates was different:

Y X

Latitude/Longitude data may be given in a number of ways. Decimal degrees must be positive or negative instead of using a hemisphere letter. Mixed coordinates must use a hemisphere letter. Whole minutes and seconds must always contain two digits (example: use 167:03:04.567; and not 167:3:4.567).
Acceptable formats:
key: D=Degrees; M=Minutes; S=Seconds; h=Hemisphere (N,S,E,W)

    •   (+/-)DDD.DDDDD

    •   DDDh

    •   DDD:MMh

    •   DDD:MM.MMMMMh

    •   DDD:MM:SSh

    •   DDD:MM:SS.SSSSSh

EXAMPLES

ORGANIZATION: GRASS Development Team
DIGIT DATE:   1/9/2005
DIGIT NAME:   -
MAP NAME:     test
MAP DATE:     2005
MAP SCALE:    10000
OTHER INFO:   Test polygons
ZONE:  0
MAP THRESH:   0.500000
VERTI:
B  6
 5958812.48844435 3400828.84221011
 5958957.29887089 3400877.11235229
 5959021.65906046 3400930.7458436
 5959048.47580612 3400973.65263665
 5959069.92920264 3401032.64947709
 5958812.48844435 3400828.84221011
C  1 1
 5958952.42189184 3400918.23126419
 1 20
B  4
 5959010.9323622 3401338.36037757
 5959096.7459483 3401370.54047235
 5959091.38259917 3401450.99070932
 5959010.9323622 3401338.36037757
C  1 1
 5959063.08352122 3401386.98533277
 1 21

In this case the vector map contains 2 boundaries (first boundary with 6 vertices, second with 4 vertices) without category and 2 centroids with category number 20 and 21 (layer 1).

SEE ALSO
v.in.ascii, v.out.ascii, v.edit, v.support

SOURCE CODE

Available at: GRASS ASCII vector format specification source code (history)

Latest change: Friday Apr 17 01:04:26 2026 in commit: 5a31d549cc0150239894bd2b9e67250af87d38b5

Main index | Vector index | Topics index | Keywords index | Graphical index | Full index

© 2003-2026 GRASS Development Team, GRASS 8.6.0dev Reference Manual