Помогите с преобразованием карты России из .pbf в .map

Здравствуйте уважаемые форумчане. Появилась задача преобразовать карту России в .map формат. Имеется файл RU.osm.pbf с сайта http://gis-lab.info/projects/osm_dump/ весом 1.5 Гб.
Пробую преобразовать его с помощью Osmosis. Делаю все по инструкции(+ выделил больше памяти для java). Но собрать карту не получается. Вот процесс сборки:

D:\ADM900\russia_map\osmosis-latest\bin>osmosis --rb file=D:\ADM900\russia_map\R
U.osm.pbf --mapfile-writer file=D:\ADM900\russia_map\Ru-super.map type=hd
ряЁ 07, 2015 2:33:13 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Osmosis Version 0.43.1
ряЁ 07, 2015 2:33:15 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Preparing pipeline.
ряЁ 07, 2015 2:33:16 PM org.mapsforge.map.writer.osmosis.MapFileWriterTask <init

INFO: mapfile-writer version: mapsforge-map-writer-0.5.1
ряЁ 07, 2015 2:33:16 PM org.mapsforge.map.writer.osmosis.MapFileWriterTask <init

INFO: mapfile format specification version: 3
ряЁ 07, 2015 2:33:16 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Launching pipeline execution.
ряЁ 07, 2015 2:33:16 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Pipeline executing, waiting for completion.
ряЁ 07, 2015 2:33:17 PM org.mapsforge.map.writer.osmosis.MapFileWriterTask proce
ss
INFO: start reading data…
ряЁ 07, 2015 2:47:14 PM org.mapsforge.map.writer.osmosis.MapFileWriterTask compl
ete
INFO: completing read…
ряЁ 07, 2015 8:37:45 PM org.openstreetmap.osmosis.core.store.RandomAccessObjectS
tore release
WARNING: Unable to delete file C:\Users\user\AppData\Local\Temp\idxNodesd4146793
57094188020.tmp
ряЁ 07, 2015 8:37:45 PM org.openstreetmap.osmosis.core.store.RandomAccessObjectS
tore release
WARNING: Unable to delete file C:\Users\user\AppData\Local\Temp\idxNodesi2814126
261517688623.tmp
ряЁ 07, 2015 8:37:45 PM org.openstreetmap.osmosis.core.store.RandomAccessObjectS
tore release
WARNING: Unable to delete file C:\Users\user\AppData\Local\Temp\idxWaysd20467982
94596401030.tmp
ряЁ 07, 2015 8:37:45 PM org.openstreetmap.osmosis.core.store.RandomAccessObjectS
tore release
WARNING: Unable to delete file C:\Users\user\AppData\Local\Temp\idxWaysi46694582
31045796082.tmp
ряЁ 07, 2015 8:37:45 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTas
kManager waitForCompletion
SEVERE: Thread for task 1-rb failed
java.lang.OutOfMemoryError: Java heap space
at gnu.trove.list.array.TShortArrayList.(TShortArrayList.java:91)
at gnu.trove.list.array.TShortArrayList.(TShortArrayList.java:67)
at org.mapsforge.map.writer.util.OSMUtils.extractKnownPOITags(OSMUtils.j
ava:49)
at org.mapsforge.map.writer.model.TDNode.fromNode(TDNode.java:42)
at org.mapsforge.map.writer.HDTileBasedDataProcessor.getNode(HDTileBased
DataProcessor.java:204)
at org.mapsforge.map.writer.model.TDWay.fromWay(TDWay.java:75)
at org.mapsforge.map.writer.HDTileBasedDataProcessor.getWay(HDTileBasedD
ataProcessor.java:228)
at org.mapsforge.map.writer.model.TDRelation.fromRelation(TDRelation.jav
a:72)
at org.mapsforge.map.writer.HDTileBasedDataProcessor.complete(HDTileBase
dDataProcessor.java:128)
at org.mapsforge.map.writer.osmosis.MapFileWriterTask.complete(MapFileWr
iterTask.java:90)
at crosby.binary.osmosis.OsmosisBinaryParser.complete(OsmosisBinaryParse
r.java:35)
at org.openstreetmap.osmosis.osmbinary.file.BlockInputStream.process(Blo
ckInputStream.java:37)
at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:45)
at java.lang.Thread.run(Unknown Source)

ряЁ 07, 2015 8:37:46 PM org.openstreetmap.osmosis.core.Osmosis main
SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed
.
at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForComple
tion(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(Laun
cher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
a:239)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
352)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

P.s: пробовал на картах меньшего размера с теми же самым настройками, карты собрались нормально. Прошу вашей помощи, в чем может быть косяк?

Очевидно, что не хватает памяти: “java.lang.OutOfMemoryError: Java heap space”
Как вы задавали эту память и какая версия Java?

В папке /bin , в файле osmosis в начале добавил строчку JAVACMD_OPTIONS=-Xmx3G

Config files can define several variables used throughout this script.

JAVACMD - The java command to launch osmosis.

JAVACMD_OPTIONS - The options to append to the java command, typically used to modify jvm settings such as max memory.

OSMOSIS_OPTIONS - The options to apply to all osmosis invocations, typically used to add plugins or make quiet operation the default.

JAVACMD_OPTIONS=-Xmx3G

if [ -f /etc/osmosis ] ; then
. /etc/osmosis
fi

Версия jre1.8.0_40

а Windows 64-битная чтоб ява переварила 3 гига?
и сама ява тоже должна запускаться 64-битная.

64-х битная?

Ну или увеличивать ещё или юзать опцию type=hd. С последней будет медленней, но менее требовательнее к памяти.

Вот что пишут в доке:

Да, винда 64-битная. в настройках java-машины поставил разрешение на использование 3 гигов.

Как раз с этой опцией и использую. Процесс идет около 5 часов(можно увидеть в стек-трейсе), потом вываливается с ошибкой.

проверь еще что запускается у тебя именно 64-битная версия явы.
вот 64-бита

C:\Program Files\Java\jre1.8.0_25\bin>java.exe -version
java version “1.8.0_25”
Java™ SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot™ 64-Bit Server VM (build 25.25-b02, mixed mode)

а вот 32 бита

C:\Program Files (x86)\Java\jre1.8.0_25\bin>java.exe -version
java version “1.8.0_25”
Java™ SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot™ Client VM (build 25.25-b02, mixed mode)

Проглядел, пардон. Ну тогда остаётся только выделять больше памяти. Сколько всего на компьютере физически?

D:\ADM900\russia_map\osmosis-latest\bin>java.exe -version
java version “1.8.0_40”
Java™ SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot™ 64-Bit Server VM (build 25.40-b25, mixed mode)

8 гигов памяти. Но во время процесса временами мониторил таск менеджера, он говорил что не больше 2 гб использовалось. Ни разу выше не видел чтобы прыгнул.

еще - вроде надо писать SET

set JAVACMD_OPTIONS=-Xmx3G

Стандартные средства винды могут показывать неправильно.
Для точной диагностики можно во время работы процесса запустить утилиту jconsole (ставится вместе с Java) и подключится к работающему процессу.
Там будет сразу видно с какими параметрами работает Java и сколько памяти ей доступно и сколько используется в данный момент.

добавил в osmosis.bat в строке SET EXEC=%JAVACMD% %JAVACMD_OPTIONS% -Xmx5G -cp “%PLEXUS_CP%” -Dapp.home=“%MYAPP_HOME%” -Dclassworlds.conf=“%MYAPP_HOME%\config\plexus.conf” %MAINCLASS% %OSMOSIS_OPTIONS% %* -Xmx5G.

попробую, отпишусь по результату.

Кстати, вы запускаете под виндами? Файл osmosis - это скрипт запуска под Linux, под виндой надо редактировать bat-файл.

Спасибо, сейчас скачаю и попробую с ней помониторить.

А вот и косяк)) Вы правы, до этого добавлял памяти в линуксовом файле, только сейчас исправил в bat.

Что-то у вас параметр -Xmx 2 раза - как параметр запуска Java, и как параметр для самого osmosis.
Оставьте только один (первый).

Это я не верно сформулировал ответ) Я имел ввиду что добавил этот параметр, которого там до этого не было.

Вам какого региона надо? У меня все есть