使用arcmap建立路网模型(点-点-距离)
- 非道路信息过滤:由于数据是在osm里下载的,所以会存在多余的信息,我们只需要道路信息,因此需要删除多于的点和面要素。
- 构建道路网模型(1)在节点处打断道路,使连续的道路转换成一系列直线路段,以获取点和线的连接关系,方便计算距离角度等。
具体操作流程如下:
(2)路线要素和节点要素分别重新定义一个Line_ID和vertice_ID,并按顺序为字段赋值(字段值自增)。
注意:因为在第一步操作时,一些多于的线和节点被删除,导致OBJECTID*并不是按顺序的,如下图所示。对于OBJECTID*,如果要素被删除,OBJECTID*不会自动更新,为了方便在之后查看路段和节点的关系以及进行奇偶行调整获取路段和节点关系,这里需要将所有元素Id按照顺序进行排序)
具体操作流程如下:(以线要素为例)
打开要图层属性表→添加字段(Line_Id)→选中已经创建的字段,右键打开字段计算器,选择python,输入代码。注意python将强制要求缩进为语法的一部分,所以语句块的开头必须与结尾保持一致,否则就会显示语法错误,为了避免直接在arcmap字段计算器里输入代码容易忽略代码缩进发生错误,在这里我选择使用vscode进行代码编辑,再复制到arcmap字段计算器里,就不容易出错了。
代码附录:
rec=-1
def autoIncrement():
global rec
pStart=1
pInterval=1
if(rec==0):
rec=pStart
else:
rec=rec+pInterval
return rec
计算结果如下:将<空>编辑为1,所有的线要素id就是按照顺序排列的了。
(3)对线要素图层和点要素图层进行空间连接操作,从而计算线与点的连接关系。这一步是建立路网模型的基础。(将点连接到线上,得到线的两个端点)
具体操作流程如下:
空间连接的结果如下:生成一个新的图层及其对应属性表,其中TARGET_FID为线要素,vertice_ID为线连接的点要素,以下图为例:线1连接点50和点51
(4)奇偶行筛选,此操作的目的是区分连接的线的两个端点,生成线与点的连接关系文件,文件存储格式如下(距离信息是在osm网站下载数据自带的):
Source vertice |
Target vertice |
distance |
50 |
51 |
0.000053 |
具体操作流程如下:
在新生成的空间连接要素图层的属性表中添加一个新的字段J_O_Select,采用python中的math.fmod函数对线要素的OBJECTID求余数,奇数行求余数结果为1,偶数行为0,用0和1进行奇偶行判断。
注意:此处使用的线要素的OBJECTID是从1开始按照顺序排列的,因为这里的OBJECTID是在进行路线打断的操作步骤中重新生成的结果。
计算结果如下:
使用选择工具→按属性选择,进行奇偶行筛选。右击图层选择数据,导出数据。(以奇数行为例)
筛选结果如下:
(5)连接属性表并导出路线节点关系网络
具体操作流程如下:右击ji点击连接数据,选择连接基于的字段和图层。导出TARGET_FID(线的ID),vertice_ID(起点ID),vertice_ID(终点ID)和SHAPE_length(距离)
结果如下:到此路网模型就建立好啦
使用arcmap建立路网模型(点-点-距离)相关推荐
- 【从零开始的ROS四轴机械臂控制】(三) - 为机械臂添加摄像头和夹爪、解决gazebo模型抖动、使用gazebo建立sdf模型
[从零开始的ROS四轴机械臂控制(三)] 五.在gazebo中添加摄像头 1.修改arm1.gazebo.xacro文件 2.修改arm1.urdf.xacro文件 3.查看摄像头图像 六.为模型添加 ...
- 【教程】利用libsvm-mat建立分类模型model参数解密【by faruto】
原文地址:http://www.matlabsky.com/thread-12649-1-1.html 建议大家看这篇帖子之前先看一下以下几篇帖子: 如何使用libsvm进行分类[by faruto] ...
- SOLIDWORKS建立参数化模型基本原则
我们都知道SOLIDWORKS软件本身的建模方式就是基于参数化的,但是要实现参数化可不是随便怎么建模都可以的.我们这里所说的SOLIDWORKS参数化主要针对系列化的产品,可以通过参数修改,实现产品变 ...
- 筑算高程点提取插件_「教程」原来利用高程数据点建立地形模型,只需要一个键...
©版权申明 本文由大地老周原创,如有转载请联系我们 各位同学经过前几期的学习,有没有对地形模型这一块的知识有更深的理解,和自己的解读呢~ 小编休息了几期,好好沉淀了一番,精心为大家准备了第四期的课程 ...
- EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测
EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 bagging_clf = ...
- ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测
ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 #预测模型选择的RF import numpy as ...
- ML之SVM:随机产生100个点,建立SVM模型,找出超平面方程
ML之SVM:随机产生100个点,建立SVM模型,找出超平面方程 目录 实现结果 代码实例 实现结果 代码实例 import numpy as np import pylab as pl from s ...
- (软件工程复习核心重点)第九章面向对象分析-第三节:面向对象分析之建立动态模型和功能模型
文章目录 一:建立动态模型 (1)概念 A:适用性 B:步骤 (2)编写脚本 A:定义 B:目的 C:内容 D:方法 (3)设想用户界面 A:重要性 B:目的 C:方法 (4)画事件跟踪图 A:必要性 ...
- R语言使用lm函数构建简单线性回归模型(建立线性回归模型)、拟合回归直线、使用attributes函数查看线性回归模型的属性信息、获取模型拟合对应的残差值residuals
R语言使用lm函数构建简单线性回归模型(建立线性回归模型).拟合回归直线.使用attributes函数查看线性回归模型的属性信息.获取模型拟合对应的残差值residuals 目录
最新文章
- 「倚天」一出,谁与争锋!全球首款5nm服务器芯片,业界最强
- select weui 动态加载数据_weui中的picker使用js进行动态绑定数据问题
- 数据库 - mysql内置功能
- 在centos6中安装2.4版本的HTTPd
- OpenGL之矩阵的基本变换和矩阵堆栈
- 廖雪峰老师Git教程代码梳理
- Newbe.ObjectVisitor 0.4.4 发布,模型验证器上线
- Sublime Text for Mac的快捷键
- 红宝书阅读笔记——OPENGL渲染管线
- Android 广告内容结合,Android Headlines大盘点:2018华为广告“创新高”
- LinkedList实现类
- Linux 搭建PHP环境
- 新手学习 react 迷惑的点(完整版)
- input file reader
- #语音信号处理基础(十一)——梅尔倒谱系数的提取
- Xcode7下模拟器输入文本无法显示系统键盘的解决办法
- cartographer探秘第四章之代码解析(二) --- 传感器数据处理过程
- springMVC3学习(十)--注解式控制器
- 旁路电容0.1uF,是怎么来的?
- 第二次软件工程作业——模仿节奏大师官网制作的网页