qgis: артефакты при перепроецировании

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

qgis: артефакты при перепроецировании

Сообщение bolotoved » 19 сен 2013, 07:21

При перепроецировании слоев глобального охвата, во многих случаях возникают артефакты (см. приложение). Кто-нибудь знает, как это можно побороть?
В приложении слой береговой линии из NaturalEarth (ГСК) перепроецирован в World_Van_der_Grinten_I (EPSG:54029)
Вложения
reproj_artefactsd.png
reproj_artefactsd.png (71.74 КБ) 9535 просмотров
Последний раз редактировалось bolotoved 19 сен 2013, 14:23, всего редактировалось 1 раз.

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: qgis: артефакты при перепроецировании

Сообщение Игорь Белов » 19 сен 2013, 07:36

Предварительно разрежьте объекты по меридиану, на 180° отстоящему от осевого. По-хорошему, надо бы после этого куски, вылезающие за 180° от осевого меридиана, перенести на 360°.
Это решает проблему частично, поскольку один из краёв разреза будет восприниматься как чужой (скажем, точки на долготе +180° программа будет переносить на долготу -180°). Для окончательного решения придётся чуть-чуть сместить этот край внутрь.
Кроме того, полезно на края разреза добавить дополнительные точки, чтобы сохранить линию меридиана.
The purpose of computing is insight, not numbers

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: qgis: артефакты при перепроецировании

Сообщение bolotoved » 19 сен 2013, 10:10

А можно ли описанный процесс хоть частично автоматизировать, например, с помощью OGR? Можно ли с пом. OGR разрезать слой по заданному меридиану? Гуглом нашел, что вроде как нужно использовать функцию -wrapdateline, но с пом. нее я результата добиться не смог. Артефактные линии лишь изменяют свое положение:

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

ogr2ogr -wrapdateline -t_srs EPSG:4326 110m_coastline_wrap.shp 110m_coastline.shp

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: qgis: артефакты при перепроецировании

Сообщение bolotoved » 19 сен 2013, 10:18

На всякий случай приложу файл для экспериментов. Есть подозрение, что там данные выходят за диапазон -180, 180.
Вложения
110m_physical.zip
(76.15 КБ) 323 скачивания

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: qgis: артефакты при перепроецировании

Сообщение Игорь Белов » 19 сен 2013, 13:58

Если резать ogr2ogr, то не так. Однако в данном случае всё уже порезано, как надо. Пришлось лишь один отрезочек подправить, чтобы не залезал за 180.
QGIS-1.8.0, проекция

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

+proj=vandg +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
Всё отображается зер гут.
Возможны проблемы при смене датума. Тогда пересчитанные долготы могут вылезать за границу 180 градусов.
Вложения
vandg.png
Ван дер Гринтен
vandg.png (2.93 КБ) 9466 просмотров
The purpose of computing is insight, not numbers

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: qgis: артефакты при перепроецировании

Сообщение bolotoved » 19 сен 2013, 14:07

ErnieBoyd писал(а):Пришлось лишь один отрезочек подправить, чтобы не залезал за 180.
Можно поподробнее? Как вы этот отрезок нашли и что именно с ним сделали?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: qgis: артефакты при перепроецировании

Сообщение Александр Мурый » 19 сен 2013, 14:11

Подтверждаю то, что написал ErnieBoyd. Я немного подтянул на запад несколько вершин в самой восточной части (около 180 град.) — стало перепроецироваться "на лету" без артефактов.
Редактор материалов, модератор форума

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: qgis: артефакты при перепроецировании

Сообщение Игорь Белов » 19 сен 2013, 14:18

bolotoved писал(а):Можно поподробнее? Как вы этот отрезок нашли и что именно с ним сделали?
Сохранил слой как файл MapInfo с расширением ".mif". В текстовом редакторе искал строку "180", нашёл "180.00000044181", исправил на "179.99998". Были ещё долготы 180 ровно, но я их не трогал.
The purpose of computing is insight, not numbers

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: qgis: артефакты при перепроецировании

Сообщение bolotoved » 19 сен 2013, 14:22

Спасибо, все понял. Значит проблема была в том, что данные выходили за 180 меридиан.

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: qgis: артефакты при перепроецировании

Сообщение Игорь Белов » 19 сен 2013, 14:37

bolotoved писал(а):Значит проблема была в том, что данные выходили за 180 меридиан.
Это "во-вторых". Во-первых, проблема в том, что QGIS сворачивает узлы объектов, вылезающие за 180 градусов от осевого меридиана.
Странная идеология. Могли бы оставить картографу право решать, где и как резать свою карту. Заодно таких конфузов не возникало бы.
The purpose of computing is insight, not numbers

Странник
Интересующийся
Сообщения: 27
Зарегистрирован: 19 авг 2013, 18:01
Репутация: 0

Re: qgis: артефакты при перепроецировании

Сообщение Странник » 24 сен 2013, 16:25

Странно всё это. У меня такие же проблемы, всегда, бесят. Нет ли чего-то типа фильтра для отображения, чтобы округлять с отбрасыванием дробной части до +-180 градусов?

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: qgis: артефакты при перепроецировании

Сообщение bolotoved » 24 сен 2013, 17:37

Странник писал(а):Нет ли чего-то типа фильтра для отображения, чтобы округлять с отбрасыванием дробной части до +-180 градусов?
Помогает точная обрезка с пом. ogr2ogr:

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

ogr2ogr -clipsrc -180.0 -90.0 180.0 90.0 output.shp input.shp

Ответить

Вернуться в «QGIS»

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

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