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

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

01 实验数据

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

02 实验要求

  1. 统一输出数据的像元大小为100,分析范围与pop.shp一致;
  2. 选址标准为:人口密度必须在每平方公里3000人以上;距离已有的最近商业点直线距离500m以外;
  3. 为保证实验结果的统一性,密度功能统一使用核密度分析
  4. 将实验结果转化为矢量多边形


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 栅格转矢量

输出结果展示:

目录
相关文章
|
定位技术
ArcGIS:(模型构建器)如何获取各个区域下不同地物的面积?
ArcGIS:(模型构建器)如何获取各个区域下不同地物的面积?
224 0
|
4月前
|
定位技术 Python
ArcGIS中ArcMap通过模型构建器ModelBuilder导出地理与投影坐标系转换Python代码的方法
ArcGIS中ArcMap通过模型构建器ModelBuilder导出地理与投影坐标系转换Python代码的方法
102 2
|
4月前
|
Python
ArcGIS中ArcMap模型构建器ModelBuilder的模型建立与运行操作方法
ArcGIS中ArcMap模型构建器ModelBuilder的模型建立与运行操作方法
|
11月前
|
存储
ArcGIS模型构建器实现批量按掩膜提取影像
ArcGIS模型构建器实现批量按掩膜提取影像
479 0
|
11月前
|
存储
ArcGIS Pro新功能 | 模型构建器篇
ArcGIS Pro新功能 | 模型构建器篇
185 0
|
编解码 Python
ArcGIS:如何解决模型构建器报错<内存不足>?
ArcGIS:如何解决模型构建器报错<内存不足>?
485 0
|
11月前
|
人工智能 数据可视化 API
ArcGIS API for Python
ArcGIS API for Python
59 0
|
JavaScript 前端开发 应用服务中间件
Arcgis api for javascript 详细部署
Arcgis api for javascript 详细部署
|
人工智能 数据可视化 数据管理
ArcGIS API for Python
ArcGIS API for Python
100 0
|
数据可视化 数据管理 API
​​​​​​​ARCGIS API for Python进行城市区域提取
​​​​​​​ARCGIS API for Python进行城市区域提取
​​​​​​​ARCGIS API for Python进行城市区域提取