You are not logged in.
- Topics: Active | Unanswered
Announcement
#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: Актуальные задачи, требующие искусства программирования
А вот ещё интересная задачка.
Да, это задачка скорее для математиков, чем для программистов. Известно, что аудиокодеки, например 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: Актуальные задачи, требующие искусства программирования
без боязни того, что на склейках вылезут чёрные края от артефактов сжатия 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? Это ещё страшнее
Суть вопроса как раз не в том, чтобы раздавать конечную мозаику в 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: Актуальные задачи, требующие искусства программирования
при хранении/выкладке в интернеты один геотифф занимал не 50-200 мегабайт, а 4-10, как исходная фотография.
Тогда все равно придется декларировать новый (приватный) кодек
для геотиффа и читать его никто не сможет.
Впрочем убогие программы и deflate то не понимают
Выкладывайте тогда
уж jpeg2000, хотя я в душе тоже скорее сторонник обновленного геотиффа
кому надо, попросят у 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: Актуальные задачи, требующие искусства программирования
Тогда все равно придется декларировать новый (приватный) кодек
для геотиффа и читать его никто не сможет.
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: Актуальные задачи, требующие искусства программирования
ЗАДАЧА 5.
Cоздание компактной обзорной карты России. Данные ОСМ хорошо подходят для создания крупномасштабных и, в меньшей степени среднемасшабных карт.Требуется примерно следующее. Надо выкачивать все дороги секондари и выше, все тауны и выше, ЖД, воду, берег, границы областей и упрощать это всё.
Плюс ко всему, результаты этой трансформации должны регулярно (например ежедневно) выгоняться (и выкладываться в интернет) либо обратно в OSM-файл (чтобы заинтересованные стороны могли его обрабатывать стандартными средствами), либо в mp.
Технология: Любая, но на выходе должне быть OSM или mp.
Открываю книгу (простенькую, но всё же ...) - Берлянт А.М. Картография, М.:2001, стр. 129.
Глава 7. Картографическая генерализация
7.1. Сущность генерализации...
Процесс генерализации труднее других картографических процессов поддаётся формализации и автоматизации. Не все этаппы могут быть алгоритмизированы, не все критерии удаётся однозначно формализовать. Качество генерализации во многом зависит от понимания картографом содержательной сущности изображаемых объектов и явлений, умения выявить главные типичные их особенности. Опыт показывает, что автоматизация картографической генерализации должна опираться на интерактивные, диалоговые процедуры, обеспечивающее активное участие картографа.
Господа программисты, вперёд
Бывший редактор ОСМ
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, читаем первоисточник
ЗАДАЧА 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: Актуальные задачи, требующие искусства программирования
По поводу картинки я и спросил - а что не так с генерализацией на приведённой странице. Чем алгоритм mapnik плох?
картинка ни фига не генерализована, а просто нарисована в мелком масштабе.
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: Актуальные задачи, требующие искусства программирования
Ну раз вы самые умные то и решайте эту задачу Наша вашего не понимает
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 гораздо более похоже на постановку задачи для программиста
И всё же я готов поспорить - mapnik делает генерализацию Только его упор - на визуальное представление тогда как я понимаю задача Zkir - сохранение каких-то свойств дорожного графа. Т.е. генерализация для разных задач разная!
Бывший редактор ОСМ
Offline
#44 2011-10-25 13:57:08
- Hind
- Member
- From: Moscow
- Registered: 2009-05-25
- Posts: 3,950
Re: Актуальные задачи, требующие искусства программирования
И всё же я готов поспорить - mapnik делает генерализацию
Вот в этом месте я засмеялся
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: Актуальные задачи, требующие искусства программирования
Например, можно глянуть сюда - http://www.openstreetmap.org/?lat=55.88 … 6&layers=M Тут правильно проведена генерализация?
Нет конечно. Тут плохо ВСЁ. Во-первых я не вижу Волгу - а она ведь самый крупный (длинный) объект в Европейской части России. Где Ока, Москва-река, Клязьма?
Дороги отобраны правильно (trunk/primary), но отображаются слишком бледно, их едва можно разобрать.
При всем этом карта практически лысая - в Тверской области из городов показана только Тверь, во Владимирской области есть Ковров, но нет самого Владимира и.т.д.
Если это политическая карта, можно раскрасить области в разные цвета, а если физическая - показать лес.
Это что касается визуализации.
ну а картинка это просто графическое представление модели. Мне же не выдрать данные из которых mapnik создаёт картинку.
В том то и проблема, что нет у мапника никакой модели. Он просто пытается отрендерить то, что есть в osm-базе, отфильтровав определенные типы объектов.
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: Актуальные задачи, требующие искусства программирования
Теперь что касается данных.
подозреваю, что имеется ввиду следующее
генерализация - процесс сворачивания гигабайтного файла до 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. это так, краткий очерк, вдруг кому будет полезно
Ты никогда не спутаешь пути: ты стоишь...
И, может, так и нужно, но как тогда узнать, что там выше крыш? (Lumen, Лабиринт)
Offline