【问题标题】:Error when using OSMOSIS to extract data from OpenStreetMap data使用 OSMOSIS 从 OpenStreetMap 数据中提取数据时出错
【发布时间】:2022-07-20 19:18:00
【问题描述】:

我正在尝试复制示例 in this page。我下载了数据并运行了这段代码(那个页面的示例数据可以下载from here):

osmosis --rbf sample_osmosis.osm.pbf --nkv keyValueList="amenity.school" --wx schools.osm

我正在使用 Linux Mint 20.2 Cinnamon 并使用 Sypantic(版本 0.47)安装了 osmosis。

我下载了上一页中的示例,并在包含.pbf 文件的文件夹中运行了之前的代码。

但是,我收到此错误:

osmosis --rbf sample_osmosis.osm.pbf --nkv keyValueList="amenity.school" --wx schools.osm
nov. 18, 2021 11:55:56 P. M. org.openstreetmap.osmosis.core.Osmosis run
INFORMACIÓN: Osmosis Version 0.47
nov. 18, 2021 11:55:56 P. M. org.openstreetmap.osmosis.core.Osmosis run
INFORMACIÓN: Preparing pipeline.
nov. 18, 2021 11:55:56 P. M. org.openstreetmap.osmosis.core.Osmosis run
INFORMACIÓN: Launching pipeline execution.
nov. 18, 2021 11:55:56 P. M. org.openstreetmap.osmosis.core.Osmosis run
INFORMACIÓN: Pipeline executing, waiting for completion.
nov. 18, 2021 11:55:56 P. M. org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
GRAVE: Thread for task 1-rbf failed
java.lang.NoClassDefFoundError: com/google/common/util/concurrent/MoreExecutors
    at org.openstreetmap.osmosis.pbf2.v0_6.PbfReader.run(PbfReader.java:87)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.MoreExecutors
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    ... 2 more

nov. 18, 2021 11:55:56 P. M. org.openstreetmap.osmosis.core.Osmosis main
GRAVE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed.
    at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146)
    at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92)
    at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:321)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:234)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

知道会发生什么吗?

【问题讨论】:

    标签: openstreetmap osmosis


    【解决方案1】:

    我刚刚使用您的示例数据 (osmosis --rbf sample_osmosis.osm.pbf --nkv keyValueList="amenity.school" --wx school.osm) 成功运行了 Osmosis 版本 0.48.3 的确切命令:INFOS: Total execution time: 439 milliseconds

    我的 Osmosis 版本可能和你的不一样,但是 sample_osmosis.osm.pbf 文件可能也进化了。

    仅供参考,我今天使用 GeoFabrik OSM 数据 https://download.geofabrik.de/europe/monaco-220719.osm.pbf 和基本渗透命令遇到了相同的错误消息 ("GRAVE: Thread for task 1-rbf failed"):osmosis --read-pbf file=monaco-latest.osm.pbf --write-xml file=monaco-latest.osm。经过分析,这是由于 pbf 输入文件中缺少元数据字段(版本、时间戳、变更集……)。当获取带有元数据字段的 GeoFabrik 文件时,一切正常

    【讨论】:

      猜你喜欢
      • 2020-01-04
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 2020-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多