Eu uso o GDAL em Python para importar o shapefile. Quero saber os nomes dos campos do arquivo, minha maneira atual é:
fields = []
for i in range(1, layer.GetFeature(0).GetFieldCount()):
field = layer.GetFeature(0).GetDefnRef().GetFieldDefn(i).GetName()
fields.append(field)
Mas, dessa maneira, estou obtendo o recurso para a primeira camada. Isso significa que é possível que diferentes camadas possam ter recursos diferentes?
Caso contrário, é possível obter os nomes dos campos de uma só vez, em vez de entrar nessa profundidade? Se sim, existe alguma maneira mais fácil de obter os nomes dos campos?
Respostas:
1) shapefile individual: como no comentário, um shapefile possui apenas uma camada. Se você deseja apenas os nomes dos campos
Você pode usar o formato GeoJSON com um gerador Python ( ogr_geointerface.py )
Isso apresenta o Fiona (outro wrapper Python do OGR, Python 2.7.xe 3.x). Todos os resultados são dicionários Python (formato GeoJSON).
E GeoPandas (Fiona + pandas , Python 2.7.xe 3.x). O resultado é um DataFrame do Pandas (= GeoDataFrame).
2) Vários shapefiles: se você deseja percorrer vários shapefiles em uma pasta
Com osgeo.ogr
ou com um gerador
Com Fiona
fonte
Usar:
fonte