问题描述
最近在使用maxent进行物种分布建模时有一步需要去除相关性过高的环境因子。这里就有一个问题,如果是同一区域不同物种都是这把相同的19个环境因子进行相关性分析,那它们的结果岂不是都一样了嘛?所以应该把坐标点考虑进去,分析标本点的栅格气候因子直接的相关性。
这就产生一个问题,需要提取坐标点的环境因子,因为环境因子往往有十几到几十个,一个个进行掩膜提取太麻烦了,这里提供一个批量提取的方法。
工具准备
掩膜提取使用arcgis10.8,需要工具箱SDMtoolboxhttp://www.sdmtoolbox.org/,安装教程网上很多。
提取步骤
数据格式
首先展示一下我的数据格式,由于maxent建模需要asc格式,所以我的环境数据都是asc格式的,点位数据是csv。
数据转化
我们需要的数据是点位数据是shp格式用来当掩膜,环境数据需要栅格用来当提取背景,因此需要对原始数据进行转化。因此这一步目的是将csv转为shp,asc转为栅格
首先是点数据的csv格式转为shp:
打开arcgis——右击“图层”——添加数据(csv文件格式)——右键——显示XY数据(选择经纬度坐标)——确定——右键——数据——导出数据(shp文件)
然后是asc转为栅格
在arcgis里找到sdm工具箱SDM Toolbox——Basic Tools——Raster Tools——ASCII to Raster(Folder)
Input Folder 选择刚才的环境数据的文件夹,output自己选择输出的文件夹,type选择ESRI grid,raster type选择FLOAT(浮点)
这是输出的结果,有乱码文字但是没事
掩膜提取
点击Extract by Mask(Folder)
input folder选择刚刚从环境数据asc转化出来的那个文件夹(就是我说有文字乱码的那个),在Are inputs ESRI grids?一栏点Yes,output folder选择你自己想储存的位置,mask选择刚刚转化出来的shp文件。在Additional Parameters 里的output raster type一栏选择ASCII格式,方便后续计算环境因子相关性。(你也可以选择自己想要的格式)
下面是输出的结果,可以看到都处理为asc格式了,在arcgis里查看一下结果
可以看到之前一整个面的坡度数据已经按照点位提取出一个一个点的坡度数据了