Materiały edukacyjne dla PyQGIS? [Zamknięte]


10

Szukam zasobów do nauki PyQGIS.

Interesujące byłoby posiadanie zbioru książek lub stron internetowych, które dostarczają praktycznych przykładów uczenia się składni lub wykonywania określonych zadań.

Najlepiej byłoby, gdyby zasoby te zawierały ogólne wskazówki zarówno dla początkujących, jak i doświadczonych użytkowników.

Gdzie znaleźć tutoriale QGIS i zasoby sieciowe? jest bardzo podobnym pytaniem, ale pomaga w nauce QGIS, a nie w szczególności PyQGIS (w rzeczywistości nie ma tagu PyQGIS).

Jakaś pomoc?


Czy możesz opublikować kod ilustrujący problem? Rzeczywiście potrzeba trochę wysiłku, aby dostać się do pyqgis. Twoje najlepsze opcje to książka kucharska i interfejs API c ++.
Peter Peterson


1
To pytanie wydaje mi się duplikatem tego pytania. Myślę, że możesz tam opublikować swoją odpowiedź :)
Germán Carrillo

1
Zazwyczaj powiedziałbym, że nowe pytanie (które jest zbyt szerokie, aby skupić się na pytaniach i odpowiedziach) powinno być duplikatem starszego, aby zniechęcić do zadawania takich pytań. Jednak w tym przypadku potrzeba znacznie mniej naszego dobrowolnego wysiłku, aby połączyć starszą w tę jako zamkniętą wiki, aby twój wysiłek pisania nie został utracony.
PolyGeo

1
Ukierunkowane pytania początkujących powinny dostarczyć im ukierunkowanych odpowiedzi.
PolyGeo

Odpowiedzi:


10

Następujące zasoby dokumentacji powinny ułatwić korzystanie z PyQGIS:

Schemat głównych relacji PyQGIS (autor: Thomas Gratier): https://raw.githubusercontent.com/webgeodatavore/qgis-class-diagram/master/diagramme_principal.png

Dokumentacja klas PyQGIS do przeszukiwania (według SourcePole): http://geoapis.sourcepole.com

Na przykład addFeaturemetoda, z którą masz problemy, jest opisana tutaj: http://geoapis.sourcepole.com/qgispyapi/qgsvectorlayer#QgsVectorLayer.addFeature

wprowadź opis zdjęcia tutaj

Jako drugi przykład setAttributemetoda została opisana tutaj: http://geoapis.sourcepole.com/qgispyapi/qgsfeature#QgsFeature.setAttribute

wprowadź opis zdjęcia tutaj


geoapis.sourcepole.com ma niesamowitą użyteczność, jednak nie był aktualizowany od QGIS 2.8. Czy starasz się to utrzymać lub udokumentować, w jaki sposób zbudowano tę witrynę?
Norwin,

Naprawdę nie wiem, ale teraz masz oficjalne dokumenty API PyQGIS API: qgis.org/pyqgis/master. Myślę więc, że SourcePole nie poświęciłby czasu na aktualizację swojej strony PyQGIS. To byłoby dublowanie wysiłków.
Germán Carrillo,

8

Poniższe zasoby zawierają ogólne wskazówki dotyczące nauki lub korzystania z PyQGIS i ogólnie zakładają minimalną biegłość w pracy z Pythonem.


Wersje QGIS 3.x.

  • Dokumentacja API PyQGIS 3 : oficjalna dokumentacja API Pythona. Udostępniono dokumentację dla każdego głównego wydania od wersji 3.0, jak również wersję nocną;

  • Książka kucharska programisty PyQGIS : napisana dla QGIS 2.x jest stopniowo aktualizowana do wersji 3.x. Nadal może być pomocny jako samouczek i przewodnik referencyjny oraz daje dobry przegląd głównych funkcjonalności.


Wersje QGIS 2.x.

Dokumentacja PyQGIS:

  • Książka kucharska programisty PyQGIS : oficjalne wprowadzenie do programowania PyQGIS. Ma on służyć zarówno jako samouczek, jak i przewodnik informacyjny oraz zapewnia dobry przegląd głównych funkcjonalności;

  • Dokumentacja API PyQGIS : nieoficjalna dokumentacja API Pythona przez SourcePole. Zapewnia interfejs do przeszukiwania, ale nie był aktualizowany od QGIS 2.8;

  • Dokumentacja API QGIS C ++ : oficjalna dokumentacja API C ++. Opisując API C ++, może być przydatny w rozwoju pyqgis.

Książki online:

  • Sherman G. (2014). Przewodnik programisty PyQGIS : rozszerzenie QGIS 2.x o Python;

  • Westra E. (2014). Budowanie aplikacji do mapowania za pomocą QGIS : zarówno dla początkujących, jak i doświadczonych programistów Pythona, ta książka obejmuje wiele tematów dotyczących korzystania z PyQGIS, w tym tworzenia wtyczek QGIS i korzystania z QGIS w zewnętrznej aplikacji;

  • Lawhead J. (2015). QGIS Python Programming Cookbook : 140 przepisów na naukę i automatyzację geoprzestrzennych przepływów pracy;

  • Menke K., Richard S., Pirelli L. (2015). Opanowanie QGIS : niektóre sekcje zawierają praktyczne przykłady krok po kroku do zapoznania się z PyQGIS;

  • Graser A. (2016). Nauka QGIS - wydanie trzecie : jedna sekcja poświęcona jest w całości skryptom QGIS w Pythonie, od podstaw po bardziej zaawansowane wykorzystanie kilku dostępnych narzędzi;

  • Lawhead J. (2017). QGIS Python Programming Cookbook - Wydanie drugie : ta książka zawiera pełne uaktualnienie kodu do QGIS 2.18 i 30 nowych przepisów.

Samouczki / Blogi / Zasoby internetowe:

  • Nathan Woodrow : blog poświęcony głównie zagadnieniom związanym z QGIS, który również omawia określone tematy dotyczące korzystania z PyQGIS. Autor jest jednym z najbardziej aktywnych programistów QGIS;

  • nyalldawson.net : blog z kilkoma wpisami na temat korzystania z PyQGIS. Autor jest jednym z najbardziej aktywnych programistów QGIS;

  • „Jak to zrobić” w QGIS : strona zawiera sugestie dotyczące rozwiązywania problemów za pomocą PyQGIS. Jeśli to możliwe, porady te są oferowane za pomocą prostych próbek kodu. Jestem autorem tego bloga;

  • Poradniki i wskazówki QGIS : sekcja tego bloga zawiera serię samouczków do nauki skryptowania PyQGIS. Autor jest bardzo doświadczonym specjalistą od GIS;

  • Lutra Consulting : lista postów ze znacznikiem PyQGIS, które obejmują niektóre tematy dotyczące PyQGIS.


2
Czy są tu jakieś aktualizacje? Wydaje mi się, że QGIS3 jest bliski wydania.
MartinT,

Czy ktoś ma pomysł, kiedy / jeśli którakolwiek z wyżej wymienionych książek (2.x) może zostać zaktualizowana do wersji 3.x?
Ville Koivisto,

Tytuł Shermana został zaktualizowany do PyQGIS3 (Przewodnik programisty PyQGIS: Rozszerzanie QGIS 3 za pomocą Pythona 3).
Ville Koivisto

0

Nie wiesz, co masz na myśli, wchodząc w Python API QGIS? , ale oczywiście istnieje funkcja addFeatures (). Działa to w 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)

Jeśli nie jesteś zadowolony z dokumentów API i książki kucharskiej PyQGIS, twoją ostatnią szansą jest przyjrzenie się działającym wtyczkom - w końcu są to oprogramowanie open source - i możesz łatwo sprawdzić, czy działają w wersji 2.4 ...

Aby ulepszyć dokumentację, projekt chętnie przyjmuje zasoby dowolnego rodzaju.


1
nawet layer.addFeature()jeśli chcesz.
Nathan W

Mój błąd. To funkcja setAttribute zgłosiła błąd. Myślę, że po wyszukiwaniu nie byłem zbyt uważny.
Florian R. Klein,

Patrząc na kod istniejących wtyczek, nauczyłem się pyqgis.
warrieka
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.