使用arcgis、matlab与R语言GD包进行地理探测器 批量运行,并导出探测结果
生活随笔
收集整理的這篇文章主要介紹了
使用arcgis、matlab与R语言GD包进行地理探测器 批量运行,并导出探测结果
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有時我們有大量的數(shù)據(jù)需要進行地理探測器處理,比如有100個縣的shp, 2010年的全國的NDVI與降雨、LUCC、人口密度的數(shù)據(jù),要做100個縣 NDVI與其他因素的地理探測器分析,不能一個一個的進行探測。我在實際應(yīng)用過程中,大概總結(jié)了一個流程,希望大家指正。
首先在arcgis 模型構(gòu)建器 建模,使用 sample 進行采樣并使用table to excel工具將導(dǎo)出到excel中。迭代的要素便是100個縣的矢量數(shù)據(jù)。關(guān)于如何進行多組迭代我還在學(xué)習(xí)中,還沒有嘗試在模型中添加模型進行迭代,還是使用python進行處理更好。
獲得EXCEL后需要對excel進行處理,刪掉所有excel中的索引列、經(jīng)緯度信息列和有空值的行,這里我使用的是matlab,其他語言應(yīng)該也可以實現(xiàn)。
%篩選需要的數(shù)據(jù)并導(dǎo)出
處理好的數(shù)據(jù)就可以使用R語言進行地理探測器分析,并導(dǎo)出結(jié)果:
install.packages("GD") install.packages("stringr") memory.limit(102400) library(GD) library(readxl) library(stringr) setwd("F:/")#設(shè)置當(dāng)前工作目錄 getwd()#查看當(dāng)前工作目錄 temp=list.files(pattern=".xlsx") for (i in xxxx){ #要自己設(shè)置循環(huán)的修改范圍filename<-substr(temp[i],1,nchar(temp[i]))#提取文件名data <- read_excel(filename)discmethod <-c("equal","natural","quantile")#參數(shù)分散方法discitv <- c(4:8) #間隔數(shù)continuous_variable<- colnames(data[x :x ])#要自己設(shè)置連續(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)#提取輸出文件名,或者自己重新構(gòu)建文件名name=paste(filenameout,".txt",seq="")#設(shè)置文件名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") }有時候長時間運行不出結(jié)果,可能需要將method中的sd刪掉 或者 修改間隔數(shù)。
總結(jié)
以上是生活随笔為你收集整理的使用arcgis、matlab与R语言GD包进行地理探测器 批量运行,并导出探测结果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 力扣 两数相加 指针操作注意事项
- 下一篇: 《分布式系统:概念与设计》一2.3.2