近期事情太多,有段时间没更新了。今天忙里偷闲,把这两天写的一个小脚本共享一下。
这个脚本主要是用面图层中每个独立小斑块来裁剪栅格并统计该部分栅格的属性,最后做了个皮尔森相关分析。实际的含义就是统计栅格每部分的属性值,可能有朋友会问,通过arcmap中的【分区统计】就可以直接得到值啊?笔者一开始也是用的分区统计来做的,但发现分区统计对这种分散的斑块图层非常不友好,做不出来结果,分区统计还是适用于连续相邻的斑块,比如行政边界。而自己编程可以更加灵活的输出结果并用于后续的分析,我这里只做了相关分析,但其他的数据分析操作也都是可以做的。
数据图示如下这是一个面图层,其中有很多独立的斑块,我们要做的就是利用其中的每个斑块去裁剪目标栅格目标栅格
1.数据预处理
用到的面矢量数据需要在Arcmap中经过【合并】>>【拆分多部件要素】这样的处理,目的是确保每个斑块对应一条属性记录(如果你的数据已经满足每个斑块对应一条属性记录,则无需此操作)。具体操作如下:
2.代码
代码的主要思路如下:
1.通过插入游标来访问面矢量的属性表,用读取每个属性记录的几何属性,用这个属性裁剪栅格,再对裁剪的栅格统计平均值,这就得到了每个部分栅格的平均值了,并将每个值作为x;
2.做了个面矢量的buffer和另外一个目标栅格进行同样的操作,以它每部分的平均值作为y;PS:这个缓冲区是根据你的实际需要来做的,如果你不需要用缓冲区来裁剪栅格,就不用做;
3.利用scipy中的函数直接求得相关系数及其