Учебные ресурсы для PyQGIS? [закрыто]


10

Я ищу некоторые ресурсы для изучения PyQGIS.

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

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

Где найти учебники и веб-ресурсы по QGIS? это очень похожий вопрос, но он помогает при изучении QGIS, а не конкретно PyQGIS (на самом деле он не имеет тега PyQGIS).

Любая помощь?


Можете ли вы опубликовать код, чтобы проиллюстрировать вашу проблему. Это действительно займет некоторое усилие, чтобы попасть в Pyqgis. Ваши лучшие варианты - поваренная книга и API C ++.
Питер Петерсон


1
Мне этот вопрос кажется дубликатом этого. Я думаю, что вы могли бы опубликовать свой ответ там :)
Герман Каррильо

1
Как правило, я бы сказал, что новый вопрос (который слишком широк для сфокусированных вопросов и ответов) следует сделать дубликатом более старого вопроса, чтобы препятствовать тому, чтобы такие вопросы задавались. Тем не менее, в этом случае наши добровольные усилия потребуют гораздо меньше усилий, чтобы объединить старый в этот в качестве заблокированной вики, чтобы ваши усилия по написанию этого документа не были потеряны.
PolyGeo

1
Сосредоточенные вопросы начинающих должны дать на них целенаправленные ответы.
PolyGeo

Ответы:


10

Следующие ресурсы документации должны облегчить ваш опыт разработки PyQGIS:

Диаграмма основных отношений PyQGIS (Томас Гратье): https://raw.githubusercontent.com/webgeodatavore/qgis-class-diagram/master/diagramme_principal.png

Доступная для поиска документация по классам PyQGIS (от SourcePole): http://geoapis.sourcepole.com

Например, addFeatureметод, с которым у вас были проблемы, описан здесь: http://geoapis.sourcepole.com/qgispyapi/qgsvectorlayer#QgsVectorLayer.addFeature

введите описание изображения здесь

В качестве второго примера setAttributeметод описан здесь: http://geoapis.sourcepole.com/qgispyapi/qgsfeature#QgsFeature.setAttribute

введите описание изображения здесь


geoapis.sourcepole.com обладает удивительным удобством использования, однако он не обновлялся с QGIS 2.8. Есть ли усилия, чтобы сохранить это, или документация, как этот сайт был построен?
Норвин

Я действительно не знаю, но теперь у вас есть официальные документы PyQGIS API: qgis.org/pyqgis/master Итак, я думаю, что SourcePole не будет тратить время на обновление своего сайта PyQGIS. Это было бы дублированием усилий.
Герман Каррильо

8

Следующие ресурсы дают общее руководство по обучению или использованию PyQGIS и, как правило, предполагают минимальные навыки работы с Python.


Версии QGIS 3.x

  • Документация по API PyQGIS 3 : официальная документация по API Python. Документация для каждого основного выпуска начиная с версии 3.0, а также ночная версия предоставляется;

  • PyQGIS Developer Cookbook : написано для QGIS 2.x, постепенно обновляется до 3.x. Он все еще может быть полезен в качестве учебного пособия и справочного руководства и дает хороший обзор основных функций.


Версии QGIS 2.x

Документация PyQGIS:

  • PyQGIS Developer Cookbook : официальное введение в программирование PyQGIS. Он предназначен для работы в качестве учебного пособия и справочного руководства и дает хороший обзор основных функций;

  • Документация по API PyQGIS : неофициальная документация по API Python от SourcePole. Он предоставляет интерфейс с возможностью поиска, но не обновлялся с QGIS 2.8;

  • Документация по API QGIS C ++ : официальная документация по API C ++. Описывая C ++ API, он может быть полезен для разработки pyqgis.

Интернет книги:

  • Шерман Г. (2014). Руководство программиста PyQGIS : расширение QGIS 2.x с помощью Python;

  • Вестра Э. (2014). Создание картографических приложений с помощью QGIS : как для начинающих, так и для опытных разработчиков Python, эта книга охватывает множество тем об использовании PyQGIS, включая создание плагинов QGIS и использование QGIS во внешнем приложении;

  • Lawhead J. (2015). QGIS Python Programming Cookbook : 140 рецептов для изучения и автоматизации геопространственных рабочих процессов;

  • Менке К., Ричард С., Пирелли Л. (2015). Освоение QGIS : в некоторых разделах представлены практические пошаговые примеры для знакомства с PyQGIS;

  • Грейсер А. (2016). Изучение QGIS - третье издание : один раздел полностью посвящен написанию сценариев QGIS с использованием Python, начиная с основы и заканчивая более сложным использованием нескольких доступных инструментов;

  • Lawhead J. (2017). QGIS Python Programming Cookbook - второе издание : в этой книге полное обновление кода до QGIS 2.18 и 30 новых рецептов.

Учебники / Блоги / Веб-ресурсы:

  • Натан Вудроу : блог, в основном о материалах QGIS, который также рассматривает конкретные темы об использовании PyQGIS. Автор является одним из самых активных разработчиков QGIS;

  • nyalldawson.net : блог с несколькими сообщениями об использовании PyQGIS. Автор является одним из самых активных разработчиков QGIS;

  • «Как» в QGIS : на сайте представлены некоторые предложения по решению проблем с использованием PyQGIS. Когда это возможно, эти советы предлагаются через простые примеры кода. Я автор этого блога;

  • Учебники и советы по QGIS : раздел этого блога содержит серию руководств по изучению сценариев PyQGIS. Автор очень опытный специалист по ГИС;

  • Lutra Consulting : список постов, имеющих тег PyQGIS, которые охватывают некоторые темы о PyQGIS.


2
Любые обновления здесь? Я верю, что QGIS3 близок к выпуску.
MartinT

У кого-нибудь есть идея, когда / если какая-либо из вышеупомянутых книг (2.x) может быть обновлена ​​до 3.x?
Вилле Койвисто

Название Шермана было обновлено для PyQGIS3 (Руководство программиста PyQGIS: Расширение QGIS 3 с Python 3).
Вилле Койвисто

0

Не знаете, что вы имеете в виду, изучая Python API QGIS? , но есть функция addFeatures (), конечно. Это работает в QGIS 2.4:

mem_layer = QgsVectorLayer("Polygon?crs=epsg:4326&field=MYNUM:integer&field=MYTXT:string", "temp_layer", "memory")

if not mem_layer.isValid(): raise Exception("Failed to create memory layer")

mem_layer_provider = mem_layer.dataProvider()

my_polygon = QgsFeature()
my_polygon.setGeometry(QgsGeometry.fromRect(QgsRectangle(16,48,17,49)))
my_polygon.setAttributes([10,"hello world"])

mem_layer_provider.addFeatures([my_polygon])

mem_layer.updateExtents()
QgsMapLayerRegistry.instance().addMapLayer(mem_layer)

Если вы недовольны документацией по API и кулинарной книгой PyQGIS, ваш последний шанс - изучить работающие плагины - в конце концов, они с открытым исходным кодом - и вы легко сможете увидеть, работают ли они в версии 2.4 ...

Для улучшения документации проект с радостью принимает ресурсы любого рода.


1
даже layer.addFeature()если хочешь.
Натан W

Виноват. Это была функция setAttribute, которая вызвала ошибку - я думаю, я не был слишком внимателен после поиска.
Флориан Р. Кляйн

Глядя на код существующих плагинов, я узнал Pyqgis.
Warrieka
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.