Chuie の目標は、GEDI データのダウンロードをできるだけ簡単にすることです。これには、ポイントレベルの商品 (1B、2A、2B、および 4A) が含まれます。 {chewie} がこれを実現できるようにするための設計上の選択肢の簡単な概要を次に示します。
データはダウンロードされ、寄木細工ファイルに変換されます。このファイルは、{arrow} を使用して読み取って sf オブジェクトに変換できます。このアプローチは、各グラニュール全体を 1 回 (hdf5 から parquet に変換するとき) メモリにロードするだけでよいため、パフォーマンスが優れています。ここからは、dplyr 動詞 (またはベース R) を使用して、特定のグラニュールからすべてのショットをメモリにロードすることなく、必要に応じてデータのfilter
、 mutate
、 select
ができます。
データの保存にはシステムレベルのキャッシュが使用されます。これは、ファイルが一度ダウンロードされると、別のプロジェクトで作業している場合でも、再度ダウンロードされないことを意味します (プロジェクトごとに一意のキャッシュの場所を指定することも可能です)。
境界ボックスだけでなく、関心領域と交差する顆粒の空間フィルタリングもサポートされています。これにより、ダウンロードされる無関係なデータの量が頻繁に削減されます。
次のようにチューイの開発バージョンをインストールできます。
# install.packages("pak")pak::pkg_install("Permian-Global-Research/chewie")
まず、いくつかのライブラリをロードしましょう。 {dplyr} は必須ではありませんが、矢印データセットを操作するための優れたパフォーマンスの高いオプションであるため推奨されます。
図書館(チューイ) ライブラリ(dplyr) 図書館(SF)
ここでは、認証情報を設定し ( chewie_creds()
を使用)、それらの認証情報とキャッシュが正しく設定されていることを確認する ( chewie_health_check()
を使用) ための便利なヘルパー関数をいくつか紹介します。デフォルトでは、キャッシュはホーム ディレクトリの.chewie
フォルダに設定されます。これは、 chewie_cache_set()
実行することで変更できます。
Chewie_creds() # 資格情報を設定しますchewie_health_check() # 資格情報とキャッシュ設定を確認します。
次に、カリフォルニア州プレーリー クリーク レッドウッド州立公園と交差する 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} を使用します)。
チューイ_ショー( gedi_2a_search, ズーム = 8)
ここで、 grab_gedi
使用してデータをダウンロードします。この関数は内部でデータを寄木細工形式に変換し、キャッシュに保存します。戻り値はarrow_dplyr_queryオブジェクトです。次に、最後にcollect_gedi
使用してデータをsfオブジェクトに変換する前に、{dplyr}動詞を使用してデータをfilter
/ select
。フィルタリング/選択が実行されない場合、 collect_gedi
AOI で使用可能なすべての列/行を返します。
gedi_2a_sf <-grab_gedi(gedi_2a_search) |> filter( 品質フラグ == 1, 劣化フラグ == 0 ) |> select( ビーム、date_time、lat_lowestmode、lon_lowestmode、elev_highestreturn、elev_lowestmode、rh0、rh25、rh50、rh75、rh95、rh100 ) |> collect_gedi(gedi_find = gedi_2a_search)#> ✔cacheprint(gedi_2a_sf)#> で見つかったすべてのデータ#> 884 個のフィーチャと 10 個のフィールドを含む単純なフィーチャ収集#> ジオメトリ タイプ: POINT#> 寸法: XY#> 境界ボックス: xmin: -124.069 ymin: 41.3609 xmax: -123.9959 ymax: 41.43904#> 測地 CRS: WGS 84#> # A tibble: 884 × 11#> beam 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 ,#> # geometry
最後に、データをプロットできます。ここでも、汎用の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 は、GEDI データをダウンロードして処理する方法の例を提供する、Python と R の両方のスクリプトのコレクションです。
これらのリソースは、{chewie} にとって大きなインスピレーションの源となっています。著者の素晴らしい仕事に感謝したいと思います。