GIS-LAB

Географические информационные системы и дистанционное зондирование


Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли


Создание WMS сервера на базе GRASS и Pyramid

Обсуждение материалов сайта: вопросы, замечания, предложения

Создание WMS сервера на базе GRASS и Pyramid

Сообщение KolesovDmitry » 04 май 2014, 21:46

Написал статью-заметку о создании WMS сервера из GRASS.

Прошу высказать замечания и предложения.
  • 4

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 805
Репутация: 116
Статьи: 18
Проекты: 4

Re: Создание WMS сервера на базе GRASS и Pyramid

Сообщение Александр Мурый » 05 май 2014, 00:52

Спасибо, Дмитрий :)
Попробовал поиграться с произвольным набором данных GRASS.
Чего не хватает:
- пояснений для несообразительных, куда вписывать имена нужных растровых/векторных карт (как я понял, уже в коде веб-страницы?)
Код: Выделить всё
var wms_layer = new OpenLayers.Layer.WMS("GRASS WMS", '/wms', {                                                           
               layers: "admin@PERMANENT,modis_composite@PERMANENT"                                                                   
           },{

- стыдно сказать, но мне не хватило такой элементарщины, как конечное использование всего этого дела. Как увидеть результат работы скрипта (ну типа "а теперь открываем наш браузер и набираем в адресной строке "localhost:8080"").
- не по теме, просто попутный вопрос: как запустить наш питон-скрипт в режиме "демона", просто запустить как фоновый процесс? А то он засоряет stdout кучей букв.
  • 0

Редактор материалов, модератор форума
Александр Мурый
званий не имею
 
Зарегистрирован: 26 сен 2009
Откуда: Москва (на карте)
 
Сообщения: 4882
Репутация: 668
Статьи: 3
Проекты: 5/1

Re: Создание WMS сервера на базе GRASS и Pyramid

Сообщение Denis Rykov » 05 май 2014, 09:03

Спасибо, GRASS в качестве рендерера - интересная идея. Описывать переменные окружение (gisdbase, location) лучше в .ini файле, избегая хардкода.
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3266
Репутация: 478
Статьи: 33
Проекты: 9

Re: Создание WMS сервера на базе GRASS и Pyramid

Сообщение KolesovDmitry » 05 май 2014, 09:17

Александр Мурый писал(а):Чего не хватает:
- пояснений для несообразительных, куда вписывать имена нужных растровых/векторных карт (как я понял, уже в коде веб-страницы?)
Код: Выделить всё
var wms_layer = new OpenLayers.Layer.WMS("GRASS WMS", '/wms', {                                                           
               layers: "admin@PERMANENT,modis_composite@PERMANENT"                                                                   
           },{


Немного расширил текст стать, описал ответ на этот вопрос.
Александр Мурый писал(а):- стыдно сказать, но мне не хватило такой элементарщины, как конечное использование всего этого дела. Как увидеть результат работы скрипта (ну типа "а теперь открываем наш браузер и набираем в адресной строке "localhost:8080"").

Добавил такой подраздел. На всякий случай еще в начале статьи добавил ссылки на установщики ПО.

Александр Мурый писал(а):- не по теме, просто попутный вопрос: как запустить наш питон-скрипт в режиме "демона", просто запустить как фоновый процесс? А то он засоряет stdout кучей букв.

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

PS как использовать в wiki-разметке конструкцию типа
Код: Выделить всё
<div id="map-div" style="height: 600px; width: 800px;"></div>

А то этот блок все время интерпретируется как html-разметка. В результате поставил пробел между скобкой и div. (Пробовал теги <code>, пробел перед строкой -- не помогает)
  • 0

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 805
Репутация: 116
Статьи: 18
Проекты: 4

Re: Создание WMS сервера на базе GRASS и Pyramid

Сообщение KolesovDmitry » 05 май 2014, 09:24

Denis Rykov писал(а):Описывать переменные окружение (gisdbase, location) лучше в .ini файле, избегая хардкода.

Да, полностью согласен. Просто я не хотел вводить в статью описание еще одного файла с настройками, а в реальных проектах --- конечно нужно делать так.

Добавил в раздел ограничений ссылку на документацию по ini-файлу
  • 0

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 805
Репутация: 116
Статьи: 18
Проекты: 4

Re: Создание WMS сервера на базе GRASS и Pyramid

Сообщение Denis Rykov » 05 май 2014, 09:34

Я вот только не совсем уверен, что использование термина "WMS" в смысле стандарта OGC уместно в данной статье. Ведь не любой HTTP-сервис, принимающий на вход список слоёв, охват и размеры выходной картинки - это WMS-сервис?
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3266
Репутация: 478
Статьи: 33
Проекты: 9

Re: Создание WMS сервера на базе GRASS и Pyramid

Сообщение Максим Дубинин » 05 май 2014, 10:02

мне тоже кажется что получился не WMS, а WPS сервер) Это не очень важно, но возможно стоит где-то добавить что термин "WMS" в данном случае используется в условном смысле, что спецификации это соответствует частично или вообще не соответствует(?) и т.д.

по статье, в самом начале не хватает пары общих предложений описывающих почему это круто и что таким образом можно заворачивать любые функции и что можно например...например.... Я понимаю что это очевидно, но я бы добавил.
  • 0

пристегивайтесь, турбулентность прямо по курсу
Аватара пользователя
Максим Дубинин
NextGIS
 
Зарегистрирован: 06 окт 2003
Откуда: Москва (на карте)
 
Сообщения: 8865
Репутация: 627
Статьи: 231
Проекты: 12/6

Re: Создание WMS сервера на базе GRASS и Pyramid

Сообщение KolesovDmitry » 05 май 2014, 11:50

Denis Rykov писал(а):Я вот только не совсем уверен, что использование термина "WMS" в смысле стандарта OGC уместно в данной статье. Ведь не любой HTTP-сервис, принимающий на вход список слоёв, охват и размеры выходной картинки - это WMS-сервис?

Совершенно верно, строго говоря, это не совсем WMS. А если быть честным, то это совсем не WMS.

Но! Если я ничего не путаю, согласно стандарту WMS, сервер должен обрабатывать всего два обязательных запроса REQUEST=GetMap и REQUEST=GetCapabilities (остальные запросы, например, GetFeatureInfo, опциональны). Первый запрос почти реализован в статье, а вот второй -- нет. Поэтому с большой натяжкой получившийся сервер можно назвать недо-WMS-сервером.

Но самое главое --- реализовать обработку запроса REQUEST=GetCapabilities совсем не сложно (еще одна функция, которая возвращает список доступных слоев и проекций), просто я опасаюсь, что за большим количеством деталей пропадет суть.

Соответственно вопрос: нужно ли добавить реализацию запроса GetCapabilities? Как вариант --- в исходных кодах модуля я могу вложить реализацию запроса, а в описании его оставить все "по-крупному", не даваясь в детали.

Максим Дубинин писал(а):мне тоже кажется что получился не WMS, а WPS сервер) Это не очень важно, но возможно стоит где-то добавить что термин "WMS" в данном случае используется в условном смысле, что спецификации это соответствует частично или вообще не соответствует(?) и т.д.

Максим, ты неисправимый оптимист ) До реализации WPS еще дальше, чем до реализации WMS. Хотя, конечно -- да, я планировал сделать небольшую серию статей. Первая статья про создание WMS на базе GRASS, а вторая -- использование GRASS как WPS сервера.

Максим Дубинин писал(а):по статье, в самом начале не хватает пары общих предложений описывающих почему это круто и что таким образом можно заворачивать любые функции и что можно например...например.... Я понимаю что это очевидно, но я бы добавил.

Конечно, и в текущем варианте можно заворачивать любые функции, но это нужно делать руками, прописывая команды в функции обработки данных. Но у меня была мысль сделать еще одну статью, ссылающуюся на первую, в которой прописать механизм передачи тех или иных команд для выполнения на сервере. Тогда схема обработки запроса была бы такой: получить исходный(е) файл(ы) для обработки, получить команду/скрипт для исполнения, выполнить команду, вернуть результат по WMS.
  • 0

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 805
Репутация: 116
Статьи: 18
Проекты: 4

Re: Создание WMS сервера на базе GRASS и Pyramid

Сообщение Александр Мурый » 05 май 2014, 12:10

Исходный код модуля описанный в статье доступен по ссылке: Файл:Grass wms.zip.

Небольшое замечание: эта фраза теряется в тексте, желательно либо убрать в конец, либо как-то выделить. Ну и слово "модуль" здесь не совсем применимо, т.к. скрипт выполняется не в самой GRASS и нет каких-либо специальных параметров/опций, как в обычных грассовских модулях.

P.S. А про WPS, оказывается, целая страничка на GRASS-Wiki накатана.
  • 0

Редактор материалов, модератор форума
Александр Мурый
званий не имею
 
Зарегистрирован: 26 сен 2009
Откуда: Москва (на карте)
 
Сообщения: 4882
Репутация: 668
Статьи: 3
Проекты: 5/1


Вернуться в Материалы сайта

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


(Геокруг)

© GIS-Lab и авторы, 2002-2013. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).