Konfiguration von osmosis und josm

Hallo zusammen,

ich möchte mir gerne Karten aus osm auf meine Bedürfnisse anpassen und in das mapsforge Format konvertieren.
Hierzu habe ich “Osmosis Version 0.44.1-5-gc2a8a69-SNAPSHOT” mit dem “mapsforge-map-writer-0.9.1-jar-with-dependencies.jar” installiert,
eine Tag-Mapping.xml angepasst und erhielt die ersten brauchbaren Ergebnisse bei einer kleinen Datei (Regierungsbezirk Stuttgart).
Im nächsten schritt wollte ich gesamt Baden-Würtemberg konvertieren, jedoch bricht osmosis den Prozess ab.

Fehlermeldung ohne “type=hd” Parameter:


Jan 19, 2018 11:08:21 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
SCHWERWIEGEND: Thread for task 1-rb failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: An output error has occurred, aborting.
        at org.openstreetmap.osmosis.core.store.DataPostbox.checkForOutputErrors(DataPostbox.java:162)
        at org.openstreetmap.osmosis.core.store.DataPostbox.populateCentralQueue(DataPostbox.java:218)
        at org.openstreetmap.osmosis.core.store.DataPostbox.put(DataPostbox.java:305)
        at org.openstreetmap.osmosis.core.buffer.v0_6.EntityBuffer.process(EntityBuffer.java:48)
        at crosby.binary.osmosis.OsmosisBinaryParser.parseWays(OsmosisBinaryParser.java:171)
        at org.openstreetmap.osmosis.osmbinary.BinaryParser.parse(BinaryParser.java:121)
        at org.openstreetmap.osmosis.osmbinary.BinaryParser.handleBlock(BinaryParser.java:68)
        at org.openstreetmap.osmosis.osmbinary.file.FileBlock.process(FileBlock.java:135)
        at org.openstreetmap.osmosis.osmbinary.file.BlockInputStream.process(BlockInputStream.java:34)
        at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:45)
        at java.lang.Thread.run(Unknown Source)

Jan 19, 2018 11:08:21 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
FEIN: Waiting for task 2-buffer to complete.
Jan 19, 2018 11:08:21 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
SCHWERWIEGEND: Thread for task 2-buffer failed
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.regex.Matcher.<init>(Unknown Source)
        at java.util.regex.Pattern.matcher(Unknown Source)
        at org.openstreetmap.osmosis.tagtransform.impl.TagMatcher.match(TagMatcher.java:39)
        at org.openstreetmap.osmosis.tagtransform.impl.AndMatcher.match(AndMatcher.java:46)
        at org.openstreetmap.osmosis.tagtransform.impl.TranslationImpl.match(TranslationImpl.java:48)
        at org.openstreetmap.osmosis.tagtransform.impl.TransformHelper.processEntityContainer(TransformHelper.java:129)
        at org.openstreetmap.osmosis.tagtransform.v0_6.TransformTask.process(TransformTask.java:19)
        at org.openstreetmap.osmosis.core.progress.v0_6.EntityProgressLogger.process(EntityProgressLogger.java:71)
        at org.openstreetmap.osmosis.core.buffer.v0_6.EntityBuffer.run(EntityBuffer.java:84)
        at java.lang.Thread.run(Unknown Source)

Jan 19, 2018 11:08:21 PM org.openstreetmap.osmosis.core.pipeline.common.PassiveTaskManager waitForCompletion
FEIN: Task 3-log-progress is passive, no completion wait required.
Jan 19, 2018 11:08:21 PM org.openstreetmap.osmosis.core.pipeline.common.PassiveTaskManager waitForCompletion
FEIN: Task 4-tt is passive, no completion wait required.
Jan 19, 2018 11:08:21 PM org.openstreetmap.osmosis.core.pipeline.common.PassiveTaskManager waitForCompletion
FEIN: Task 5-mw is passive, no completion wait required.
Jan 19, 2018 11:08:21 PM org.openstreetmap.osmosis.core.Osmosis main
SCHWERWIEGEND: 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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

ohne Fehlermeldung mit “type=hd” Parameter:


Jan 20, 2018 7:35:31 AM org.mapsforge.map.writer.BaseTileBasedDataProcessor$RelationHandler execute
FEIN: constructed outer polygon in relation has no known tags: 7758318
Jan 20, 2018 7:35:31 AM org.mapsforge.map.writer.BaseTileBasedDataProcessor$RelationHandler execute
FEIN: constructed outer polygon in relation has no known tags: 7758320
Jan 20, 2018 7:35:31 AM org.mapsforge.map.writer.BaseTileBasedDataProcessor$RelationHandler execute
FEIN: constructed outer polygon in relation has no known tags: 7767597
Jan 20, 2018 7:35:31 AM org.mapsforge.map.writer.BaseTileBasedDataProcessor$RelationHandler execute
FEIN: constructed outer polygon in relation has no known tags: 7877400
Jan 20, 2018 7:35:32 AM org.mapsforge.map.writer.BaseTileBasedDataProcessor$RelationHandler execute
FEIN: constructed outer polygon in relation has no known tags: 7895021

Nun habe ich beobachtet dass in das tmp Verzeichnis sowie ram max. ~ 4GB an Daten vor dem Abbruch geschrieben werden. (32bit grenze??)

Zum Einsatz kommt ein PC mit Win 10 64bit mit 16GB RAM auf dem aktuell nur Java 64bit (jre1.8.0_161) installiert ist.
Ich las im wiki etc. von den parametern um die RAM größe, java version und temp Verzeichnis anzupassen und wollte testen ob der Fehler daher kommt. Nur leider bin ich überfangt in welche Datei ich die Parameter einfügen muss.


set JAVACMD_OPTIONS=-Xmx10G
set -Djava.io.tmpdir=D:\osm\osmosis\tmp
IF "%JAVACMD%"=="" set JAVACMD="C:\Program Files\Java\jre1.8.0_161\bin" 

Denn egal wo ich es eintrage startet osmosis nicht mehr, meist mit der Meldung dass der Pfad nicht gefunden werden kann…
Bei der Installation von osmosis habe ich mich weitestgehendst an die Anleitungen gehalten.
https://wiki.openstreetmap.org/wiki/Osmosis/Quick_Install_(Windows)
http://learnosm.org/en/osm-data/osmosis/#install-osmosis))

Ich wäre dankbar wenn mir jemand auf die sprünge helfen könnte wie ich osmosis auch mit etwas größeren Dateien zum laufen bekomme!

Ach ja, josm gibt mir beim offnen der BW.osm auch die meldung aus dass ich den Parameter “JAVACMD_OPTIONS=-XmxxxG”
setzen soll.

Grüße Steffen