【发布时间】:2013-07-29 14:45:21
【问题描述】:
我对关于 stackoverflow 的问题完全陌生,而且或多或少是 R 的新手(以及一般的编程),所以请多多包涵。
我有仅显示存在的物种范围的 ASCII 文件。在搜索了互联网的远端之后,我设法上传、转换为栅格、沿着所需的边界(在我的例子中是澳大利亚的海岸线)进行遮罩,并绘制它们,以便我可以在未投影的地图上可视化范围。
完成了这方面的定性方面,我需要进入定量方面;也就是说,我需要计算物种之间的共感程度。为此,我需要首先计算重叠区域,这是我遇到问题的地方。以下是我到目前为止所做的:
> d
class : RasterLayer
dimensions : 85, 270, 22950 (nrow, ncol, ncell)
resolution : 0.08, 0.08 (x, y)
extent : 119.4993, 141.0993, -36.65831, -29.85831 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 2, 2 (min, max)
> b
class : RasterLayer
dimensions : 140, 222, 31080 (nrow, ncol, ncell)
resolution : 0.08, 0.08 (x, y)
extent : 134.2456, 152.0056, -40.44268, -29.24268 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 2, 2 (min, max)
x<-resample(b,d,method="ngb")
y<-mask(x,d)
>y
class : RasterLayer
dimensions : 85, 270, 22950 (nrow, ncol, ncell)
resolution : 0.08, 0.08 (x, y)
extent : 119.4993, 141.0993, -36.65831, -29.85831 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 2, 2 (min, max)
y 是 d 和 b 之间在 d 上被屏蔽的重叠的栅格(当我尝试在 b 上屏蔽时,我收到错误说范围不同)。我如何计算它的面积? raster 包中的 area() 函数将其吐出:
area(y)
class : RasterLayer
dimensions : 85, 270, 22950 (nrow, ncol, ncell)
resolution : 0.08, 0.08 (x, y)
extent : 119.4993, 141.0993, -36.65831, -29.85831 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 63.65553, 68.75387 (min, max)
我不完全确定该怎么做。这甚至是获得区域的好/准确/正确的方法吗?为什么 y 和 b 的范围不同,而 d 和 y 的范围相同?此外,area(y) 的值的单位是什么?我想单位并不重要,因为我最终会取一个比率(通过将重叠除以更受限制的物种的范围),但我很想知道以供将来参考。
如果这是一个愚蠢的问题,我很抱歉。我很感激有人可能提出的任何意见。
【问题讨论】:
-
我可能误解了确切的问题,所以请对我的评论持保留态度。您能否提供包含您的在线数据的 ASCII 格式示例?我怀疑我们可以更直接地从位置数据计算区域之间的重叠。此外,如果可能,请发布您正在创建的情节样本。一张图讲一千个字……
-
好吧,显然我错过了 area() 的描述,它告诉你单位是 km^2。
-
@Dinre - 显然我没有在我的问题中添加图像的声誉。这是一个链接 imgur.com/tHL99j6"><imgsrc="i.imgur.com/tHL99j6.png" title="Hosted by imgur.com" />。在我有足够的资金将澳大利亚添加到image. 至于 ASCII 格式,我不知道怎么描述;它是一系列 2s 和 -3.4e+38 排列的模式,其中 -3.4e+38 代表 NODATA_VALUE 和 2 我假设代表物种的存在.