Страница 1 из 2
Mercator и радиусы расстояний
Добавлено: 29 ноя 2017, 18:43
Xmypblu
Добрый день,
сегодня увидел инфографику и попытался сделать подобное в QGIS... неудачно - видимо опять запутался в проекциях.
как я понимаю:
- в инфографике используется проекция типа EPSG:3857
- радиусы отрисовываются в виде слоя полигонов
- создаются видимо в виде буфера от стартовой точки
как создать подобную картинку в QGIS ?
Re: Mercator и радиусы расстояний
Добавлено: 29 ноя 2017, 18:59
Игорь Белов
Навскидку два способа создания кривых равных дальностей.
- Утилитой PROJ.4 geod генерируем точки, равноудалённые от стартовой площадки на поверхности земного эллипсоида; при желании соединяем в полилинии.
- Конструируем косую азимутальную равнопромежуточную проекцию с центром на стартовой площадке; в этой проекции помещаем точку пусковой установки в центр; строим буферы.
Re: Mercator и радиусы расстояний
Добавлено: 29 ноя 2017, 19:12
Xmypblu
хм... а можно поподробней про второй вариант?
Игорь Белов писал(а): ↑29 ноя 2017, 18:59
Создаём косую азимутальную равнопромежуточную проекцию с центром на стартовой площадке; в этой проекции создаём точку пусковой установки в центре; строим буферы.
предположим, я знаю координаты стартовой точки, и как я понимаю - нужно выбрать/создать пользовательскую проекцию, изменив какую-то "косую азимутальную равнопромежуточную проекцию" из списка?
Можно привести пример (номер EPSG) такой проекции и как (где и на что) менять в ней?
Re: Mercator и радиусы расстояний
Добавлено: 29 ноя 2017, 20:34
Игорь Белов
Xmypblu писал(а): ↑29 ноя 2017, 19:12
Можно привести пример (номер EPSG) такой проекции и как (где и на что) менять в ней?
Вот пример:
Код: Выделить всё
+proj=aeqd +lat_0=39.01944 +lon_0=125.75336 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
Можно менять широту и долготу центра проекции.
Кстати, инфографика в проекции Миллера, может, Голла, но не Меркатора.
Re: Mercator и радиусы расстояний
Добавлено: 29 ноя 2017, 22:37
Xmypblu
Пока что-то не получается...
Что делал - я добавил 2 системы координат, через меню "Установки" > "Ввод системы координат..."
первую под условным именем "test_korea":
Код: Выделить всё
+proj=aeqd +lat_0=39.01944 +lon_0=125.75336 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
вторую под именем "new_epsg53003":
Код: Выделить всё
+proj=mill +lat_0=0 +lon_0=100 +x_0=0 +y_0=0 +R_A +a=6371000 +b=6371000 +units=m +no_defs
которую изменил по примеру обсуждения
"Смещение видимой проекции"
Слою TMS (OpenStreetMap) установил проекцию "new_epsg53003", остальным слоям - "test_korea".
Буфер создавал при помощи меню: "Вектор" > "Геообработка" > "Буфер фиксированной ширины"
Если радиус в 4500 км - получается (и похож на исходную картинку), то все остальные - нет.
Re: Mercator и радиусы расстояний
Добавлено: 30 ноя 2017, 08:33
Игорь Белов
Xmypblu писал(а): ↑29 ноя 2017, 22:37
Если радиус в 4500 км - получается (и похож на исходную картинку), то все остальные - нет.
Это другая задача, а именно: как отобразить объекты, пересекающие меридиан, отстоящий от осевого на 180 градусов.
Здесь в «плохую» сторону каждого полигона вставлено по два узла близ полюса:

- img_20171130_094829.png (17.42 КБ) 12216 просмотров
Здесь полигоны превращены в линии, которые поправлены хирургически:
Re: Mercator и радиусы расстояний
Добавлено: 30 ноя 2017, 21:11
Xmypblu
Игорь Белов писал(а): ↑30 ноя 2017, 08:33
Здесь в «плохую» сторону каждого полигона вставлено по два узла близ полюса
научите - как?
впервые столкнулся с такой задачей
из того, что нашел поиском на форуме, похожее обсуждалось в этой теме:
qgis: артефакты при перепроецировании
но непонятно, это как-то возможно сделать в самом QGIS ?
Re: Mercator и радиусы расстояний
Добавлено: 30 ноя 2017, 22:08
Игорь Белов
В родной проекции буфер — круг. Сохраняем копию буферного слоя в проекцию будущей карты.
Открываем копию слоя в новом проекте и видим синусоиду, замкнутую через всю карту горизонтальным сегментом. Включаем редактирование. Берём инструмент редактирования узлов. Двойным щелчком на замыкающем сегменте добавляем новый узел.

- Screenshot_2017-11-30_21-42-48.png (12.7 КБ) 12175 просмотров
Тычем в новый узел, чтобы он стал синим, и тащим вверх от края, в сторону северного полюса.

- Screenshot_2017-11-30_21-43-07.png (11.82 КБ) 12175 просмотров
Аналогично добавляем второй узел к северу от другого края.

- Screenshot_2017-11-30_21-43-43.png (11.54 КБ) 12175 просмотров
Сохраняем изменения.
Re: Mercator и радиусы расстояний
Добавлено: 30 ноя 2017, 22:41
Xmypblu
спасибо за пошаговое руководство,
теперь буду искать причину, почему у меня не получается синусоида...
изначально получаю круг ("test_korea"), сохраняю в проекции "new_epsg53003"
при открытии в новом проекте - та жа "шляпа", что и на моем скриншоте выше
включение опции перепроецирование "на лету" проекта, может как-то влиять?
Re: Mercator и радиусы расстояний
Добавлено: 30 ноя 2017, 23:27
Игорь Белов
Начните с чистого листа, без лишних слоёв.
Re: Mercator и радиусы расстояний
Добавлено: 02 дек 2017, 00:22
Xmypblu
Застрял на шаге, где у меня все идет "не по плану"
после создания буферного слоя получаю круги с заданным радиусом, но при сохранении копии слоев (по ПКМ - "Сохранить как...") в шейп, и указав проекцию "new_epsg53003" при наличии отмеченного чекбокса "Добавить слой в проект" - вместо ожидаемых кругов, получаю разного рода фигуры.
Есть подозрения, что-то с настройками QGIS... если не вообще с установкой или переменными окружения.
Правда как проверить или как переустановить (сделал даунгрейд QGIS) с удалением всех настроек и "хвостов" в Ubuntu - я так и не разобрался.
Re: Mercator и радиусы расстояний
Добавлено: 02 дек 2017, 20:37
Игорь Белов
Всё же создайте новый проект. В пустой проект добавьте слой, что в проекции "new_epsg53003". Что видите?
Re: Mercator и радиусы расстояний
Добавлено: 02 дек 2017, 22:52
Xmypblu
Игорь Белов писал(а): ↑02 дек 2017, 20:37
Всё же создайте новый проект. В пустой проект добавьте слой, что в проекции "new_epsg53003". Что видите?
так и делаю, более того - попробовал разные версии QGIS под разными ОС, по одному файлу и "оптом"
вот например скриншот macOS с QGIS 2.8
у меня варианты закончились, возможно какой-то модуль/плагин/тонкая настройка QGIS решает эту задачу?
...или я, что-то не так делаю при сохранении буферов - выкладываю архив.
Re: Mercator и радиусы расстояний
Добавлено: 02 дек 2017, 23:30
Игорь Белов
Давайте так. Создайте файл start.csv в каком-нибудь экселе:
x,y,dist
0,0,13000000
0,0,10000000
0,0,8000000
0,0,4500000
Создайте новый проект, НЕ ДОБАВЛЯЙТЕ НИКАКИХ TMS! Измените систему координат проекта на азимутальную.
Добавьте CSV в проект, поля x и y определяют координаты, проекция азимутальная.
Создайте буферные зоны с радиусами из поля dist. На экране должны быть окружности.
Уже можно менять систему координат проекта на Миллера, чтобы увидеть синусоиды. Но лучше заменить буферный слой на копию в проекции Миллера, поскольку файлы PRJ/QPJ исходного буферного слоя инвалидны.
Re: Mercator и радиусы расстояний
Добавлено: 03 дек 2017, 00:28
Xmypblu
кроме того, что все буферы создаются в одном слое/shp - различий не замечено...
могу конечно прикрепить скриншоты импорта CSV и создания буферных зон через меню:
"Вектор" > "Геообработка" > "Буферные зоны..." (в qgis 2.14)
если надо... но там сложно ошибиться. Хотя и пришлось поискать, где и как используется столбец "dist".
P.S. выкладываю шейп
...а вообще, забыл самый главный вопрос - с моими шейпами получается увидеть синусоиды?