table of contents
other versions
- jessie 6.4.4-1
- stretch 7.2.0-2
- testing 7.6.0-1
- unstable 7.6.0-1
- experimental 7.6.1-1~exp1
vectorintro(1grass) | Grass User's Manual | vectorintro(1grass) |
NAME¶
vectorintro - Vector data processing Vector data processingVector data processing in GRASS GIS¶
Vector maps in general¶
A "vector map" is a data layer consisting of a number of sparse features in geographic space. These might be data points (drill sites), lines (roads), polygons (park boundary), volumes (3D CAD structure), or some combination of all these. Typically each feature in the map will be tied to a set of attribute layers stored in a database (road names, site ID, geologic type, etc.). As a general rule these can exist in 2D or 3D space and are independent of the GIS's computation region.Vector data import and export¶
The v.in.ogr module offers a common interface for many different vector formats. Additionally, it offers options such as on-the-fly creation of new locations or extension of the default region to match the extent of the imported vector map. For special cases, other import modules are available, e.g. v.in.ascii for input from a text file containing coordinate and attribute data, and v.in.db for input from a database containing coordinate and attribute data. With v.external external maps can be virtually linked into a mapset, only pseudo-topology is generated but the vector geometry is not imported. The v.out.* set of commands exports to various formats. To import and export only attribute tables, use db.in.ogr and db.out.ogr. The naming convention for vector maps requires that map names start with a character, not a number (map name scheme: [A-Za-z][A-Za-z0-9_]*).Metadata¶
The v.info display general information such as metadata and attribute columns about a vector map including the history how it was generated. Each map generating command stores the command history into the metadata (query with v.info -h mapname). Metadata such as map title, scale, organization etc. can be updated with v.support.Vector map operations¶
GRASS vector map processing is always performed on the full map. If this is not desired, the input map has to be clipped to the current region beforehand (v.in.region, v.select).Vector model and topology¶
GRASS is a topological GIS. This means that adjacent geographic components in a single vector map are related. For example in a non-topological GIS if two areas shared a common border that border would be digitized two times and also stored in duplicate. In a topological GIS this border exists once and is shared between two areas. Topological represenation of vector data helps to produce and maintain vector maps with clean geometry as well as enables certain analyses that can not be conducted with non-topological or spaghetti data. In GRASS topological data are refered to as level 2 data and spaghetti data is referred to as level 1. Sometimes topology is not necessary and the additional memory and space requirements are burdensome to a particular task. Therefore two modules allow for working level 1 (non-topological) data within GRASS. The v.in.ascii module allows users to input points without building topology. This is very useful for large files where memory restrictions may cause difficulties. The other module which works with level 1 data is v.surf.rst which enables spatial approximation and topographic analysis from a point or isoline file.In GRASS, the following vector object types are defined:
-
point: a point;
-
line: a directed sequence of connected vertices with two endpoints called nodes;
-
boundary: the border line to describe an area;
-
centroid: a point within a closed ring of boundaries;
-
area: the topological composition of a closed ring of boundaries and optionally a centroid;
-
face: a 3D area;
-
kernel: a 3D centroid in a volume (not yet implemented);
-
volume: a 3D corpus, the topological composition of faces and kernel (not yet implemented).
Vector object categories and attribute management¶
GRASS vectors can be linked to one or many database management systems (DBMS). The db.* set of commands provides basic SQL support for attribute management, while the v.db.* set of commands operates on a table linked to a vector map.- Categories
- Layers
- SQL support
Editing vector attributes¶
To manually edit attributes of a table, the map has to be queried in 'edit mode' using d.what.vect. To bulk process attributes, it is recommended to use SQL (db.execute).Geometry operations¶
The module v.in.region saves the current region boundary into a vector area. Split vector lines can be changes to polylines by v.build.polylines. Long lines can be split by v.split and v.segment. Buffer and circles can be generated with v.buffer and v.parallel. v.generalize is module for generalization of GRASS vector maps. 2D vector maps can be changed to 3D using v.extrude. If needed, the spatial position of vector points can be perturbed by v.perturb. The v.type command changes between vector types (see list above). Projected vector maps can be reprojected with v.proj. Unprojected maps can be geocoded with v.transform. Triangulation and point-to-polygon conversions can be done with <a href="v.delaunay.html">v.delaunay, v.hull, and v.voronoi. The v.random command generated random points.Vector overlays and selections¶
Geometric overlay of vector maps is done with v.patch, v.select, depending on the combination of vector types. Vectors can be extracted with v.extract and reclassified with v.reclass.Vector statistics¶
Statistics can be generated by v.qcount, v.normal, and v.univar. Distances between vector objects are calculated with v.distance.Vector-Raster-DB conversion¶
The v.to.db transfers vector information into database tables. With v.to.points, v.to.rast3 conversions are performed.Vector queries¶
Vector maps can be queried with v.what and v.what.vect.Vector-Raster queries¶
Raster values can be transferred to vector maps with v.what.rast and v.rast.stats.Vector network analysis¶
GRASS provides support for vector network analysis. The following algorithms are implemented:-
Network preparation and maintenance: v.net
-
Shortest path: d.path and v.net.path
-
Allocation of sources (create subnetworks, e.g. police station zones): v.net.alloc
-
Iso-distances (from centers): v.net.iso
-
Minimum Steiner trees (star-like connections, e.g. broadband cable connections): v.net.steiner
-
Traveling salesman (round trip): v.net.salesman
Vector networks: Linear referencing system (LRS)¶
LRS uses linear features and distance measured along those features to positionate objects. There are the commands v.lrs.create to create a linear reference system, v.lrs.label to create stationing on the LRS, v.lrs.segment to create points/segments on LRS, and v.lrs.where to find line id and real km+offset for given points in vector map using linear reference system. The LRS tutorial explains further details.Interpolation and approximation¶
Some of the vector modules deal with spatial or volumetric approximation (also called interpolation): v.kernel, v.surf.idw, v.surf.rst, and v.vol.rst.Lidar data processing¶
Lidar point clouds (first and last return) are imported from text files with <a href="v.in.ascii.html">v.in.ascii (use the -b flag to not build topology). Outlier detection is done with v.outlier on both first and last return data. Then, with v.lidar.edgedetection, edges are detected from last return data. The building are generated by v.lidar.growing from detected edges. The resulting data are post-processed with v.lidar.correction. Finally, the DTM and DSM are generated with v.surf.bspline (DTM: uses the 'v.lidar.correction' output; DSM: uses last return output from outlier detection).See also¶
- Introduction to GRASS database management
- Introduction to GRASS raster map processing
- Introduction to GRASS 3D raster map (voxel) processing
GRASS 6.4.4 |