Цель Chevie — максимально упростить загрузку данных GEDI. Сюда входят продукты точечного уровня: 1B, 2A, 2B и 4A. Вот краткое описание вариантов дизайна, которые позволяют {chewie} добиться этого:
Данные загружаются и преобразуются в файлы паркета, которые затем можно прочитать с помощью {стрелки} и преобразовать в объекты SF. Этот подход эффективен, поскольку требует, чтобы каждая гранула целиком загружалась в память только один раз (при преобразовании из hdf5 в паркет). С этого момента мы можем использовать глаголы dplyr (или базу R) для filter
, mutate
и select
данных по мере необходимости без необходимости загружать все снимки из заданной гранулы в память.
Для хранения данных используется кеш системного уровня. Это означает, что однажды скачанный файл не будет загружен повторно, даже если он работает в другом проекте (также можно указать уникальное местоположение кэша для каждого проекта).
Имеется поддержка пространственной фильтрации гранул, пересекающих интересующую область, а не только ограничивающей рамкой; это часто уменьшает количество загружаемых ненужных данных.
Вы можете установить разрабатываемую версию Chewie следующим образом:
# install.packages("pak")pak::pkg_install("Permian-Global-Research/chewie")
Сначала давайте загрузим несколько библиотек. {dplyr} не является обязательным, но рекомендуется, поскольку это отличный и высокопроизводительный вариант для работы с наборами данных стрелок.
библиотека (чуи) библиотека (дплир) библиотека(нф)
Вот несколько полезных вспомогательных функций для настройки ваших учетных данных (с помощью 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 = "31.01.2023")#> ✔ Использование кэшированного GEDI find resultprint(gedi_2a_search)#> #> ── Chevie.find ────────────────────────────────────────────────── ────────────────────────────────────────────────── ────────────────#> • GEDI-2A#> id time_start time_end URL-адрес кэшированного#> <char> <POSc> <POSc> <char> <lgcl>#> 1: G2754665065-LPCLOUD 25 января 2023 г. 05:14:31 25 января 2023 г. 06:47:21 https://data.lpdaac.earthdatacloud.nasa.gov/lp-pro... TRUE#> 1 переменная не показана: [geometry <sfc_POLYGON>]#> #> ────────────────────────────────────────────────── ──────────────── ────────────────────────────────────────────────── ────────────────
Несмотря на то, что для объектов Chewie.find существует метод plot
, отличной альтернативой является построение карты-листовки с помощью chewie_show
, которая может быть статической или интерактивной (при этом используется фантастический {mapview} под капотом).
Chewie_show( gedi_2a_search, масштабирование = 8)
Теперь мы используем grab_gedi
для загрузки данных — эта функция внутренне преобразует данные в паркетный формат и сохраняет их в кеше. Возвращаемое значение является объектомarrow_dplyr_query . Затем мы можем использовать глаголы {dplyr} для filter
/ select
данных по своему усмотрению, прежде чем, наконец, использовать collect_gedi
для преобразования данных в объект SF. Если фильтрация/выбор не выполняется, то collect_gedi
вернет все доступные столбцы/строки для AOI.
gedi_2a_sf <-grab_gedi(gedi_2a_search) |> фильтр(quality_flag == 1, degrade_flag == 0 ) |> select( луч, дата_время, 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 xмакс: -123,9959 ymax: 41.43904#> Геодезический CRS: WGS 84#> # Тиббл: 884 × 11#> луч date_time elev_highestreturn elev_lowestmode rh0 rh25#> * <int> <dttm> <dbl> <dbl> <dbl> <dbl>#> 1 0 25.01.2023 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 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 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 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 строки#> # ℹ еще 5 переменных: rh50 <dbl>, rh75 <dbl>, rh95 <dbl>, rh100 <dbl>,#> # Geometry <POINT [°]>
Наконец, мы можем построить график данных. Мы снова можем использовать общую функцию chewie_show
.
Chewie_show( gedi_2a_sf, zcol = "rh95", масштабирование = 13, альфа = 0,5, aoi_color = "белый")
gedi-subsetter предоставляет набор инструментов Python для запроса и загрузки данных GEDI. Его область действия аналогична {chewie}, но он также обеспечивает прямой доступ к файлам hdf5 для филиалов НАСА, имеющих доступ к платформе MAAP.
{rGEDI} предоставляет возможность загрузки данных GEDI, а также множество дополнительных функций для визуализации, постобработки и моделирования.
{GEDI4R}, который также предоставляет набор инструментов для загрузки, визуализации и моделирования данных GEDI, но с упором на продукт 4A.
pyGEDI — это пакет Python для загрузки и визуализации данных GEDI.
GEDI-Data-Resources — это набор скриптов для Python и R, которые предоставляют примеры загрузки и обработки данных GEDI.
Эти ресурсы стали отличным источником вдохновения для {chewie}; Хотим поблагодарить авторов за прекрасную работу!