Version 59 (modified by 13 years ago) ( diff ) | ,
---|
Table of Contents
OGR interface in GRASS 7
See also examples from GRASS User Wiki.
Direct OGR read access
Capability to read OGR layers directly without linking them via v.external
.
Example 1: Shapefile 'busstopsall.shp' located in directory '~/shapefiles'
v.info map=~/shapefiles/@OGR layer=busstopsall
Example 2: PostGIS table 'busstopsall' located in database 'pgis_nc'.
v.extract input=PG:dbname=pgis_nc@OGR layer=busstopsall where="STREET_1 = 'William Moore Dr.'" output=b1
List of modules which supports direct OGR read access ((*) indicates work in progress):
v.info
(r39161),v.db.connect
(r39538),v.extract
(r39621),v.db.select
(r39556),v.buffer
(r39809),v.category
(r39812),v.class
(r39813),v.clean
(r39814),v.delaunay
(r39821),v.dissolve
(r39822),v.distance
(r39823),v.drape
(r39826),v.extrude
(r39827),v.generalize
(r39828),v.hull
(r39829),v.kcv
(r39832),v.neighbors
(r39834),v.normal
(r39839),v.out.ascii
(r39881),v.out.dxf
(r39882),v.out.ogr
(r39883),v.out.pov
(r39884),v.out.svg
(r39885),v.overlay
(r39895),v.parallel
(r39896),v.pertrub
(r39897),v.qcount
(r39898),v.report
(r39905),v.sample
(r39906),v.segment
(r39907),v.reclass
(r39908),v.random
(r39909),v.rast.stats
(r39910),v.split
,v.surf.idw
,v.surf.rst
,v.to.3d
,v.to.db
,v.to.points
,v.to.rast
,v.to.rast3
,v.transform
,v.type
,v.univar
,v.what
(r40188),v.select
(r48936)
Direct OGR write access
Capability to write OGR layers directly without need to store data in the native GRASS vector format and then exporting data using v.out.ogr
.
Testcase:
- GRASS location:
nc_spm_08
- http://grass.osgeo.org/sampledata/nc_spm_latest.tar.gz - Shapefile directory:
~/shapefiles
- http://grass.osgeo.org/sampledata/north_carolina/nc_shape.tar.gz - PostGIS database:
pgis_nc
(see how to export GRASS data to PostGIS using wxGUI Modeler)
Scenario 1 (not implemented)
Use parameters output
for output OGR datasource and olayer
for OGR layer. Example:
# input: GRASS data # output: PostGIS database v.extract input=bridges where="BRIDGE_NUM=417" output=bridges_417 # input: PostGIS layer, ESRI Shapefile # output: PostGIS database v.select ainput=PG:dbname=gisdb@OGR alayer=zeleznice \ binput=shps@OGR blayer=obce operator=intersects \ output=PG:dbname=gisdb@OGR olayer=obce_zelez
Status: not planned to be implemented
Scenario 2 (implemented)
Design v.external.out
(similarly to r.external.out
)
# input: GRASS data # output: PostGIS database v.external.out dsn=PG:dbname=pgis_nc format=PostgreSQL v.extract input=bridges where="BRIDGE_NUM=417" output=bridges_417 # input: PostGIS layer, ESRI Shapefile # output: PostGIS database v.select ainput=PG:dbname=pgis_nc@OGR alayer=roadsmajor \ binput=~/shapefiles@OGR blayer=boundary_municp operator=intersects \ output=municp_roads
Status: implemented grass/trunk/vector/v.external.out
Tasks
Attribute table (write) access for OGR-linked vectors (direct or linked by v.external)- Implemented in r47225
Changes in vector library
See write_ogr.c
- New functions
V1_write_line_ogr()
,V2_write_line_ogr()
V1_rewrite_line_ogr()
,V2_rewrite_line_ogr()
V1_delete_line_ogr()
,V2_delete_line_ogr()
Vect_build_ogr()
support all build levels - r48960- Implement
V2__add_line_to_topo_ogr()
- r49178
Current status
Module | Read access (link) | Direct read access | Direct write access |
v.build | Y | N | N |
v.build.all | Y | N | N |
v.clean | Y | Y | N |
v.edit | Y | Y | Y |
v.extract | Y | Y | Y |
v.out.dxf | Y | Y | N |
v.select | Y | Y | Y |
v.random | Y | Y | Y |
v.voronoi | Y | Y | N |
v.what | Y | Y | X |
v.what.rast | Y | Y | Y |
v.what.vect | Y | Y | Y |