在这种情况下,您应该使用空间模式分析来识别人类活动与岩石分布之间的关系。岩石必须表示为一个点 shp 文件。为岩石分布添加另一个抽象级别(使它们成为多边形而不是点)是一种非常值得怀疑的方法,似乎对分析没有任何帮助。您将需要一个用于 R 和QGIS的spatstat包(带有很棒的教程) 。
- [你在寻找鬼魂吗?] 使用蒙特卡洛测试来确保你的岩石不是随机分布在研究区域中的(无论人类活动如何)。要执行它,请参阅教程的相应部分或这篇文章。在这种情况下,o-win 对象(它是研究区域的边界,请参阅教程)将是您研究的整个区域。
- 使用蒙特卡罗测试来确定岩石是否随机分布在人类活动地点(在这种情况下,o-win 对象将是人类活动的多边形 shp 文件)。
- 得到岩石分布强度对到人类活动地点距离的依赖关系的经验图。如果人类确定岩石的位置,那么岩石的空间分布强度将取决于到人类活动区域的距离。使用
rhohat
它的功能。如果岩石的分布确实取决于人类活动地点,那么您案例中的图表应该类似于:
这里的 o-win 对象再次将是整个研究区域。将distfun
人类活动多边形的函数用作 中的协变量rhohat
。
这是我的一个项目的第三步的一些示例代码:
library(maptools)
library(rgdal)
library(spatstat)
spatstat.options(gpclib=TRUE)
gpclibPermit()
# load point shp-file for analysis
S <- readShapePoints("/dumps.shp",
proj4string= CRS("your_+proj_sting_here"))
SP <- as(S, "SpatialPoints")
P <- as(SP, "ppp")
# load boundary layer and make it o-win object
Z <- readShapePoly("/boundaries.shp",
proj4string= CRS("your_+proj_sting_here"))
Z1 <- as(Z, "SpatialPolygons")
W <- as.owin(Z1)
P <- P[W]
# in my case covariate polygons were quite small so I loaded them as lines
# to avoid spatstat issue with polygons. You should represent your
# human activity polygons as points as will be described below
c <- readShapeLines("/ccovariate.shp",
proj4string= CRS("your_+proj_sting_here"))
cr <- as.psp(c)
cr <- cr[W]
# create a distance function
сrdist <- distfun(cr)
# create and plot your graph
plot(rhohat(P, сrdist, covname="quarry"),
xlab= "Расстояние до карьера, м",
legendpos = "topright", ##see help(plot.fv)
main = NULL)
差不多就是这样。现在一些重要的细节。
- 如果您没有岩石的点 shp 文件(在这种情况下,您应该跳过前两个步骤,因为这将毫无意义)您可以使用多边形图层重新创建它。为此使用 QGIS。转到矢量 -> 研究工具 -> 随机点。在这里选择你的岩石多边形层作为输入层,并设置单个多边形的选项之一(密度或每个多边形的点数)。
- 如果您将人类活动多边形作为
rhohat
函数的协变量存在问题(spatstat
有时不能很好地与多边形一起使用)。您可以按照上一段中的建议将多边形替换为点图层,但使用常规点而不是随机点。
PS您可以采取其他方法(从教程中获得灵感spatatat
),但在这种情况下必须使用点模式分析,而不是岩石位置的某些多边形。