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
OGR Simple Feature Library
ABT 182 / HYD 182
Environmental Analysis using GIS
Week 4-2
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
http://www.gdal.org/ogr/
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
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'
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
featureDefn = layer.GetLayerDefn()
feature = ogr.Feature(featureDefn)
feature.SetGeometry(<object>)
feature.SetField('id', 23)
layer.CreateFeature(feature)
Creating new features(after adding the fields)