You are not logged in.

#26 2011-10-22 07:40:01

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,323
Website

Re: Актуальные задачи, требующие искусства программирования

А вот ещё интересная задачка.

Дано: растр, libjpeg.
Надо: пропатчить libjpeg/gdal так, чтобы пиксели со значением (0,0,0) не оказывали никакое влияние на тот спектр, который будет записан для блока самим libjpeg.
Подробнее: https://plus.google.com/u/0/10129102939 … 5vyUKGkPjF

Если это сделать, то геотиффы с фотографиями (а-ля Великие Луки http://latlon.org/maxi?zoom=10&lat=56.4 … FF0000FBF) можно будет спокойно делать не 50-, а 3-4-меабайтными, без боязни того, что на склейках вылезут чёрные края от артефактов сжатия jpeg.


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#27 2011-10-23 18:10:51

Upliner
Member
From: Kyiv
Registered: 2008-09-18
Posts: 845

Re: Актуальные задачи, требующие искусства программирования

Komяpa wrote:

А вот ещё интересная задачка.

Да, это задачка скорее для математиков, чем для программистов. Известно, что аудиокодеки, например Vorbis использует Linear prediction для того, чтобы избежать артефактов в начале и конце трека(в случае, когда они начинаются/заканчиваются не тишиной). А тут поневоле придётся изобретать Bilinear prediction.

Last edited by Upliner (2011-10-23 18:11:43)


Big cat is watching you

Offline

#28 2011-10-23 18:37:19

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,662

Re: Актуальные задачи, требующие искусства программирования

Komяpa wrote:

без боязни того, что на склейках вылезут чёрные края от артефактов сжатия jpeg.

Не проще ли отказаться от jpeg для таких тайлов, и использовать png ?

Offline

#29 2011-10-23 19:05:48

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,323
Website

Re: Актуальные задачи, требующие искусства программирования

usm78-gis, внутри geotiff'a мешать jpg и png? Это ещё страшнее smile

Суть вопроса как раз не в том, чтобы раздавать конечную мозаику в jpeg (там, как раз, ничего страшного, если на границе чёрного с цветным что-то вылезет - кому надо, попросят у wms png), а в том, чтобы при хранении/выкладке в интернеты один геотифф занимал не 50-200 мегабайт, а 4-10, как исходная фотография.

Last edited by Komяpa (2011-10-23 19:11:10)


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#30 2011-10-23 19:23:02

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,662

Re: Актуальные задачи, требующие искусства программирования

Komяpa wrote:

при хранении/выкладке в интернеты один геотифф занимал не 50-200 мегабайт, а 4-10, как исходная фотография.

Тогда все равно придется декларировать новый (приватный) кодек
для геотиффа и читать его никто не сможет.
Впрочем убогие программы и deflate то не понимают wink
Выкладывайте тогда
уж jpeg2000, хотя я в душе тоже скорее сторонник обновленного геотиффа smile

кому надо, попросят у wms png

Хм, покажите реальную статистику пользователей josm, запрашивающих format=image/png.

Last edited by usm78-gis (2011-10-23 19:27:36)

Offline

#31 2011-10-23 19:43:30

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,323
Website

Re: Актуальные задачи, требующие искусства программирования

usm78-gis wrote:

Тогда все равно придется декларировать новый (приватный) кодек
для геотиффа и читать его никто не сможет.

Cо времён gdal 1.8.0 geotiff умеет хранить битовую маску NODATA в сжатом виде: http://www.gdal.org/frmt_gtiff.html

"Новый" кодек декларировать необязательно:
- тупые программы не поймут jpeg вообще (они нас и так не интересуют, всё на базе gdal его умеет);
- программы, не умеющие читать сжатую битовую маску NODATA - покажут всё, и по краям нарисуют разводы размером с jpeg-овский блок - неприятно, но и нефатально;
- target-программы (gdal 1.8 плюс поддержка mask со стороны софта, mapserver 6.0+ в частности) - покажут только то, что будет разрешено маской, соответственно, на новое раскодированное значение бывших чёрных пикселей глубоко наплевать.

Плюс от такого подхода - убирается "грязь" на склейках.

Как-то так.


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#32 2011-10-25 10:13:31

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,999

Re: Актуальные задачи, требующие искусства программирования

Zkir wrote:

ЗАДАЧА  5.
Cоздание компактной обзорной карты России. Данные ОСМ хорошо подходят для создания крупномасштабных и, в меньшей степени среднемасшабных карт.

Требуется примерно следующее. Надо выкачивать все дороги секондари и выше, все тауны и выше, ЖД, воду, берег, границы областей и упрощать это всё.

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

Технология: Любая, но на выходе должне быть OSM или mp.

Открываю книгу (простенькую, но всё же ...) - Берлянт А.М. Картография, М.:2001, стр. 129.

Глава 7. Картографическая генерализация
7.1. Сущность генерализации

...

Процесс генерализации труднее других картографических процессов поддаётся формализации и автоматизации. Не все этаппы могут быть алгоритмизированы, не все критерии удаётся однозначно формализовать. Качество генерализации во многом зависит от понимания картографом содержательной сущности изображаемых объектов и явлений, умения выявить главные типичные их особенности. Опыт показывает, что автоматизация картографической генерализации должна опираться на интерактивные, диалоговые процедуры, обеспечивающее активное участие картографа.

Господа программисты, вперёд wink


Бывший редактор ОСМ

Offline

#33 2011-10-25 10:44:52

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,110

Re: Актуальные задачи, требующие искусства программирования

fserges, речь идет о том, чтобы из данных осм сделать маломальски годную мелкомасштабную карту, в частности, обзорную карту России  (а так же карты Мира, Евразии) пригодную для навигации, а не об отыскании Чаши Грааля или Семи Городов Сиболы.


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#34 2011-10-25 11:03:34

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,999

Re: Актуальные задачи, требующие искусства программирования

Что-то мне подсказывает (я про генерализацию читал в нескольких темах форума) что требование к генерализации выставлены как раз "об отыскании Чаши Грааля". Чёткая узкая задача решаема (решена ?), глобальная абстрактная однозначно требует вдумчивого участия картографа.

Например, можно глянуть сюда - http://www.openstreetmap.org/?lat=55.88 … 6&layers=M Тут правильно проведена генерализация?


Бывший редактор ОСМ

Offline

#35 2011-10-25 11:12:22

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: Актуальные задачи, требующие искусства программирования

fserges, речь как бы о генерализации графа дорог. По ссылке его нет - там просто картинка.

Offline

#36 2011-10-25 11:21:03

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,999

Re: Актуальные задачи, требующие искусства программирования

liosha, читаем первоисточник

Zkir wrote:

ЗАДАЧА  5.
Cоздание компактной обзорной карты России. Данные ОСМ хорошо подходят для создания крупномасштабных и, в меньшей степени среднемасшабных карт.

Требуется примерно следующее. Надо выкачивать все дороги секондари и выше, все тауны и выше, ЖД, воду, берег, границы областей и упрощать это всё.

При этом ключевое слово здесь - упрощать. Т.е. нужно сделать генерализацию данных, чтобы получилась карта масштаба, например 1:1 000 000- 1:10 000 000.

ну а картинка это просто графическое представление модели. Мне же не выдрать данные из которых mapnik создаёт картинку.


Бывший редактор ОСМ

Offline

#37 2011-10-25 11:28:49

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: Актуальные задачи, требующие искусства программирования

fserges, кроме первоисточника неплохо бы ещё прочесть и обсуждение, чтобы понимать, в какую сторону разговор ушёл.

И кстати, если я ничего не путаю, эта картинка ни фига не генерализована, а просто нарисована в мелком масштабе.

Offline

#38 2011-10-25 11:35:15

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,999

Re: Актуальные задачи, требующие искусства программирования

Обсуждение может менять направление 100 раз. Именно для для этого в шапке темы всегда пишут актуальное состояние проблемы, постановка задачи так сказать ...

По поводу картинки я и спросил - а что не так с генерализацией на приведённой странице. Чем алгоритм mapnik плох? Понимание этого позволит задачу поставить чётче.


Бывший редактор ОСМ

Offline

#39 2011-10-25 11:57:39

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: Актуальные задачи, требующие искусства программирования

fserges wrote:

По поводу картинки я и спросил - а что не так с генерализацией на приведённой странице. Чем алгоритм mapnik плох?

liosha wrote:

картинка ни фига не генерализована, а просто нарисована в мелком масштабе.

Offline

#40 2011-10-25 11:58:30

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,323
Website

Re: Актуальные задачи, требующие искусства программирования

fserges, mapnik не производит никакой генерализации. Чтобы отрисовать картинку 256х256, из базы достаются те же самые сотни мегабайт информации. Рекомендую посмотреть на конфигурацию сервера, рендерящего тайлы, и сравнить его с конфигурацией любого навигатора.


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#41 2011-10-25 12:44:31

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,999

Re: Актуальные задачи, требующие искусства программирования

Ну раз вы самые умные то и решайте эту задачу wink Наша вашего не понимает sad

P.S. Для генерализации из базы достаются те же самые сотни мегабайт информации ...

Last edited by fserges (2011-10-25 12:53:35)


Бывший редактор ОСМ

Offline

#42 2011-10-25 13:30:16

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Актуальные задачи, требующие искусства программирования

подозреваю, что имеется ввиду следующее
генерализация - процесс сворачивания гигабайтного файла до 10 метров (например) с возможностью навигации и поиска городов/стран по ним, упрощенными линиями и т.д.
а мапник, чтоб отрисовать тайл на 6-12 масштабе выкачает все данные этого квадрата в оперативку и там их начнет мучить. то-есть сам мапник не делает генерализации, он только рисует самое важное на данном зуме, как в правилах написано.

Offline

#43 2011-10-25 13:44:41

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,999

Re: Актуальные задачи, требующие искусства программирования

Вот то что написал Larry0ua гораздо более похоже на постановку задачи для программиста smile

И всё же я готов поспорить - mapnik делает генерализацию smile Только его упор - на визуальное представление тогда как я понимаю задача Zkir - сохранение каких-то свойств дорожного графа. Т.е. генерализация для разных задач разная!


Бывший редактор ОСМ

Offline

#44 2011-10-25 13:57:08

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,950

Re: Актуальные задачи, требующие искусства программирования

fserges wrote:

И всё же я готов поспорить - mapnik делает генерализацию smile

Вот в этом месте я засмеялся smile

Offline

#45 2011-10-25 13:58:06

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: Актуальные задачи, требующие искусства программирования

fserges, мапник её не делает, просто потому что его задача - отрисовка, а не генерализация.

Offline

#46 2011-10-25 14:03:15

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,699
Website

Re: Актуальные задачи, требующие искусства программирования

Есть открыть всю Россию, сделать поиск highway=* и сменить всё на highway=trunk - то мы неожиданно поймём, что собственно генерализацию делает не мапник, а мапперы, которые ставят trunk на очень небольшое количество не очень плотно расставленных дорог.

Offline

#47 2011-10-25 14:18:02

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,999

Re: Актуальные задачи, требующие искусства программирования

Ещё раз повторю цитату.

Процесс генерализации труднее других картографических процессов поддаётся формализации и автоматизации. Не все этаппы могут быть алгоритмизированы, не все критерии удаётся однозначно формализовать. Качество генерализации во многом зависит от понимания картографом содержательной сущности изображаемых объектов и явлений, умения выявить главные типичные их особенности. Опыт показывает, что автоматизация картографической генерализации должна опираться на интерактивные, диалоговые процедуры, обеспечивающее активное участие картографа.

highway=trunk это и есть пресловутая "диалоговая процедура, обеспечивающее активное участие картографа".


Бывший редактор ОСМ

Offline

#48 2011-10-25 15:20:52

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,110

Re: Актуальные задачи, требующие искусства программирования

fserges wrote:

Например, можно глянуть сюда - http://www.openstreetmap.org/?lat=55.88 … 6&layers=M Тут правильно проведена генерализация?

Нет конечно.  Тут плохо ВСЁ. Во-первых я не вижу Волгу - а она ведь самый крупный (длинный) объект в Европейской части России. Где Ока, Москва-река, Клязьма?

Дороги отобраны правильно (trunk/primary), но отображаются слишком бледно, их едва можно разобрать. 

При всем этом карта практически лысая - в Тверской области из городов показана только Тверь, во Владимирской области есть Ковров, но нет самого Владимира и.т.д.

Если это политическая карта, можно раскрасить области в разные цвета, а если физическая - показать лес.

Это что касается визуализации.

ну а картинка это просто графическое представление модели. Мне же не выдрать данные из которых mapnik создаёт картинку.

В том то и проблема, что нет у мапника никакой модели. Он просто пытается отрендерить то, что есть в osm-базе, отфильтровав определенные типы объектов.


liosha wrote:

fserges, мапник её не делает, просто потому что его задача - отрисовка, а не генерализация.

Угу, а поскольку одно без другого невозможно, уже с 8-го уровня начинается полный бред, какой просто стыдно называть картой.

Last edited by Zkir (2011-10-25 15:40:33)


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#49 2011-10-25 15:33:16

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,110

Re: Актуальные задачи, требующие искусства программирования

Теперь что касается данных.

Larry0ua wrote:

подозреваю, что имеется ввиду следующее
генерализация - процесс сворачивания гигабайтного файла до 10 метров (например) с возможностью навигации и поиска городов/стран по ним, упрощенными линиями и т.д.

Да, примерно так. Требуется породить файл разумного размера (10-50 мб) с векторными данными, содержащий геометрию и атрибуты, чтобы эту карту можно было отрендерить и строить маршруты между городами.

Почему геометрия должна быть упрощенной, мне казалось довольно очевидно. Например, береговая линия России (Северный ледовитый и Тихий океаны), содержит многие тысячи, а может уже и миллионы точек. А если нужно показать всю Россию целиком, на экране пусть даже не навигатора, а компьютера, с разрешением 1600x1200, столько просто не нужно.

Last edited by Zkir (2011-10-25 15:33:47)


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#50 2011-10-25 20:33:38

ErshKUS
Member
From: Калиниград
Registered: 2010-12-27
Posts: 803

Re: Актуальные задачи, требующие искусства программирования

задача 5:
-менять все полигоны городов/поселков на точки
-оставить транки, примари со сьздами. Тут сложней, стандарты на классы дорог различны внутри и снаружи городов (как мне кажется), поэтому придется понижать дороги внутри городов.
-составить список обектов кому место на общей карте
-упростить линии, например ST_Simplify (постгис), но тут есть другие грабли, нужно тщательно подбирать коэфициенты и алгоритмы, т.к. упрощая, например границу России, я сократил количество точек до нужного (не помню сколько), но Кгд обл. упростилась до 5 точек (може преставить как она выглядела)
- реки тоже упростить до way

P.S. это так, краткий очерк, вдруг кому будет полезно wink


Ты никогда не спутаешь пути: ты стоишь...
И, может, так и нужно, но как тогда узнать, что там выше крыш?   (Lumen, Лабиринт)

Offline

Board footer

Powered by FluxBB