Hoppa till innehåll
Meny
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

QGIS Python Processing

Publicerat den 2016-04-08

Tidigare i veckan visade jag hur du kan använda GDAL i såväl ArcGIS som QGIS för att skapa väldigt lika Pythonskript för att klippa isär stora rasterfiler. Python kan användas till så mycket mera i både ArcGIS och QGIS, och i detta inlägg så tänkte jag titta på inbyggda funktioner i QGIS för att komma åt geobearbetningen och enkelt skapa process-skript som kan användas i verktygslådan.

I de tidigare inläggen beskrev jag hur QGIS använder ”##” för att definiera variabler och formulärfält som direkt används av QGIS för att hantera anpassade processer på ett användarvänligt sätt.

##Variabel_och_Rubrik=Typ Options

Variabeln som skapas kan sedan direkt användas i det följande Pythonskriptet.

De typer som stöds är:

  • raster (ett rasterlager/-fil)
  • vector (ett vektorlager/-fil)
  • table (en tabell)
  • number (måste ha defaultvärde som option)
  • string (måste ha ett defaultvärde ex: ##namn=string Anders)
  • boolean (option True/False för defaultvärde)
  • multiple raster (flera rasterlager/-filer)
  • multiple vector (flera vektorlager/-filer)
  • field (ett attributfält, måste ha ett namn på en vektorvariabel som option)
  • folder (en katalog)
  • file (ett filnamn)

Det finns några till, men dessa räcker gott att börja med. Dessutom så kan man ange utdatatyper:

  • output raster
  • output vector
  • output table
  • output html
  • output file
  • output number (dolda)
  • output string (dolda)

De dolda utdatatyperna syns inte i formuläret, men kan användas för att exempelvis skicka värden vidare till andra processer i en modell.

Inbyggda processer

Om man öppnar en Pythonkonsol i QGIS (Insticksprogram/Pythonkonsol CRTL-Alt-P) och skriver in import processing följt av processing.alglist() så får man upp en lång lista med alla tillgängliga processer och vad de heter. Är man någorlunda säker på vad man letar efter så kan man lägga till en text för detta för att filtrera listan (exempelvis processing.alglist(”buffer”) ):

Skärmbild från 2016-04-02 16:59:29

För att ta reda på mer om en viss process så skriver man processing.alghelp(”qgis:fixeddistancebuffer”) eller det namn på process man är intresserad av.

Skärmbild från 2016-04-02 17:01:20

Processerna körs sedan med processing.runalg(namn, arg1, arg2, …) och argumenten som används framgår av hjälptexten ovan.

Sätt samman alltihopa

Det går att lägga in massor med extra Pyhonkod i processerna, men för att göra det enkelt och belysa principen så tänkte jag helt enkelt göra ett buffertverktyg. Det finns redan flera så se det enbart som ett exempel.

Skärmbild från 2016-04-02 17:25:25.png

Mer avancerat än så är det inte! Som tidigare så måste man se upp med svenska tecken i variabelnamn. Det kan därför se lite konstigt ut i dialogrutor, men jag har inte kommit på en lösning runt detta.

Skärmbild från 2016-04-02 17:28:42

Vill man ha ett ”namn” på algoritmen så löser man det med ##Min Buffert=name, och om man vill placera processen i en speciell grupp så anger man ##Min Grupp=group.

 

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     Mastodon  

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • Daniel Nilsson om QField
  • denis Empisse om SpaceMouse Python
  • klakar om SpaceMouse Python
  • Anders Jackson om Återbesök, WebODM
  • Anders Jackson om SpaceMouse Python

Arkiv

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2025 Geosupportsystem | WordPress-tema av Superbthemes.com