欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > [Matsim]Matsim学习笔记-population.xml的创建

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

2024/10/24 23:18:30 来源:https://blog.csdn.net/ywf008/article/details/141359318  浏览:    关键词:[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);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com