You are not logged in.
- Topics: Active | Unanswered
Announcement
#26 2010-05-23 14:31:51
- coolkaas
- Member
- From: RU, Penza
- Registered: 2009-05-28
- Posts: 2,391
Re: Препроцессор osm-файлов
Не знай.. Андриано вот просит)) по мне, поглядев на его проэкт, и правда вопросилось внутри -- не проще ли это на Си (к примеру) написать?..
Вопрос не праздный, на самом деле -- где делать "талию" -- как провести границу между конфигом и исполнительной частью программы)) Андриано вот берётся широко запахать.
Offline
#27 2010-05-23 14:55:26
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Препроцессор osm-файлов
Может я чего не понимаю, но нафига изобретать новый язык?
Одно дело - простенький конфиг, и совсем другое - полноценный язык.
Вот именно.
В данном случаее предлагаемый "язык" явно не является полным, т.к. не содержит ни переходов (никаких - ни условных, ни безусловных), ни циклов. Т.к. предназначен для решения очень узкого круга задач. Но внутри этого класса задач он IMHO не должен иметь ограничений, поэтому считаю, что алгебра логики должна быть реализована в полном объеме. И только. Никаких других операций кроме логических не предусмотрено.
Last edited by andriano (2010-05-23 14:56:50)
Offline
#28 2010-05-23 15:11:48
- Komяpa
- Member
- From: Minsk
- Registered: 2009-04-14
- Posts: 1,323
- Website
Re: Препроцессор osm-файлов
...ждём ебилдов.
world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]
Offline
#29 2010-05-24 04:23:37
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Препроцессор osm-файлов
...ждём ебилдов.
А что это?
Offline
#30 2010-05-24 06:16:42
- dkiselev
- Member
- Registered: 2010-02-09
- Posts: 3,364
Re: Препроцессор osm-файлов
Чем писать такой препроцессор с такими хитрыми конфигами может лучше xslt освоить?
Упс mp не xml'ка - извините глупость брякнул.
Last edited by dkiselev (2010-05-24 06:20:02)
mail: dkiselev@osm.me skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!
Offline
#31 2010-05-24 06:34:50
- Sergey Astakhov
- Member
- From: St.Petersburg, Russia
- Registered: 2009-11-13
- Posts: 5,787
Re: Препроцессор osm-файлов
Чем писать такой препроцессор с такими хитрыми конфигами может лучше xslt освоить?
Упс mp не xml'ка - извините глупость брякнул.
Ну почему глупость. Обжудается всё-таки препроцессор.
Вот только как xslt будет работать на многомегабайтных файлах... Не любая реализация сдюжит...
Offline
#32 2010-05-24 07:23:06
- Zkir
- Member
- From: Хрустальная Москва
- Registered: 2009-02-21
- Posts: 6,110
Re: Препроцессор osm-файлов
Чем писать такой препроцессор с такими хитрыми конфигами может лучше xslt освоить?
Идея в том что если один напишет препроцессор с _простыми_ конфигами, другим не придется ничего осваивать)
А вот плагин к осмозису кажется мне хорошей идеей.
Last edited by Zkir (2010-05-24 07:26:46)
Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.
Offline
#33 2010-05-24 09:17:07
- akashihi
- Member
- Registered: 2009-10-11
- Posts: 133
Re: Препроцессор osm-файлов
Чем писать такой препроцессор с такими хитрыми конфигами может лучше xslt освоить?
Я пробовал xslt обрабатывать osm данные - медленно и неудобно.
Offline
#34 2010-05-24 18:17:22
- Sergey Astakhov
- Member
- From: St.Petersburg, Russia
- Registered: 2009-11-13
- Posts: 5,787
Re: Препроцессор osm-файлов
Попробовал плугин TagTransform. Вроде работает.
Пример конфига (transform.xml):
<?xml version="1.0"?>
<translations>
<translation>
<name>Private parking transform</name>
<description>Convert amenity=parking+access=private to amenity=private_parking</description>
<match mode="and">
<tag k="amenity" v="parking"/>
<tag k="access" v="private"/>
</match>
<output>
<copy-unmatched/>
<tag k="amenity" v="private_parking"/>
</output>
</translation>
</translations>
Загружать надо "API 0.6 compatible version", по первой ссылке какая-то древняя версия лежит. Или самому собрать из исходников.
В плугине отсутствует файл plugin.xml для автоматической регистрации, можно добавить его самому или подключить через командную строку, как описано на странице.
Пример plugin.xml
<?xml version="1.0" ?>
<!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd">
<plugin id="TransformPlugin" version="1.0">
<requires>
<import plugin-id="org.openstreetmap.osmosis.core.plugin.Core"
plugin-version="0.35" reverse-lookup="false"/>
</requires>
<runtime>
<library id="code" path="/" type="code"/>
</runtime>
<extension plugin-id="org.openstreetmap.osmosis.core.plugin.Core"
point-id="Task" id="TransformPlugin/Task">
<parameter id="name" value="transform"/>
<parameter id="class" value="uk.co.randomjunk.osmosis.transform.TransformPlugin"/>
</extension>
</plugin>
Last edited by Sergey Astakhov (2010-05-24 19:34:23)
Offline
#35 2010-05-24 19:15:05
- Ezhick
- Member
- From: Moscow
- Registered: 2008-10-08
- Posts: 2,508
- Website
Offline
#36 2010-05-24 19:17:03
- Sergey Astakhov
- Member
- From: St.Petersburg, Russia
- Registered: 2009-11-13
- Posts: 5,787
Re: Препроцессор osm-файлов
а с 0.36 версией он работать будет?
Скорей всего да. Пробовать нужно.
Offline
#37 2010-05-24 19:58:17
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Препроцессор osm-файлов
Залил альфа-версию на
http://slil.ru/29195882
Произвольные строки пока не обрабатываются.
Обнаружил, что тегов access=private куда больше, чем private=yes, поэтому в качестве примера использования приведен конф-файл, преобразующий любую из этих комбинаций.
Offline
#38 2010-05-26 05:08:40
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Препроцессор osm-файлов
Какая-то странная ситуация: была просьба сделать, а теперь - молчок. Или уже не актуально?
Кстати, заканчиваю работу со строками, но возник другой вопрос: в первоначально предложенном варианте отсутствовала операция сравнения строк. Т.е. например, нельзя выполнить следующую задачу: если имеется cladr=%, то его удалить, но если нет cladr:code и cladr:note, то записать cladr:note с указанным кодом, а если есть, сравнить коды и при несовпадении выдать сообщение об ошибке.
Offline
#39 2010-05-26 05:21:40
- Zkir
- Member
- From: Хрустальная Москва
- Registered: 2009-02-21
- Posts: 6,110
Re: Препроцессор osm-файлов
актуально-актуально, просто других дел навалилось. Посмотрю обязательно)
Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.
Offline
#40 2010-05-26 08:18:40
- mbiker
- Member
- Registered: 2009-10-19
- Posts: 147
Re: Препроцессор osm-файлов
Какая-то странная ситуация: была просьба сделать, а теперь - молчок. Или уже не актуально?
Кстати, заканчиваю работу со строками, но возник другой вопрос: в первоначально предложенном варианте отсутствовала операция сравнения строк. Т.е. например, нельзя выполнить следующую задачу: если имеется cladr=%, то его удалить, но если нет cladr:code и cladr:note, то записать cladr:note с указанным кодом, а если есть, сравнить коды и при несовпадении выдать сообщение об ошибке.
.exe ... и сорцов нет. Это проблема. И Windows далеко не все пользуются.
Offline
#41 2010-05-26 16:09:04
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Препроцессор osm-файлов
.exe ... и сорцов нет. Это проблема. И Windows далеко не все пользуются.
Да, определенная проблема в этом есть. Тем не менее по пунктам:
1. Я не пользуюсь интерпретируемыми ЯП т.к. считаю, что программы написанные на них работают неприемлемо медленно. Ну уж не для обработки гигабайтных файлов точно.
2. Исходники достаточно объемные, т.к. по сути я использовал для написания данной программы наработки из других проектов, ничего из них не удаляя. Так что для "посмотреть" они не очень пригодны. А для "откомпилировать" - тем более, т.к. я пользуюсь очень редким компилятором с не слишком характерного для подобных задач ЯП.
3. Программа консольная и использует минимум средств WinAPI без привлечения специфических библиотек. Так что с запуском, думаю, могут быть проблемы только из-под "голого" ДОС. Но под "голым" ДОС это принципиально работать не может, т.к. ДОС не поддерживает длину файла более 2 Гб, а для программы подобного назначения это ОБЯЗАТЕЛЬНОЕ условие.
Offline
#42 2010-05-26 18:31:30
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Препроцессор osm-файлов
Выложил следующую версию (и опять альфа - вот незадача!)
http://slil.ru/29211415
Теперь сделана обработка строк и управление листингом.
Программа может, например, выполнить следующую задачу:
Если у объекта присутствуют теги cladr и cladr:code, причем их значения (val) совпадают, то тег code удаляется (приведен пример).
В принципе, можно сразу было добавить и cladr:note, но решил не усложнять программу.
Из идей - совместить этот инструмент с задачей получения простенькой статистики.
Offline
#43 2010-05-26 21:36:34
- coolkaas
- Member
- From: RU, Penza
- Registered: 2009-05-28
- Posts: 2,391
Re: Препроцессор osm-файлов
Простенькая статистика, это здорово. Например, хочу запросы: кто рисовал за последнюю неделю? Кто рисовал за период с - по? какие теги рисовали/изменяли за нужный период? Рисовали ли тег (к примеру) highway за запрашиваемый период? Рисовал ли пользователь pupkin тег water за запрашиваемый период?
Offline
#44 2010-05-27 05:07:16
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Препроцессор osm-файлов
Да уж. Под статистикой каждый подразумевает нечто свое.
Я, например, когда по совету lesha решил перейти с MP на OSM d качестве источника данных, первым делом попытался "очистить" OSM от той информации, которую я никогда не буду использовать. И "под сокращение" как раз попала та часть, в которой указывается, когда и кем данная точка последний раз была отредактирована. Кстати, объем после этого сразу уменьшился более чем вдвое.
Есть и еще одно препятствие.
В посте №18 вкратце сформулировано, что нужно сделать. И там явно указано, что работать нужно с файлом, а не БД или API. А это значит, что:
1. Во входной информации ОТСУТСТВУЕТ информация по истории изменений.
2. Сам файл может быть сколь угодно древний.
В этом же случае для сбора статистики подобного рода целесообразно уже пользоваться в качестве источника данных не файлом, а чем-то онлайновым.
А под статистикой я подразумевал анализ состояния информации, имеющейся в ТЕКУЩЕМ файле, т.е. на один момент времени, а не динамика ее изменения со временем.
Тут в ветке "Стандартизация..." я уже выкладывал кое-какую статистику. Просто хотелось бы иметь инструмент, который мог бы восполнить отсутствующую там информацию по каким-нибудь конкретным тегам. И чтобы это можно было сделать просто и быстро.
Offline
#45 2010-06-02 08:32:36
- Igor_blg
- Member
- From: Bologoe
- Registered: 2008-12-10
- Posts: 60
Re: Препроцессор osm-файлов
сделал на пробу пару конфигов для предпроцессора (osmosis+tag_transform), для гармина рестораны раскидываются по типам кухни, для навитела еще места поклонения (церкви, мечети).
если кому интересно http://code.google.com/p/osm2mp-preprocess/
Offline
#46 2010-06-03 06:46:41
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: Препроцессор osm-файлов
для гармина рестораны раскидываются по типам кухни
Такое теперь можно непосредственно в конфигах osm2mp задавать.
Во всяком случае рестораны я там частично прописал
Offline
#47 2012-08-25 22:52:25
- Kostik
- Member
- From: Moscow
- Registered: 2011-01-02
- Posts: 2,104
Re: Препроцессор osm-файлов
Транслитератор из алфавитов отличных от кирилицы-латиницы кто нибудь встречал?
Offline
#48 2012-08-26 07:20:17
- Zverik
- Moderator
- From: Минск
- Registered: 2010-10-14
- Posts: 5,693
- Website
Re: Препроцессор osm-файлов
Offline