我正在尝试使用多边形边界框查询USDA SSURGO土壤数据库。但是,当我使用mapunit_geom_by_ll_bbox()
函数为下面列出的边界框坐标时,我收到一条错误消息,我不知道该怎么做,我希望有人可以提供帮助。
该函数适用于我生成的同一个脚本查询的许多其他站点,但在这种情况下似乎在下载59.3 MB数据后抛出错误消息“找不到任何功能”。
require(soilDB)
require(rgdal)
b<- c(-78.85225, 36.09854, -78.30758, 36.54143)
mapunits <- mapunit_geom_by_ll_bbox(b)
trying URL 'http://sdmdataaccess.nrcs.usda.gov/Spatial/SDMNAD83Geographic.wfs?Service=WFS&Version=1.0.0&Request=GetFeature&Typename=MapunitPoly&BBOX=-78.8522>474281323,36.0985383812962,-78.3075831406237,36.5414279914723'
Content type 'text/xml; charset=utf-8' length 200 bytes
downloaded 59.3 MB
Error in rgdal::readOGR(dsn = tf.full, layer = file.layer, disambiguateFIDs = TRUE, : no features found
另外:警告信息:
1: In download.file(url = u, destfile = tf.full, quiet = FALSE) : downloaded length 62158033 != reported length 200
2: In ogrFIDs(dsn = dsn, layer = layer) : no features found
任何想法可能是什么问题?
非常感谢,
皮特
答案 0 :(得分:0)
我以为我通过使用SDA_query解决了这个问题,但是我仍然遇到一些较大的边界框的错误,例如:
require(soilDB)
require(rgdal)
b <- c(-82.57186, -82.11829 , 29.51710, 29.91280)
p <- writeWKT(as(extent(b), 'SpatialPolygons'))
q <- paste0("select G.MupolygonWktWgs84 as geom, mapunit.mukey, muname
FROM mapunit
CROSS APPLY SDA_Get_MupolygonWktWgs84_from_Mukey(mapunit.mukey) as G
WHERE mukey IN (SELECT DISTINCT mukey FROM SDA_Get_Mukey_from_intersection_with_WktWgs84('", p, "') )")
res <- SDA_query(q)
Error: SDA returned an error:MaxRows
任何人都知道这是为什么?您可以使用SDA查询下载金额是否有一些上限?
目前,此查询与边界框相比下载了一个非常大的区域,并假设这与多部分多边形有关,是否有某种方法只下载bbox与之交叉的多部分多边形部分?
干杯,
皮特
P.S。我是新手,所以对格式化道歉