Використання консолі Python для підготовки оффлайн-карт з WMS (завантаження тайлів)

Ця стаття розказує як підготувати карти WMS/WFS або будь-яку відкриту в QGIS карту для оффлайнового використання шляхом збереження тайлів за допомогою консолі Python. Сценарій також створює мозаїку тайлів для подільшого використання.

Сервіси WMS дедалі частіше використовуються для роботи з растровими та векторними даними. Серед їх переваг безпека, централізовані та гнучкі стилі. Прикладом таких сервісів є Google maps, Yahoo, Bing, MODIS, Landsat, карти NASA, NRSC (Індія). Недоліком/обмеженням WMS є необхідність підключення до інтернет. В деяких випадках, особливо під час польових робіт, підключення відсутнє. Також, у порівнянні з традиційними оффлайновими форматами (GeoTiff, JPS) WMS працює значно повільніше.

Використання QGIS

QGIS підтримує роботу з сервісами WMS. Для підключення до сервісів необхідно мати їх URL, після того, як з’єднання встановлене, відповідну карту можна завантажити в QGIS. Якщо зберегти поточну видиму область як графічний файл (Файл -> Зберегти як зображення), також буде створено world-файл з даними про географічну прив’язку. Наприклад, sample.jpg містить карту, а sample.jpgw — координати. Це означає, що збережене зображення прив’язане. Ми можемо завантажувати тайли та використовувати їх в оффлайн режимі. Завантаження вручну можливе для маленьких ділянок або коли достатньо зображень низької якості.

QGIS за тайлами WMS

QGIS за тайлами WMS

Консоль Python

За допомогою офіційної документації QGIS було розроблено сценарій для консолі Python. Сценарій складається з наступних основних блоків

  1. координати X, Y першого тайлу

  2. бажаний розмір тайлів (наприклад, 0.001x0.001 градусів)

  3. кількість тайлів, які необхідно завантажити (обчислюється з охоплення карти та розмірів тайлу)

  4. каталог для запису тайлів

Сценарій містить два цикли for, перший з який визначає охоплення карти та кількість рядків/стовпчиків. Після того як охоплення карти задане, вона завантажується в QGIS. Перед збереженняс карти внесено затримку в 3 секунди (залежить від якості підключення). Після завершення роботи сценарія всі тайли записуються до вказаного каталогу, і можуть бути відкриті в QGIS. Також можна підготувати єдиний файл за допомогою інструментів Merge або Build Virtual Raster з набору GDALTools. Обидва інструменти генерують мозаїку, відмінність в тому, що Merge створює «незалежне» зображення, а Build Virtual Raster генерує зв’язки між тайлами (тобто тайли необхідні).

Сценарій Python та каталог з тайлами

Сценарій Python та каталог з тайлами

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

Задача

Отримана мозаїка є звичайним зображенням, навіть якщо вона була створена з тематичної карти (7-8 кольорів). За допомогою таких функцій як рекласифікація, об’єднання шарів/каналів цей растр можна перевести у векторний формат. WMS підтримує різні типи запитів, наприклад GetCapabilities, GetMap, GetFeatureInfo та ін. За допомогою запиту GetFeatureInfo можна отримати атрибутивну інформацію об’єктів. Цей сценарій також можна перетворити на плаґін, і таким чином для його використання додаткові знання не знадобляться.

Підсумки

З вищенаписаного зрозуміло, що QGIS може використовуватися на просунутому рівні. За наявності базових навичок програмування можна створювати сценарії та плаґіни, які спрощують роботу. Можливість використовувати плаґіни, розроблені користувачами зі всього світу є однією з найкращих можливостей QGIS. Офіційна документація містить достатьньо інформації для розробки вкласних сценаріїв, а обробка растрових даних за допомогою GDALTools надзвичайно проста.

Автор

Prashant Kadgi надіслав цю статтю у травні 2014 р. Він проживає в Пуне (Індія) та працює консультантом в GIS APP Consultancy Services. З 2009 він використовує ГІС та дані дистанційного зондування в NRM, лісному господарстві, електронному уряді та проектах з розробки програмного забезпечення у різних регіонах Індії та по всьому світу.