Python-如何使用PySAL计算交互式空间自相关(Moran I)?

Python-如何使用PySAL计算交互式空间自相关(Moran I)?,python,spatial,pysal,Python,Spatial,Pysal,我在PostgreSQL数据库中有一个带有geometry列和其他属性的点表my_表my。我有一些my_table的示例数据,如下所示(my_table的属性) 使用Python包,我想分析列val1中的值是否是特殊的自相关(Moran I)(通过交互绘制它们)。我预期的交互式空间自相关输出可能如下(图像源,): 我是Python新手。有人能建议我如何使用PySAL进行此操作吗?我猜你的意思是相关而非自相关 你能用熊猫来代替吗 在我的项目中,我一直在使用pysal来计算Moran,这并不

我在PostgreSQL数据库中有一个带有
geometry
列和其他属性的点表
my_表
my。我有一些
my_table
的示例数据,如下所示(
my_table
的属性)

使用Python包,我想分析列
val1
中的值是否是特殊的自相关(Moran I)(通过交互绘制它们)。我预期的交互式空间自相关输出可能如下(图像源,):


我是Python新手。有人能建议我如何使用PySAL进行此操作吗?

我猜你的意思是相关而非自相关

你能用熊猫来代替吗


在我的项目中,我一直在使用pysal来计算Moran,这并不困难

必须有两个对象:

1) 一个权重矩阵,其中包含要验证自相关的单元格之间的关系程度

2) 数据

在我的项目中,验证自相关的单元就像马赛克,因此我可以使用该方法计算权重矩阵,这是有效的

假设您有一个二维数据矩阵Z来计算Moran的I,您需要:

import pysal

# Create the matrix of weigthts
w = pysal.lat2W(Z.shape[0], Z.shape[1])

# Crate the pysal Moran object
mi = pysal.Moran(Z, w)

# Verify Moran's I results
print(mi.I)
print(mi.p_norm)

我建议首先使用随机矩阵Z,因为在这种情况下,Moran的I的结果应该在0左右,这是一个很好的测试。在系统为随机Z数据返回0后,您可以用实际数据替换Z。

您将获得我的投票。不幸的是,这并不是我想要的。请看编辑我已经添加了更多的细节,使事情清楚。我的目标是使用Python获得预期的结果。列值是我的Postgres db中shapefile的属性,因此我想研究它们是否是空间自相关的。请看:Pandas是一个Python库。看起来那个链接有你需要的信息。您可以将CSV读入并调用该指南中的函数。我现在看到的是,
“pysal”没有属性“lat2W”
。API可能已更改<代码>从libpysal.weights从esda.moran import moran import numpy作为np Z=np.array([0,1,0],[1,0,1],[0,1,0])#创建weigthts w=lat2W(Z.shape[0],Z.shape[1])#装箱pysal moran对象mi=moran(Z,w)#验证moran的I结果打印(mi.I)打印(mi.p#norm)
import pandas
import matplotlib.pyplot as plt

data = pandas.read_csv("C:\\Users\\4Sight\\Desktop\\test.csv", sep=" +", usecols=("val1", "val2"))

print data

print data.columns.values

print data["val1"].corr(data["val2"])

plt.figure()
data.plot()
plt.show()
import pysal

# Create the matrix of weigthts
w = pysal.lat2W(Z.shape[0], Z.shape[1])

# Crate the pysal Moran object
mi = pysal.Moran(Z, w)

# Verify Moran's I results
print(mi.I)
print(mi.p_norm)