El objetivo de Chewie es hacer que la descarga de datos GEDI sea lo más sencilla posible. Esto incluye los productos de nivel puntual: 1B, 2A, 2B y 4A. Aquí hay un resumen rápido de las opciones de diseño que permiten a {chewie} lograr esto:
Los datos se descargan y se convierten en archivos parquet que luego se pueden leer usando {flecha} y convertir en objetos sf. Este enfoque es eficaz ya que solo requiere que cada gránulo completo se cargue en la memoria una vez (cuando se convierte de hdf5 a parquet). De aquí en adelante podemos usar verbos dplyr (o base R) para filter
, mutate
y select
datos según sea necesario sin necesidad de cargar todas las tomas, desde un gránulo determinado, en la memoria.
Se utiliza una caché a nivel de sistema para almacenar los datos. Esto significa que una vez que se haya descargado un archivo, no se volverá a descargar incluso si se trabaja en un proyecto diferente (también es posible especificar una ubicación de caché única para cada proyecto).
Hay soporte para el filtrado espacial de gránulos que cruzan un área de interés y no solo mediante un cuadro delimitador; Esto frecuentemente reduce la cantidad de datos irrelevantes que se descargan.
Puedes instalar la versión de desarrollo de Chewie así:
# install.packages("pak")pak::pkg_install("Permian-Global-Research/chewie")
Primero, carguemos algunas bibliotecas. {dplyr} no es esencial, pero se recomienda ya que es una opción excelente y de alto rendimiento para trabajar con conjuntos de datos de flechas.
biblioteca (masticable) biblioteca (dplyr) biblioteca(sf)
Aquí hay algunas funciones auxiliares útiles para configurar sus credenciales (usando chewie_creds()
) y verificar que esas credenciales y el caché estén configurados correctamente (usando chewie_health_check()
). De forma predeterminada, el caché está configurado en la carpeta .chewie
en su directorio de inicio. Puedes cambiar esto ejecutando chewie_cache_set()
.
Chewie_creds() # para configurar tus credencialeschewie_health_check() # para verificar tus credenciales y la configuración de caché.
Ahora, busquemos datos de GEDI 2A que se crucen con el Parque Estatal Prairie Creek Redwoods, California (el conjunto de datos se incluye con el paquete). Luego trazamos las huellas de los gránulos que se cruzan con esta área para ver qué tenemos. Tenga en cuenta que, de forma predeterminada, tanto find_gedi
como grab_gedi
almacenan en caché sus resultados, por lo que, cuando estas funciones se vuelven a ejecutar, los datos se cargarán desde la caché en lugar de descargarse nuevamente, incluso en una sesión de R diferente.
prairie_creek <- sf::read_sf(system.file( "geojson", "prairie-creek.geojson", paquete = "chewie"))gedi_2a_search <- find_gedi(prairie_creek, gedi_product = "2A", date_start = "2023-01 -01", date_end = "2023-01-31")#> ✔ Usando GEDI en caché buscar resultprint(gedi_2a_search)#> #> ── Chewie.find ──────────────── ──────────────────────────────────────── ────────── ──────────────────────────────────────── ─────────# > • GEDI-2A#> id time_start time_end URL en caché#>#> 1: G2754665065-LPCLOUD 2023-01-25 05:14:31 2023-01- 25 06:47:21 https://data.lpdaac.earthdatacloud.nasa.gov/lp-pro... TRUE#> 1 variable(s) no mostradas: [geometría ]#> #> ─── ──────────────────────────────────────── ────────── ──────────────────────────────────────── ────────── ───────────────────────────
Si bien existe un método plot
para objetos Chewie.find , una excelente alternativa es trazar un mapa de folleto con chewie_show
, que puede ser estático o interactivo (esto utiliza la fantástica {mapview} debajo del capó).
Chewie_show(gedi_2a_search, zoom = 8)
Ahora usamos grab_gedi
para descargar los datos; esta función internamente convierte los datos al formato parquet y los almacena en el caché. El valor devuelto es un objeto arrow_dplyr_query . Luego podemos usar verbos {dplyr} para filter
/ select
los datos como deseemos antes de finalmente usar collect_gedi
para convertir los datos en un objeto sf. Si no se realiza ningún filtrado/selección, collect_gedi
devolverá todas las columnas/filas disponibles para el AOI.
gedi_2a_sf <- grab_gedi(gedi_2a_search) |> filtro (bandera_calidad == 1, bandera_degradada == 0 ) |> select( haz, fecha_hora, lat_lowestmode, lon_lowestmode, elev_highestreturn, elev_lowestmode, rh0, rh25, rh50, rh75, rh95, rh100 ) |> Collect_gedi(gedi_find = gedi_2a_search)#> ✔ Todos los datos encontrados en cacheprint(gedi_2a_sf)#> Colección de características simple con 884 características y 10 campos#> Tipo de geometría: PUNTO#> Dimensión: XY#> Cuadro delimitador: xmin: -124.069 ymin: 41.3609 xmax: -123.9959 ymax: 41.43904#> CRS geodésico: WGS 84#> # A tibble: 884 × 11#> haz fecha_hora elev_highestreturn elev_lowestmode rh0 rh25#> *#> 1 0 2023-01-25 06:09:05 -19.6 -23.8 -3.55 -1.12 #> 2 0 2023-01-25 06:09:05 -20.7 -24.2 -3.89 -1.27 #> 3 0 2023-01-25 06:09:05 -20.7 -24.2 -3.93 -1.27 #> 4 0 2023-01-25 06:09:05 -2.29 -23.3 -3.37 -0.0300#> 5 0 2023-01-25 06:09:05 27,7 -15,0 -2,54 9,70 #> 6 0 2023-01-25 06:09:05 35,8 4,55 -3,74 12,1 #> 7 0 2023-01-25 06:09:05 55,9 12,2 -1,57 16,8 # > 8 0 2023-01-25 06:09:05 94,6 41,0 -1,53 25,8 #> 9 0 2023-01-25 06:09:05 95,3 42,5 -3,78 6,06 #> 10 0 2023-01-25 06:09: 05 98.3 33.8 -2.32 29.9 #> # ℹ 874 filas más#> # ℹ 5 variables más: rh50 , rh75 , rh95 , rh100 ,#> # geometría
Finalmente, podemos trazar los datos. Nuevamente podemos usar la función genérica chewie_show
.
Chewie_show(gedi_2a_sf, zcol = "rh95", zoom = 13, alfa = 0,5, aoi_color = "blanco")
gedi-subsetter proporciona una selección de herramientas de Python para consultar y descargar datos GEDI. Su alcance es similar al de {chewie} pero también proporciona acceso directo a los archivos hdf5 para los afiliados de la NASA con acceso a la plataforma MAAP.
{rGEDI} proporciona la posibilidad de descargar datos GEDI, pero también una gran cantidad de funciones adicionales para visualización, posprocesamiento y modelado.
{GEDI4R} que de manera similar proporciona un conjunto de herramientas para descargar, visualizar y modelar datos GEDI, pero con un enfoque en el producto 4A.
pyGEDI es un paquete de Python para descargar y visualizar datos GEDI.
GEDI-Data-Resources es una colección de scripts para Python y R que proporcionan ejemplos de cómo descargar y procesar datos GEDI.
Estos recursos han sido una gran fuente de inspiración para {chewie}; ¡Nos gustaría agradecer a los autores por su gran trabajo!