Создание WMS сервера на базе GRASS GIS и Pyramid: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
(Новая страница: «В данной статье описывается простейший пример создания [http://gis-lab.info/qa/ows.html WMS сервера] на …»)
 
Строка 4: Строка 4:


== Общие сведения ==
== Общие сведения ==
Статья расчитана на читателя, который на базовом уровне знаком с геоинформационной системой GRASS и языком программирования Python. В частности, читатель должен представлять, [http://gis-lab.info/qa/grass-external-scripting.html как происходит вызов команд GRASS на языке Python].  
Статья расчитана на читателя, который на базовом уровне знаком с геоинформационной системой GRASS и языком программирования Python. В частности, читатель должен представлять, [http://gis-lab.info/qa/grass-external-scripting.html как происходит вызов команд GRASS на языке Python] и быть знакомым [http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/introduction.html с основами использования фреймворка Pyramid].


В статье испольуется GRASS версии 6.4 (тем не менее, изменения в приведенном коде для GRASS 7 должны быть минимальными).


=== Архитектура системы ===
В основе WMS сервера будет лежать модуль [http://grass.osgeo.org/grass64/manuals/d.mon.html d.mon], отвечающий за отрисовку геоданных. При этом будет использоваться [http://grass.osgeo.org/grass64/manuals/cairodriver.html графический драйвер Cairo], который позволяет генерировать изображения в форматах PNG, BMP, PPM, PS, PDF и SVG.
Для реализации сервера потребуется создать подсистемы, служащие для:
# Настройки путей к GRASS.
# Получения и анализа параметров запроса WMS.
# Отрисовки слоев по запросу клиента и сохранения результата в графический файл.
# Возвращения результата обработки запроса клиенту.
Собственно к GRASS относятся первый и третий пункты, остальные --- обычные действия, которые реализуются при помощи Pyramid и с GRASS никак не связаны. Поэтому для простоты изложения и реализации объединим первый и третий пункты в виде одной функции.


== Реализация ==
== Реализация ==


== Ограничения данной реализации ==
== Ограничения данной реализации ==

Версия от 11:39, 4 мая 2014

В данной статье описывается простейший пример создания WMS сервера на базе геоинформационной системы GRASS. Доступ к данным организован при помощи фреймворка Pyramid.

Данная статья является расширенным переводом с английского языка статьи GRASS GIS Web Map Service with Pyramid.

Общие сведения

Статья расчитана на читателя, который на базовом уровне знаком с геоинформационной системой GRASS и языком программирования Python. В частности, читатель должен представлять, как происходит вызов команд GRASS на языке Python и быть знакомым с основами использования фреймворка Pyramid.

В статье испольуется GRASS версии 6.4 (тем не менее, изменения в приведенном коде для GRASS 7 должны быть минимальными).

Архитектура системы

В основе WMS сервера будет лежать модуль d.mon, отвечающий за отрисовку геоданных. При этом будет использоваться графический драйвер Cairo, который позволяет генерировать изображения в форматах PNG, BMP, PPM, PS, PDF и SVG.

Для реализации сервера потребуется создать подсистемы, служащие для:

  1. Настройки путей к GRASS.
  2. Получения и анализа параметров запроса WMS.
  3. Отрисовки слоев по запросу клиента и сохранения результата в графический файл.
  4. Возвращения результата обработки запроса клиенту.

Собственно к GRASS относятся первый и третий пункты, остальные --- обычные действия, которые реализуются при помощи Pyramid и с GRASS никак не связаны. Поэтому для простоты изложения и реализации объединим первый и третий пункты в виде одной функции.

Реализация

Ограничения данной реализации