simpleError в get_soils_raster (...): ошибка http 400 - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь получить несколько атрибутов для нескольких местоположений с помощью вложенного цикла. В выходные дни код работал нормально, но сегодня я получаю ошибки.

Я попытался очистить кэш DNS, очистить / перезапустить сеанс R и обновить пакет. Попытался устранить неполадки функции, но не смог найти функцию get_soils_raster.

MRE: это часть цикла, который я использую для сбора данных.

LATITUDE = -28.77837
LONGITUDE = 114.6572
soil_attributes_available <- slga_attribute_info %>% 
                             filter(WA == TRUE) %>% 
                             select(Code) %>% 
                             unlist() %>% 
                             unname()


soil_composition_matrix <- lapply(soil_attributes_available, list)
SOIL_DEPTH <- 1 # 0-5cm
BUFFER_AROUND_POINT <- 3 # ~270m radius

 for (code in 1:length(soil_attributes_available)) {
     result <- tryCatch(
         {unname(
             unlist(
                 get_soils_point(product = 'WA', 
                                 attribute = soil_attributes_available[code],
                                 component = 'VAL',
                                 depth = SOIL_DEPTH,
                                 poi = c(LONGITUDE, LATITUDE),
                                 buff = BUFFER_AROUND_POINT,
                                 buff_shp = 'circle',
                                 stat = 'mean')[1]
             )
         )
         }, 
         error = function(e){print(e)}
     )
     print(result)
 }

Когда я запускал его в выходные, я получал точки данных для каждой итерации, но теперь я получаю ошибки случайным образом:

<simpleError in get_soils_raster(product, attribute, component, depth, aoi, skip_val = TRUE): http error 400.>

Есть предложения, @ obrl-soils?

1 Ответ

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

get_soils_raster - это внутренняя функция - вы можете просмотреть ее, используя ::: вместо ::, или посетить репозиторий github.

Проблема, по-видимому, связана с самой службой, а не с кодом обертки - вы можете сказать, что один и тот же запрос иногда работает, а иногда нет, поэтому проблема не является искаженным запросом, посколькуКод ошибки может предложить.Я могу воспроизвести противоречивое поведение и свяжусь с поставщиком услуг.Я отмечаю, что в течение последних 24 часов в Aus произошли некоторые серьезные перебои с интернетом, поэтому это может разрешиться само собой.

Тем временем вы можете попробовать альтернативную конечную точку API, доступную на http://www.asris.csiro.au/ASRISApi#!/SLGA32Services/SLGA_DrillSLGA. Я еще не встроил его в slga - я все еще использую сервисы WCS для своих точечных запросов.

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