Chewie 的目标是使下载 GEDI 数据尽可能简单。这包括积分级产品:1B、2A、2B 和 4A。以下是使 {chewie} 能够实现这一目标的设计选择的快速摘要:
数据被下载并转换为 parquet 文件,然后可以使用 {arrow} 读取该文件并转换为 sf 对象。这种方法是高性能的,因为它只需要将每个整个颗粒加载到内存一次(当它从 hdf5 转换为 parquet 时)。从这里开始,我们可以使用 dplyr 动词(或基本 R)根据需要filter
、 mutate
和select
数据,而无需将给定颗粒中的所有镜头加载到内存中。
系统级缓存用于存储数据。这意味着一旦下载了文件,即使在不同的项目中工作,也不会再次下载该文件(也可以为每个项目指定唯一的缓存位置)。
支持与感兴趣区域相交的颗粒的空间过滤,而不仅仅是通过边界框;这通常会减少下载的不相关数据量。
你可以像这样安装 Chewie 的开发版本:
# install.packages("pak")pak::pkg_install("二叠纪全球研究/chewie")
首先,让我们加载一些库。 {dplyr} 不是必需的,但建议使用它,因为它是处理箭头数据集的出色且高性能的选项。
图书馆(咀嚼) 图书馆(dplyr) 图书馆(SF)
以下是一些有用的辅助函数,用于设置您的凭据(使用chewie_creds()
)并检查这些凭据和缓存是否设置正确(使用chewie_health_check()
)。默认情况下,缓存设置在主目录中的.chewie
文件夹中。您可以通过运行chewie_cache_set()
来更改此设置。
chewie_creds() # 设置您的凭据chewie_health_check() # 检查您的凭据和缓存设置。
现在,让我们搜索与加利福尼亚州 Prairie Creek Redwoods 州立公园相交的 GEDI 2A 数据(数据集包含在包中)。然后,我们绘制与该区域相交的颗粒的足迹,以检查我们得到了什么。请注意,默认情况下, find_gedi
和grab_gedi
都会缓存其输出,因此,当重新运行这些函数时,数据将从缓存中加载而不是再次下载,即使在不同的 R 会话中也是如此。
prairie_creek <- sf::read_sf(system.file( "geojson", "prairie-creek.geojson", package = "chewie"))gedi_2a_search <- find_gedi(prairie_creek, gedi_product = "2A", date_start = "2023-01 -01", date_end = "2023-01-31")#> ✔ 使用缓存的 GEDI 查找结果print(gedi_2a_search)#> #> ──chewie.find ──────────────── ──────────────────────────────────────────────────── ──────────────────────────────────────────────────# > • GEDI-2A#> id time_start time_end url 缓存#>#> 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 个变量未显示:[geometry ]#> #> ──── ──────────────────────────────────────────────────── ──────────────────────────────────────────────────── ────────────────────────────
虽然有一个用于chewie.find对象的plot
方法,但一个很好的选择是使用chewie_show
绘制传单地图,它可以是静态的或交互式的(这在引擎盖下使用了奇妙的{mapview})。
chewie_show(gedi_2a_search,缩放= 8)
现在我们使用grab_gedi
来下载数据——这个函数在内部将数据转换为parquet格式并将其存储在缓存中。返回的值是arrow_dplyr_query对象。然后我们可以使用 {dplyr} 动词来filter
/ select
数据,最后使用collect_gedi
将数据转换为sf对象。如果未执行过滤/选择,则collect_gedi
将返回 AOI 的所有可用列/行。
gedi_2a_sf <-grab_gedi(gedi_2a_search) |> 过滤器(质量标志== 1,降级标志== 0 ) |> 选择(光束,日期时间,lat_lowestmode,lon_lowestmode,elev_highestreturn,elev_lowestmode,rh0,rh25,rh50,rh75,rh95,rh100 ) |> collect_gedi(gedi_find = gedi_2a_search)#> ✔ 在缓存中找到的所有数据print(gedi_2a_sf)#> 具有 884 个特征和 10 个字段的简单特征集合#> 几何类型:POINT#> 维度:XY#> 边界框:xmin: -124.069 ymin: 41.3609 xmax: -123.9959 ymax: 41.43904#> 大地测量 CRS: WGS 84#> # 小标题: 884 × 11#> 光束 date_time 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 行#> # ℹ 5 个变量:rh50 、rh75 、rh95 、rh100 ,#> # 几何
最后,我们可以绘制数据。我们再次可以使用通用的chewie_show
函数。
Chewie_show(gedi_2a_sf,zcol =“rh95”,缩放= 13,alpha = 0.5,aoi_color =“白色”)
gedi-subsetter 提供了一系列用于查询和下载 GEDI 数据的 python 工具。其范围与 {chewie} 类似,但它还为能够访问 MAAP 平台的 NASA 附属机构提供对 hdf5 文件的直接访问。
{rGEDI} 提供下载 GEDI 数据的能力,而且还提供大量用于可视化、后处理和建模的附加功能。
{GEDI4R} 同样提供了一套用于下载、可视化和建模 GEDI 数据的工具,但重点是 4A 产品。
pyGEDI 是一个用于下载和可视化 GEDI 数据的 Python 包。
GEDI-Data-Resources 是 python 和 R 脚本的集合,提供了如何下载和处理 GEDI 数据的示例。
这些资源为 {chewie} 提供了巨大的灵感来源;我们要感谢作者的出色工作!