干货分享 | 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
文字、排版:张琦琦
责任编辑:郝娜
审核:王波涛
猜你喜欢
记得关注我们哦~
点“在看”给我一朵小黄花