Osmgeoref не работает

Есть ряд некоторых проблем.

Для получения данных используется скрипт preparation.sh, в котором прописана последовательность из подпрограмм и параметров.
Скомпилировал все программы по образцу из preparation.sh под x86. В preparation.sh для примера в скрипте указана Германия. Как я понял, для получения координат используется подпрограмма osmposition.

Пример:
./osmposition adr.ogb <<< “Rathausplatz, Hamburg”

Для того чтобы получить координаты по названию необходимо преобразовать pbf файл с помощью подпрограмм, указанных в скрипте preparation.sh.

Запуск скрипта preparation.sh по-умолчанию выдает следующее:
osmconvert Error: not enough memory. Reduce --max-objects=
osmfilter Warning: unexpected end of input file: adrn.o5m
osmgeobase Warning: could not completely read file strings_housenumber
osmgeobase: read 0 strings of 1.

adr.ogb создаётся, размер равен 61 МБ.

Пробую получить координаты:
./osmposition adr.ogb <<< “Rathausplatz, Hamburg”
osmposition Error: wrong-formatted string statistics section 5

То есть пример не заработал как надо.

На странице с Osmgeoref есть полная документация на немецком языке. В 6 и 7 главе описана работа с подпрограммами. Пока не нашёл там полезной информации, большинство информации идентично help’ам подпрограмм. Возможно потом что-то прояснится.

Пробовал скачивать для теста область с картой Москвы: Central Federal District.
Запуск скрипта preparation.sh для Москвы выдает следующее:

osmconvert Error: not enough memory. Reduce --max-objects=
osmfilter Warning: unexpected end of input file: adrn.o5m
osmgeobase Error: incorrect node count value in file “strings_nodecount”: 0
./preparation.sh: line 65: 21875 Segmentation fault (core dumped) ./osmgeobase adrr.o5m -o=adr.ogb

Скрипт крашится, adr.ogb создаётся, но имеет размер 0 байт.

Вот тут же написано, что у вас не хватает памяти, сколько у вас её? И как вариант предлагают понизить её резерв, вы это пробовали?

Всего 8 ГБ памяти. Использую 32-битную ОС.

–max-objects в первом же блоке Processing Line 1 выдаёт not enough memory. Reduce --max-objects.
Если указать не 80000000, а скажем 70000000, то теперь уже пишет not enough space. Increase --max-objects.

То есть изменение значения параметра в любом случае выдаёт ошибку.

Что делать в этом случае?

Это плохо. По сути у вас доступно процессу чуть более 1Гб. Это не серьёзно в масштабах ОСМ. Попробуйте ещё уменьшить --hash-memory, т.к. в дефолтный настройках он есть 900Мб.
Вот я их запустил и их потребление по-умолчанию: osmconvert 2.1Гб, osmfilter 1.2Гб

Я пробовал изменять настройки по-умолчанию, прописывая другие значения для max-objects и hash-memory. В итоге я получаю разные типы ошибок:

osmconvert Error: not enough space. Reduce --max-objects=
osmconvert Error: not enough space. Increase --max-objects=
osmconvert Error: not enough memory. Reduce --max-objects=

Пробовал задавать разные значения, но в итоге ошибки всё равно возникают. В htop видно, что процесс забивает память по полной и не остаётся свободного места, половина памяти не используется, т.к. это 32-битная ОС.

Попробовал запустить на 64-битной ОС с 12 ГБ памяти. Всё что относится к примеру по-умолчанию заработало. Не возникло никаких ошибок и ворнингов.

Я попробовал сгенерировать данные для Москвы, скачав pbf файл и преобразовав его по тому же принципу, как для Германии.

osmgeobase Error: incorrect node count value in file "strings_nodecount": 0
./preparation.sh: line 65:  3292 Segmentation fault      (core dumped) ./osmgeobase adrr.o5m -o=adr.ogb

Ошибка возникает в блоке “Processing Line 1+2+3 End” на этом этапе:

./osmgeobase adrr.o5m -o=adr.ogb

Скорее всего это относится к osmassignpoly:

./osmassignpoly adr.o5m -B=adr.poly -b=5.86,47.27,15.05,55.06 --use-admin-levels=";;;admin_level=" --region-key=region --subregion-key=subregion --keep-boundary-nodes --export-strings --separate-housenumbers -o=adrr.o5m

Где какие-то параметры скорее всего необходимо изменить под Москву. Я пока не понимаю что именно надо изменить.