使用arcgis、matlab与R语言GD包进行地理探测器 批量运行,并导出探测结果

有时我们有大量的数据需要进行地理探测器处理,比如有100个县的shp, 2010年的全国的NDVI与降雨、LUCC、人口密度的数据,要做100个县 NDVI与其他因素的地理探测器分析,不能一个一个的进行探测。我在实际应用过程中,大概总结了一个流程,希望大家指正。

首先在arcgis 模型构建器 建模,使用 sample 进行采样并使用table to excel工具将导出到excel中。迭代的要素便是100个县的矢量数据。关于如何进行多组迭代我还在学习中,还没有尝试在模型中添加模型进行迭代,还是使用python进行处理更好。

获得EXCEL后需要对excel进行处理,删掉所有excel中的索引列、经纬度信息列和有空值的行,这里我使用的是matlab,其他语言应该也可以实现。
%筛选需要的数据并导出

%筛选需要的数据并导出,这里例子是一个Y,8个X,
clc;
clear;
path = 'F:\l';
maindir = dir('F:*.xlsx');
for i =1:length(maindir)
    pathori = strcat(maindir(i).name);
    dataall = xlsread(pathori);%读取excel中全部数据
    dataall(:,1:4)=[];%删掉矩阵前四列
    a=all(~isnan(dataall),2);%筛选存在nan的行,含有空值的行为0
    out=dataall(a,:);%删掉data中存在空值的行
    %输出
    outpath1=strcat('F:\lunwen3\2020\hotspots\OPGD\excel\excel\\',pathori(1:7));
    outpath=strcat(outpath1,'.xlsx');
%定义表头
    biaotou=[{'Y','X1','X2','X3','X4','X5','X6','X7','X8'};num2cell(out)];
    xlswrite(outpath,biaotou); 
    disp(outpath); 

end

处理好的数据就可以使用R语言进行地理探测器分析,并导出结果:


install.packages("GD")
install.packages("stringr")
memory.limit(102400)
library(GD)
library(readxl)
library(stringr)
setwd("F:/")#设置当前工作目录
getwd()#查看当前工作目录
temp=list.files(pattern=".xlsx")
for (i in xxxx){  #要自己设置循环的修改范围
  filename<-substr(temp[i],1,nchar(temp[i]))#提取文件名
  data <- read_excel(filename)
  discmethod <-c("equal","natural","quantile")#参数分散方法
  discitv <- c(4:8) #间隔数
  continuous_variable<- colnames(data[x :x ])#要自己设置连续变量
  testgdm<-gdm(Y~.,continuous_variable = continuous_variable,data=as.data.frame(data),discmethod = discmethod,discitv = discitv)
  
  out=capture.output(testgdm)
  filenameout<-substr(temp[i],1,nchar(temp[i])-5)#提取输出文件名,或者自己重新构建文件名
  name=paste(filenameout,".txt",seq="")#设置文件名
  write.table(out, file = name, append = F, 
              quote = T, sep = " ", eol = "\n", 
              na = "NA", dec = ".", row.names = T,
              col.names = T, qmethod = c(),
              fileEncoding = "utf-8")
}

有时候长时间运行不出结果,可能需要将method中的sd删掉 或者 修改间隔数。

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
地理探测器是一种用于分析地理数据的工具,它可以帮助我们理解不同地理要素之间的关系。根据引用,在实际应用中,进行地理探测器分析通常需要进行一系列的步骤。首先,需要对解释变量进行栅格化和重分类处理,这可以通过使用地理处理工具来实现。接下来,可以将多个值提取到点,并将结果导出到Excel中进行处理。最后,将处理后的数据输入到地理探测器进行分析。 另外,地理处理服务还可以用于选择数据子集和按不同格式打印服务输入。通过属性查询或空间查询,我们可以选择我们感兴趣的数据子集。同时,我们还可以使用地理处理工具来将结果以不同的格式打印,以便于传播和分享研究结果。 总之,地理探测器是一种强大的工具,可以帮助我们分析地理数据,理解地理要素之间的关系。通过使用地理处理工具,我们可以对数据进行处理和分析,并获得有关地理现象的深入洞察。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用arcgismatlabR语言GD进行地理探测器 批量运行,并导出探测结果](https://blog.csdn.net/weixin_43416590/article/details/124784074)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ArcMap|地理探测器(geoDetector)前在ArcGIS中的处理](https://blog.csdn.net/jilli_jelly/article/details/123268990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ArcGIS教程:地理处理服务示例(选择数据)(一)](https://download.csdn.net/download/u010687924/9370118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值