Создание WMS сервера на базе GRASS и Pyramid
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Создание WMS сервера на базе GRASS и Pyramid
Спасибо, Дмитрий 
Попробовал поиграться с произвольным набором данных GRASS.
Чего не хватает:
- пояснений для несообразительных, куда вписывать имена нужных растровых/векторных карт (как я понял, уже в коде веб-страницы?)
- стыдно сказать, но мне не хватило такой элементарщины, как конечное использование всего этого дела. Как увидеть результат работы скрипта (ну типа "а теперь открываем наш браузер и набираем в адресной строке "localhost:8080"").
- не по теме, просто попутный вопрос: как запустить наш питон-скрипт в режиме "демона", просто запустить как фоновый процесс? А то он засоряет stdout кучей букв.

Попробовал поиграться с произвольным набором данных GRASS.
Чего не хватает:
- пояснений для несообразительных, куда вписывать имена нужных растровых/векторных карт (как я понял, уже в коде веб-страницы?)
Код: Выделить всё
var wms_layer = new OpenLayers.Layer.WMS("GRASS WMS", '/wms', {
layers: "admin@PERMANENT,modis_composite@PERMANENT"
},{
- стыдно сказать, но мне не хватило такой элементарщины, как конечное использование всего этого дела. Как увидеть результат работы скрипта (ну типа "а теперь открываем наш браузер и набираем в адресной строке "localhost:8080"").
- не по теме, просто попутный вопрос: как запустить наш питон-скрипт в режиме "демона", просто запустить как фоновый процесс? А то он засоряет stdout кучей букв.
Редактор материалов, модератор форума
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Создание WMS сервера на базе GRASS и Pyramid
Спасибо, GRASS в качестве рендерера - интересная идея. Описывать переменные окружение (gisdbase, location) лучше в .ini файле, избегая хардкода.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Создание WMS сервера на базе GRASS и Pyramid
Немного расширил текст стать, описал ответ на этот вопрос.Александр Мурый писал(а): Чего не хватает:
- пояснений для несообразительных, куда вписывать имена нужных растровых/векторных карт (как я понял, уже в коде веб-страницы?)Код: Выделить всё
var wms_layer = new OpenLayers.Layer.WMS("GRASS WMS", '/wms', { layers: "admin@PERMANENT,modis_composite@PERMANENT" },{
Добавил такой подраздел. На всякий случай еще в начале статьи добавил ссылки на установщики ПО.Александр Мурый писал(а): - стыдно сказать, но мне не хватило такой элементарщины, как конечное использование всего этого дела. Как увидеть результат работы скрипта (ну типа "а теперь открываем наш браузер и набираем в адресной строке "localhost:8080"").
При запуске сервера ему можно передавать параметры, в том числе параметр, отвечающий за объем вывода отладочной информации. Я не стал совать в статью еще и это (все это описано в доках Pyramid).Александр Мурый писал(а): - не по теме, просто попутный вопрос: как запустить наш питон-скрипт в режиме "демона", просто запустить как фоновый процесс? А то он засоряет stdout кучей букв.
PS как использовать в wiki-разметке конструкцию типа
Код: Выделить всё
<div id="map-div" style="height: 600px; width: 800px;"></div>
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Создание WMS сервера на базе GRASS и Pyramid
Да, полностью согласен. Просто я не хотел вводить в статью описание еще одного файла с настройками, а в реальных проектах --- конечно нужно делать так.Denis Rykov писал(а):Описывать переменные окружение (gisdbase, location) лучше в .ini файле, избегая хардкода.
Добавил в раздел ограничений ссылку на документацию по ini-файлу
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Создание WMS сервера на базе GRASS и Pyramid
Я вот только не совсем уверен, что использование термина "WMS" в смысле стандарта OGC уместно в данной статье. Ведь не любой HTTP-сервис, принимающий на вход список слоёв, охват и размеры выходной картинки - это WMS-сервис?
Spatial is now, more than ever, just another column- The Geometry Column.
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Создание WMS сервера на базе GRASS и Pyramid
мне тоже кажется что получился не WMS, а WPS сервер) Это не очень важно, но возможно стоит где-то добавить что термин "WMS" в данном случае используется в условном смысле, что спецификации это соответствует частично или вообще не соответствует(?) и т.д.
по статье, в самом начале не хватает пары общих предложений описывающих почему это круто и что таким образом можно заворачивать любые функции и что можно например...например.... Я понимаю что это очевидно, но я бы добавил.
по статье, в самом начале не хватает пары общих предложений описывающих почему это круто и что таким образом можно заворачивать любые функции и что можно например...например.... Я понимаю что это очевидно, но я бы добавил.
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Создание WMS сервера на базе GRASS и Pyramid
Совершенно верно, строго говоря, это не совсем WMS. А если быть честным, то это совсем не WMS.Denis Rykov писал(а):Я вот только не совсем уверен, что использование термина "WMS" в смысле стандарта OGC уместно в данной статье. Ведь не любой HTTP-сервис, принимающий на вход список слоёв, охват и размеры выходной картинки - это WMS-сервис?
Но! Если я ничего не путаю, согласно стандарту WMS, сервер должен обрабатывать всего два обязательных запроса REQUEST=GetMap и REQUEST=GetCapabilities (остальные запросы, например, GetFeatureInfo, опциональны). Первый запрос почти реализован в статье, а вот второй -- нет. Поэтому с большой натяжкой получившийся сервер можно назвать недо-WMS-сервером.
Но самое главое --- реализовать обработку запроса REQUEST=GetCapabilities совсем не сложно (еще одна функция, которая возвращает список доступных слоев и проекций), просто я опасаюсь, что за большим количеством деталей пропадет суть.
Соответственно вопрос: нужно ли добавить реализацию запроса GetCapabilities? Как вариант --- в исходных кодах модуля я могу вложить реализацию запроса, а в описании его оставить все "по-крупному", не даваясь в детали.
Максим, ты неисправимый оптимист ) До реализации WPS еще дальше, чем до реализации WMS. Хотя, конечно -- да, я планировал сделать небольшую серию статей. Первая статья про создание WMS на базе GRASS, а вторая -- использование GRASS как WPS сервера.Максим Дубинин писал(а):мне тоже кажется что получился не WMS, а WPS сервер) Это не очень важно, но возможно стоит где-то добавить что термин "WMS" в данном случае используется в условном смысле, что спецификации это соответствует частично или вообще не соответствует(?) и т.д.
Конечно, и в текущем варианте можно заворачивать любые функции, но это нужно делать руками, прописывая команды в функции обработки данных. Но у меня была мысль сделать еще одну статью, ссылающуюся на первую, в которой прописать механизм передачи тех или иных команд для выполнения на сервере. Тогда схема обработки запроса была бы такой: получить исходный(е) файл(ы) для обработки, получить команду/скрипт для исполнения, выполнить команду, вернуть результат по WMS.Максим Дубинин писал(а): по статье, в самом начале не хватает пары общих предложений описывающих почему это круто и что таким образом можно заворачивать любые функции и что можно например...например.... Я понимаю что это очевидно, но я бы добавил.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Создание WMS сервера на базе GRASS и Pyramid
Небольшое замечание: эта фраза теряется в тексте, желательно либо убрать в конец, либо как-то выделить. Ну и слово "модуль" здесь не совсем применимо, т.к. скрипт выполняется не в самой GRASS и нет каких-либо специальных параметров/опций, как в обычных грассовских модулях.Исходный код модуля описанный в статье доступен по ссылке: Файл:Grass wms.zip.
P.S. А про WPS, оказывается, целая страничка на GRASS-Wiki накатана.
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость