Vector Module
Tip
Provides functionality for manipulation of vector data. The data can be in-memory or file based.
Resources for understanding vector data formats and the OGR library: Treatise on vector data model: http://www.esri.com/news/arcuser/0401/topo.html OGR C++ reference: http://www.gdal.org/ogr
InaSAFE representation of vector data.
Only used if geometry is provided as a numeric array, if None, WGS84 geographic is assumed.
(see note below).
Valid options are ‘point’, ‘line’, ‘polygon’ or the ogr types: 1, 2, 3. If None, a geometry_type will be inferred from the data.
name: Optional name for layer. If None, basename is used.
layer. When the layer is stored, these keywords will be written into an associated file with extension ‘.keywords’.
Keywords can for example be used to display text about the layer in an application.
should be styled. See impact_functions/styles.py for examples.
table name in case of sqlite etc.) to load. Only applicable to those dataformats supporting more than one layer in the data file.
Notes:
If data is a filename, all other arguments are ignored as they will be inferred from the file.
The geometry type will be inferred from the dimensions of geometry. If each entry is one set of coordinates the type will be ogr.wkbPoint, if it is an array of coordinates the type will be ogr.wkbPolygon.
To cast array entries as lines set geometry_type explicitly to ‘line’ in the call to Vector. Otherwise, they will default to polygons.
Each polygon or line feature take the form of an Nx2 array representing vertices where line segments are joined.
If polygons have holes, their geometry must be passed in as a list of polygon geometry objects (as defined in module geometry.py)
Return copy of vector layer
This copy will be equal to self in the sense defined by __eq__
Get available attribute names
These are the ones that can be used with get_data
Get bounding box coordinates for vector layer.
Format is [West, South, East, North]
Get vector attributes
Data is returned as a list where each entry is a dictionary of attributes for one feature. Entries in get_geometry() and get_data() are related as 1-to-1
If optional argument attribute is specified and a valid name, then the list of values for that attribute is returned.
If optional argument index is specified on the that value will be returned. Any value of index is ignored if attribute is None.
If optional argument copy is True and all attributes are requested, a copy will be returned. Otherwise a pointer to the data is returned.
Get min and max values from specified attribute
Return min, max
Return geometry for vector layer.
Depending on the feature type, geometry is
point list of 2x1 array of longitudes and latitudes) line list of arrays of coordinates polygon list of arrays of coordinates
Optional boolean argument as_geometry_objects will change the return value to a list of geometry objects rather than a list of arrays. This currently only applies to polygon geometries
Get top N features
Read and unpack vector data.
It is assumed that the file contains only one layer with the pertinent features. Further it is assumed for the moment that all geometries are points.
The full OGR architecture is documented at * http://www.gdal.org/ogr/ogr_arch.html * http://www.gdal.org/ogr/ogr_apitut.html
Examples are at * danieljlewis.org/files/2010/09/basicpythonmap.pdf * http://invisibleroads.com/tutorials/gdal-shapefile-points-save.html * http://www.packtpub.com/article/geospatial-data-python-geometry
Limitation of the Shapefile are documented in http://resources.esri.com/help/9.3/ArcGISDesktop/com/Gp_ToolRef/ geoprocessing_tool_reference/ geoprocessing_considerations_for_shapefile_output.htm
Save vector data to file
filename: filename with extension .shp or .gml
unless we are writing to an sqlite file.
Shp limitation, if attribute names are longer than 10 characters they will be truncated. This is due to limitations in the shp file driver and has to be done here since gdal v1.7 onwards has changed its handling of this issue: http://www.gdal.org/ogr/drv_shapefile.html
For this reason we recommend writing to spatialite.
Convert line vector data to point vector data
Convert polygon vector data to point vector data
This module forms part of the InaSAFE tool.