ArcGIS:(模型构建器实现)如何依据交通通达度和商业繁华度对城市的土地区位进行模拟评价?

简介: ArcGIS:(模型构建器实现)如何依据交通通达度和商业繁华度对城市的土地区位进行模拟评价?

01 实验数据

roadgcp.shp和主要商业点.shp

02 实验要求

依据交通通达度和商业繁华度对城市的土地区位进行模拟评价。


1)评价方法:综合分值法,即给每个栅格赋予一个综合分值,该值越大,表明其区位条件越好。


综合分值公式:G=0.6*G1+0.4*G2,其中,G1为商业繁华度分值,G2为交通通达度分值。


2)G1计算公式:G1=Max(fi(1- di÷d))。


①fi为商业点i等级权值,一级商业点的商业点值为100;二级商业点值为65;Name字段为“互惠超市”的为二级商业点,其余为1级商业点。


②di为某设施服务半径内,某点距设施的直线距离。d为该设施的服务半径,一级商业点服务半径为3.5km,二级商业点服务半径为2km。在服务半径之外,G1=0。


③Max表示取对栅格影响最大的商业点的计算值。


3)G2的计算公式:G2=Max(fi(1- di÷d))。计算方法与G1相似:


① fi为道路i等级权值,一级道路设为100,二级道路设为70,三级道路设为50。(roadgcp.shp中道路级别定义请参见级别字段)


②di为在道路的影响半径内,某点距该道路的直线距离。d为道路的影响半径,一级道路设为500m,二级道路设为100m,三级道路为50m,在影响半径之外,G2=0。


4)注意事项:


①由于实验数据坐标系统为地理坐标,需要先对ArcMap的显示坐标系统设置为投影坐标系统,这里统一为高斯6分带18带投影。


②为了保证一定的精度和作业结果一致性,新生成栅格的栅格单元尺寸一律为5m,范围与投影后的道路数据相同。


03 实验思路

思路仅以商业繁华度为例,交通通达度类似;


关于第一点G=0.6*G1+0.4*G2简单,如果你都已经分别计算出来了商业繁华度G1和交通通达度G2的栅格影像,那么得到G只需要一个栅格计算器即可解决;


我们重点探讨第二点G1=Max(fi(1- di÷d)),一开始我看到这个我也是无法理解甚至不知道如何下笔,但是我们尝试控制一下变量,我们先拿出fi(1- di÷d),如果我们从主要商业点.shp中按属性选择出一级商业点,那么表达式中的fi和d是不是就是确定的呢(确实)?也就是说我们只需要考虑di(di为某设施服务半径内,某点距设施的直线距离),那这个你可能就会迷糊了,不要迷糊。这里我们只有一个变量di需要考虑了,前面我们不是还有一个max()没有考虑吗?那么如果我们要让G1最大,是不是就是需要让di最小,所以di真正应该是表示任一像元点到一级商业点的最短距离(欧式距离解决);现在我们得到di即最短欧式距离栅格图像,那么只需要对其进行栅格计算(公式就是fi(1- di÷d),那么我们就得到了关于一级商业点的G;


那么对于二级商业点也是类似的,可以得到二级商业点的G,最后我们需要取一级商业点和二级商业点对应像元中更大的那个像元值(像元统计数据工具),就可以真正实现MAX()这一要点;


对于第三点G2的计算公式:G2=Max(fi(1- di÷d)),思路类似这里不再重复说明。


对于第四点,我们投影坐标系统一为西安80坐标系6度第18带;输出像元的分辨率5m和输出范围(与投影后的道路数据相同)可以在模型构建完毕之后的环境中设置;


最后在加一点,如果遇到模型运行错误,将环境中的并行处理设置为0即不进行并行处理。

04 实验流程

4.1 添加商业点和道路数据并进行投影转换


对于主要商业点的投影转换亦是如此,最终结果如下:

4.2 获取各个等级的商业点和道路数据


其它表达式为

"Name" = "互惠超市"
"等级" = "一级"
"等级" = "二级"
"等级" = "三级"


其它的操作类似,不再重复,最终呈现结果如下:

4.3 对各个等级的商业点和道路数据进行欧式距离计算得到距离栅格数据

其它等级的商业点和道路数据的欧式距离计算类似,这里不再重复,结果如下:

4.4 商业繁华度和交通通达度的计算


所有表达式如下:

(需要特别注意,投影坐标系的单位是m,所以实验要求的km需要换算为m)

Con("%road_euc2.tif%">100,0, 70 * (1 -"%road_euc2.tif%"/ 100))  # 这是二级道路
Con("%road_euc1.tif%">500,0,100 * (1 -"%road_euc1.tif%" /500))  # 这是一级道路
Con("%road_euc3.tif%">50,0, 50 * (1 - "%road_euc3.tif%" / 50))  # 这是三级道路
# 这是一级商业点
Con("%commerce_edc1.tif%">3500,0, 100 * (1 - "%commerce_edc1.tif%" / 3500))
# 这是二级商业点
Con("%commerce_euc2.tif%">2000,0, 65 * (1 - "%commerce_euc2.tif%" / 2000))


对于道路数据的操作亦是如此,这里不再重复;

最终的模型流程图如下:


运行结果展示:

目录
相关文章
|
定位技术
ArcGIS:(模型构建器)如何获取各个区域下不同地物的面积?
ArcGIS:(模型构建器)如何获取各个区域下不同地物的面积?
283 0
|
7月前
|
定位技术 Python
ArcGIS中ArcMap通过模型构建器ModelBuilder导出地理与投影坐标系转换Python代码的方法
ArcGIS中ArcMap通过模型构建器ModelBuilder导出地理与投影坐标系转换Python代码的方法
134 2
|
7月前
|
Python
ArcGIS中ArcMap模型构建器ModelBuilder的模型建立与运行操作方法
ArcGIS中ArcMap模型构建器ModelBuilder的模型建立与运行操作方法
|
存储
ArcGIS模型构建器实现批量按掩膜提取影像
ArcGIS模型构建器实现批量按掩膜提取影像
662 0
|
存储
ArcGIS Pro新功能 | 模型构建器篇
ArcGIS Pro新功能 | 模型构建器篇
262 0
|
编解码 Python
ArcGIS:如何解决模型构建器报错<内存不足>?
ArcGIS:如何解决模型构建器报错<内存不足>?
563 0
ArcGIS:如何利用模型构建器(ModelBuilder)解决基于人口和已有商业点的商业连锁店选址问题?
ArcGIS:如何利用模型构建器(ModelBuilder)解决基于人口和已有商业点的商业连锁店选址问题?
156 0
|
人工智能 数据可视化 API
ArcGIS API for Python
ArcGIS API for Python
81 0
|
JavaScript 前端开发 应用服务中间件
Arcgis api for javascript 详细部署
Arcgis api for javascript 详细部署
|
人工智能 数据可视化 数据管理
ArcGIS API for Python
ArcGIS API for Python
121 0