Я пытаюсь рассчитать самокалибрующийся PDSI примерно для 5000 мест по всей Европе. Идея состоит в том, чтобы в конечном итоге иметь растр для каждого года выборки со значениями scPDSI для каждого местоположения. В примерах из пакета scPDSI я видел, как это делается только для одного места за раз. Прямо сейчас я перебираю каждое местоположение, вычисляю scPDSI и создаю новый фрейм данных с этими данными. Для некоторых мест я получаю действительно экстремальные значения (например, -1000), когда scPDSI должен действительно изменяться только от -10,10. Это происходит только в 4 или 5 локациях. Вот код, который я использую:
pdsi_df <- data.frame()
locations <- unique(data$location)
for(I in 1:length(locations){
sub <- data[data$location == locations[i],]
sub <- sub[order(sub$date),]
P <- sub$prec #Precipitation
PE <- sub$pet #Potential evapotranspiration
sub$scPDSI <- as.vector(scPDSI::pdsi(P = P, PE = PE, sc = True, start = 1640)$X)
pdsi_df <- rbind(pdsi_df, sub)
}
Места с экстремальными значениями не имеют значений для осадков или ПЭТ, которые резко отличаются от местоположений без экстремальных значений. В этих местах значения также резко увеличиваются в последующие годы (выборка от 1640 до 1860).
Что-то не так с моим кодом, что привело бы к такому результату? Кто-нибудь раньше рассчитывал scPDSI для нескольких местоположений? Если да, нужно ли мне рассчитывать его для каждой уникальной комбинации широты и долготы или есть способ сделать это вместе?