7
OGR Simple Feature Library ABT 182 / HYD 182 Environmental Analysis using GIS Week 4-2

OGR Simple Feature Library

  • Upload
    tessa

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

ABT 182 / HYD 182 Environmental Analysis using GIS Week 4-2. OGR Simple Feature Library. OGR Command line program Library (python, R, QGIS, ….) Supports many different vector formats Shapefiles, personal geodatabases, MapInfo, GRASS, KML - PowerPoint PPT Presentation

Citation preview

Page 1: OGR Simple Feature Library

OGR Simple Feature Library

ABT 182 / HYD 182

Environmental Analysis using GIS

Week 4-2

Page 2: OGR Simple Feature Library

OGR

Command line program

Library (python, R, QGIS, ….)

Supports many different vector formats

Shapefiles, personal geodatabases, MapInfo, GRASS, KML

Databases such as MySQL, PostgreSQL, Oracle Spatial

try: from osgeo import ogrexcept: import ogr

Page 3: OGR Simple Feature Library

http://www.gdal.org/ogr/

Page 4: OGR Simple Feature Library

A driver knows a certain data typefrom osgeo import ogr

driver = ogr.GetDriverByName('ESRI Shapefile')

dataSource = driver.Open(fn, 0)

layer = dataSource.GetLayer(0)print layer.GetFeatureCount()print layer.GetExtent()

feature = layer.GetNextFeature()while feature:

id = feature.GetField('id')geom = feature.GetGeometryRef()print geom.GetX()feature.Destroy()feature = layer.GetNextFeature()

datasource.Destroy()

0 for read-only, 1 for writeable

first layer (shp only has one)

very similar to Arc scripts

for point objects

Reading a file with OGR

Page 5: OGR Simple Feature Library

Writing a file with OGR

dataSource = driver.Open(fn, 1)

layer = dataSource.GetLayer(0)

driver = ogr.GetDriverByName('ESRI Shapefile')

if os.path.exists(fn):driver.DeleteDataSource(fn)

dataSource = driver.CreateDataSource(fn)

layer = dataSource.CreateLayer('test', geom_type=ogr.wkbPoint)

Open an existing file

Create a new file

os.chdir('c:/abt182/lab8/')fn = 'test.shp'

Page 6: OGR Simple Feature Library

fieldDefn = ogr.FieldDefn('id', ogr.OFTInteger)

fieldDefn = ogr.FieldDefn('id', ogr.OFTString)fieldDefn.SetWidth(4)

Defining new fieldsFrom an existing feature

fieldDefn = feature.GetFieldDefnRef(0)

fieldDefn = feature.GetFieldDefnRef('id')

layer.CreateField(fieldDefn)

From a new feature

Page 7: OGR Simple Feature Library

featureDefn = layer.GetLayerDefn()

feature = ogr.Feature(featureDefn)

feature.SetGeometry(<object>)

feature.SetField('id', 23)

layer.CreateFeature(feature)

Creating new features(after adding the fields)