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.006 | 0.007 |
| 0.182 | 0.046 |
| -0.166 | 0.110 |
| 0.019 | -0.185 |
| 0.148 | 0.100 |
| -0.146 | 0.094 |
| -0.031 | -0.171 |
У нашому прикладі другий кандидат на вихідну ГСК - СК-63 зона C0 з осьовим меридіаном 21 57 '. Створимо проміжну проекцію на її основі, обчислимо координати для пунктів у ній і отримаємо параметри, що залишаються, утилітоюhelmkey:
| -0.000 | -0.002 |
| -0.001 | 0.002 |
| -0.001 | 0.002 |
| 0.004 | 0.000 |
| -0.002 | 0.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 можуть завантажити вже скомпільовану програму.
[ред.] Примітки
- ↑ При запускуprojу MSYS під Windows доведеться подбати про видалення сміттєвих символів:
[ред.] Посилання
Останнє оновлення: 2018-05-20 18:56