Страница 2 из 3
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 01 мар 2009, 00:51
jekhor
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-я зона). Это ошибка того, кто привязывал, но в данном случае ни на что не влияющая (в том смысле, что в файле привязки нигде не фигурируют координаты в этой проекции).
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 01 мар 2009, 01:01
jekhor
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 02 мар 2009, 17:50
glebius
Спасибо за помощь! Получилось с отдельным файлом

Правда слишком уж плохого качества картинка вышла после многочисленных графических преобразований

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

Вы какой программой делали? Я так понял у вас Linux.
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 02 мар 2009, 18:08
jekhor
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.
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 02 мар 2009, 18:17
jekhor
Кусочек скриншота с qGIS в месте стыка 4-х листов километровки с наложенными GPS-треками в проекции WGS84:
http://jekhor.info/files/maps/4maps.gif
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 02 мар 2009, 18:25
glebius
Для качества картинки можно использовать кубическую интерполяцию.
В mapserver? Как? Мне кажется основная потеря качества не при создании tiff, а уже в работе mapserver.
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 02 мар 2009, 18:37
jekhor
glebius писал(а): Для качества картинки можно использовать кубическую интерполяцию.
В mapserver? Как? Мне кажется основная потеря качества не при создании tiff, а уже в работе mapserver.
В GDAL при конвертации, чтобы "лесенки" не было.
Если запросить данные в той же проекции, в которой они хранятся, потерь качества не будет.
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 02 мар 2009, 18:48
glebius
А у вас же в tiff хранится в epsg:3335 (у меня в 3331), или я опять чего-то не понимаю? И если в josm в URL указать такую проекцию, то он ругается. Поэтому приходится в mapserver прописывать ещё и epsg:4326, и в josm запрашивать именно в ней, что вынуждает mapserver совершать преобразование.
Для gdal 1.6.0 придётся порт под FreeBSD делать

Уже делаю.

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 02 мар 2009, 19:07
jekhor
glebius писал(а):А у вас же в tiff хранится в epsg:3335 (у меня в 3331), или я опять чего-то не понимаю? И если в josm в URL указать такую проекцию, то он ругается. Поэтому приходится в mapserver прописывать ещё и epsg:4326, и в josm запрашивать именно в ней, что вынуждает mapserver совершать преобразование.
Для gdal 1.6.0 придётся порт под FreeBSD делать

Уже делаю.

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

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 02 мар 2009, 22:42
glebius
А ещё вопрос, для такой красивой картинки
http://jekhor.info/files/maps/4maps.gif требуется обрезание полей на сканах генштаба или софт (qgis, mapserver) догадывается, что точки привязки отдельных tiffов являются угловыми и ничего за пределами четырёхугольника отображать не нужно?
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 03 мар 2009, 00:21
jekhor
glebius писал(а):А ещё вопрос, для такой красивой картинки
http://jekhor.info/files/maps/4maps.gif требуется обрезание полей на сканах генштаба или софт (qgis, mapserver) догадывается, что точки привязки отдельных tiffов являются угловыми и ничего за пределами четырёхугольника отображать не нужно?
Если таки не поленитесь почитать скрипт, то найдёте там вычисление границ карты и передачу их gdal_translate для обрезки:) Увы, я так и не нашёл, возможно ли задание границ прямо в GeoTIFF без обрезки _чётырёхугольником_, а не прямоугольником в проекции карты, со сторонами, параллельными осям координат. Я тупо обрезал исходный растр по прямоугольнику, но боюсь, что для северных широт такое не прокатит. А при повороте неиспользуемые области просто заливаются одним конкретным цветом (у меня --- зелёный), который потом указывается в качестве прозрачного.
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 03 мар 2009, 14:10
glebius
Попробовал с вашими скриптами, пока только отдельный лист. Получилось лучше.

В непосредственном map запросе к mapserver, изображение вообще идеальное, не смотря на наклон. В qgis хорошо, только если проекцию родную поставить. В josm придётся довольствоваться искажённой картинкой. Тем не менее, получилось лучше чем было раньше. Спасибо!
Так как у меня большая часть данных в jpeg, то для них ваш модифицированный rgb2pct не требуется, также как и ключ "-expand rgb" к gdal_translate. И ещё оказалось что gdalwarp с ключом -multi на FreeBSD не работает.
С вашей помощью задача отдачи топокарт по wms решена. Теперь здорово бы google maps по wms реализовать.

Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 03 мар 2009, 15:44
jekhor
Кстати, стоит поиграться с количеством цветов в палитре. Мне показалось, что с 64 цветами оно бегает заметно быстрее, но специально не проверял.
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 03 мар 2009, 18:10
glebius
У меня ещё вопрос: а где цвет заполнения (в вашем случае зелёный) устанавливается как прозрачный? Это в shp описывается или в каждом wms клиенте (qgis, josm) отдельно?
Re: MapServer + GeoTIFF, проблемы с охватом и переходом между СК
Добавлено: 03 мар 2009, 18:59
jekhor