GRASS 및 SAGA 모듈을 Python 스크립트로 가져 오기


13

나는 이것에 새로운입니다. qgis 용 python 플러그인을 "빌드"하고 GRASS 및 SAGA에서 모듈을 가져오고 싶지만 어떻게해야하는지 모르겠습니다. 가져 오려는 플러그인은 SAGA의 Kriging 보간 또는 GRASS의 v.surf.idw 또는 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의 프로세싱 프레임 워크는이 함수를 파이썬에서 직접 호출 할 수 있습니다.

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 스크립트로 저장할 수 있습니다. runalg 처리를위한 일종의 GUI 빌더를 제공합니다.

처리 모델

여기에 이미지 설명을 입력하십시오


당신의 대답은 매우 도움이되었습니다. 감사. 그렇다면 sextante 모델에서 Python 스크립트를 만들면 해당 코드를 플러그인에 통합 할 수 있습니까?
Bárbara Duarte

예, 코드도 플러그인에서 실행됩니다.
야콥

코드를 실행하면 "AttributeError : class Processing에 'runalg'속성이 없습니다."라는 메시지가 표시됩니다. 왜? 처리를 가져옵니다.
Bárbara Duarte

내 질문에 대한 답을 알고 있습니다. 내 QGIS 버전에는 runalg 대신 runAlgorithm 함수가 있습니다. 이제 이것은 잘 작동합니다. 감사합니다.
바바라 두 아르테
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.