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_search <- find_gedi(prairie_creek, gedi_product = "2A", date_start = "2023 -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 tmel_sm. >#> 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. -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. 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 #3. 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. 0 2023-01-25 06:09: 05 98.3 33.8 -2.32 29.9 #> # ℹ 874 行#> # ℹ 5 個變數:rh50 、rh75 、rh95 、1010,100 > # 幾何
最後,我們可以繪製數據。我們再次可以使用通用的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} 提供了巨大的靈感來源;我們要感謝作者的出色工作!