GIS-Lab Додавання місцевої координатної системи до GIS

Географічні інформаційні системи та дистанційне зондування

Конструювання проекцій, що імітують місцеві координатні системи, QGIS

Зміст

[ред.] Вступ

Під місцевою системою координат (МСК) мається на увазі так звана «міська» система, побудована незалежно від державної системи (ГСК) та включена до неї завданням ключів переходу до СК-42 або СК-63. МСК великих територій, які можна порівняти з розмірами суб'єктів Федерації, є предметом цієї статті, оскільки ставляться до класичних картографічних проекцій.

[ред.] Постановка задачі

Є безліч пунктів, для яких відомі координатиX,Yу ГСК таx,yу МСК. Потрібно підібрати проекцію та обчислити її параметри, що задовільно представляє МСК у ГІС. При підборі параметрів передбачається використовувати один із пунктів як центральну точку перетворення.

Деякі програми дозволяють реалізувати роботу у МСК безпосередньо. Так, у MapInfo Pro будь-яка проекція може бути доповнена афінним перетворенням, а Global Mapper конформні проекції доповнюються розворотом. ArcGIS як МСК пропонує локальну проекцію: аналог ортографічної проекції на еліпсоїді, доповнений розворотом та масштабуванням.

Інші програми, включаючи QGIS, працюють лише зі «звичайними» проекціями, не допускаючи додаткових геометричних перетворень. Завдання статті - показати, як можна конструювати проекції, що дозволяють імітувати МСК QGIS.

Як робоче середовище будемо використовувати командний рядок UNIX або OSGeo4W MSYS.

[ред.] Підготовка даних

Потрібні два файли вихідних даних. Нехай текстовийфайлcat_s42z4.tsvмістить координати пунктів у державній системі (ГСК), а саме в четвертій зоні СК-42:

У файліcat_local.tsv- координати в місцевій системі (МСК):

Кожен рядок в обох файлах відповідає тому самому пункту. У першому рядку є центральний пункт системи.

Обчислимо географічні координати пунктів: [1]

У файлcat_longlat.tsvзапишуться географічні довготи та широти в СК-42:

[ред.] Швидка реалізація

Робота полягає в завданні трьох параметрів косої проекції Меркатора і обчисленні чотирьох, що залишилися. Апріорні параметри визначаються так: центр проекції має лежати на осьовому меридіані вихідної проекції СК-42/СК-63 на широті середини міста, а азимут початкової лінії має бути малим. Нехай широта центру проекції дорівнює широті першого пункту з файлу cat_longlat.tsv 52.02642240080064°. Довгота центру проекції співпадатиме з довготою осьового меридіана четвертої зони 21°. Азімут початкової лінії покладемо рівним довільно малої величини −0,0001°. Масштабний множникkприрівняємо одиниці, параметри, що залишилися, обнулимо, обчислимо координати в цій перехідній проекції і запишемо їх у файлcat.tsv:

Знайдемо параметри, що залишилися, за допомогою програмиhelmkey:

Програма виведе на екран рядок параметрів:

Це все! Залишилося додати в QGIS проекцію користувача, не забувши необхідні стандартні параметри:

[ред.] Багато літер

[ред.] Вибір вихідної проекції ГСК

Важливою особливістю МСК і те, що з погляду математичної картографії вона залишається проекцією Гаусса-Крюгера і успадковує її спотворення.

Зручно, якщо осьовий меридіан ГСК проходить через місто при малому куті розвороту, як уПензе. І тут МСК будується як проекція Гаусса-Крюгера, відрізняється від вихідної ГСК малим зрушенням осьового меридіана для компенсації кута розвороту. Жаль, що це трапляється рідко.

В інших випадках слід використовувати косу проекцію Меркатора, так як вона, по-перше, при правильному доборі параметрів близька до проекції Гаусса-Крюгера в околиці заданого центру проекції і, по-друге, PROJ.4 дозволяє довільно задавати кут розвороту МСК.

Добре, якщо вихідна ГСК точно відома. Це, зокрема, випадок, коли замість каталогів є надійний ключ.

Однак зустрічаються ситуації, коли вихідна ГСК невідома, і доводиться обирати між СК-42 і СК-63, або навіть між зоною однієї з них та двома зонами іншою. Відповідь підкажуть властивості самих проекцій і утилітаhelmkey. Заглянемо у файлvar.csv, створений цією утилітою. Він містить нев'язки конформного перетворення:

-0.0060.007
0.1820.046
-0.1660.110
0.019-0.185
0.1480.100
-0.1460.094
-0.031-0.171

У нашому прикладі другий кандидат на вихідну ГСК - СК-63 зона C0 з осьовим меридіаном 21 57 '. Створимо проміжну проекцію на її основі, обчислимо координати для пунктів у ній і отримаємо параметри, що залишаються, утилітоюhelmkey:

-0.000-0.002
-0.0010.002
-0.0010.002
0.0040.000
-0.0020.001
0.002-0.002
-0.002-0.001

Порівняння нев'язок не на користь СК-42. Вихідна ГСК - СК-63 зона C0, і правильна проекція для QGIS така:

[ред.] Підбір апріорних параметрів МСК

У плані розподілу спотворень проекція МСК має імітувати ГСК. В ідеалі вибір параметрів такий, що центр проекції лежить на точці осьового меридана ГСК, найближчої до середини міста, а напрямок початкової лінії збігається з напрямком меридіана. Отже,

  • довгота центру проекції дорівнює довготі осьового меридіана ГСК;
  • широта центру проекції потребує обчислення;
  • азимут початкової лінії дорівнює нулю.

Досить добре наближення для широти центру проекції дає формула

деφ₁,λ₁ - координати середини міста; ,φ₂,λ₂ - координати центру проекції. Точне обчислення виконується на апосфері.

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

[ред.] Перевірка параметрів

Перш ніж копіювати отриманий рядок параметрів у проекцію користувача QGIS, корисно її перевірити:

У виведенні програми має бути практична одиниця для масштабу та нулі для інших параметрів:

Координати у файліcat.tsvбудуть схожі на вихідні координати МСК із файлуcat_local.tsv.

[ред.] Висновок

На момент написання статті для практичного застосування QGIS рекомендується коса проекція Меркатора. Якщо осьовий меридіан близький до центру території та кут розвороту малий, слід використовувати проекцію Гаусса-Крюгера.

Можливо, у найближчому майбутньомусеред атомарних операцій PROJ з'явиться афінне перетворення. Це дозволить безпосередньо доповнювати класичну проекцію Гауса-Крюгера додатковим перетворенням прямокутної системи координат, як це робиться в MapInfo Pro.

[ред.] Додаток. Утиліта helmkey

Програмаhelmkeyобчислює параметри конформного перетворення. Написана мовою C. Ось листинг:

Збережемо код у файлhelmkey.c. Модуль, що виконується, створимо компіляторомgcc:

Користувачі MS Windows можуть завантажити вже скомпільовану програму.

[ред.] Примітки

  1. ↑ При запускуprojу MSYS під Windows доведеться подбати про видалення сміттєвих символів:

[ред.] Посилання

Останнє оновлення: 2018-05-20 18:56