Импорт модулей GRASS и SAGA в скрипт Python

13

Я новичок в этом. Я "собираю" плагин Python для qgis и хочу импортировать модули из GRASS и SAGA, но я не понимаю, как это сделать. Плагин, который я хочу импортировать, это интерполяция Кригинга из 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)

Когда я бегу, я получаю изображение tiff, но ни с чем. Файл .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 обработки.

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

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

Jakob
источник
Ваш ответ был очень полезным. Благодарю. Итак, если я создаю скрипт Python из модели sextante, я могу включить этот код в свой плагин?
Барбара Дуарте
Да, код работает в плагине тоже.
Якоб
Когда я запускаю код, он выдает мне сообщение «AttributeError: класс Processing не имеет атрибута runalg». Почему? Я импортирую обработку.
Барбара Дуарте
Я знаю ответ на мой вопрос. В моей версии QGIS у меня есть функция runAlgorithm вместо runalg. Теперь это работает нормально. Спасибо.
Барбара Дуарте