vectorascii(1grass)

πŸŽ€ vectorascii β€” GRASS ASCII vector format specification πŸŽ€

okay bestie, this is vectorascii from the GRASS User's Manual, section 1grass, and it's literally just the whole ✨spec✨ for the GRASS ASCII vector format. no cap. let's get into it πŸ’…


πŸ’– DESCRIPTION πŸ’–

So a vector map in GRASS's native vector format can be a whole lil mix of primitives, like: points, lines, boundaries, centroids, areas, faces, and kernels. 🫢 And the GRASS ASCII vector format? It can also have a header with all kinds of metadata (peep the example below for the vibe).

The header is lowkey similar to the head file of the vector binary format, except it also carries the bounding box. the 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

Then the body starts with this 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 sitting in [ ] is optional, iykyk. πŸ™ˆ

🌈 the primitive codes 🌈

  • '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 get listed following that 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]

but 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, fr fr. 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 β€” like, use 167:03:04.567; and not 167:3:4.567. no arguing πŸ’…

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

so 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). iconic behavior honestly πŸ‘‘


πŸ‘€ SEE ALSO πŸ‘€

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


πŸ’Ύ SOURCE CODE πŸ’Ύ

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

Accessed: Friday May 08 10:38:23 2026

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

Β© 2003-2026 GRASS Development Team, GRASS 8.5.0 Reference Manual


and that's the whole thing bestie, we ate and left zero crumbs πŸ’–πŸŒΈβœ¨ this was vectorascii(1grass) from GRASS 8.5.0 β€” go forth and ASCII-fy your vectors, ily πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from