Pisz samodzielne skrypty Pythona za pomocą PyQGIS?

17

Nauczyłem się korzystać z konsoli Python w QGIS, korzystając z referencji z qgisworkshop.org . Znam się na pisaniu samodzielnych skryptów w ArcGIS i chcę nauczyć się robić to samo z QGIS.

Na przykład w ArcGIS 10 prosty, samodzielny skrypt Pythona to:

import arcpy 

setFolder = ''

doProcess

Rozumiem, jak to zrobić za pomocą konsoli python w QGIS, ale nie udało mi się znaleźć przykładu wykonania tych samych kroków przy użyciu samodzielnego skryptu. Podejrzewam jednak, że właśnie miałem pecha w moich poszukiwaniach. Czy są jakieś wyraźne przykłady tego, jak to zrobić online?

djq
źródło

Odpowiedzi:

15

Nie napisałem jeszcze samodzielnych skryptów opartych na API QGIS, ale książka kucharska PyQGIS korzysta z następującej inicjalizacji:

Przede wszystkim musisz zaimportować moduł qgis, ustawić ścieżkę QGIS, gdzie szukać zasobów - bazę danych prognoz, dostawców itp. Po ustawieniu ścieżki prefiksu z drugim argumentem ustawionym na True, QGIS zainicjuje wszystkie ścieżki standardowym katalogiem w katalogu prefiksów . Wywołanie funkcji initQgis () jest ważne, aby umożliwić QGIS wyszukiwanie dostępnych dostawców.

from qgis.core import *

# supply path to where is your qgis installed
QgsApplication.setPrefixPath("/path/to/qgis/installation", True)

# load providers
QgsApplication.initQgis()

Teraz możesz pracować z QGIS API - ładować warstwy i wykonywać niektóre operacje lub uruchamiać GUI z płótnem mapy. Możliwości są nieskończone :-)

Po zakończeniu korzystania z biblioteki QGIS wywołaj komendę exitQgis (), aby upewnić się, że wszystko zostało wyczyszczone (np. Wyczyść rejestr warstw mapy i usuń warstwy):

QgsApplication.exitQgis()
podmrok
źródło
1
Dzięki @underdark - to jest pomocne. Uznałem, że from qgis.core import *praca w systemie OSX jest łatwa, dlatego planuję zadać nowe pytanie na ten temat.
djq
Przykro nam, ale zaznaczam tutaj inne pytanie, ale czy istnieje dokumentacja online modułu qgis? Wszystko, co mogę znaleźć, to odniesienie do tego, że jest podobny do dokumentów w języku C ++, ale nie ma rzeczywistego łącza do dokumentów w języku Python.
djq
Szczegóły dotyczące Pythona znajdują się w książce kucharskiej pyQGIS. W przeciwnym razie możesz polegać na normalnych dokumentacjach API C ++ - to nie jest po prostu podobne, imho to samo.
podmroku
Dla użytkowników ubuntu: ścieżka instalacji : gis.stackexchange.com/questions/52919/ ... (to „/ usr”)
Mr Purple