Куди пішли багатокутники після проектування карти в QGIS?


12

Я досить новий в GIS ноу-хау, але зіткнувся з проблемою з проекцією карти світу. У мене є формафайл усіх країн, які я завантажив із "Природної Землі". Після проектування його на ортографічний, як було запропоновано в цьому іншому питанні , я змінив lat / long так, щоб Атлантика була дещо в центрі.

Однак, змінивши її, США, Мексика та Канада зникають з карти, як ви бачите тут: введіть тут опис зображення

Коли я повторно відкидаю карту довше США, багатокутники знову з’являються. Будь-які пропозиції?


2
Зауважте, що Росія, Казахстан, Іран та декілька менших країн Близького Сходу також не з'являються, як і жодна частина Антарктиди. Очевидно, що програмне забезпечення неправильно відсікає багатокутники, які приховані лише частково.
whuber

Яка версія Qgis? Чи можете ви також надати пряме посилання на шар, який ви завантажили з Natural Earth? Тоді ми можемо спробувати відтворити вашу проблему. Дякую!
Стефан Генріод

Це дуже дивне перетворення. Надайте посилання, щоб ми могли завантажити та перевірити його.
Гер

Гаразд я заглянув у нього та видалив попередній коментар, оскільки вони явно є. як видається, що в CRS WGS 84 його прогнозують як на земній кулі, отже, половину світу не видно, в CRS WGS84 Pseudo Mercator Це відображається правильно. як і будь-яка інша КРС, показуючи всі земельні масиви.
Гер

Відповіді:


12

Проста причина, по якій QGIS не може намалювати ці багатокутники, полягає в тому, що деякі вершини знаходяться на звороті земної кулі, а QGIS не може намалювати закритий багатокутник з рештою. Функція GDAL ogr2ogr у фоновому режимі запрограмована для запуску всієї функції, коли виникає така помилка.

Отже, у вас є два рішення:


Рішення 1: Прив’яжіть свої багатокутники до півсфери

Для цього вам потрібен Numerical Digitizeі CAD Toolsплагін.

  • Встановіть проект CRS на орто-проекцію
  • створити новий точковий шар у тій же проекції
  • за допомогою модуля цифрового оцифрування створіть такі пункти:
x y
6370000 0
0 6370000
-6370000 0
0 -6370000

(також слід працювати Add delimited text layer)

  • включити оснащення на точковому шарі
  • за допомогою інструментів CAD виберіть перші три точки та створіть з них дугу
  • зробіть те ж саме для пунктів 3 - 4 - 1 для південної півкулі
  • змінити проект CRS на WGS84
  • Збережіть шар CAD як WGS84 і додайте його до полотна
  • Збережіть свій прикордонний шар також як WGS84 та додайте його до полотна
  • перетворити лінії САПР у новий багатокутний шар
  • видалити всі, крім шарів багатокутника
  • обрізати світові межі на шарі полігону САПР
  • поверніть проект CRS назад на орто

Ви повинні отримати цю картину: Світ вектор в орто-проекції


Рішення 2: Перетворіть ваші векторні дані в растрові

  • у Налаштуваннях відключити on-the-fly-reprojection
  • Збережіть свій прикордонний шар як WGS84 і додайте його до полотна
  • Використовуйте Raster -> Convert -> Rasterizeна шарі WGS84 виберіть x = 360 і y = 170 як розміри для растра (або n * 360 і n * 170)
  • Використовуйте Raster -> Projection -> Reprojectдо ортопроекції під іншою назвою та додайте її на полотно. Ви отримаєте деякі помилки, але решта растра зробить. Не турбуйтеся, що ви бачите сірий прямокутник
  • Клацніть правою кнопкою миші на шарі растру -> Властивості, вкладка Стиль
  • вибирайте псевдо кольори
  • на вкладці прозорості виберіть 0 для 100% прозорості
  • Видаліть перший растр
  • встановити проект CRS на орто

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

Цей же метод працює з растрами, як ви бачите на моїй аватарці ;-)


EDIT

Щоб отримати гарну орто-проекцію, зосереджену на точці, не на екваторі, зробіть відсікання в aeqd-проекції з тими ж параметрами, що й орто. Ви отримаєте такий результат:

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


Чи потрібно адаптувати перший підхід, коли ортографічна проекція включає один із полюсів (як, наприклад, на вашій аватарці)? Я зіткнувся з проблемами при проектуванні шару CAD на WGS84 в цьому випадку, оскільки отриманий багатокутник не покриває полюс
Джейк

Ти правий. Використання aeqd проекції замість WGS84 для відсікання працює в цьому випадку. Обрізання кулі здається легшим, ніж еліпсоїд.
AndreJ

Ага так, це гарна ідея! Однак це все ще не здається срібною кулею: я спробував використати цей підхід із landнабором даних Natural Earth 1: 110M з проекцією, орієнтованою на 30 ° с.ш., 110 ° с.ш., і зіткнувся з проблемою при проектуванні набору даних на aeqd : Великі багатокутники перевертаються і руйнують обрізку. Будь-які ідеї?
Джейк

Антиподіальна точка аекду повинна лежати в морі, щоб уникнути артефактів. Центр aeqd не повинен бути такою ж точкою, як для підсумкового орто, але повинен лежати в межах відсічного кола.
AndreJ

0

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

Я б встановив вашу CRS в країну, в якій ви хочете накласти дані. Наприклад, я використовував би ірландську сітку або сітку OSGB, або як зазначено вище, Pseudo Mercator WGS84.


3
Джессіка хотіла зобразити всю земну кулю як коло. Пропоновані вами прогнози цього не роблять.
AndreJ

голосування вниз - трохи суворе, якщо ви запитаєте мене.
Гер

Це було не я ...
AndreJ

Класно. Мені просто не зрозуміти, чому люди вниз голосують за пропозицію. У мене є бджола в капелюшці про це, і це все.
Гер

4
Сніс голос не слід сприймати особисто . Вся мережа ІП покладається на голоси "за" та "вниз", щоб відобразити найкращі відповіді на початок питання. Я відповів голосом, оскільки "встановити CRS в країні ... накладні дані" ігнорує заявлене ОП бажання зберегти Атлантичний океан в центрі на карті.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.