Nhập mô-đun GRASS và SAGA vào tập lệnh python


13

Tôi mới ở đây. Tôi đang "xây dựng" một plugin python cho qgis và tôi muốn nhập các mô-đun từ GRASS và SAGA nhưng tôi không hiểu làm thế nào để làm điều đó. Plugin tôi muốn nhập là nội suy Kriging từ SAGA hoặc v.surf.idw từ GRASS hoặc plugin nội suy từ Raster qgis. Tôi muốn một phương pháp nội suy để chuyển đổi các điểm trong lưới.

Bạn có thể giúp tôi được không?


Tôi có một nghi ngờ khác.

Tôi chạy các dòng này trong mã của tôi:

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)

Khi tôi chạy, tôi nhận được một hình ảnh tiff nhưng không có gì. Tệp .aux không được tạo và khi tôi cố mở hình ảnh tiff mà tôi đã tạo sẽ xuất hiện thông báo này:

c: ... teste3.tif không phải là nguồn dữ liệu raster được hỗ trợ

Vì vậy, tôi đoán rằng đầu ra là sai. Tôi phải làm gì để có được đầu ra chính xác? Những gì tôi thiếu?

Câu trả lời:


15

Khung xử lý trong QGIS có thể gọi các hàm này trực tiếp từ Python.

Từ bảng điều khiển Python của QGIS:

>>>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)

Nếu bạn xây dựng nó như một mô hình trong Khung xử lý, bạn có thể lưu mô hình đó dưới dạng tập lệnh Python. Nó cung cấp cho bạn một loại trình xây dựng GUI cho chức năng chạy bộ xử lý.

Mô hình gia công

nhập mô tả hình ảnh ở đây


Câu trả lời của bạn rất hữu ích. Cảm ơn. Vì vậy, nếu tôi tạo một tập lệnh Python từ mô hình sextante, tôi có thể kết hợp mã đó vào plugin của mình không?
Bárbara Duarte

Có, mã cũng chạy trong một plugin.
Jakob

Khi tôi chạy mã, nó sẽ gửi cho tôi thông báo này "AttributionError: class Xử lý không có thuộc tính 'runache'". Tại sao? Tôi nhập chế biến.
Bárbara Duarte

Tôi biết câu trả lời cho câu hỏi của tôi. Trong phiên bản QGIS của tôi, tôi có chức năng runAlacticm thay vì runache. Bây giờ điều này hoạt động tốt. Cảm ơn bạn.
Bárbara Duarte
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.