rsi — загрузка данных из STAC и расчет спектральных индексов [ссылка]
Пакет
rsi (от __r__epeated __s__patial __i__nfelicities) предоставляет пользователю:
- Интерфейс к проекту Awesome Spectral Indices project, который содержит
список спектральных индексов в виде таблицы tibble.
- Метод эффективного
вычисления этих спектральных индексов.
- Метод
загрузки данных с любого сервера STAC, с дополнительными настройками для загрузки популярных данных Landsat, Sentinel-1 и Sentinel-2 с бесплатных и публичных серверов STAC.
- Метод
объединения нескольких растров, содержащих различные наборы данных, в единый растровый стек.
Функция
spectral_indices()
возвращает таблицу спектральных индексов.
Функция
get_stac_data()
позволяет загружать изображения из любого доступного каталога STAC. Например, можно загрузить композит каналов Landsat с маской облачности:
aoi <- sf::st_point(c(-74.912131, 44.080410))
aoi <- sf::st_set_crs(sf::st_sfc(aoi), 4326)
aoi <- sf::st_buffer(sf::st_transform(aoi, 5070), 1000)
landsat_image <- get_stac_data(
aoi,
start_date = "2022-06-01",
end_date = "2022-06-30",
pixel_x_size = 30,
pixel_y_size = 30,
asset_names = c("red", "blue", "green"),
stac_source = "https://planetarycomputer.microsoft.com/api/stac/v1/",
collection = "landsat-c2-l2",
mask_band = "qa_pixel",
mask_function = landsat_mask_function,
output_filename = tempfile(fileext = ".tif"),
item_filter_function = landsat_platform_filter,
platforms = c("landsat-9", "landsat-8")
)
Для популярных данных, например для снимков Landsat, есть отдельные функции, где большинство параметров настроено по умолчанию:
landsat_image <- get_landsat_imagery(
aoi,
start_date = "2022-06-01",
end_date = "2022-06-30",
output_filename = tempfile(fileext = ".tif")
)
По умолчанию, данные загружаются из Microsoft's Planetary Computer API.
Теперь на основе полученных каналов снимков Landsat рассчитаем спектральные индексы при помощи
calculate_indices()
:
indices <- calculate_indices(
landsat_image,
available_indices,
output_filename = tempfile(fileext = ".tif")
)
Наконец, в rsi есть утилита для эффективного объединения растров, содержащих различные данные об одном и том же месте, в VRT, что позволяет программам типа GDAL рассматривать эти отдельные источники данных как единый файл.
Например, мы можем объединить наши снимки Landsat с полученными индексами:
raster_stack <- stack_rasters(
c(landsat_image, indices),
tempfile(fileext = ".vrt")
)
#R #индексы