Created
June 15, 2017 22:01
-
-
Save ka7eh/2a59c1d25b047934c7da1c4afd1528e4 to your computer and use it in GitHub Desktop.
An example of how to load and run multiple QGIS algorithms outside of QGIS GUI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import sys | |
from qgis.core import * | |
from PyQt4.QtGui import * | |
home = os.path.expanduser('~') | |
sys.path.extend([ | |
'/usr/share/qgis/python/plugins/processing', | |
'/usr/share/qgis/python', | |
os.path.join(home, '.qgis2/python'), | |
os.path.join(home, '.qgis2/python/plugins'), | |
'/usr/share/qgis/python/plugins' | |
]) | |
import processing | |
from processing.core.Processing import Processing | |
from processing.tools import * | |
app = QApplication([]) | |
QgsApplication.setPrefixPath('/usr', True) | |
QgsApplication.initQgis() | |
Processing.initialize() | |
inp = QgsVectorLayer(os.path.join(home, 'path/to/dataset.gdb/'), 'dataset', 'ogr') | |
print('Creating Vector Grid') | |
crs = inp.crs().authid() | |
extent = ','.join([ | |
str(inp.extent().xMinimum()), | |
str(inp.extent().xMaximum()), | |
str(inp.extent().yMinimum()), | |
str(inp.extent().yMaximum()) | |
]) | |
gridcellsize = 10000 | |
outputs_QGISVECTORGRID_1 = processing.runalg('qgis:creategrid', 1, extent, gridcellsize, gridcellsize, crs, None) | |
print('Dissolving') | |
dissolvefields = ['field1', 'field2'] | |
outputs_QGISDISSOLVE_1 = processing.runalg('qgis:dissolve', inp, False, dissolvefields, None) | |
print('Clipping') | |
outputs_QGISCLIP_1 = processing.runalg('qgis:clip', outputs_QGISDISSOLVE_1['OUTPUT'], | |
outputs_QGISVECTORGRID_1['OUTPUT'], None) | |
print('Exploding') | |
outputs_QGISMULTIPARTTOSINGLEPARTS_1 = processing.runalg('qgis:multiparttosingleparts', outputs_QGISCLIP_1['OUTPUT'], | |
None) | |
print('Cleaning') | |
cleanminarea = 10 | |
cleanthreshold = 1 | |
outputs = processing.runalg('grass7:v.clean', outputs_QGISMULTIPARTTOSINGLEPARTS_1['OUTPUT'], 0, cleanthreshold, extent, cleanthreshold, cleanminarea, None, None) | |
QgsApplication.exitQgis() | |
QApplication.exit() | |
print(outputs) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment