Name | Type | Number | Description |
record header | C | 1 |
- 0. bit: 1 - alive, 0 - dead line
- 1. bit: 1 - categories, 0 - no categories
- 2.-3. bit: type - one of: GV_POINT, GV_LINE, GV_BOUNDARY, GV_CENTROID, GV_FACE, GV_KERNEL
- 4.-7. bit: reserved, not used
|
ncats | I | 1 | number of categories
(written only if categories exist) |
field | I | ncats | field identifier,
distinguishes between more categories append to one feature (written
only if categories exist; field is called "layer" at user
level) |
cat | I | ncats | category value (written
only if categories exist) |
ncoor | I | 1 | written for GV_LINES and GV_BOUNDARIES
only |
x | D | ncoor | x coordinate |
y | D | ncoor | y coordinate |
z | D | ncoor | z coordinate; present if
with_z in head is set to 1 |
Types used in coor file:
Name | Type | Number | Description |
plus->Version_Major | C | 1 | file version (major) |
plus->Version_Minor | C | 1 | file version (minor) |
plus->Back_Major | C | 1 | supported from GRASS version (major) |
plus->Back_Minor | C | 1 | supported from GRASS version (minor) |
plus->port->byte_order | C | 1 | little or big endian
flag; files are written in machine native order but
files in both little and big endian order may be
readl; zero for little endian |
plus->head_size | L | 1 | header size |
plus->with_z | C | 1 | 2D or 3D flag; zero for 2D |
plus->box | D | 6 | Bounding box coordinates (N,S,E,W,T,B) |
plus->n_nodes, plus->n_lines, etc. | I | 7 | Number of
nodes, edges, lines, areas, isles, volumes and holes |
plus->n_plines, plus->n_llines, etc. | I | 7 | Number of
points, lines, boundaries, centroids, faces and kernels |
plus->Node_offset, plus->Edge_offset,
etc. | L | 7 | Offset value for nodes, edges, lines,
areas, isles, volumes and holes |
plus->coor_size | L | 1 | File size |
\subsubsection vlibTopoFileBody Body (nodes, lines, areas, isles)
Name | Type | Number | Description |
plus->spidx_Version_Major | C | 1 | file version (major) |
plus->spidx_Version_Minor | C | 1 | file version (minor) |
plus->spidx_Back_Major | C | 1 | supported from GRASS version (major) |
plus->spidx_Back_Minor | C | 1 | supported from GRASS version (minor) |
plus->spidx_port->byte_order | C | 1 | little or big endian
flag; files are written in machine native order but
files in both little and big endian order may be
readl; zero for little endian |
plus->spidx_port.off_t_size | C | 1 | off_t size (LFS) |
plus->spidx_head_size | L | 1 | header size |
plus->spidx_with_z | C | 1 | 2D/3D vector data |
ndims | C | 1 | Number of dimensions |
nsides | C | 1 | Number of sides |
nodesize | I | 1 | %Node size |
nodecard | I | 1 | %Node card (?) |
leafcard | I | 1 | Leaf card (?) |
min_node_fill | I | 1 | Minimum node fill (?) |
min_leaf_fill | I | 1 | Minimum leaf fill (?) |
plus->Node_spidx->n_nodes | I | 1 | Number of nodes |
plus->Node_spidx->n_leafs | I | 1 | Number of leafs |
plus->Node_spidx->n_levels | I | 1 | Number of levels |
plus->Node_spidx_offset | O | 1 | %Node offset |
plus->Line_spidx->n_nodes | I | 1 | Number of nodes |
plus->Line_spidx->n_leafs | I | 1 | Number of leafs |
plus->Line_spidx->n_levels | I | 1 | Number of levels |
plus->Line_spidx_offset | O | 1 | Line offset |
plus->Area_spidx->n_nodes | I | 1 | Number of nodes |
plus->Area_spidx->n_leafs | I | 1 | Number of leafs |
plus->Area_spidx->n_levels | I | 1 | Number of levels |
plus->Area_spidx_offset | O | 1 | Area offset |
plus->Isle_spidx->n_nodes | I | 1 | Number of nodes |
plus->Isle_spidx->n_leafs | I | 1 | Number of leafs |
plus->Isle_spidx->n_levels | I | 1 | Number of levels |
plus->Isle_spidx_offset | O | 1 | Isle offset |
plus->Face_spidx_offset | O | 1 | Face offset |
plus->Volume_spidx_offset | O | 1 | Volume offset |
plus->Hole_spidx_offset | O | 1 | Hole offset |
plus->coor_size | O | 1 | Coor file size |
\section vlibCidx Vector library category index management
The category index (stored in the cidx file) improves the performance
of all selections by cats/attributes (SQL, e.g.