Як побудувати мінімальний опуклий корпус, що перетинає лінію 180 градусів?


13

Я будував опуклі корпуси для видів, які мешкають в Індо-Тихому океані (~ від 20 до -65 градусів довготи). Проблема, з якою я стикався, полягає в тому, що для видів, які можна зустріти по обидва боки лінії довжини 180 градусів, реконструйований корпус розширюється по всьому шару, а не включає точки в набагато меншому багатокутнику, що складається з обох кінців шару. Причиною такої поведінки є те, що ця лінія являє собою край шару, а QGIS не обертає векторні карти (див. Зображення нижче ... моя "репутація" зараз "досить хороша, щоб включити її, дякую).

введіть тут опис зображення

Після деяких роздумів і гуглень це деякі можливі підходи до проблеми, з якою я стикався; однак я не надто впевнений у їхніх заслугах чи реалізації:

  1. Змініть центральний меридіан на 0 (тобто Грінвіч), скажімо, на 150 градусів. Як це можна зробити? Чи це просто змінить відображення карти (корисне саме по собі), чи це також сприятиме побудові правильного опуклого корпусу?

  2. Змініть систему координат з формату +/- 180 градусів на формат від 0 до 360 градусів. Мабуть, щось можна досягти за допомогою функції "ST_Shift_Longitude" в PostGIS, яка додає 360 градусів до негативних довжин. Чи є простіший спосіб зробити це? Крім того, ця функція створює центральну карту на 180 градусів, що не було б кінцем світу, але центральна карта на 150 градусів була б кращою (~ центр Індо-Тихоокеанського регіону).

    Дякуємо за ваш час і допомогу, і вибачте за тривалий пост.


1
Опуклі корпуси мають сенс лише при використанні проектованої системи координат

2
Хоча ти загалом прав, @Dan, є багато випадків, коли опуклий корпус має сенс - і це, мабуть, один із них. Ми можемо визначити опуклий корпус будь-якого набору точок на кулі, побудувавши їх конус (який є об’єднанням променів, що виникають у центрі Землі та проходять через точки) та перетинаючи опуклий корпус цих променів (розглядається як підмножина простір) зі сферою.
whuber

Пов'язане запитання на gis.stackexchange.com/questions/17788 просить обчислити обмежувальні поля точок, які можуть перетинати меридіан + -180 градусів. Однак у цьому випадку або рішення в проектованих координатах (як запропонував @Dan Patterson), або 3D-рішення виглядають як найкращі ставки. Однак будьте обережні: у більшості ГІС все ще виникають проблеми з вирішенням даних, що охоплюють цей меридіан. Проведіть тести з простими наборами даних, перш ніж прийняти будь-яке рішення.
whuber

Відповіді:


4

Ви можете використовувати GRASS GIS (у QGIS доступний через панель інструментів GRASS або, краще, плагін Sextante), який може обробляти глобальну обробку даних у рядку дати.

Ось приклад зі випадковими точками в цій зоні з опуклим багатокутником корпусу, згенерованим v.hull :

введіть тут опис зображення


0

Якщо ви хочете перемістити центральний меридіан карти світу з Грінвіча на щось інше, ви отримаєте ті самі помилки, з якими ви стикалися, але з фоном карти, якщо він побудований векторними багатокутниками.

Дивіться це питання і відповіді для вирішення цього питання:

Повторне відкидання набору даних Natural Earth до World Eckert I

Хоча це написано для проекції Еккерта, воно повинно працювати для всіх поглядів у всьому світі, зосереджених на меридіанах, відмінних від Грінвіч.

Використання растрового фону, такого як Blue Marble, дозволить уникнути цієї проблеми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.