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

Обсуждение материалов сайта: вопросы, замечания, предложения
Ответить
KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

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

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

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

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

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

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

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

Спасибо, Дмитрий :)
Попробовал поиграться с произвольным набором данных 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

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

Спасибо, GRASS в качестве рендерера - интересная идея. Описывать переменные окружение (gisdbase, location) лучше в .ini файле, избегая хардкода.
Spatial is now, more than ever, just another column- The Geometry Column.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

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

Сообщение KolesovDmitry » 05 май 2014, 08: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>, пробел перед строкой -- не помогает)

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

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

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

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

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

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

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

Я вот только не совсем уверен, что использование термина "WMS" в смысле стандарта OGC уместно в данной статье. Ведь не любой HTTP-сервис, принимающий на вход список слоёв, охват и размеры выходной картинки - это WMS-сервис?
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

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

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

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

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

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

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

Сообщение KolesovDmitry » 05 май 2014, 10: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.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

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

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

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

P.S. А про WPS, оказывается, целая страничка на GRASS-Wiki накатана.
Редактор материалов, модератор форума

Ответить

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

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

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