จนกว่าฉันจะได้รับวิธีการทั่วไปในการทำมันฉันจะบอกวิธีแก้ปัญหาให้คุณ
ฉันใช้ปลั๊กอินการประมวลผลเวอร์ชั่น 2.2.0-2 (ฉันแนะนำให้คุณใช้เวอร์ชั่นนี้) ซึ่งติดตั้งใน/home/germap/.qgis2/python/plugins/
คอมพิวเตอร์ของฉัน คุณต้องทราบตำแหน่งโฟลเดอร์นี้เนื่องจากคุณนำเข้าโมดูลการประมวลผลจากที่นั่น
เนื่องจากคุณรู้จักผู้ให้บริการ ( qgis
) และอัลกอริทึม ( explodelines
) คุณสามารถดูที่/home/germap/.qgis2/python/plugins/processing/algs/qgis/
จะใช้ชื่อสคริปต์บรรทัดระเบิด: Explode.py
ข้อมูลนี้ช่วยให้คุณสามารถนำเข้าอัลกอริทึมไปยังสคริปต์ Python แบบสแตนด์อโลนได้โดยตรง
ดังนั้นเปิดคอนโซล Python และคัดลอกสคริปต์ต่อไปนี้ (ฉันใช้ GNU / Linux ดังนั้นตัวแปรสภาพแวดล้อมจะถูกตั้งค่าตามค่าเริ่มต้นทำให้ฉันสามารถนำเข้า qgis และ PyQt4 ไลบรารี่ได้อย่างรวดเร็ว):
# Prepare the environment
import sys
from PyQt4.QtGui import *
from qgis.core import *
app = QApplication([])
QgsApplication.setPrefixPath("/usr", True)
QgsApplication.initQgis()
# Tell Python where you will get processing from
sys.path.append('/home/germap/.qgis2/python/plugins')
# Reference the algorithm you want to run
from processing.algs.qgis.Explode import *
alg = Explode()
# Set input and output
inLayer = QgsVectorLayer('/home/user/data/in.shp', 'input', 'ogr')
outLayer = '/home/user/data/out.shp'
alg.setParameterValue('INPUT', inLayer)
alg.setOutputValue('OUTPUT', outLayer)
# Run the algorithm
from processing.core.SilentProgress import SilentProgress
progress = SilentProgress()
alg.processAlgorithm(progress)
หากคุณไม่ได้รับข้อความแสดงข้อผิดพลาด เลเยอร์เอาต์พุตถูกบันทึกในพา ธ เอาต์พุตที่คุณระบุ ( /home/user/data/out.shp
)
หมายเหตุ: เกี่ยวกับวิธีทั่วไป (เช่นการเรียกอัลกอริทึมตามชื่อ) ฉันพบปัญหาบางอย่างที่ฉันต้องแก้ไขก่อนโพสต์ ทันทีที่ฉันไปทำงานฉันจะโพสต์
import processing
ฉันคิดว่าคุณต้องใช้