当前位置: 首页 > news >正文

[Matsim]Matsim学习笔记-population.xml的创建

学习需求
在利用matsim实现交通模拟时,需要把模拟的乘客出行数据替换成自己的,如何进行替换呢?
带着这个问题,调研学习matsim,实现population.xml的生成
调研笔记
幸运的发现matsim中实现了很多的writer工具类,population的生成就需要用到PopulationWriter这个工具类。
population.xml示例代码:

<population>
<!-- ====================================================================== --><person id="2023-05-15_0047597"><plan selected="yes"><activity type="dummy" x="609247.5564094826" y="2704822.471511054" end_time="06:14:30" ></activity><leg mode="drt"></leg><activity type="dummy" x="609161.9937043311" y="2706001.830112634" ></activity></plan></person><!-- ====================================================================== --><person id="2023-05-15_0048923"><plan selected="yes"><activity type="dummy" x="609247.5564094826" y="2704822.471511054" end_time="06:00:15" ></activity><leg mode="drt"></leg><activity type="dummy" x="608272.4476406131" y="2705462.4946062723" ></activity></plan></person>
<population>

示例代码中创建person对象需要的标签id、起点坐标、终点坐标、activity结束的时间、leg的模式,生成的person对象要包含这些值

//创建population实例
Population population = ScenarioUtils.createScenario(ConfigUtils.createConfig()).getPopulation();
//下面是创建一个person的示例代码
/*** 创建一个person对象* @param population population实例* @param id personID* @param fCoord 起点坐标-UTM格式* @param tCoord 终点坐标-UTM格式* @param end   activity结束时间* @param mode 模式*/private static void createOnePerson(Population population, String id, Coord fCoord, Coord tCoord, int end,String mode) {Person person = population.getFactory().createPerson(Id.createPersonId(id));Plan plan = population.getFactory().createPlan();Activity f = population.getFactory().createActivityFromCoord("dummy", fCoord);f.setEndTime(end);plan.addActivity(f);Leg hinweg = population.getFactory().createLeg(mode);plan.addLeg(hinweg);Activity t = population.getFactory().createActivityFromCoord("dummy", tCoord);plan.addActivity(t);person.addPlan(plan);population.addPerson(person);}
//populaiton写入文件populationFile中
new PopulationWriter(population).write(populationFile);

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • flv和 rtmp视频负载类型的差异
  • 机器人拾取系统关节机械臂通过NY-PN-EIPZ进行命令控制
  • PCIe学习笔记(27)
  • 2024年中科院SCI期刊牛顿-拉夫逊优化算法NRBO优化Transformer-LST模型的多变量时间序列预测
  • 【Harmony OS 4.0】像素单位 - px、vp、fp
  • 基于SpringBoot的网上宠物店系统
  • C语言:函数详解(2)
  • C++如何为枚举量生成对应的解释:4种常见的方法
  • 探索宝可梦的世界:PokeAPI如何让开发者大展拳脚
  • 【Spring Cloud】Consul
  • 深入理解 Go 语言并发编程--管道(channel) 的底层原理
  • 分布式 - 主从复制技术详解及时延处理
  • MongoDB如何时间范围查询
  • 端到端 - UniAD: Planning-oriented Autonomous Driving - 以规划为导向的自动驾驶(CVPR 2023)
  • [数据集][目标检测]工程机械车辆检测数据集VOC+YOLO格式3189张10类别
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • css布局,左右固定中间自适应实现
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • es6(二):字符串的扩展
  • ESLint简单操作
  • Git 使用集
  • MySQL用户中的%到底包不包括localhost?
  • Python实现BT种子转化为磁力链接【实战】
  • select2 取值 遍历 设置默认值
  • vue学习系列(二)vue-cli
  • 复习Javascript专题(四):js中的深浅拷贝
  • 关于springcloud Gateway中的限流
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 经典排序算法及其 Java 实现
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # 计算机视觉入门
  • #Java第九次作业--输入输出流和文件操作
  • #pragma once
  • #职场发展#其他
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (arch)linux 转换文件编码格式
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (第一天)包装对象、作用域、创建对象
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • ./configure,make,make install的作用(转)
  • .net Application的目录
  • .net 生成二级域名
  • .net6+aspose.words导出word并转pdf
  • .NET构架之我见
  • ??eclipse的安装配置问题!??
  • @Data注解的作用
  • @PreAuthorize与@Secured注解的区别是什么?
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)