(二)Arcpy栅格计算---Pearson相关系数

Arcpy栅格计算—Pearson相关系数


一、介绍


其中r是相关系数,t是从1到10的时间序列。相关系数范围为-1到1。


二、代码示例

1.引入库

代码如下(示例):


# -*- coding: UTF-8 -*-
# -*- coding: utf-8 -*-
import arcpy
import os
from arcpy import env
from arcpy.sa import *

2.读入数据

代码如下(示例):

arcpy.CheckOutExtension("ImageAnalyst") #检查许可
arcpy.CheckOutExtension('Spatial')
 
# 输入路径  应该注意,中文路径,会导致读不出文件
env.workspace = r"G:\GISfinal\LST\yearRLST" #数据存放目录
 
# 输出路径
outws = r"G:\GISfinal\LST\yearRLST\huigui"

# 读取所有tif文件
rasters = arcpy.ListRasters("*","tif")

# 初始化列表用于存储TIFF文件
y_ras = []

for ras in rasters:
    y_ras.append(ras)


# 计算所有年份栅格平均值
outC = CellStatistics(y_ras, "MEAN")

# 计算出Xi-X(平均值) 和 Yi-Y(平均值),此处X为栅格值, Y为年份
RLst = [Minus(ras, outC) for ras in rasters]
tt = [i - 5.5 for i in range(1, 11)]

# 初始化上子式 和 下子式两个部分(左右),Plus为加,Minus为减,Times为乘,Divide为除
up = Times(tt[0], RLst[0])
downl = Square(RLst[0])
downr = pow(tt[0], 2)

# 进行公式累加计算
for i in range(1, 10):
    up = Plus(up, Times(tt[i], RLst[i]))
    downl = Plus(downl, Square(RLst[i]))
    downr += pow(tt[i], 2)

#下子式的计算
down = Times(SquareRoot(downl), pow(downr, 0.5))

# 进行Pearson相关系数计算,即上子式除以下子式
Pr = Divide(up, down)
# down.save(os.path.join(outws, 'down1.tif'))
Pr.save(os.path.join(outws, '3Pearson_r.tif'))


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值