R语言实现地理探测器的流程及代码
geodetector包涵盖五个函数:factor_detector,interaction_detector,risk_detector,ecological_detector和geodetector。前四个功能实现因子检测器,交互检测器,风险检测器和生态检测器的计算,可以使用表数据计算,例如csv格式。最后一个函数geodetector是一个辅助函数,可用于实现shapefile格式映射数据的计算。
官网有详细的介绍和教程,地址如下:
https://cran.r-project.org/web/packages/geodetector/vignettes/geodetector.html#factor-detector
因本人在写论文的过程中运用到,自学咨询了之后,在此记录一下操作流程,方便大家学习。在文本介绍csv格式的数据的前4个函数(factor_detector,interaction_detector,risk_detector,ecological_detector)在R包中的实现。
1 数据预处理
X 处理为离散型数据(对于栅格数据,可用栅格重分类;对于矢量数据(渔网),在mapGIS中建立gdb文件,将数据导入文件地理数据库,属性-符号化-将字段分级,或矢量数据分级显示之后,convert symbology to representation)
Y 处理为点数据(渔网)
2 包的加载及数据导入(操作时将”文件夹名称“替换成需处理的文件即可)
install.packages(“geodetector”) 加载包
library(geodetector) 引用包
install.packages(“readr”)
library(readr)
read_csv(“文件夹名称.csv”) 读自己命名的数据 (注意,数据要放在当前工作的文件夹中)
文件夹名称=read_csv(“文件夹名称.csv”) 数据赋值
文件夹名称 指定文件
2.1因子探测器
factor_detector(“Y”, “X”, as.data.frame(文件夹名称)) 其中as函数为转换为数据框
2.2交互探测**
interaction_detector (17,c(2,3,4,5,6,7,8,9,10,11),as.data.frame(database))
其中当”X"为多个因子的时候,可以用c(2,3,4,5,6,7,8,9,10,11) 表示,数字代表列号。
2.3风险探测
risk_detector(17,c(2,3,4,5,6,7,8,9,10,11),as.data.frame(database))
2.4生态探测
ecological_detector(17,c(2,3,4,5,6,7,8,9,10,11),as.data.frame(database))
3 导出结果
result_1<-factor_detector(17,c(2,3,4,5,6,7,8,9,10,11),as.data.frame(database))
write.csv(result_1,’./factor_detector_CMI.csv’) 将结果写入csv文件