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

学习需求

在利用matsim实现交通模拟时,需要把模拟的乘客出行数据替换成自己的,如何进行替换呢?

带着这个问题,调研学习matsim,实现population.xml的生成
调研笔记

幸运的发现matsim中实现了很多的writer工具类,population的生成就需要用到PopulationWriter这个工具类。

population.xml示例代码:

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对象要包含这些值

java 复制代码
//创建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);
相关推荐
亦枫Leonlew1 小时前
三维测量与建模笔记 - 3.3 张正友标定法
笔记·相机标定·三维重建·张正友标定法
考试宝1 小时前
国家宠物美容师职业技能等级评价(高级)理论考试题
经验分享·笔记·职场和发展·学习方法·业界资讯·宠物
黑叶白树3 小时前
简单的签到程序 python笔记
笔记·python
@小博的博客3 小时前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
幸运超级加倍~4 小时前
软件设计师-上午题-15 计算机网络(5分)
笔记·计算机网络
南宫生4 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步5 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
love_and_hope5 小时前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
Chef_Chen5 小时前
从0开始学习机器学习--Day14--如何优化神经网络的代价函数
神经网络·学习·机器学习
芊寻(嵌入式)5 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习