【问题标题】:Minimum elevation within km公里以内的最低海拔
【发布时间】:2015-10-26 20:07:52
【问题描述】:

尝试用R求某个经纬度10km范围内的最低海拔。

到现在为止

dem <- getData("SRTM", lat=42.90, lon=-78.85, path = datadir)
plot(dem)

我知道我需要创建空间点并最终缓冲/提取信息。

当我尝试时:

buffdem <- buffer(dem, width=10000)

它不起作用,因为我没有任何积分。

我试过了

dem <- getData("SRTM", lat=42.90, lon=-78.85, path = datadir)
coords <- data.frame(
  x = rnorm(100),
  y = rnorm(100)
)
coordinates(dem)

spdf = SpatialPointsDataFrame(coords, dem)

我收到以下错误:

validObject(.Object) 中的错误:无效类 “SpatialPointsDataFrame”对象:插槽“数据”的无效对象 类“SpatialPointsDataFrame”:得到类“RasterLayer”,应该是或 扩展类“data.frame”

【问题讨论】:

  • 请提供可重现的示例。
  • 您不一定需要缓冲积分。对栅格进行焦点min,然后使用extract - 请参阅?focal
  • “可重现”意味着您向我们提供了一个样本数据集,我们可以用来演示/测试解决方案:tinyurl.com/reproducible-000
  • 我明白了,我会尝试对焦分钟。谢谢!
  • 我会发布一个示例,但 ftp 对我来说速度非常慢。我看看能不能找到一块更小的瓷砖。

标签: r spatial raster


【解决方案1】:

我认为这可以满足您的需求:

library(raster)
#elevation <- getData("SRTM", lat=42.90, lon=-78.85)
#poi <- cbind(lon=-78.85, lat=42.90)

使用较小的示例数据集以加快下载速度:

elevation <- getData('alt', country='CHE')
poi <- cbind(8.13, 46.47)

e <- extract(elevation, poi, buffer=10000)

sapply(e, min, na.rm=TRUE)

顺便说一句,这是thisthis 问题的重复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多