[[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.select}}}, {{{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) == 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: * location: {{{nc_spm_08}}} * Shapefile directory: {{{~/shapefiles}}} * PostGIS database: {{{pgis_nc}}} === Scenario 1 === Use parameters {{{output}}} for output OGR datasource and {{{olayer}}} for OGR layer. Example: {{{ # input: GRASS data # output: PostGIS database v.extract map=obce where="NAZEV = Solany" output=PG:dbname=gisdb@OGR olayer=obce # 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 === Use `v.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=gisdb@OGR alayer=zeleznice \ binput=shps@OGR blayer=obce operator=intersects \ output=obce_zelez }}} '''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 === * [source:grass/trunk/lib/vector/Vlib/write_ogr.c write_ogr.c] === List of updated modules === List of modules which supports direct OGR write access: * `v.edit` * `v.extract` * `v.select` == Related OGR tickets == * [http://trac.osgeo.org/gdal/ticket/4202 #4202] * [http://trac.osgeo.org/gdal/ticket/4217 #4217]