24 votos

Leyendo los nombres de las capas de archivos de geodatabase en Python

Estoy buscando el conjunto de datos de Aumento proyectado del nivel del mar de la Ciudad de Nueva York. Este conjunto de datos indica que:

Geodatabase de aumento proyectado del nivel del mar basado en modelos publicados por el Panel de Cambio Climático de la Ciudad de Nueva York (NPCC). Los datos incluyen las proyecciones del percentil 10, 25, 50, 75 y 90 para los años 2020, 2050, 2080 y 2100.

Puedo leer esto en un GeoDataFrame usando:

import geopandas as gpd
# Descargar directamente desde https://data.cityofnewyork.us/City-Government/Projected-Sea-Level-Rise/6an6-9htp...
data = gpd.read_file("NYCFutureHighTideWithSLR.gdb", driver='FileGDB', layer=0)

Aquí estoy leyendo la capa 0 (primera) en la base de datos.

Pero, ¿qué significa eso en realidad? No estoy seguro en qué orden la ciudad proporcionó las capas de percentil-año, así que me gustaría, si es posible, también leer los nombres de las diversas capas.

Sin embargo, no estoy seguro de cómo hacerlo, o incluso si los nombres de las capas son una característica de este formato de datos en absoluto. ¿Alguien sabe cómo hacer esto en Python, preferiblemente usando herramientas modernas como fiona o geopandas?

36voto

Antonio Haley Puntos 2588

La función fiona.listlayers() devuelve una lista de nombres de capas en un conjunto de datos.

import fiona
fiona.listlayers('NYCFutureHighTideWithSLR.gdb')

Cualquiera de los elementos de la lista se puede utilizar como valor del argumento de palabra clave layer para gpd.read_file().

También se puede utilizar el índice entero de un elemento de la lista. Si las capas de su conjunto de datos son ['layer_a', 'layer_b'], entonces gpd.read_file("NYCFutureHighTideWithSLR.gdb", driver='FileGDB', layer='layer_b') y gpd.read_file("NYCFutureHighTideWithSLR.gdb", driver='FileGDB', layer=1) son equivalentes.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X