python 设置使用独立显卡_【Python】(1):利用arcpy批量使用独立斑块裁剪栅格

778fab4b00dab13f3589fb2810ec3bb9.png

近期事情太多,有段时间没更新了。今天忙里偷闲,把这两天写的一个小脚本共享一下。

这个脚本主要是用面图层中每个独立小斑块来裁剪栅格并统计该部分栅格的属性,最后做了个皮尔森相关分析。实际的含义就是统计栅格每部分的属性值,可能有朋友会问,通过arcmap中的【分区统计】就可以直接得到值啊?笔者一开始也是用的分区统计来做的,但发现分区统计对这种分散的斑块图层非常不友好,做不出来结果,分区统计还是适用于连续相邻的斑块,比如行政边界。而自己编程可以更加灵活的输出结果并用于后续的分析,我这里只做了相关分析,但其他的数据分析操作也都是可以做的。

数据图示如下

546bb81b496c0a5682719ef66a52080d.png
这是一个面图层,其中有很多独立的斑块,我们要做的就是利用其中的每个斑块去裁剪目标栅格

3a8261f051a0310c801bb6d94a94fe0d.png
目标栅格

1.数据预处理

用到的面矢量数据需要在Arcmap中经过【合并】>>【拆分多部件要素】这样的处理,目的是确保每个斑块对应一条属性记录(如果你的数据已经满足每个斑块对应一条属性记录,则无需此操作)。具体操作如下:

311b10d567680599d6e0e4aa4dc0db4a.png

2.代码

代码的主要思路如下:

1.通过插入游标来访问面矢量的属性表,用读取每个属性记录的几何属性,用这个属性裁剪栅格,再对裁剪的栅格统计平均值,这就得到了每个部分栅格的平均值了,并将每个值作为x;

2.做了个面矢量的buffer和另外一个目标栅格进行同样的操作,以它每部分的平均值作为y;PS:这个缓冲区是根据你的实际需要来做的,如果你不需要用缓冲区来裁剪栅格,就不用做;

3.利用scipy中的函数直接求得相关系数及其p值,就得到结果了。

具体代码如下,注释有详细的每句解释:

#导入库

3.结果输出

2183ca72d353d1be1a9e5a540fe4ca83.png
每个部分打印出来的栅格均值

48e1cb6384d0b999858ac6120c365637.png
最终相关系数结果,-0.03这个是相关系数,后面的0.69是p值,可见这里是不显著的

总结

通过这个脚本,最重要的是要学会游标中几何令牌这个东西,也就是shape@那句代码,arcgis帮助中有详细的解释,贴出如下:

读取几何-帮助 | ArcGIS Desktop​desktop.arcgis.com
8d24213a53daeb1451d6c2b8b8dd870c.png

时间关系,很多地方说的还不是很清楚。大家如果有问题需要交流直接评论或私信我就行~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值