get_soils_raster(...) 中的简单错误:http 错误 400

simpleError in get_soils_raster(...): http error 400

我正在尝试使用嵌套循环获取多个位置的多个属性。代码在周末运行良好,但今天出现错误。

我已经尝试清除我的 DNS 缓存、clearing/restarting 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)
 }

当我在周末 运行 它时,我会得到每次迭代的数据点,但现在我收到错误 运行domly:

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

有什么建议吗,@obrl-soils?

get_soils_raster 是一个 internal-only 函数 - 您可以使用 ::: 而不是 :: 查看它,或者访问 github 存储库。

您遇到的问题似乎与底层服务本身有关,而不是包装代码 - 您可以看出,因为相同的请求有时有效,有时无效,所以问题不是格式错误的请求,因为错误代码可能会提示。我可以复制不一致的行为,我会跟进服务提供商。我注意到过去 24 小时内澳大利亚发生了一些重大的互联网中断,所以这可能会自行解决。

与此同时,您可能希望尝试 http://www.asris.csiro.au/ASRISApi#!/SLGA32Services/SLGA_DrillSLGA 上可用的替代 API 端点。我还没有将它内置到 slga 中 - 我仍在使用 WCS 服务进行我的点查询。