GIMMS NDVI 3g.v1 обработка в R - PullRequest
1 голос
/ 01 июля 2019

Я хочу загрузить и обработать коллекцию GIMMS NDVI 3g.v1 с помощью R. С пакетом gimms мне удалось загрузить полную коллекцию, но я не знаю, как назначать даты файлам. Мой конечный результат - я хочу быть растровым стеком с NDVI хорошего качества (нулевое значение флага). Итак, 2 наблюдения в месяц, в год. Я был бы очень признателен за любую помощь.

my_dir <-  "my_directory_here"
my_gimms_files <- downloadGimms(dsn = my_dir)
my_ndvi <- stack(my_gimms_files , varname = "ndvi")
my_flags<-stack(my_gimms_files , varname = "percentile")#and from this point, I do not know how to deal with the files. 

Есть предложения?

1 Ответ

1 голос
/ 06 июля 2019

Я бы порекомендовал вам посмотреть в блоге Florian Detsch ' s (сопровождающие пакета) об использовании пакета.Зачем?Флориан хорошо показывает, как импортировать файлы, используя Gimms , и как пакет может решить проблему организации файлов во времени (то есть в порядке времени), используя update_inventory () и remarangeFiles () - в моем понимании проблема, с которой вы столкнулись.

Надеюсь, это указывает вам правильное направление.

Флориан также написал руководство к пакету:

Вышеуказанное охватывает использование и применение пакета.


Цитируемая статья (импортировано для простоты)

Это гостевой пост Florian Detsch

О чем идет речь

С самым последним обновлением сбора данных GIMMS AVHRR до NDVI3g (Пинзон и Такер, 2014), мы решили создать пакет из всех функций, которые мы написали до сих пор, чтобы загрузить иобрабатывать двоичные файлы GIMMS с сервера NASA ECOCAST.Пакет называется gimms и содержит набор основных рабочих шагов, необходимых для передачи данных в R:

  • updateInventory, чтобы вывести список всех файлов GIMMS, доступных в Интернете, и
  • переупорядочить файлы для сортировки (онлайнили локальные) файлы по дате,
  • downloadGimms для загрузки выбранных файлов,
  • rasterizeGimms для импорта двоичных данных в виде объектов 'Raster *' в R и
  • monthComposite для агрегированиядвухмесячные наборы данных для составления месячных значений.

Как установить

Пакет gimms (версия 0.1.1) официально зарегистрирован на CRAN и может бытьустанавливается напрямую через

## install 'gimms' package
install.packages("gimms")

## load 'gimms' package
library(gimms)

Чтобы использовать версию для разработчиков (не несем ответственности), пожалуйста, обратитесь к ветке 'Develop', размещенной на GitHub .Там вы также найдете последние новости и обновления, касающиеся пакета.

library(devtools)
install_github("environmentalinformatics-marburg/gimms", ref = "develop")

Список доступных файлов

updateInventory импортирует последнюю версию онлайнового инвентарного списка файлов как'символьный' вектор в R. Установив sort = TRUE, он в то же время является оберткой вокруг файлаrangerangeFiles, поскольку выходной вектор будет отсортирован по дате, а не по алфавиту.Последняя функция оказывается особенно полезной при рассмотрении соглашения об именовании файлов GIMMS, где, например, «geo13jul15a.n19-VI3g» означает первую половину июля 2013 года. Если активное интернет-соединение недоступно, updateInventory автоматически импортирует последнюю автономную версию файлаинвентарь.

gimms_files <- updateInventory()

## Trying to update GIMMS inventory from server...
## Online update of the GIMMS file inventory successful!

gimms_files[1:5]

## [1] "<span class="skimlinks-unlinked">http://ecocast.arc.nasa.gov/data/pub/gimms/3g.v0/1980s_new/geo81jul15a.n07-VI3g</span>"
## [2] "<span class="skimlinks-unlinked">http://ecocast.arc.nasa.gov/data/pub/gimms/3g.v0/1980s_new/geo81jul15b.n07-VI3g</span>"
## [3] "<span class="skimlinks-unlinked">http://ecocast.arc.nasa.gov/data/pub/gimms/3g.v0/1980s_new/geo81aug15a.n07-VI3g</span>"
## [4] "<span class="skimlinks-unlinked">http://ecocast.arc.nasa.gov/data/pub/gimms/3g.v0/1980s_new/geo81aug15b.n07-VI3g</span>"
## [5] "<span class="skimlinks-unlinked">http://ecocast.arc.nasa.gov/data/pub/gimms/3g.v0/1980s_new/geo81sep15a.n07-VI3g</span>"

Загрузка файлов

Следующим логическим шагом в цепочке обработки gimms является загрузка выбранных (если не всех) наборов данных за два месяца.Этого можно достичь, запустив downloadGimms, который принимает различные типы входных параметров.

- «пропущенный» ввод → загрузка всей коллекции Указание отсутствия какого-либо конкретного ввода, возможно, является наиболее простым способом получения данных.,Функция автоматически начнет загружать всю коллекцию файлов (в настоящее время с июля 1981 г. по декабрь 2013 г.) и записывать данные в dsn.

## download entire gimms collection
downloadGimms(dsn = paste0(getwd(), "/data"))

- «числовой» ввод → загрузка временного диапазона. Также возможноуказать начальный год (x) и / или конечный год (y), чтобы ограничить временный охват загружаемых наборов данных.В случае отсутствия x (или y) загрузка данных автоматически начнется с первого (или закончится с последним) доступного года.

## download gimms data from 1998-2000
downloadGimms(x = 1998, y = 2000, 
              dsn = paste0(getwd(), "/data"))

- ввод «символов» → загрузка определенных файлов. В качестве третьей и последней возможности запуска downloadGimms также можно предоставить вектор «символов», состоящий из действительных сетевых путей к файлам.Последний может быть легко получен из updateInventory (как показано выше) и напрямую передан входному аргументу x.

## download manually selected files
downloadGimms(x = gimms_files[769:780], 
                  dsn = paste0(getwd(), "/data"))

Растеризация загруженных данных

rasterizeGimms преобразует полученные данные GIMMS из собственного двоичного файла в общий формат GeoTiff и делает отдельные слои доступными в R как обычные объекты Raster *. Таким образом, пользователь должен решить, следует ли отбрасывать значения «маска-вода» (-10 000) и значения «маска-нодата» (-5 000) (см. Также официальный NDVI3g README ) и примените коэффициент масштабирования (1/10000). Поскольку растеризация обычно занимает некоторое время, мы настоятельно рекомендуем использовать аргумент имени файла, который автоматически вызывает raster :: writeRaster.

## list available files
gimms_files <- rearrangeFiles(dsn = paste0(getwd(), "/data"), 
                              pattern = "^geo13", <span class="skimlinks-unlinked">full.names</span> = TRUE)

## rasterize files
gimms_raster <- rasterizeGimms(gimms_files, 
                               filename = paste0(gimms_files, ".tif"))

Немного усилий и с помощью RColorBrewer и sp, вот что мы создали до сих пор.

Global bi-monthly GIMMS NDVI3g images from July to December 2013

Создание ежемесячных композитов

Иногда от пользователя требуется рассчитать месячные значения композитов из двухмесячных наборов данных GIMMS, например, обеспечить временное перекрытие с другим продуктом дистанционного зондирования. Для этой цели gimms также имеет функцию MonthComposite, которая работает как с векторами имен файлов, так и со всеми объектами 'RasterStack' (в идеале возвращаемыми rasterizeGimms) и рассчитывает месячные значения на основе определенной пользователем функции (например, fun). = максимум для создания месячных слоев MVC). Эта функция в значительной степени основана на stackApply из растрового пакета, и требуемая работа по кодированию довольно проста.

## 'GeoTiff' files created during the previous step
gimms_files_tif <- sapply(gimms_raster@layers, function(i) attr(i@file, "name"))

## create monthly maximum value composites
gimms_raster_mvc <- monthlyComposite(gimms_files_tif)

Global monthly composite GIMMS NDVI3g images from July to December 2013.

Последнее замечание

Более полную версию этого краткого введения в пакет gimms, включая коллекцию вариантов использования (особенно в сочетании с параллельными возможностями R), можно найти в Интернете по адресу https://github.com/environmentalinformatics-marburg/gimms. Любые комментарии о том, как улучшить пакет, возможные сообщения об ошибках и т. д. высоко ценятся!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...