2017-06-21
A basic introduction to Python, its core concepts as well as problem solving strategies based on certain geospatial packages and internet research.
~90% of packages are ported to Python3 to this date; check if your a package you need is already ported: Py3Readiness
chmod a+x - executable for all groups
did not know abouttuple assigment like below:
#!/usr/bin/python
#~ # This is the well-known Fibonacci series
= 0, 1
a, b while b < 2000:
print a
= b, a + b a, b
'''
Keyword arguments in calling functions
'''
def fibonacci(n=2000):
= 0, 1
a, b = []
f while b<n:
f.append(a)= b, a+b
a, b return f
= fibonacci(n=10000)
s print s
'/home/user/my_module') sys.path.append(
- returns feature count
GetFeatureCount() - returns a proj4 string
GetSpatialRef().ExportToProj4() - returns point count GetPointCount()
geometry.GetGeometryName() == 'POINT'
for checking the Geometry typeargs = [] /n args.append(sys.argv)
shp = ogr.Open(shpFile)
geometry = feature.GetGeometryRef()
feature.GetField(fieldName)
#Examine a shapefile with ogr
from osgeo import ogr
import os
import sys
= []
args
args.append(sys.argv)
# set working dir
'../files')
os.chdir(
# check if file name was given
try:
= args[0][1]
shpFile except:
print 'No input file specified.'
1)
sys.exit(
# check if field was given
try:
= args[0][2]
fieldName except:
print 'No field specified.'
1)
sys.exit(
# open the shapefile
= ogr.Open(shpFile)
shp
# Get the layer
try:
= shp.GetLayer()
layer except:
print 'File not found.'
1)
sys.exit(
# Loop through the features
# and print information about them
for feature in layer:
= feature.GetGeometryRef()
geometry
# check if the field name exists
try:
feature.GetField(fieldName)except:
print 'Wrong field name given.'
1)
sys.exit(
if geometry.GetGeometryName() == 'POINT':
# print the info
print geometry.GetX(), geometry.GetY(), feature.GetField(fieldName)
else:
print 'Only works for point geometries.'
1) sys.exit(
iypthon
from osgeo import ogr
= ogr.Open('point.shp')
shp + Press TAB
shp.
> shp.CommitTransaction shp.GetDriver shp.GetMetadata_List shp.SetDescription
shp.CopyLayer shp.GetLayer shp.GetName shp.SetMetadata
shp.CreateLayer shp.GetLayerByIndex shp.GetRefCount shp.SetMetadataItem
shp.DeleteLayer shp.GetLayerByName shp.GetStyleTable shp.SetStyleTable
shp.Dereference shp.GetLayerCount shp.GetSummaryRefCount shp.StartTransaction
shp.Destroy shp.GetMetadata shp.Reference shp.SyncToDisk
shp.ExecuteSQL shp.GetMetadataDomainList shp.Release shp.TestCapability
shp.FlushCache shp.GetMetadataItem shp.ReleaseResultSet shp.name
shp.GetDescription shp.GetMetadata_Dict shp.RollbackTransaction shp.this
= shp.GetLayer()
layer + Press TAB
layer.
>
layer.AlterFieldDefn layer.GetFeature layer.GetSpatialRef layer.SetNextByIndex
layer.Clip layer.GetFeatureCount layer.GetStyleTable layer.SetSpatialFilter
layer.CommitTransaction layer.GetFeaturesRead layer.Identity layer.SetSpatialFilterRect
layer.CreateFeature layer.GetGeomType layer.Intersection layer.SetStyleTable
layer.CreateField layer.GetGeometryColumn layer.Reference layer.StartTransaction
layer.CreateFields layer.GetLayerDefn layer.ReorderField layer.SymDifference
layer.CreateGeomField layer.GetMetadata layer.ReorderFields layer.SyncToDisk
layer.DeleteFeature layer.GetMetadataDomainList layer.ResetReading layer.TestCapability
layer.DeleteField layer.GetMetadataItem layer.RollbackTransaction layer.Union
layer.Dereference layer.GetMetadata_Dict layer.SetAttributeFilter layer.Updatenext
layer.Erase layer.GetMetadata_List layer.SetDescription layer.
layer.FindFieldIndex layer.GetName layer.SetFeature layer.schema
layer.GetDescription layer.GetNextFeature layer.SetIgnoredFields layer.this
layer.GetExtent layer.GetRefCount layer.SetMetadata layer.GetFIDColumn layer.GetSpatialFilter layer.SetMetadataItem