Імпортуйте модулі GRASS та SAGA в сценарій python


13

Я новачок у цьому. Я "будую" плагін python для qgis і хочу імпортувати модулі з GRASS і SAGA, але я не розумію, як це зробити. Плагін, який я хочу імпортувати - це інтерполяція Kriging від SAGA або v.surf.idw від GRASS або інтерполяційний плагін від Raster qgis. Я хочу, щоб метод інтерполяції перетворив точки в сітку.

Можеш допомогти мені?


У мене є ще одне сумнів.

Я запускаю ці рядки у своєму коді:

vectorlayer_vector =  ftools_utils.getVectorLayerByName(inputLayer)
Elevation = self.lineAttrib.currentText()
cellSize = int(self.linePix.value())
outPath = self.inputLayerCombo3.text()
output = ftools_utils.getRasterLayerByName(outPath) 

Processing.runAlgorithm("saga:shapestogrid", vectorlayer_vector, Elevation, 0, 0, 4, None, cellSize, output)

Коли я біжу, я отримую виразний образ, але ні з чим. Файл .aux не створений, і коли я намагаюся відкрити створене зображення tiff, з'являється це повідомлення:

c: ... teste3.tif не підтримується растровим джерелом даних

Отже, я гадаю, що вихід неправильний. Що мені потрібно зробити, щоб отримати правильний вихід? Чого мені не вистачає?

Відповіді:


15

Рамка обробки в QGIS може викликати ці функції безпосередньо з Python.

З консолі QGIS Python:

>>>import processing
>>>outputs_0=Processing.runalg("saga:ordinarykriging", vectorlayer_pointtable, z, True, 0, 0, True, 100, True, 0.0, 10.0, 100.0, 1.0, 0.1, 1, 0.5, 1000.0, 4, 20, 1.0, True, None, None, None)
>>>outputs_1=Processing.runalg("grass:r.surf.idw", outputs_0['GRID'], 12, True, None, 0.0, None)

Якщо ви будуєте його як модель в рамках Processing Framework, ви можете зберегти цю модель як сценарій Python. Він дає вам своєрідний конструктор GUI для обробки функції runalg.

Модель обробки

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


Ваша відповідь була дуже корисною. Спасибі. Отже, якщо я створюю сценарій Python із моделі sextante, я можу включити цей код у свій плагін?
Барбара Дуарте

Так, код працює і в плагіні.
Якоб

Коли я запускаю код, він видає мені це повідомлення "AttributeError: class Processing не має атрибута" runalg "". Чому? Я імпортую обробку.
Барбара Дуарте

Я знаю відповідь на моє запитання. У моїй версії QGIS у мене функція runAlgorithm замість runalg. Зараз це прекрасно працює. Дякую.
Барбара Дуарте
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.