You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2020-05-26 12:15:36

akulin
Member
Registered: 2020-05-26
Posts: 10

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 байт.

Offline

#2 2020-05-26 12:38:04

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 8,547

Re: Osmgeoref не работает

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

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

Offline

#3 2020-05-26 16:34:59

akulin
Member
Registered: 2020-05-26
Posts: 10

Re: Osmgeoref не работает

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

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

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

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

Offline

#4 2020-05-26 17:02:50

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 8,547

Re: Osmgeoref не работает

akulin wrote:

Использую 32-битную ОС.

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

Offline

#5 2020-05-27 17:36:43

akulin
Member
Registered: 2020-05-26
Posts: 10

Re: Osmgeoref не работает

Я пробовал изменять настройки по-умолчанию, прописывая другие значения для 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

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

Offline

#6 2020-05-28 08:22:19

Mir76
Member
From: Екатеринбург
Registered: 2009-12-18
Posts: 1,455

Re: Osmgeoref не работает

-

Last edited by Mir76 (2020-05-28 08:23:22)

Offline

Board footer

Powered by FluxBB