[续]基于高斯两步移动搜寻法(2SFCA)的城市绿地可达性分析[格网]

原文链接

[续]基于高斯两步移动搜寻法(2SFCA)的城市绿地可达性分析[格网]https://mp.weixin.qq.com/s/BkjZVqCAORrKH5bsyOSTbg

之前我用立方学社公开课的数据做了一次2SFCA,传送门:基于高斯两步移动搜寻法(2SFCA)的城市绿地可达性分析http://mp.weixin.qq.com/s?__biz=MzkzNjA5NjA3OA==&mid=2247487203&idx=1&sn=4c7598e608e172616df15251100d92f0&chksm=c2a2b6c2f5d53fd49ba9d09b2f3aa8e88952019065985d6b7633e6e52bf02a6f873fda71858b&scene=21#wechat_redirect。不过当时做的时候小区数据是没有人口的,也有人问过这个问题,里面用的小区人口是根据每个小区的户数估算出来的,所以准确度就低了一些,修人口学了不能白学是吧[跟练]基于七普修正Worldpop人口栅格数据(附2020年worldpop100m人口栅格)http://mp.weixin.qq.com/s?__biz=MzkzNjA5NjA3OA==&mid=2247491255&idx=1&sn=493ff37dc588bfe8e8aae4516d571453&chksm=c2a2a696f5d52f8042cb7a29229429db27442a35db33b67a44959f077fe0dc7d2cb641a67fd9&scene=21#wechat_redirect...这次嘛就用worldpop的人口栅格就好啦。

图片

我在想着用渔网格代替小区,就是下面这篇论文啊

图片

使用[创建渔网]工具创建渔网格,格网单元大小为200m×200m;输出范围和输出坐标系在环境里设置一下(在所有数据都经过投影变换的前提下)(渔网格命名为finsh200,以下都用此名代替)

图片

然后用创建的渔网格通过[以表格显示分区统计]统计每个网格内的人口,得到sum_pop

图片

接着根据FID字段将sum_pop中汇总的人口数量连接至finsh200中。连接进去后外围的那些渔网格肯定是没有值的,需要把这些无值的处理掉,右键finsh200-图层属性-定义查询,选择人口>0的。

图片

绿地计算一下面积,公式什么的也不再说了,可以看之前那篇基于高斯两步移动搜寻法(2SFCA)的城市绿地可达性分析或者自己翻翻论文。这样需求端和供给端都处理好了接下来进行操作。

第一步,绿地至小区(就是计算这个公式)

图片

[邻域分析]-[生成近邻表],距离阈值还是用上一次取的2.5km。

图片

得出的表中,IN_FID就是绿地,NEAR_FID就是格网,NEAR_DIST是距离,这个生成近邻表生成的是直线距离,所以有些不足,最好还是结合路网进行分析。然后通过IN_FID连接绿地面积,通过NEAR_FID连接人口。将人口和绿地面积都放在一个表里。

图片

计算那个G,高斯函数,GIS里我把公式贴在这,根据自己的数修改距离字段和阈值即可。

(math.exp((-1/2)*(!NEAR_DIST!/2500)*(!NEAR_DIST!/2500))-math.exp(-1/2))/(1-math.exp(-1/2))

图片

 G有了,接着计算G*Pk(人口)

图片

字段名写错了,是GPk,叫PkDkBk都无所谓,代表的是人口,大家注意下就行

接着是按照公式,∑汇总GPk,以绿地(也就是IN_FID为汇总字段汇总GPk)

图片

将sum_GPk这个表连接回绿地表,再用绿地面积/sum_GPk就得到了Rj

图片

 至此,第一步完成。

第二步,小区至绿地(计算这个公式)

图片

还是上一步操作[生成近邻表],距离阈值仍然是2500m,只是将输入要素和邻近要素换一下,IN_FID就是格网,NEAR_FID就是绿地。

图片

第一步计算出来了Rj,根据NEAR_FID(绿地)与sum_GPk这个表中的IN_FID进行连接,将Rj连接过来到这个表中。

图片

根据公式,还得需要计算这个G,跟第一步一样。完了接着计算G*Rj就行了,不再演示

图片

接着是按照公式,∑汇总G*Rj,以网格(也就是IN_FID为汇总字段汇总GRj),得到Ai。

图片

至此,第二步完成。

最后

最后便是将Ai根据IN_FID连接回finsh200,在符号系统中进行可视化

操作思路大概就是这么个操作,结果大概就这样子

图片

之前的练习数据可以公众号【一点规划】回复【两步】,人口栅格数据可以回复【2020】

### 如何在 ArcGIS 中将点要素与渔网栅格数据进行空间连接或叠加分析 #### 准备工作 为了确保操作顺利,需先准备好所需的点要素和渔网(Fishnet)栅格数据。如果尚未创建渔网,则可以通过工具箱中的`创建渔网 (Create Fishnet)` 工具来完成这一任务[^2]。 #### 执行空间连接 对于点要素与渔网之间的关联分析,最常用的方之一是通过 `Spatial Join` (空间连接)。此工具允许基于地理位置关系将两个不同图层的信息结合起来: 1. **启动 Spatial Join** - 在 ArcMap 或 ArcGIS Pro 的工具箱中找到并双击 `Analysis Tools > Overlay > Spatial Join`。 2. **配置输入参数** - 设置目标要素(Target Features)为要被匹配的点要素; - 加入联接要素(Join Features),这里应选择已经准备好的渔网栅格数据作为源; - 对于输出路径(Output Feature Class),指定保存位置以及文件名; 3. **定义连接规则** - 关键在于正确设定“Match Option”,推荐选项有: - COMPLETELY_CONTAINS:只有当整个点完全位于某个网格单元内部时才进行记录; - WITHIN_A_DISTANCE:只要点距离特定范围内的任何部分都算作有效链接; - INTERSECT:只要有交集即可视为符合条件; 4. **执行命令** - 完成上述设置后运行该过程,等待处理完毕将会得到一个新的矢量图层,其中包含了原始点的数据加上来自对应渔网单元的信息。 ```python import arcpy arcpy.SpatialJoin_analysis( target_features="point_layer", join_features="fishnet_grid", out_feature_class="output_joined_data", match_option="INTERSECT" ) ``` #### 使用 Zonal Statistics as Table 进行统计汇总 另一种常见的需求是对落在各个渔网单元内的点的数量或其他属性值做进一步统计。此时可采用 `Zonal Statistics as Table` 方来进行区域统计数据表生成: - 输入区带(Raster or feature zone data): 应选用渔网作为分区依据; - 输入值Raster(Input value raster)/Input table: 则指向含有待统计数值字段的点要素; 最终获得的结果表格能够展示每个区域内所含有的点数及其平均值、最大最小值等信息。 ```python from arcpy.sa import * outZSaT = ZonalStatisticsAsTable( in_zone_data="fishnet_grid", zone_field="FID", in_value_raster="point_layer_with_values", out_table="zonal_statistics_result.dbf", statistics_type="SUM" ) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值