Daha çox

Python ilə 'emal' əldə edirsiniz?


QGIS xaricindəki Pythondakı partlayış xətləri funksiyasına bağımsız bir skriptdən daxil olmaq istəyirəm.

Onu istifadə etmək üçün hansı modulu yükləməliyəm?

Necə daxil ola bilərəm?emal?

qgis.core import * layerInput = QgsVectorLayer ('test.shp', 'test', 'ogr') processing.runalg ('qgis: explodlines', layerInput, 'temp.shp')

24.04.2018 YENİLƏNİB: Bunu QGIS v3.x-də necə edəcəyinizə burada baxın.


QGIS v2.x üçün

Nəhayət, bağımsız PyQGIS skriptləri vasitəsilə işləmə alqoritmlərinin düzgün işləməsini tapdı.

İşləmə plagin versiyası 2.2.0-2 istifadə edərək, aşağıdakı skripti sınaya bilərsiniz:

# PyQt4.QtGui-dən qgis.core import * -dan mühitin idxal syslərini hazırlayın * app = QApplication ([]) QgsApplication.setPrefixPath ("/ usr", True) QgsApplication.initQgis () # İşləmə çərçivəsini hazırlayın sys.path.append ('/home/user/.qgis2/python/plugins') # İşlənmənin yerləşdiyi qovluq.core.İthalat emalı İşlənmə Processing.initialize () from Processing.tools import * # Alqoritmi çalıştırın layerInput = QgsVectorLayer ('test .shp ',' test ',' ogr ') general.runalg (' qgis: explodlines ', layerInput,' temp.shp ') # QqApplication.exitQgis () QApplication.exit () tətbiqlərindən çıxın

Daha yeni Qenerasiya versiyalarının ünvanında ola bilər/ usr / share / qgis / python / plugins, buna görə istifadə etməyiniz lazım ola bilərsys.path.append ('/ usr / share / qgis / python / plugins')buna görə.

İş nümunəsini Hata: Alqoritmdə tapmadım, bu da Qgis-dev poçt siyahısı müzakirəsinə əsaslanır.


Bunu etmənin ümumi üsulunu işə salana qədər sizə bir həll yolu deyəcəyəm.

Quraşdırılmış İşləmə plagin versiyası 2.2.0-2 (bu versiyanı istifadə etməyinizi təklif edirəm) istifadə edirəm/home/germap/.qgis2/python/plugins/mənim kompüterimdə. Bu qovluq yerini bilməlisiniz, çünki işləmə modulunu oradan idxal edirsiniz.

Provayderi tanıdığınız üçün (qgis) və alqoritm (partlayış) baxa bilərsiniz/home/germap/.qgis2/python/plugins/processing/algs/qgis/partlayış sətirlərinin skript adını almaq:Explode.pyBu məlumatlar alqoritmi birbaşa Python bağımsız skriptinə idxal etməyə imkan verir.

Beləliklə, bir Python konsolunu açın və aşağıdakı skripti kopyalayın (GNU / Linux istifadə edirəm, buna görə mühit dəyişənləri varsayılan olaraq təyin olunur və qgis və PyQt4 kitabxanalarını bir meh içində idxal etməyə imkan verir):

# Ətraf mühitin idxal sistemlərini PyQt4.QtGui-dən qgis.core import * app = QApplication ([]) QgsApplication.setPrefixPath ("/ usr", True) QgsApplication.initQgis () saytından hazırlayın. Python-a haradan işləyəcəyinizi deyin. sys.path.append ('/ home / germap / .qgis2 / python / plugins') # Process.algs.qgis.Explode import * alg = Explode () -dan çalıştırmak istədiyiniz alqoritmə istinad edin Layer-də giriş və çıxışı seçin = QgsVectorLayer ('/ home / user / data / in.shp', 'input', 'ogr') outLayer = '/home/user/data/out.shp' alg.setParameterValue ('INPUT', inLayer) alg.setOutputValue ('OUTPUT', outLayer) # Alqoritmi Process.core.SilentProgress import SilentProgress progress = SilentProgress () alg.processAlgorithm (progress) işləyin

Səhv mesajları almırsınızsa, budur. Çıxış qatı göstərdiyiniz çıxış yolunda qeyd edildi (/home/user/data/out.shp)

Qeyd: Ümumi bir yolla (yəni alqoritmləri adla çağırmaq) gəldikdə, göndərmədən əvvəl həll etməli olduğum bəzi problemlər tapdım. İşə gətirən kimi göndərəcəm.