Пакетное создание карт ареалов
-
- Гуру
- Сообщения: 920
- Зарегистрирован: 30 дек 2008, 14:11
- Репутация: 236
- Откуда: Ханты-Мансийск
- Контактная информация:
Пакетное создание карт ареалов
Задача:
1. Есть шейп в атрибутивной таблице которого содержится набор видов (порядка нескольких сотен) и точки их местонахождений (на каждый вид приходится от 1 до нескольких сотен местонахождений).
2. Есть настроенный в QGIS картографический проект-шаблон.
Нужно:
Автоматически сгенерировать карты-схемы точек местонахождения отдельных видов в виде графических файлов и сохранить все это добро в папку.
Совсем хорошо было бы -- вставить полученные карты схемы в Word или PDF c подписями, какому виду какая карта соответствует.
Это вообще возможно? Если алгоритм сразу не ясен, то подскажите, пожалуйста, в какую сторону копать.
1. Есть шейп в атрибутивной таблице которого содержится набор видов (порядка нескольких сотен) и точки их местонахождений (на каждый вид приходится от 1 до нескольких сотен местонахождений).
2. Есть настроенный в QGIS картографический проект-шаблон.
Нужно:
Автоматически сгенерировать карты-схемы точек местонахождения отдельных видов в виде графических файлов и сохранить все это добро в папку.
Совсем хорошо было бы -- вставить полученные карты схемы в Word или PDF c подписями, какому виду какая карта соответствует.
Это вообще возможно? Если алгоритм сразу не ясен, то подскажите, пожалуйста, в какую сторону копать.
Re: Пакетное создание карт ареалов
Я так понимаю, что из вашего шейпа нужно выбрать точки соответствующий одному виду, подобрать охват карты и сохранить ее в Word и/или pdf. Проблема в том что видов много не хочеться все это делать в ручную. Нужно автоматизировать. Нажал кнопку, поставил галочки и получил 100 word-файлов.
Я бы смог это запрограммировать на С++, вероятно на Python'е будет даже проще. Если сами не программируете, то Вам, конечно, это не поможет и нужо искать подрядчика.
Я бы смог это запрограммировать на С++, вероятно на Python'е будет даже проще. Если сами не программируете, то Вам, конечно, это не поможет и нужо искать подрядчика.
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Пакетное создание карт ареалов
Если правильно понял задачу, то алгоритм будет примерно такой:
- получить список видов
- организовать цикл по этому списку
- при помощи запроса отбирать очередной вид
- формировать карту и сохранять ее либо в графический файл либо сразу в PDF. При желании к карте можно добавить подпись с названием вида из атрибутивной таблицы.
-
- Гуру
- Сообщения: 920
- Зарегистрирован: 30 дек 2008, 14:11
- Репутация: 236
- Откуда: Ханты-Мансийск
- Контактная информация:
Re: Пакетное создание карт ареалов
stopa85
Подбирать охват карты не нужно. Точки нужно рисовать на уже заранее настроенной карте, чтобы все было единообразно.
Voltron
Для начала можно было бы сделать в виде скрипта. Посмотреть, что будет получаться. Если штука окажется полезной, можно подумать и о расширении. Вопрос такой: на сколько создание такого скрипта трудоемко? Могу ли я, не имея особых навыков в программировании, потренироваться на этом примере, или это достаточно сложная задача и браться не стоит?
Подбирать охват карты не нужно. Точки нужно рисовать на уже заранее настроенной карте, чтобы все было единообразно.
Ну да, типа того, и кроме этого автоматизация нужна постольку, поскольку шейп постоянно редактируется, вносятся новые точки и нужно периодически делать срез данных на текущее состояние.stopa85 писал(а):Проблема в том что видов много не хочеться все это делать в ручную. Нужно автоматизировать. Нажал кнопку, поставил галочки и получил 100 word-файлов.
Voltron
Для начала можно было бы сделать в виде скрипта. Посмотреть, что будет получаться. Если штука окажется полезной, можно подумать и о расширении. Вопрос такой: на сколько создание такого скрипта трудоемко? Могу ли я, не имея особых навыков в программировании, потренироваться на этом примере, или это достаточно сложная задача и браться не стоит?
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Пакетное создание карт ареалов
Думаю, что не сильно сложно, тем более теперь есть неплохое руководство по использованию PyQGIS на русском языке. Только тут надо учитывать один момент — в Python API пока отсутствует возможность загрузки компоновок из шаблона, ее нужно будет создавать программно. Ну или попросить кого-нибудь добавить недостающий функционал в API, но тогда скрипт будет работать только начиная с определенной версии.bolotoved писал(а):Вопрос такой: на сколько создание такого скрипта трудоемко? Могу ли я, не имея особых навыков в программировании, потренироваться на этом примере, или это достаточно сложная задача и браться не стоит?
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Пакетное создание карт ареалов
Эх, а вот в GlobalMapper как раз практически на такой случай есть удобная фича - разбивка слоя на новые на основании выбранных атрибутов.
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Пакетное создание карт ареалов
И? В QGIS разбить слой тоже можно. Просто нужны не слои, а печатные карты, к тому же исходный слой постоянно обновляется. Не будете же вы на каждый чих создавать 100500 слоев и потом вручную для каждого из них печатать картуericsson писал(а):Эх, а вот в GlobalMapper как раз практически на такой случай есть удобная фича - разбивка слоя на новые на основании выбранных атрибутов.
-
- Гуру
- Сообщения: 920
- Зарегистрирован: 30 дек 2008, 14:11
- Репутация: 236
- Откуда: Ханты-Мансийск
- Контактная информация:
Re: Пакетное создание карт ареалов
Спешить нам не куда. Каким образом подаются заявки на расширение функционала API?Voltron писал(а):в Python API пока отсутствует возможность загрузки компоновок из шаблона, ее нужно будет создавать программно. Ну или попросить кого-нибудь добавить недостающий функционал в API, но тогда скрипт будет работать только начиная с определенной версии.
---
В принципе, наверное, можно синтезировать результирующий растр из растеризованного шаблона и растра генерируемого скриптом из точек, при условии, что все значения растра за пределами значков точек будут равны 0.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Пакетное создание карт ареалов
Ну в GM тоже есть скриптовый язык и batch-конвертер (в т.ч. в искомый PDF), а вообще, сделав экспорт в отдельные шейпы, дальше gdal_rasterize никто не отменял.
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Пакетное создание карт ареалов
Создать тикет в trac и периодически пинать разработчиков в списке рассылки и IRCbolotoved писал(а):Спешить нам не куда. Каким образом подаются заявки на расширение функционала API?

Можно и так, только я бы все же использовал компоновку. Создать ее программно по имеющемуся образцу не сложно, тем более сделать это надо будет один раз, а потом просто использовать ее для вывода. Еще можно самостоятельно написать загрузку шаблона, взяв за основу существущий код из ядраbolotoved писал(а):В принципе, наверное, можно синтезировать результирующий растр из растеризованного шаблона и растра генерируемого скриптом из точек, при условии, что все значения растра за пределами значков точек будут равны 0.
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Пакетное создание карт ареалов
Стрелку севера, масштабную линейку и подписи gdal_rasterize не нарисует. За GM не знаюericsson писал(а):Ну в GM тоже есть скриптовый язык и batch-конвертер (в т.ч. в искомый PDF), а вообще, сделав экспорт в отдельные шейпы, дальше gdal_rasterize никто не отменял.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Пакетное создание карт ареалов
GM - нарисует.
Через GDAL масштабную линейку и стрелку организовать тоже можно при некоторой ловкости рук, хотя это и не очень удобно, согласен.
Через GDAL масштабную линейку и стрелку организовать тоже можно при некоторой ловкости рук, хотя это и не очень удобно, согласен.
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Пакетное создание карт ареалов
вопрос в форуме про QGIS, давайте не проводить здесь сравнения софта.
bolotoved, см. проекты автоматически генерируемые на базе мастер-проекта для регионов из данных OSM
http://gis-lab.info/qa/osm-qgis-projects.html
принцип похожий, но для компоновок нужно делать как написал Voltron.
bolotoved, см. проекты автоматически генерируемые на базе мастер-проекта для регионов из данных OSM
http://gis-lab.info/qa/osm-qgis-projects.html
принцип похожий, но для компоновок нужно делать как написал Voltron.
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Пакетное создание карт ареалов
давайте не проводить здесь сравнения софта
Прощу прощения, что не про QGIS, но описанное (если я его правильно понял) довольно просто делается в GRASS в модуле для вывода карт ps.map. Сделать для каждого вида (запрос "where") точку с символом в виде выбранного граф.файла (EPS-файл). Главное --- ничего не надо программировать (единственное -- грамотно запихнуть данные в грассовский набор). На выходе -- качественный PostScript (можно потом сделать PDF или растр типа PNG).
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя