ArcGIS:如何利用模型构建器(ModelBuilder)解决基于人口和已有商业点的商业连锁店选址问题?

01 实验数据

pop.shp(人口统计数据,其中字段POP100表示该地的人口总数)和trade.shp(已有商业网点数据)

02 实验要求

  1. 统一输出数据的像元大小为100,分析范围与pop.shp一致;

  1. 选址标准为:人口密度必须在每平方公里3000人以上;距离已有的最近商业点直线距离500m以外;

  1. 为保证实验结果的统一性,密度功能统一使用核密度分析;

  1. 将实验结果转化为矢量多边形

03 实验思路

对于第一点你可以在模型还没开始将环境设置好,亦可以在模型的环境中设置;

对于第二点是理解的关键,人人都知道人口密度必须在每平方公里3000人以上,但是极易忽略我们ArcGIS的单位为m,所以最后使用核密度功能得到的栅格图像一定是平方米(另外注意避免使用地理坐标系进行密度分析),所以记得单位换算;另外就是<距离已有的最近商业点直线距离500m以外>一句容易让人以为是做缓冲区分析然后取反,实际上并不是。这是因为其首先需要满足最近商业点,如果仅仅是距离商业点直线距离500m开外那么做缓冲区将没有任何问题,但是现在是距离最近商业点,那么我们希望可以得到所有的像元到其最近商业点的距离,然后进行IF判断其是否大于500m,若该像元满足距离已有的最近商业点直线距离500m以外,否则不满足。那么如何获取每一个像元到最近商业点的直线距离呢?==> 使用欧式距离工具即可。

对于第三点,核密度分析,如果该实验没有明确表示核密度分析,或许有人会使用插值分析而不是在密度分析中进行工具的选择。确实这很容易犯错误因为都是由点得面,但是密度分析和插值分析还是有比较明显的区别,最显著的就是单位,密度分析使用的是pop.shp的POP100(该地的人口总数),而最后分析得到的是每一个像元的人口密度(该像元位置上单位面积的人口数)。换句话说,如果我的pop.shp只有一个点,那么由该点计算得到得面区域中,我们对其进行二重积分,那么得到的人口数将恰好是pop.shp中该点的总人数,如果pop.shp有多个点,那么密度分析得到的像元的人口密度将是各个点的一个分配,不知这么讲是否有少许理解?

第四点是栅格转矢量,不做分析。

04 实验流程

4.1 实验前的环境配置

4.2 添加数据

4.3 核密度分析

4.4 欧式距离

4.5 按选址标准使用栅格计算器计算

下方表达式不小心写错了,应为:

("%trade_euc_distance.tif%" > 500) & ("%population_density.tif%" > 0.003)
# 图片为("%trade_euc_distance.tif%") > 500 & ("%population_density.tif%" > 0.003)

4.6 栅格转矢量

输出结果展示:


<p>炒茄子</p>

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炒茄子

不装逼我浑身难受aaa

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值