查看原文
其他

干货分享 | ArcGIS、Stata生成Moran's I一条龙操作

The following article is from 孙先生的励志故事 Author ASE Forum


参考 孙先生的励志故事 推文,小编整合了一篇使用ArcGIS和Stata生成Moran's I一条龙操作的推文,大家各取所需往下看吧

如何使用ArcGIS提取shape文件中的经纬度?

第一步:添加34_provinces2004.shp文件(可根据自己需求添加地图底图,在此仅举了个栗子哦~)

第二步:添加要素(Add Field)。完成对添加要素对话框里的项目的填写。添加要素对话框中的“Name”填“longitude”, “Type”选择“Float”。然后,单击“OK”,进而会出现图1。

第三步:首先,用鼠标选中longitude一列。其次,将鼠标放在该列上,右键单击后会出现一系列下拉菜单,见图1。再次,单击 “Calculate Geometry···”后出现对话框,见图2。最后,完成对Calculate Geometry对话框里项目的填写。“Property”选择“X Coordinate of Centroid”,“Coordinate System”选择默认项——“Use Coordinate system of the data source”,“Units”选择“Decimal Degress”,单击“OK”。

图1


图2


第四步:单击“OK”后会出现对话框“Field Calculator”,见图3.1,继续单击“OK”,得到图3.2所示的结果。

图3.1


图3.2


第五步:按照上述操作流程生成“latitude”,关键部分截图见图4-图7。

图4


图5


图6


图7


我们以黑龙江省为例,验证生成的经纬度坐标是否正确。黑龙江省ID为1。黑龙江省经纬度坐标位于北纬43°26′-53°33′,东经121°11′-135°05′之间。经过核实,我们发现:生成的ID为1的省份的经度坐标为127.7663,纬度为47.85979,正好处于黑龙江省的经纬度坐标的范围之内,因此,我们的操作是正确的。


在生成自己想要的空间权重矩阵之前,我们需要把基于ArcGIS提取的shape文件中的经纬度信息导出来。此操作很简单,共需五步。

图8


第一步,打开ArcToolbox。

第二步,单击“Conversion Tools”及“Excel”。

第三步,双击“Table To Excel”后会出现对话框,见图8。

第四步,完成“Table To Excel”对话框的填写。“Input Table”选择34_provinces2004,输出的Excel路径的设定自己根据实际情况决定。

第五步,单击“OK”。

如何使用Stata生成相关空间权重矩阵?

利用所生成的经纬度坐标可使用Stata生成3类空间权重矩阵:1. 二进制空间权重矩阵;2.距离矩阵(包括距离倒数,距离倒数的平方等等);3. 5近邻空间权值矩阵。

1. Create a row-standardized binary spatial weights matrix assuming spherical coordinates and a distance cut-off of 10 miles(生成行标准化的二进制空间权重矩阵)


. use 34_provinces2004_lon&lat,clear

. spwmatrix gecon latitude longitude, wn(wbin) wtype(bin) db(0 10)  r(50) row

. clear

. svmat wbin

. save wbin


2. Generate an inverse distance squared spatial weights matrix using projected latitudes and longitudes(生成距离倒数平方矩阵)


. use 34_provinces2004_lon&lat,clear

. spwmatrix gecon latitude longitude, wname(winvsq) wtype(inv) alpha(2) dband(0 100) cart

. clear

. svmat winvsq

. save winvsq


3. Generate a row-standardized 5-nearest neighbor spatial weights matrix(生成5近邻空间权值矩阵)


. use 34_provinces2004_lon&lat,clear

. spwmatrix gecon latitude longitude, wname(wknn5) knn(5) rowstand

. clear

. svmat wknn5

. save wknn5

如何使用Stata生成Moran's I

(一)计算全域Moran's I


1. 使用距离倒数空间权重矩阵


. use winv.dta,clear

. spatwmat using winv.dta,name(winv) standardize

. use 31_provinces_core_variable_chn.dta,clear


. spatgsa pcrgdp_2002 pcrgdp_2003 pcrgdp_2004 pcrgdp_2005 pcrgdp_2006 pcrgdp_2007 pcrgdp_2008 pcrgdp_2009 pcrgdp_2010 pcrgdp_2011 pcrgdp_2012 pcrgdp_2013 pcrgdp_2014 pcrgdp_2015 pcrgdp_2016 ,weights(winv) moran(见图9)

. spatgsa bcs_2002 bcs_2003 bcs_2004 bcs_2005 bcs_2006 bcs_2007 bcs_2008 bcs_2009 bcs_2010 bcs_2011 bcs_2012 bcs_2013 bcs_2014 bcs_2015 bcs_2016 ,weights(winv) moran

. spatgsa ti_2002 ti_2003 ti_2004 ti_2005 ti_2006 ti_2007 ti_2008 ti_2009 ti_2010 ti_2011 ti_2012 ti_2013 ti_2014 ti_2015 ti_2016 ,weights(winv) moran

. spatgsa ts_2002 ts_2003 ts_2004 ts_2005 ts_2006 ts_2007 ts_2008 ts_2009 ts_2010 ts_2011 ts_2012 ts_2013 ts_2014 ts_2015 ts_2016 ,weights(winv) moran

图9


2. 使用二元空间权重矩阵


. use wbin.dta,clear

. spatwmat using wbin.dta,name(wbin) standardize

. use 31_provinces_core_variable_chn.dta,clear


. spatgsa pcrgdp_2002 pcrgdp_2003 pcrgdp_2004 pcrgdp_2005 pcrgdp_2006 pcrgdp_2007 pcrgdp_2008 pcrgdp_2009 pcrgdp_2010 pcrgdp_2011 pcrgdp_2012 pcrgdp_2013 pcrgdp_2014 pcrgdp_2015 pcrgdp_2016 ,weights(wbin) moran(见图10)

. spatgsa bcs_2002 bcs_2003 bcs_2004 bcs_2005 bcs_2006 bcs_2007 bcs_2008 bcs_2009 bcs_2010 bcs_2011 bcs_2012 bcs_2013 bcs_2014 bcs_2015 bcs_2016 ,weights(wbin) moran(计算效果不好)

. spatgsa ti_2002 ti_2003 ti_2004 ti_2005 ti_2006 ti_2007 ti_2008 ti_2009 ti_2010 ti_2011 ti_2012 ti_2013 ti_2014 ti_2015 ti_2016 ,weights(wbin) moran

. spatgsa ts_2002 ts_2003 ts_2004 ts_2005 ts_2006 ts_2007 ts_2008 ts_2009 ts_2010 ts_2011 ts_2012 ts_2013 ts_2014 ts_2015 ts_2016 ,weights(wbin) moran(计算效果不好)

图10


(二)计算局域Moran's I


. use winv.dta,clear

. spatwmat using wbin.dta,name(winv) standardize

. use 31_provinces_core_variable_chn.dta,clear

. spatlsa pcrgdp_2002, w(winv) moran twotail(见图11)

图11


如何使用Stata画Moran’s I散点图?

(一)二元空间权重矩阵(0-1空间权重矩阵)


. use wbin.dta,clear

. spatwmat using wbin.dta,name(wbin) standardize

. use 31_provinces_core_variable_chn.dta,clear

. spatlsa pcrgdp_2002,weights(wbin) moran graph(moran) symbol(id) id(prvn)(见图12)

. spatlsa pcrgdp_2002,weights(wbin) moran graph(moran) symbol(id) id(prvn) twotail

图12


(二)距离倒数矩阵


. use winv.dta,clear

. spatwmat using winv.dta,name(winv) standardize

. use 31_provinces_core_variable_chn.dta,clear

. spatlsa pcrgdp_2002,weights(winv) moran graph(moran) symbol(id) id(prvn)(见图13)

. spatlsa pcrgdp_2002,weights(winv) moran graph(moran) symbol(id) id(prvn) twotail

图13


整理自孙先生的励志故事推文《如何使用ArcGIS与Stata软件提取shape文件中的经纬度并生成常见的空间权重矩阵》及《如何使用Stata生成空间权重矩阵、计算Moran's I及画莫兰散点图


THE END

文字、排版:张琦琦

责任编辑:郝娜

审核:王波涛


猜你喜欢

1、读研生活 | 什么?你连自动生成参考文献都不会?

2、干货分享 | GISer如何正确打开【深度学习】

3、趣味地理 | 地下一万米哪段最恐怖?两米

4、干货分享 | 测绘“千里眼”助力垃圾分类


记得关注我们哦~

点“在看”给我一朵小黄花

~~
: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存