问题标签 [pyosmium]

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 投票
1 回答
151 浏览

python - 启用处理程序类方法以产生实例属性

这个问题是关于包的pyosmium。我只是想知道以下功能是否可行,如果不可行,如何实现。

我想流式传输/产生某些实例属性,而不是在内存中更新它们。

目前我们可以做到以下几点:

但是,在处理大区域时,这是不可扩展的。

我想要一种为每个 WayObject 生成包含 WayIds 和相关 NodeIds(以及标签等)的字典对象的方法。这可能吗?

我正在寻找这样的东西:

但我不确定如何传递w参数(WayObject),因为这似乎是使用该apply_file()方法在内部处理的(而且我似乎无法找到该方法的源代码)。

谢谢!

编辑:源代码可以在这里找到

0 投票
1 回答
149 浏览

openstreetmap - 锇 - 将输出标头添加到 PBF

我创建了多个合成 OSM PBF 文件,pyosmium稍后我想合并它们并使用osmium可执行文件在 PBF 上设置一些自定义标头以用于存档目的。

但是,诸如

osmium cat --no-progress example1.pbf example2.pbf --output-header=sorting=blabla -O -o test_data.pbf

没有设置任何可用的标题osmium fileinfo。根据libosmium的文档,应该可以设置任意标头键/值对。我可以永久更改的唯一标题是generator,所以这有效:

osmium cat --no-progress example1.pbf example2.pbf --output-header=generator=blabla -O -o test_data.pbf

我可以想象问题是输入 PBF 没有我想在输出 PBF 中设置的标题(输入 PBF 实际上确实有generator标题)。但是,如果这是问题所在,我如何使用pyosmium将标题添加到我首先创建的 PBF 中?

0 投票
1 回答
236 浏览

python - 使用 pyosmium 将 .pbf 文件转换为 .osm

我从 geofabrik.de 下载了一个相当大的文件,它是 pbf 的形式。我需要将其转换为 osm 文件,以便从文件中提取节点和边。我已经使用 pip install osmium 下载了 osmium 库,但它只是给了我一个错误

ModuleNotFoundError:没有名为“锇”的模块

有人可以帮助我如何使用锇吗?

0 投票
1 回答
190 浏览

python - 如何从 .osm xml 文件中提取关系成员

全部,

我一直在尝试建立一个网站(在 Django 中),该网站将成为世界上所有 MTB 路线的索引。我是 Pythonian,所以无论我在哪里都可以尝试使用 Python。

我已经成功地从 OSM API 中提取了数据(在传单中显示关系(轨迹)),但发现对所有 MTB 轨迹(标签:路由 = mtb)执行此操作的数据太多(处理需要很长时间)。因此,我尝试通过下载整个 OpenStreetMap 数据集(来自最新的每周星球 XML 文件)的种子并使用 osmfilter(Ubuntu 20.04 中的 osmctools 的一部分)过滤标签:route=mtb,在本地完成所有操作,如下所示:

这会产生一个大约 1.2 GB 的文件,仔细检查似乎包含了我需要的所有数据。我的目标是将文件转换为 pandas.DataFrame() 以便在将相关方面推送到我的 Django DB 之前进行一些进一步的过滤和转换。我尝试使用 Python Pandas 将文件加载为常规 XML 文件,但这使 Jupyter notebook 内核崩溃。估计数据太大了。

我的第二种方法是这个解决方案:如何在 Python 中从 OSM 文件中提取和可视化数据。它对我有用,至少,我可以获得一些信息,例如文件中关系的标签(以及其他指定的详细信息)。我缺少的是关系成员(方式),然后是方式成员(节点)及其纬度/经度。我需要这些来实现我在这里所做的:绘制 OpenStreetMap 关系不会生成连续线

我对许多解决方案持开放态度,例如,可以使用基于 osmium 的脚本将文件分解为许多不同的文件,其中包含 1 个关系及其每个文件的成员。也许那时我可以继续使用 pandas.read_xml()。这对于填充数据库的批处理非常有用。将整个 OSM XML 文件加载到 pd.DataFrame 会很好,但我想这确实是很多数据。也许这也可以在与 pyosmium 的每个关系的基础上完成?

任何帮助表示赞赏。