[[TOC]] = OGR interface in GRASS 7 = See also [http://grass.osgeo.org/wiki/Working_with_external_data_in_GRASS_7#Vector_data examples] from GRASS [http://grass.osgeo.org/wiki 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 [http://www.youtube.com/watch?v=DTMmmcVpJKk export GRASS data to PostGIS] using [http://grass.osgeo.org/wiki/WxGUI_Modeler 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 [source: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 [source:grass/trunk/lib/vector/Vlib/write_ogr.c 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 == Related OGR tickets == * [http://trac.osgeo.org/gdal/ticket/4202 #4202] * [http://trac.osgeo.org/gdal/ticket/4217 #4217]