MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 01 мар 2009, 00:51

glebius писал(а):Среди всех .map что у меня есть, встречаются вот такие пятые строчки:

Pulkovo 1942 (1),, 0.0000, 0.0000,WGS 84
Pulkovo 1942 (1),WGS 84, 0.0000, 0.0000,WGS 84
Pulkovo 1942 (1),WGS 84, 0.0000, 0.0000,WGS 84
Pulkovo 1942 (2),, 0.0000, 0.0000,WGS 84
Pulkovo 1942 (2),WGS 84, 0.0000, 0.0000,WGS 84

Вообще я не понимаю, вроде как согласно http://gis-lab.info/qa/proj-sk-faq.html ГСК Pulkovo 1942 и WGS 84 взаимоисключающи, что же означают записи выше?
Совсем упустил из виду. Это у меня 5-я зона, у вас 6-я и 7-я. Проекции будут следующими:
А как выяснить у какого листа карт ГШ какая проекция?
Номер зоны = номер квадрата минус 30. Т.е. N36 --- 6-я зона.
Все карты Генштаба идут в проекции ГК с использованием эллипсоида Красовского.

epsg:4179 --- это _географическая_ СК (широта-долгота), в которой на карте указаны координаты углов и центра (они же фигурируют в файле привязки). По крайней мере, это значение подошло. Про +towgs84 я уже говорил. Pulkovo 1942 (1) и (2) в Ozi отличаются, по-видимому, как раз этими параметрами. Похоже, что различие достаточно мало, чтобы им пренебречь, я не разбирался глубоко. Если при привязке посчитаете, что эти координаты --- в WGS84, то будет расхождение метров в 150 на карте с реальностью.

Да, у меня во многих файлах привязки была неправильно указана _конечная_ проекция. Например, для карт 6-й зоны был указан меридиан в 27 градусов как центральный (5-я зона). Это ошибка того, кто привязывал, но в данном случае ни на что не влияющая (в том смысле, что в файле привязки нигде не фигурируют координаты в этой проекции).
Последний раз редактировалось jekhor 01 мар 2009, 01:10, всего редактировалось 1 раз.

jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 01 мар 2009, 01:01

Вот, нашёл описание номенклатуры топокарт: http://www.skitalets.ru/maps/nomen/nom_kart.htm

glebius
Новоприбывший
Сообщения: 13
Зарегистрирован: 27 фев 2009, 13:30
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение glebius » 02 мар 2009, 17:50

Спасибо за помощь! Получилось с отдельным файлом :) Правда слишком уж плохого качества картинка вышла после многочисленных графических преобразований :( ozi2geotiff почему-то создаёт наклонную картинку в tif, градусов на 20. Но качество приемлимое. А вот mapserver выдаёт уже худшую картинку, если через map-запрос скачать. А по wms он её ещё и наклоняет обратно, и при этом совсем плохо получается если в josm открыть. С таким не сталкивались?

Тем временем запустил процесс конвертации остальных картинок и буду делать shape как закончит. :) Вы какой программой делали? Я так понял у вас Linux.

jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 02 мар 2009, 18:08

glebius писал(а):Спасибо за помощь! Получилось с отдельным файлом :) Правда слишком уж плохого качества картинка вышла после многочисленных графических преобразований :( ozi2geotiff почему-то создаёт наклонную картинку в tif, градусов на 20. Но качество приемлимое. А вот mapserver выдаёт уже худшую картинку, если через map-запрос скачать. А по wms он её ещё и наклоняет обратно, и при этом совсем плохо получается если в josm открыть. С таким не сталкивались?

Тем временем запустил процесс конвертации остальных картинок и буду делать shape как закончит. :) Вы какой программой делали? Я так понял у вас Linux.
Про наклон и поворот должно быть понятно после осознания проекций. josm использует WGS84, потому и растягивает. Поворот --- потому что карты выровнены обычно так, чтобы параллели были горизонтальны, соответственно, карта в проекции получается повёрнутой, если не около центрального меридиана.

Для качества картинки можно использовать кубическую интерполяцию.

Мои скрипты для конвертации можно посмотреть тут:
http://jekhor.info/files/maps/ozi2geotiff.rb
http://jekhor.info/files/maps/rgb2pct.py

Положить рядом и запускать примерно так:

Код: Выделить всё

for file in *n35*.gif; do echo $file; name=${file%%.gif}; ~/work/src/ruby/ozi2geotiff/ozi2geotiff.rb -t '+init=epsg:3335' -m $name.map -i $file -o GeoTIFF/$name.tiff; done
При этом должен быть установлен GDAL версии 1.6.0.

Краткое описание алгоритма:
[14:03]<jek> вычисление границ карты, перевод координат привязки из географической Pulkovo 1942 в проекцию Pulkovo 1942/Gauss-Kruger, скармливание всего этого gdal_translate, потом трансформация растра (поворот), потом перегонка обратно в индексированные цвета, копируя палитру из исходного .gif, и, наконец, окончательное сжатие файла с нужными параметрами.
Shape делается с помощью gdaltindex.

jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 02 мар 2009, 18:17

Кусочек скриншота с qGIS в месте стыка 4-х листов километровки с наложенными GPS-треками в проекции WGS84: http://jekhor.info/files/maps/4maps.gif

glebius
Новоприбывший
Сообщения: 13
Зарегистрирован: 27 фев 2009, 13:30
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение glebius » 02 мар 2009, 18:25

Для качества картинки можно использовать кубическую интерполяцию.
В mapserver? Как? Мне кажется основная потеря качества не при создании tiff, а уже в работе mapserver.

jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 02 мар 2009, 18:37

glebius писал(а):
Для качества картинки можно использовать кубическую интерполяцию.
В mapserver? Как? Мне кажется основная потеря качества не при создании tiff, а уже в работе mapserver.
В GDAL при конвертации, чтобы "лесенки" не было.
Если запросить данные в той же проекции, в которой они хранятся, потерь качества не будет.

glebius
Новоприбывший
Сообщения: 13
Зарегистрирован: 27 фев 2009, 13:30
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение glebius » 02 мар 2009, 18:48

А у вас же в tiff хранится в epsg:3335 (у меня в 3331), или я опять чего-то не понимаю? И если в josm в URL указать такую проекцию, то он ругается. Поэтому приходится в mapserver прописывать ещё и epsg:4326, и в josm запрашивать именно в ней, что вынуждает mapserver совершать преобразование.

Для gdal 1.6.0 придётся порт под FreeBSD делать :) Уже делаю. :)

jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 02 мар 2009, 19:07

glebius писал(а):А у вас же в tiff хранится в epsg:3335 (у меня в 3331), или я опять чего-то не понимаю? И если в josm в URL указать такую проекцию, то он ругается. Поэтому приходится в mapserver прописывать ещё и epsg:4326, и в josm запрашивать именно в ней, что вынуждает mapserver совершать преобразование.

Для gdal 1.6.0 придётся порт под FreeBSD делать :) Уже делаю. :)
Да, в josm приходится довольствоваться искажённой картинкой. Впрочем, мне это не мешает, поэтому я дальше не мучался :)

glebius
Новоприбывший
Сообщения: 13
Зарегистрирован: 27 фев 2009, 13:30
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение glebius » 02 мар 2009, 22:42

А ещё вопрос, для такой красивой картинки http://jekhor.info/files/maps/4maps.gif требуется обрезание полей на сканах генштаба или софт (qgis, mapserver) догадывается, что точки привязки отдельных tiffов являются угловыми и ничего за пределами четырёхугольника отображать не нужно?

jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 03 мар 2009, 00:21

glebius писал(а):А ещё вопрос, для такой красивой картинки http://jekhor.info/files/maps/4maps.gif требуется обрезание полей на сканах генштаба или софт (qgis, mapserver) догадывается, что точки привязки отдельных tiffов являются угловыми и ничего за пределами четырёхугольника отображать не нужно?
Если таки не поленитесь почитать скрипт, то найдёте там вычисление границ карты и передачу их gdal_translate для обрезки:) Увы, я так и не нашёл, возможно ли задание границ прямо в GeoTIFF без обрезки _чётырёхугольником_, а не прямоугольником в проекции карты, со сторонами, параллельными осям координат. Я тупо обрезал исходный растр по прямоугольнику, но боюсь, что для северных широт такое не прокатит. А при повороте неиспользуемые области просто заливаются одним конкретным цветом (у меня --- зелёный), который потом указывается в качестве прозрачного.

glebius
Новоприбывший
Сообщения: 13
Зарегистрирован: 27 фев 2009, 13:30
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение glebius » 03 мар 2009, 14:10

Попробовал с вашими скриптами, пока только отдельный лист. Получилось лучше. :) В непосредственном map запросе к mapserver, изображение вообще идеальное, не смотря на наклон. В qgis хорошо, только если проекцию родную поставить. В josm придётся довольствоваться искажённой картинкой. Тем не менее, получилось лучше чем было раньше. Спасибо!

Так как у меня большая часть данных в jpeg, то для них ваш модифицированный rgb2pct не требуется, также как и ключ "-expand rgb" к gdal_translate. И ещё оказалось что gdalwarp с ключом -multi на FreeBSD не работает.

С вашей помощью задача отдачи топокарт по wms решена. Теперь здорово бы google maps по wms реализовать. :)

jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 03 мар 2009, 15:44

Кстати, стоит поиграться с количеством цветов в палитре. Мне показалось, что с 64 цветами оно бегает заметно быстрее, но специально не проверял.

glebius
Новоприбывший
Сообщения: 13
Зарегистрирован: 27 фев 2009, 13:30
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение glebius » 03 мар 2009, 18:10

У меня ещё вопрос: а где цвет заполнения (в вашем случае зелёный) устанавливается как прозрачный? Это в shp описывается или в каждом wms клиенте (qgis, josm) отдельно?

jekhor
Интересующийся
Сообщения: 43
Зарегистрирован: 25 фев 2009, 19:57
Репутация: 0

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК

Сообщение jekhor » 03 мар 2009, 18:59

Код: Выделить всё

                OFFSITE 0 255 0
                OPACITY ALPHA
В MAP-файле.

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 32 гостя