使用osmconvert转换pbf文件至osm文件
文件格式转换
- 转换结果由目标文件后缀表示
osmconvert norway.pbf >norway.osm
osmconvert region.pbf -o=region.o5m
osmconvert region.o5m -o=region.pbf
osmconvert 20110510_20110511.osc --out-o5c >20110510_20110511.o5c
- 解压之后利用标准输入进行使用
bzcat europe.osm.bz2 | osmconvert - -o=europe.o5m
osmconvert norway.pbf | gzip -1 >norway.osm.gz
- 可以利用osmconvert进行gz文件的解压,功能比较有限,适合osc文件的升级
osmconvert old.o5m daily_updates/2011*.osc.gz -o=new.o5m
osmconvert daily_updates/2011*.osc.gz --merge-versions --out-osc | gzip > cumulative.osc.gz
指定边界
- 可以指定要转换的地图的边界
osmconvert germany.pbf -b=10.5,49,11.5,50 -o=nuernberg.o5m
osmconvert ontario.osm -b=-75.8,45.19,-75.7,45.23 -o=ott.osm
- 利用边界指定文件,可以时边界更细致化
osmconvert germany.pbf -B=hamburg.poly -o=hamburg.pbf
- 有道路信息越过边界的话,可以使用–complete使它完整
osmconvert germany.o5m -b=10.5,49,11.5,50 --complete-ways -o=nuernberg.o5m
osmconvert germany.o5m -B=hamburg.poly --complete-ways -o=hamburg.pbf
- 使地形完整
osmconvert germany.o5m -b=10.5,49,11.5,50 --complex-ways -o=nuernberg.o5m
osmconvert germany.o5m -B=hamburg.poly --complex-ways -o=hamburg.pbf
去除部分信息
- 将节点中的作者信息丢弃
osmconvert --drop-author a.pbf -o=a.osm
- 除去地图中的某种类型
--drop-nodes
--drop-ways
--drop-relations
- 将所有ways和relations转化为modes
osmconvert hamburg.pbf --all-to-nodes -o=hamburg_nodes.osm
- 1
- 改变id偏移
--object-type-offset=
- 对于没有转化为node的way和relation 添加tags
--add-bbox-tags
修改tag
- 改变tag的value
./osmconvert a.o5m --modify-tags="highway=primary to =tertiary highway=secondary to =tertiary" -o=all_streets_are_small.o5m
- 改变tag的key
./osmconvert a.o5m --modify-node-tags="amenity=fire_hydrant to emergency=fire_hydrant" -o=new_hydrant_syntax.o5m
- 增加新的tags
./osmconvert a.o5m --modify-tags="maxspeed<=20 add speed_category=slow" -o=speed_categories.o5m
更新osm文件
- 单个osc文件更新
osmconvert planet_old.osm changefile.osc -o=planet_new.osm
osmconvert planet_old.o5m changefile.osc.gz -o=planet_new.o5m
osmconvert germany_old.o5m changefile.osc -B=germany.poly -o=germany_new.o5m
- 多个更新包更新
osmconvert veryold.osm c1.osc c2.osc c3.osc -o=new.osm
osmconvert day24.o5m c24_25.osc c25_26.osc -o=day26.o5m
osmconvert day01.o5m november/*.osc -o=day30.o5m
搜索两个文件的不同
osmconvert old.osm new.osm --diff -o=changefile.osc
osmconvert old.o5m new.o5m --diff -o=changefile.o5c
设置文件的时间戳
osmconvert hamburg.o5m --timestamp=2011-08-01T23:50:00Z -o=hamburg.o5m
- 1
得到统计数据
- 首先得到时间戳
osmconvert file_with_timestamp.o5m --out-timestamp
2011-08-01T23:50:00Z
osmconvert file_without_timestamp.o5m --out-timestamp
(invalid timestamp)
- 之后分析整个文件
$ osmconvert germany.osm.pbf --out-statistics
timestamp min: 2005-07-05T02:14:17Z
timestamp max: 2011-07-31T19:59:46Z
lon min: -20.0712330
lon max: 21.1441799
lat min: 47.0830289
lat max: 59.9982830
nodes: 78138447
ways: 11342322
relations: 176024
node id min: 1
node id max: 1380816490
way id min: 92
way id max: 123952798
relation id min: 159
relation id max: 1693098
写入CSV文件
osmconvert shops.osm --all-to-nodes --csv="@id @lon @lat amenity shop name" --csv-headline
@id @lon @lat amenity shop name
21548298 11.6122123 48.6884848 shop bakery Miller
21552613 9.0651970 49.9979332 shop butcher Jaeger
1000000168276611 6.6058085 51.4556093 shop drugstore AllForYou
组合功能
osmconvert day24.osm -B=p.poly c24_25.osc -o=day25.osm
并行处理
- 处理多个pbf文件
osmconvert region1.pbf --out-o5m | osmconvert - region2.pbf -o=all.pbf
- 管道操作,windows上不行,linux可以
mkfifo p1 p2
osmconvert a.pbf --out-o5m -o=p1 & osmconvert osmconvert b.pbf --out-o5m -o=p2 & osmconvert p1 p2 c.pbf -o=all.pbf
- 和上面那条命令等价
osmconvert <(osmconvert a.pbf --out-o5m) <(osmconvert b.pbf --out-o5m) c.pbf -o=all.pbf
参数过长,可以使用参数文件
osmconvert --parameter-file=my_parameters
my_parameters
// verbose
-v
// input file
planet.o5m
// bounding box
-b=8.123,10.123,9.456,11.456
--complex-ways
// output file
-o=region.o5m
技术细节
- 临时文件处理
osmconvert germany.pbf -B=n.poly -t=/media/hd70/temp -o=nuernberg.o5m
- 内存管理
--hash-memory=, --max-refs= and --max-objects=
- 测试输出信息
-v
-v=2 //更详细
测试
16Gb ram 7200rpmdisk
./osmconvert planet-latest.osm.pbf -o=planet-latest.o5m
大约12分钟
整个地球的osm转化为o5m
$ date
Sat Dec 29 14:36:19 PST 2012
$ ./osmconvert planet.osm -o=planet-121207.o5m
$ date
Sat Dec 29 18:34:16 PST 2012$ ls -lah
...
-rw------- 1 user staff 32G Dec 29 18:34 planet-121207.o5m
-rw-r--r-- 1 user staff 319G Dec 7 02:41 planet.osm
...
大约4个小时 16Gb i7
$time ./osmconvert planet-130123.osm -b=-144,20,-50,90 -o=na_subset.osmreal 54m59.172s
user 39m18.091s
sys 5m3.111s
16核 48Gb ram 12*xTB raid5 输入文件大约360G 输出文件112G
从地球的o5m中取出德国的o5m文件
./osmconvert planet.o5m -B=germany.poly -o=germany.o5m
使用osmconvert转换pbf文件至osm文件相关推荐
- osmconvert转换OpenStreetMap pbf文件至osm等格式矢量
osmconvert可用于转换和处理OpenStreetMap文件.它掌握的功能少于常用的Osmosis:例如,无法使用osmconvert访问数据库.但是,程序运行速度更快,并提供一些特殊功能(- ...
- pbf文件转换为osm
将pbf转化为osm文件,只是单纯转换的话,使用osmconvert更好.osmosis操作起来比较复杂,不推荐. osm展示工具,JOSM读取大文件有问题(存疑,可能只是我自己笔记本的问题,不过16 ...
- 将shp文件转化为osm文件,并导入到sumo中建立路网
前言 最近在做的一个课题要用到sumo仿真,正好我们手头也有arcgis的shp文件,比osm上面的要简洁准确不少,在座的过程中遇到不少问题,这里做一下记录 要注意的地方有几个: shp转osm的工具 ...
- 生成osm文件_超酷城市肌理!地理数据信息爬取方法大全(B篇)DEM+POI+OSM
WENWEN:这一弹是对第一弹的补充和深化讲解,上一弹请点击常用的地理数据信息爬取方法大全(前期场地信息获取第一弹),关于DEM获取地形地理空间数据云提交任务一直在排队的问题,这个应该是官网的问题,不 ...
- c# 采用XML的方式读取OSM文件
OSM文件类似于XML文件的格式,可以通过XML的方式读取出来 1.OSM文件: <?xml version='1.0' encoding='UTF-8'?> <osm versio ...
- Visual studio 2010出现“error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”解决方式...
本来自己的电脑上装了VS2010,因为开发Cocos2d-x 3.x,所以就在自己的机器上装了一个VS2012. 但是.这不装不要紧,debug一下自己原来的程序,结果出现了"error L ...
- mpp文件转换excel_怎么将pdf文件转换成excel表格格式呢?
在我们的日常工作当中,有的时候偶尔会出现一些商业E-Mail的发送,但是在发送之前我们是需要将PDF文档中的数据内容转换成Excel表格的形式.所以学会将PDF转Excel的方法很重要,那不知道小伙伴 ...
- Linux查看文件编码格式及文件编码转换
Linux查看文件编码格式及文件编码转换 在Linux 中专门提供了一种工具convmv进行文件 名 编码 的转换 ,可以将文件 名 从GBK转换 成UTF-8编码 ,或者从UTF-8转换 到GBK. ...
- 转载:vs2010 问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
原文链接:http://www.cnblogs.com/newpanderking/articles/3372969.html >LINK : fatal error LNK1123: 转换到 ...
最新文章
- 2021年大数据Hadoop(一):​​​​​​​Hadoop介绍
- kvm虚拟机vnc配置
- SPI FLASH 分区情况
- 8086微型计算机原理答案,8086微型计算机原理与应用(吴宁)习题答案(第三章)
- java动态语言_探秘Java 7:JVM动态语言支持详解
- PyCharm 设置护眼背景色
- SpringBoot2.x 中配置拦截器
- RabbitMQ使用代码示例
- 线程池的使用与没使用的区别
- 苹果Safari中保存的密码如何导入Chrome浏览器?
- 各大Asp木马的万能密码
- chrome disable-web-security 关闭安全策略 解决跨域
- Ubuntu 12.04 安装离线词典
- 编程语言常见符号合集
- html如何设置超大字符集,[转载]【教程】CJk超大字符集使用方法
- android实时声音信号波形_android绘制播放音频的波形图
- 马斯克狠狠地给马云上了一课 | 对话全文实录
- H3CNE-生成树协议(STP)
- 使用HtmlUnit爬取知网论文
- 微信辅助注册平台源码
热门文章
- 2022-2028年中国智慧社区建设行业市场专项调研及投资前景研究报告
- mybatis-动态sql-if,choose,when,otherwis,trim,where,set,foreach,test,bind
- Windows/Ubuntu16.04双系统和ros安装方法及可能出现的问题
- maven 指令之package 和install的区别
- 地图慧一直显示服务器,瑞友慧连接服务端
- 9月13号魔兽服务器维护,魔兽世界怀旧服9月13日7点再次开放免费转服 11个转服新服务器一览...
- 机器学习案例——客户流失预测
- 李沐《动手学深度学习》第二版比赛2-Classify Leaves
- SpringBoot 时间格式化的 5 种实现方法,你用的是哪种?
- ES6的学习 数组的热闹循环