You are not logged in.

#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-файлов

Sergey Astakhov wrote:

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

Вот именно.
В данном случаее предлагаемый "язык" явно не является полным, т.к. не содержит ни переходов (никаких - ни условных, ни безусловных), ни циклов. Т.к. предназначен для решения очень узкого круга задач. Но внутри этого класса задач он 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-файлов

...ждём ебилдов.  smile


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-файлов

Komяpa wrote:

...ждём ебилдов.  smile

А что это?

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-файлов

dkiselev wrote:

Чем писать такой препроцессор с такими хитрыми конфигами может лучше 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-файлов

dkiselev wrote:

Чем писать такой препроцессор с такими хитрыми конфигами может лучше 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

Re: Препроцессор osm-файлов

а с 0.36 версией он работать будет?

Offline

#36 2010-05-24 19:17:03

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,787

Re: Препроцессор osm-файлов

Ezhick wrote:

а с 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-файлов

andriano wrote:

Какая-то странная ситуация: была просьба сделать, а теперь - молчок. Или уже не актуально?
Кстати, заканчиваю работу со строками, но возник другой вопрос: в первоначально предложенном варианте отсутствовала операция сравнения строк. Т.е. например, нельзя выполнить следующую задачу: если имеется 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-файлов

mbiker wrote:

.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 за запрашиваемый период?
smile

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-файлов

Igor_blg wrote:

для гармина рестораны раскидываются по типам кухни

Такое теперь можно непосредственно в конфигах 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-файлов


ШТОСМ | josm.ru | обо мне | удалёнка зло

Offline

Board footer

Powered by FluxBB