PYTHON OGR

From DreamsteepWiki

Jump to: navigation, search
import osgeo.osr



class osr.SpatialReference
    def __init__(self,obj=None):
    def ImportFromWkt( self, wkt ):
    def ExportToWkt(self):
    def ImportFromEPSG(self,code):
    def IsGeographic(self):
    def IsProjected(self):
    def GetAttrValue(self, name, child = 0):
    def SetAttrValue(self, name, value):
    def SetWellKnownGeogCS(self, name):
    def SetProjCS(self, name = "unnamed" ):
    def IsSameGeogCS(self, other):
    def IsSame(self, other):
    def SetLinearUnits(self, units_name, to_meters ):
    def SetUTM(self, zone, is_north = 1):

class CoordinateTransformation:
    def __init__(self,source,target):
    def TransformPoint(self, x, y, z = 0):
    def TransformPoints(self, points):



RASTER

#! /usr/bin/python
from osgeo import gdal
import sys
import numpy
src_file = sys.argv[1]
dst_file = sys.argv[2]
out_bands = 3
# Open source file
src_ds = gdal.Open( src_file )
src_band = src_ds.GetRasterBand(1)
# create destination file
## driver.Create( outfile, outwidth, outheight, numbands, gdaldatatype)
dst_driver = gdal.GetDriverByName('GTiff')
dst_ds = dst_driver.Create(dst_file, src_ds.RasterXSize,
src_ds.RasterYSize, out_bands, gdal.GDT_Byte)
# create output bands
band1 = numpy.zeros([src_ds.RasterYSize, src_ds.RasterXSize])
band2 = numpy.zeros([src_ds.RasterYSize, src_ds.RasterXSize])
band3 = numpy.zeros([src_ds.RasterYSize, src_ds.RasterXSize])

# set the projection and georeferencing info
dst_ds.SetProjection( src_ds.GetProjection() )
dst_ds.SetGeoTransform( src_ds.GetGeoTransform() )
# read the source file
for iY in range(src_ds.RasterYSize):
src_data = src_band.ReadAsArray(0,iY,src_ds.RasterXSize,1)
col_values = src_data[0] # array of z_values, one per row in source
data
for iX in range(src_ds.RasterXSize):
z_value = col_values[iX]
[R,G,B] = MakeColor(z_value)
band1[iY][iX] = R
band2[iY][iX] = G
band3[iY][iX] = B
# write each band out
dst_ds.GetRasterBand(1).WriteArray(band1)
dst_ds.GetRasterBand(2).WriteArray(band2)
dst_ds.GetRasterBand(3).WriteArray(band3)
dst_ds = None



VECTOR

"""Merge a group of shapefiles into one new one."""
import sys
import glob
from osgeo import ogr
outfile = "merge.shp"
file_list = glob.glob("*.shp")
# CREATE OUTPUT FILE
out_driver = ogr.GetDriverByName( 'ESRI Shapefile' )
out_ds = out_driver.CreateDataSource(outfile)
out_srs = None
out_layer = out_ds.CreateLayer("trans", out_srs, ogr.wkbLineString)
fd = ogr.FieldDefn('name', ogr.OFTString)
out_layer.CreateField(fd)
fd = ogr.FieldDefn('kV', ogr.OFTInteger)
out_layer.CreateField(fd)
cont. on next slide

# READ EACH INPUT FILE AND WRITE FIELDS TO NEW FILE
for shapefile in file_list:
print shapefile
[filename, extension] = shapefile.split('.')
in_drv = ogr.GetDriverByName( 'ESRI Shapefile' )
in_ds = in_drv.Open(shapefile)
in_layer = in_ds.GetLayer(0)
in_feature = in_layer.GetNextFeature()
kV_field = in_feature.GetFieldIndex('kV')
counter = 1
while in_feature is not None:
name = filename + "_" + `counter`
kV = in_feature.GetField(kV_field)
out_feat = ogr.Feature(out_layer.GetLayerDefn())
out_feat.SetField('name', name)
out_feat.SetField('kV', kV)
out_feat.SetGeometry(in_feature.GetGeometryRef().Clone())
out_layer.CreateFeature(out_feat)
out_layer.SyncToDisk()
out_feat.Destroy()
in_feature.Destroy()
in_feature = in_layer.GetNextFeature()
counter += 1
out_ds.Destroy()




# GDAL
from osgeo import ogr, gdal
from osgeo.gdalconst import *
 
# sample data
data = [[3333317.0,5684892.0],[3333417.0,5684892.0],\
           [3333317.0,5684992.0],[3333417.0,5684992.0]]
 
# Create Shapefile named "polygon.shp" for output
driver = ogr.GetDriverByName('ESRI Shapefile')
output = "polygon.shp"
 
datasource = driver.CreateDataSource(output)
layer = datasource.CreateLayer(output, geom_type=ogr.wkbPolygon)
 
feature = ogr.Feature(layer.GetLayerDefn())
wkt = "POLYGON(" + str(data[0][0]) + " " + str(data[0][1]) + "," + str(data[1][0]) + " " + str(data[1][1]) + "," + str(data[2][0]) + " " + str(data[2][1]) + "," + str(data[3][0]) + " " + str(data[3][1]) + ")"

polygon = ogr.CreateGeometryFromWkt(wkt)
layer.CreateFeature(feature)
 
# Clean up
feature.Destroy()
datasource.Destroy()
 
print "Feature <" + str(output) + "> successfully created."
del output


#Add feature.SetGeometry(polygon) before layer.CreateFeature(feature) 




'ApproximateArcAngles'
, 'BuildPolygonFromEdges'
, 'CreateGeometryFromGML'
, 'CreateGeometryFromJson'
, 'CreateGeometryFromWkb'
, 'CreateGeometryFromWkt'
, 'DataSource'
, 'DataSource_swigregister'
, 'DontUseExceptions'
, 'Driver'
, 'Driver_swigregister'
, 'Feature'
, 'FeatureDefn'
, 'FeatureDefn_swigregister'
, 'Feature_swigregister'
, 'FieldDefn'
, 'FieldDefn_swigregister'
, 'GeneralCmdLineProcessor'
, 'Geometry'
, 'Geometry_swigregister'
, 'GetDriver'
, 'GetDriverByName'
, 'GetDriverCount'
, 'GetOpenDS'
, 'GetOpenDSCount'
, 'Layer'
, 'Layer_swigregister'
, 'NullFID'
, 'ODrCCreateDataSource'
, 'ODrCDeleteDataSource'
, 'ODsCCreateLayer'
, 'ODsCDeleteLayer'
, 'OFTBinary'
, 'OFTDate'
, 'OFTDateTime'
, 'OFTInteger'
, 'OFTIntegerList'
, 'OFTReal'
, 'OFTRealList'
, 'OFTString'
, 'OFTStringList'
, 'OFTTime'
, 'OFTWideString'
, 'OFTWideStringList'
, 'OJLeft'
, 'OJRight'
, 'OJUndefined'
, 'OLCCreateField'
, 'OLCDeleteFeature'
, 'OLCFastFeatureCount'
, 'OLCFastGetExtent'
, 'OLCFastSetNextByIndex'
, 'OLCFastSpatialFilter'
, 'OLCRandomRead', 'OLCRandomWrite', 'OLCSequentialWrite', 'OLCStringsAsUTF8', 'OLCTransactions', 'Open', 'OpenShared', 'RegisterAll', 'SetGenerate_DB2_V72_BYTE_ORDER', 'UseExceptions', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'deprecation_warn', 'osr', 'wkb25Bit', 'wkb25DBit', 'wkbGeometryCollection', 'wkbGeometryCollection25D', 'wkbLineString', 'wkbLineString25D', 'wkbLinearRing', 'wkbMultiLineString', 'wkbMultiLineString25D', 'wkbMultiPoint', 'wkbMultiPoint25D', 'wkbMultiPolygon', 'wkbMultiPolygon25D', 'wkbNDR', 'wkbNone', 'wkbPoint', 'wkbPoint25D', 
'wkbPolygon', 'wkbPolygon25D', 'wkbUnknown', 'wkbXDR']


Personal tools