Tujuan dari Chewie adalah membuat pengunduhan data GEDI sesederhana mungkin. Ini termasuk produk tingkat poin: 1B, 2A, 2B dan 4A. Berikut ringkasan singkat pilihan desain yang memungkinkan {chewie} mencapai hal ini:
Data diunduh dan diubah menjadi file parket yang kemudian dapat dibaca menggunakan {panah} dan diubah menjadi objek sf. Pendekatan ini berkinerja baik karena hanya memerlukan seluruh butiran untuk dimuat ke dalam memori satu kali (saat dikonversi dari hdf5 ke parket). Mulai saat ini kita dapat menggunakan kata kerja dplyr (atau basis R) untuk filter
, mutate
, dan select
data sesuai kebutuhan tanpa perlu memuat semua pengambilan gambar, dari butiran tertentu, ke dalam memori.
Cache tingkat sistem digunakan untuk menyimpan data. Artinya, setelah file diunduh, file tersebut tidak akan diunduh lagi meskipun bekerja di proyek yang berbeda (dimungkinkan juga untuk menentukan lokasi cache unik untuk setiap proyek).
Ada dukungan untuk penyaringan spasial butiran yang memotong area tertentu dan tidak hanya dengan kotak pembatas; ini sering kali mengurangi jumlah data tidak relevan yang diunduh.
Anda dapat menginstal versi pengembangan Chewie seperti ini:
# install.packages("pak")pak::pkg_install("Permian-Global-Research/chewie")
Pertama, mari kita muat di beberapa perpustakaan. {dplyr} tidak penting tetapi direkomendasikan karena merupakan opsi yang sangat baik dan berkinerja tinggi untuk bekerja dengan kumpulan data panah.
perpustakaan (kunyah) perpustakaan (dplyr) perpustakaan
Berikut adalah beberapa fungsi pembantu yang berguna untuk menyiapkan kredensial Anda (menggunakan chewie_creds()
) dan memeriksa apakah kredensial dan cache tersebut diatur dengan benar (menggunakan chewie_health_check()
). Secara default, cache diatur di folder .chewie
di direktori home Anda. Anda dapat mengubahnya dengan menjalankan chewie_cache_set()
.
Chewie_creds() # untuk mengatur kredensial Andachewie_health_check() # untuk memeriksa kredensial dan pengaturan cache Anda.
Sekarang, mari kita cari data GEDI 2A yang bersinggungan dengan Prairie Creek Redwoods State Park, California (dataset disertakan dengan paket). Kami kemudian memplot jejak butiran yang berpotongan dengan area ini untuk memeriksa apa yang kami dapatkan. Perhatikan bahwa secara default, find_gedi
dan grab_gedi
menyimpan outputnya dalam cache sehingga, ketika fungsi ini dijalankan kembali, data akan dimuat dari cache daripada diunduh lagi, bahkan dalam sesi R yang berbeda.
padang rumput_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 = "31-01-2023")#> ✔ Menggunakan GEDI yang di-cache, cari hasil cetak(gedi_2a_search)#> #> ── Chemie.find ───────────────── ────────────────────────────────────────────────────── ─────────────────────────────────────────────────────## > • GEDI-2A#> id time_start time_end url di-cache#>#> 1: G2754665065-LPCLOUD 25-01-2023 05:14:31 01-2023 25 06:47:21 https://data.lpdaac.earthdatacloud.nasa.gov/lp-pro... BENAR#> 1 variabel tidak ditampilkan: [geometri ]#> #> ─── ────────────────────────────────────────────────────── ────────────────────────────────────────────────────── ────────────────────────────
Meskipun ada metode plot
untuk objek Chewie.find , alternatif yang bagus adalah dengan memplot peta selebaran dengan chewie_show
, yang bisa bersifat statis atau interaktif (ini menggunakan {mapview} yang fantastis).
kunyah_show( gedi_2a_pencarian, perbesar = 8)
Sekarang kami menggunakan grab_gedi
untuk mengunduh data - fungsi ini secara internal, mengubah data ke format parket dan menyimpannya di cache. Nilai yang dikembalikan adalah objek panah_dplyr_query . Selanjutnya kita bisa menggunakan verba {dplyr} untuk filter
/ select
data sesuai keinginan sebelum akhirnya menggunakan collect_gedi
untuk mengubah data tersebut menjadi objek sf. Jika tidak ada pemfilteran/pemilihan yang dilakukan collect_gedi
akan mengembalikan semua kolom/baris yang tersedia untuk AOI.
gedi_2a_sf <- ambil_gedi(gedi_2a_pencarian) |> filter( quality_flag == 1, degradasi_flag == 0 ) |> pilih( balok, tanggal_waktu, lat_lowestmode, lon_lowestmode, elev_highestreturn, elev_lowestmode, rh0, rh25, rh50, rh75, rh95, rh100 ) |> collector_gedi(gedi_find = gedi_2a_search)#> ✔ Semua data ditemukan di cacheprint(gedi_2a_sf)#> Koleksi fitur sederhana dengan 884 fitur dan 10 bidang#> Tipe geometri: POINT#> Dimensi: XY#> Kotak pembatas: xmin: -124.069 ymin: 41.3609 xmax: -123.9959 ymax: 41.43904#> Geodetik CRS: WGS 84#> # Tibble: 884 × 11#> beam date_time elev_highestreturn elev_lowestmode rh0 rh25#> *#> 1 0 25-01-2023 06:09:05 -19.6 -23.8 -3.55 -1.12 #> 2 0 25-01-2023 06:09:05 -20.7 -24.2 -3.89 -1.27 #> 3 0 25-01-2023 06:09:05 -20.7 -24.2 -3.93 -1.27 #> 4 0 25-01-2023 06:09:05 -2.29 -23.3 -3.37 -0.0300#> 5 0 25-01-2023 06:09:05 27,7 -15,0 -2,54 9,70 #> 6 0 25-01-2023 06:09:05 35,8 4,55 -3,74 12,1 #> 7 0 25-01-2023 06:09:05 55,9 12,2 -1,57 16,8 # > 8 0 25-01-2023 06:09:05 94,6 41,0 -1,53 25,8 #> 9 0 25-01-2023 06:09:05 95,3 42,5 -3,78 6,06 #> 10 0 25-01-2023 06:09: 05 98.3 33.8 -2.32 29.9 #> # ℹ 874 baris lagi#> # ℹ 5 variabel lagi: rh50 , rh75 , rh95 , rh100 ,#> # geometri
Terakhir, kita bisa memplot datanya. Sekali lagi kita dapat menggunakan fungsi chewie_show
generik.
mengunyah_show( gedi_2a_sf, zcol = "rh95", zoom = 13, alpha = 0,5, aoi_color = "putih")
gedi-subsetter menyediakan pilihan alat python untuk menanyakan dan mengunduh data GEDI. Cakupannya mirip dengan {chewie} tetapi juga menyediakan akses langsung ke file hdf5 untuk afiliasi NASA yang memiliki akses ke platform MAAP.
{rGEDI} memberikan kemampuan mengunduh data GEDI tetapi juga banyak fungsi tambahan untuk visualisasi, pasca-pemrosesan, dan pemodelan.
{GEDI4R} yang juga menyediakan seperangkat alat untuk mengunduh, memvisualisasikan, dan memodelkan data GEDI, namun dengan fokus pada produk 4A.
pyGEDI adalah paket Python untuk mengunduh dan memvisualisasikan data GEDI.
GEDI-Data-Resources adalah kumpulan skrip untuk python dan R yang memberikan contoh cara mengunduh dan memproses data GEDI.
Sumber daya ini telah menjadi sumber inspirasi bagi {chewie}; kami ingin mengucapkan terima kasih kepada penulis atas karya hebat mereka!