Yo uso GDAL en Python para importar shapefile. Quiero saber los nombres de campo para el archivo, mi forma actual es:
fields = []
for i in range(1, layer.GetFeature(0).GetFieldCount()):
field = layer.GetFeature(0).GetDefnRef().GetFieldDefn(i).GetName()
fields.append(field)
Pero de esta manera, obtengo la función para la primera capa. ¿Significa que es posible que diferentes capas puedan tener diferentes características?
Si no, ¿es posible obtener los nombres de los campos a la vez, en lugar de profundizar tanto? En caso afirmativo, ¿hay alguna forma más fácil de obtener los nombres de campo?
Respuestas:
1) archivo de forma individual: como en el comentario, un archivo de forma tiene solo una capa. Si solo quieres los nombres de los campos
Puede usar el formato GeoJSON con un generador de Python ( ogr_geointerface.py )
Esto presenta Fiona (otro contenedor Python de OGR, Python 2.7.xy 3.x). Todos los resultados son diccionarios de Python (formato GeoJSON).
Y GeoPandas (Fiona + pandas , Python 2.7.xy 3.x). El resultado es un Pandas DataFrame (= GeoDataFrame).
2) Múltiples archivos de forma: si desea recorrer múltiples archivos de forma en una carpeta
Con osgeo.ogr
o con un generador
Con fiona
fuente
Utilizar:
fuente