问题标签 [osmium]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - 安装 pyosmium
我在 OS X 10.8 上使用 Canopy 安装 Python 时安装pyosmium时遇到问题。我不确定标头应该放在哪里,并且根据我尝试的位置,我会遇到不同的安装错误。
我已经安装了依赖项(Boost.Python、osmium 等)。与这些依赖项相比,我认为问题与 Canopy Python 安装的位置有关。有关使用 Canopy 安装 Boost 的类似挑战,请参阅此线程。
我尝试将 Boost(和 Boost Python)和 osmium 安装到:/usr/local/include
然后我运行
python setup.py build
安装 pyosmium,并得到错误:lib/osmium.cc:3:10: fatal error: 'osmium/visitor.hpp' file not found
将 osmium 目录的符号链接添加到 /Library/Enthought/Canopy_64bit/User/include/,我收到错误:/usr/local/include/osmium/visitor.hpp:36:10: fatal error: 'type_traits' file未找到
如果我将它们安装在 /Users/[username]/Library/Enthought/Canopy_64bit/User/include/ 中,我会得到: Traceback(最近一次调用最后一次):文件“setup.py”,第 31 行,在引发异常(“Cannot找到 boost_python 库")
其他排列也会引发类似的错误。想法将不胜感激!
更新:经过更多尝试,问题似乎是setup.py
pyosmium 找不到 boost 标头。我添加了提升到includes
列表中的路径setup.py
。但是,它仍然找不到 type_traits 和其他 boost 标头。
python - 尝试使用 PyOsmium 时出现“没有名为 'osmium._osmium' 的模块”错误
我正在尝试使用PyOsmium,但它不会导入。python3 setup.py install
似乎完成得很好,但是当import osmium
我收到错误消息时:
我不知道是什么原因造成的,这是我第一次手动安装 C++ 包装器。我在同一目录中有顶级 PyOsmium 和 libosmium 目录。它是否试图导入 C++ 文件?
任何帮助将非常感激。
python - OSX:pyosmium 设置错误
我正在为on运行设置Python
脚本,Python 版本是 2.7:Pyosmium
OSX 10.11
我尽可能使用Brew
. 并添加了支持开发所需的目录。
虽然很明显我在这里处理的是一个我完全不熟悉的关卡。
我目前的猜测是被调用的编译器 - gcc,如果这是任何想法将不胜感激!
谢谢你,斯蒂芬。
c++ - 如何并行化 libosmium 区域解析?
我正在研究如何使基于libosmium的项目使用多线程解析 OpenStreetMap PBF 区域。解析节点、方式或关系是多线程的,但解析区域不是。
例如,在运行以下计算关系的代码时,top显示 CPU 利用率超过 400%:
当我修改它以计算区域时,CPU 保持在 100% 左右:
这里的不同之处在于代码在 2 遍中运行。第一遍从关系中组装区域引用,然后第二遍使用节点缓存和收集的关系数据构建区域。但是,这样的结构似乎不是多线程的。
我怎样才能使它利用多个线程?libosmium 中是否已经内置了现有方法,或者我应该开始实现自己的线程池和队列?
osmium - 在 pyosmium 的 diff 下载器中未调用回调
出于某种原因,此代码不会打印任何节点、方式或关系,即使它清楚地确实从 OpenStreetMap 下载了分钟更新:
结果:
请注意,在更改下载后没有打印单个“n”、“w”或“r”。
python - 如何在 Python 中从 OSM 文件中提取和可视化数据
我已经在我的桌面上下载了一个 OpenStreetMap 文件,并且我在 jupyter 笔记本中使用了我的 OSM 文件。
我的代码:
我想看看所有tags
ie
<'node', 'id', 'name', ...>
等的内容。
我尝试使用elem
标签,但它什么也没打印。
谁能帮我弄清楚,谁来获取节点、方式等标签的内容?
python - 从 .osm 文件中绘制未排序的方式/区域的节点引用
所以我试图从 .osm 节点引用中定义建筑物的确切形状(外层),因为我需要根据一些假设在其中创建更多细节结构(房间、墙壁)。
到目前为止,我已经使用 pyosmium 从它的“building:part”引用中提取了节点的坐标,将节点的坐标存储到元组列表中,使用来自 shapely 的 Polygon 函数重建它,并使用 mplleaflet 绘制它。但不知何故,参考中的节点没有排序,当我尝试绘制它时,显示了很多交叉点。
我目前解决此排序问题的方法如下:
仅按距离(最短)对坐标元组进行排序仍然不能解决问题。甚至根据其度数对其进行分类也可能导致另一个问题,即并非所有建筑物都是矩形的。
所以这就是我通过基于距离排序的方式。绘制的图像
有没有更好的方法来做到这一点?还是我做错了?我已经连续尝试了 2 天。如果这很简单,我很抱歉,但我对编码真的很陌生,需要完成这项工作。谢谢您的帮助。
编辑:回答scai
这是我提取节点的以下方法:
主程序
这是没有排序的结果。绘制没有排序的图像
pip - 如何修复“异常:找不到 boost_python 库”?
尝试安装时收到以下错误消息osmium
:
我该如何解决?
openstreetmap - 无法正确合并 osm.pbf 文件
我最近开始使用 SRTM 数据开展一个项目,并使用phyghtmap
.
首先,我正在获取hgt
文件,将它们转换为tif
使用以下命令:gdal_fillnodata.py data.hgt data.tif
然后我用它们扭曲它们gdalwarp -co BIGTIFF=YES -co TILED=YES -co COMPRESS=LZW -co PREDICTOR=2 -t_srs "+proj=merc +ellps=sphere +R=6378137 +a=6378137 +units=m" -r bilinear -tr 90 90 data.tif warp-90.tif
最后创建 pbf 文件phyghtmap --max-nodes-per-tile=0 -s 10 -0 --pbf warp-90.tif
结果是pbf
文件列表。当我将它们加载到 PostGIS 中时,它们非常好osm2pgsql
。但我想合并它们以加强导入。
我已经尝试了所有主要的解决方案:
osmium merge *.pbf -o merged.pbf
转换
pbf
为o5m
然后osmconvert64 *.o5m -o=merge.o5m
再转换回pbf
两两合并
osmosis --read-pbf lon4.00_5.00lat44.00_45.00_local-source.pbf --read-pbf lon5.00_6.00lat44.00_45.00_local-source.osm.pbf --merge --write-pbf osmo_merge.osm.pbf
它们都不起作用,结果只是合并到结果文件中的数据的一小部分。
难道我做错了什么?
注意:如果我用它加载所有 pbf,--append
它就可以工作,但是对于世界上很小的一部分来说,它需要很长时间。
c++ - 包含位置无效的 NodeRef 的方式
我正在用锇解析mayotte pbf,我的处理程序正在寻找方法。当我找到一个时,我会处理它的重心并打印它。我遇到的问题是我处理的所有方式都有invalid location
. 如果打印我得到undefined
的纬度和经度的位置。
我的 PBF 文件有问题,还是我对osmium 库的理解有问题?
这是一个mcve: