Ho uno shapefile ESRI (da qui: http://pubs.usgs.gov/ds/425/). Sto cercando di usare python per cercare informazioni dal file shape (materiale informativo in questo caso) ad una data latitudine/longitudine.Come usare python per cercare informazioni a latitudine/longitudine specifiche in uno shape file ESRI?
Qual è il modo migliore per risolvere questo problema?
Grazie.
soluzione finale:
#!/usr/bin/python
from osgeo import ogr, osr
dataset = ogr.Open('./USGS_DS_425_SHAPES/Surficial_materials.shp')
layer = dataset.GetLayerByIndex(0)
layer.ResetReading()
# Location for New Orleans: 29.98 N, -90.25 E
point = ogr.CreateGeometryFromWkt("POINT(-90.25 29.98)")
# Transform the point into the specified coordinate system from WGS84
spatialRef = osr.SpatialReference()
spatialRef.ImportFromEPSG(4326)
coordTransform = osr.CoordinateTransformation(
spatialRef, layer.GetSpatialRef())
point.Transform(coordTransform)
for feature in layer:
if feature.GetGeometryRef().Contains(point):
break
for i in range(feature.GetFieldCount()):
print feature.GetField(i)
Se il punto non viene trovato in nessuna delle 'funzioni', le ultime caratteristiche verranno considerate come la corrispondenza (e i relativi campi stampati). Vorrei dichiarare una variabile separata 'matched_feature' e assegnarla immediatamente prima di' break', quindi usarla per il ciclo successivo invece della variabile 'feature' –