问题标签 [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.

0 投票
0 回答
960 浏览

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.pypyosmium 找不到 boost 标头。我添加了提升到includes列表中的路径setup.py。但是,它仍然找不到 type_traits 和其他 boost 标头。

0 投票
1 回答
611 浏览

python - 尝试使用 PyOsmium 时出现“没有名为 'osmium._osmium' 的模块”错误

我正在尝试使用PyOsmium,但它不会导入。python3 setup.py install似乎完成得很好,但是当import osmium我收到错误消息时:

我不知道是什么原因造成的,这是我第一次手动安装 C++ 包装器。我在同一目录中有顶级 PyOsmium 和 libosmium 目录。它是否试图导入 C++ 文件?

任何帮助将非常感激。

0 投票
0 回答
121 浏览

python - OSX:pyosmium 设置错误

我正在为on运行设置Python脚本,Python 版本是 2.7:PyosmiumOSX 10.11

我尽可能使用Brew. 并添加了支持开发所需的目录。

虽然很明显我在这里处理的是一个我完全不熟悉的关卡。

我目前的猜测是被调用的编译器 - gcc,如果这是任何想法将不胜感激!

谢谢你,斯蒂芬。

0 投票
0 回答
343 浏览

c++ - 如何并行化 libosmium 区域解析?

我正在研究如何使基于libosmium的项目使用多线程解析 OpenStreetMap PBF 区域。解析节点、方式或关系是多线程的,但解析区域不是。

例如,在运行以下计算关系的代码时,top显示 CPU 利用率超过 400%:

当我修改它以计算区域时,CPU 保持在 100% 左右:

这里的不同之处在于代码在 2 遍中运行。第一遍从关系中组装区域引用,然后第二遍使用节点缓存和收集的关系数据构建区域。但是,这样的结构似乎不是多线程的。

我怎样才能使它利用多个线程?libosmium 中是否已经内置了现有方法,或者我应该开始实现自己的线程池和队列?

0 投票
1 回答
55 浏览

osmium - 在 pyosmium 的 diff 下载器中未调用回调

出于某种原因,此代码不会打印任何节点、方式或关系,即使它清楚地确实从 OpenStreetMap 下载了分钟更新:

结果:

请注意,在更改下载后没有打印单个“n”、“w”或“r”。

0 投票
1 回答
14555 浏览

python - 如何在 Python 中从 OSM 文件中提取和可视化数据

我已经在我的桌面上下载了一个 OpenStreetMap 文件,并且我在 jupyter 笔记本中使用了我的 OSM 文件。

我的代码:

我想看看所有tagsie <'node', 'id', 'name', ...>等的内容。

我尝试使用elem标签,但它什么也没打印。

谁能帮我弄清楚,谁来获取节点、方式等标签的内容?

0 投票
1 回答
526 浏览

python - 从 .osm 文件中绘制未排序的方式/区域的节点引用

所以我试图从 .osm 节点引用中定义建筑物的确切形状(外层),因为我需要根据一些假设在其中创建更多细节结构(房间、墙壁)。

到目前为止,我已经使用 pyosmium 从它的“building:part”引用中提取了节点的坐标,将节点的坐标存储到元组列表中,使用来自 shapely 的 Polygon 函数重建它,并使用 mplleaflet 绘制它。但不知何故,参考中的节点没有排序,当我尝试绘制它时,显示了很多交叉点。

我目前解决此排序问题的方法如下:

仅按距离(最短)对坐标元组进行排序仍然不能解决问题。甚至根据其度数对其进行分类也可能导致另一个问题,即并非所有建筑物都是矩形的。

所以这就是我通过基于距离排序的方式。绘制的图像

有没有更好的方法来做到这一点?还是我做错了?我已经连续尝试了 2 天。如果这很简单,我很抱歉,但我对编码真的很陌生,需要完成这项工作。谢谢您的帮助。

编辑:回答scai

这是我提取节点的以下方法:

主程序

这是没有排序的结果。绘制没有排序的图像

0 投票
1 回答
2374 浏览

pip - 如何修复“异常:找不到 boost_python 库”?

尝试安装时收到以下错误消息osmium

我该如何解决?

0 投票
1 回答
843 浏览

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

  • 转换pbfo5m然后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它就可以工作,但是对于世界上很小的一部分来说,它需要很长时间。

0 投票
1 回答
537 浏览

c++ - 包含位置无效的 NodeRef 的方式

我正在用锇解析mayotte pbf,我的处理程序正在寻找方法。当我找到一个时,我会处理它的重心并打印它。我遇到的问题是我处理的所有方式都有invalid location. 如果打印我得到undefined的纬度和经度的位置。

我的 PBF 文件有问题,还是我对osmium 库的理解有问题?

这是一个mcve: