Агрегировать тиббл по окнам даты - PullRequest
0 голосов
/ 13 сентября 2018

Я использую R для объединения тиббла с метаданными landat в коллекцию высококачественных сцен, которые попадают в приемлемые промежутки времени друг от друга.Тиббл из библиотеки getlandsat включает метаданные, такие как cloudCover (измеряется в процентах) и acquisitionDate (отметка времени для каждой сцены) для определенных сцен по выбору пользователя.

Я пытаюсьМозаика сцена, используя большинство фотографий и самый низкий облачный покров.

Воспроизводимый код:

library(getlandsat)
library(dplyr)
all.lsat.scenes <- lsat_scenes() # Get a list of available scenes
# Select scenes that overlap with the ROI
tilematches <- paste(c("039037","040037",
                   "039036","040036","041036",
                   "039035","040035","041035"), collapse="|")
my.lsat.scenes <- all.lsat.scenes[grep(all.lsat.scenes$entityId, pattern = tilematches),]
my.lsat.scenes$YMD <- as.Date(my.lsat.scenes$acquisitionDate, format = "%Y-%m-%d")
my.lsat.scenes <- mutate(my.lsat.scenes, Julian = as.numeric(substr(entityId,14,16)))
# Choose sets of scenes that fall within a time frame of interest
winter.scenes <- filter(my.lsat.scenes,
                        Julian > 001,
                        Julian < 060,
                        format.Date(YMD, "%Y") == 2015)
winter.scenes

Итак, теперь у меня есть таблица со всеми изображениями в диапазоне дат (1 января - 28 февраля) в данном году (2015).Именно здесь я начинаю немного расстраиваться с планом атаки.Я могу использовать оператор канала для подсчета количества кадров в каждой дате:

winter.dates <- winter.scenes %>% 
  group_by(YMD) %>%
  tally()
winter.dates

Но теперь я хочу выяснить, какое узкое окно кадров лучше всего представлено.Из winter.dates видно, что некоторые наборы сцен, которые выпадают в течение нескольких дней друг от друга, имеют 6 сцен, а другие - 5. Я могу вычислить столбец временной задержки, используя:

timelags <- diff(winter.dates$YMD)

, но затемМне остается только знать, как все распределяется во времени.Я хочу установить подмножество winter.scenes, используя нижний предел количества изображений (например, winter.dates$n > 5) в пределах 3-дневного окна (timelags < 4), а затем отсортировать результат всего этого по cloudCover.

Я нашел идеи здесь и здесь но ничего, что соответствовало моим точным потребностям.Кто-нибудь может дать понимание?

...