首页 > 编程知识 正文

python空间数据处理,python数据分析模型

时间:2023-05-04 18:07:59 阅读:142122 作者:3419

Pysal和geoda很相似。 一个通过编写脚本实现空间分析,另一个通过软件操作实现空间分析。

Pysal官网介绍了一个开源、跨平台的地理数据分析库。

Pysal能做什么?

空间分析可视化就足够了。

一. pysal安装

安装非常简单,把相关的包都放进去。

pip install pysal

pip install esda

pip install geopandas

pip install splot

或者,打开py charm ——文件——设置—— python interpreter。

找到pysal和esda、geopandas和splot,然后单击安装包进行安装。

esda进行连接分析,geopandas对geometry进行矩阵处理,splot是绘图。

二.官方网站范例

Pysal官方网站,最上面有三个例子。 http://pysal.org/

如果沿着这3个例子进行操作,也可以认为已经入门了空间分析。

最初柏林的房价是莫兰指数。

二是分析局部空间自相关的集合图,LISA是localindicationsofspatialassociation。

三是计算空间权重。

三.测试数据

四. demo脚本

我们使用geopython-masterdata的数据berlin-listings.csv和berlin-neighbourhoods.geojson编写了简单的脚本。

空间权重:

fromlibpysal.weights.contiguityimportqueen

导入库

from libpysal import examples

import matplotlib.pyplot as plt

导入geo pandas as GPD

froms plot.libpysalimportplot _ spatial _ weights

GDF=GPD.read _ file (data/Berlin-neighbourhood s.geo JSON ) )

print(GDF.head ) )

weights=queen.from _ data frame (GDF )

plot_spatial_weights(weights,gdf ) )。

plt.show () )

房价分布情况:

导入esda

import pandas as pd

导入geo pandas as GPD

fromgeopandasimportgeodataframe

import libpysal as lps

import numpy as np

import matplotlib.pyplot as plt

from shapely.geometryimportpoint

# %matplotlib inline

GDF=GPD.read _ file (data/Berlin-neighbourhood s.geo JSON ) )

bl _ df=PD.read _ CSV (data/Berlin-listings.CSV ) )

geometry=[point(xy ) forxyinzip(bl_df.longitude,bl_df.latitude ) ]

CRS={ ' init ' : ' epsg :4326 ' }

bl_GDF=Geodataframe(bl_df,crs=crs,geometry=geometry ) ) ) )。

bl _ GDF [ ' price ' ]=bl _ GDF [ ' price ' ].as type [ ' float 32 ' ]

SJ_GDF=GPD.sjoin(GDF,bl_gdf,how='inner ',op='intersects ',lsuffix='left ',rsuffix='right )

median _ price _ GB=SJ _ GDF [ ' price ' ].group by [ SJ _ GDF [ ' neighbourhood _ group ' ] ].mean (

打印(median _ price _ GB ) )。

GDF=GDF.join(median_price_GB,on='neighbourhood_group ' ) ) ) ) ) ) ) ) ) ) ) 660 )

GDF.rename (columns={ ' price ' : ' median _ pri ' },inplace=True ) )

print(GDF.head ) 15 ) ) )。

PD.is null (GDF [ ' median _ pri ' ] (.sum ) ) ) ) ) ) ) ) ) )。

GDF [ ' median _ pri ' ].fill na (GDF [ ' median _ pri ' ].mean ),inplace=True ) )

gdf.plot(column='median_pri ' ) ) ) )。

plt.show () )

LISA聚合图:

导入库

import numpy as np

from giddy.directionalimportrose

import matplotlib.pyplot as plt

f=open (libpysal.examples.get _ path (SPI _ download.CSV ),' r ' ) )

lines=f.readlines (

f.close () )

lines=[line.strip ().split ),),for line in lines]

names=[ line [2] forlineinlines [ 1:-5 ] ]

DATA=NP.Array([list(map,line[3:] ) ) for line in lines[1:-5]] )

SIDS=list(range(60 ) ) ) ) ) ) ) )

out=[''United States 3/',

' ' Alaska 3/',

' ' District of Columbia ' ',

' ' Hawaii 3/',

' ' New England '、' ' Mideast '、

" ' Great Lakes ' ",

“' Plains '”,

" ' Southeast ' ",

" ' Southwest ' ",

' ' Rocky Mountain ' ',

“' far west3/' '”

snames=[ namefornameinnamesifnamenotinout ]

sids=[names.index(name ) for name in snames]

states=data[sids,]

us=data[0]

years=NP.arange (1969,2009 ) ) ) ) ) ) )。

REL=States/(us*1. ) ) )。

gal=libpysal.io.open (libpysal.examples.get _ path (States 48.gal ) )

w=gal.read ()

w.transform='r '

Y=rel[:[0,-1]]

# Y.shape

# Y

NP.Random.seed(100 ) )。

R4=rose(y,w,k=4) )。

r4.plot () )

plt.show () )

五.总结

空间分析,Geoda和pysal,都可以用。 只要达到目的,就可以使用软件,也可以写程序。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。