Daha çox

QGIS: joinattributesbylocation boş şəkil faylları verir və QGIS: joinbylocation bütün sahələrin xülasəsini vermir

QGIS: joinattributesbylocation boş şəkil faylları verir və QGIS: joinbylocation bütün sahələrin xülasəsini vermir


Şəhərlərə görə siyahıyaalma yollarının bir çox dəyişəninin (100+ sütun) orta dəyərini hesablamaq üçün məkan birləşməsi etməyə çalışıram. Bunu etmək üçün, QGIS Desktop -da, məkan birləşməsini işlədərdim (atributları yerə görə birləşdirin). Mən etdim və işlədi. Bununla birlikdə, prosesi avtomatlaşdırmalı və "emal" əmr satırını istifadə etməliyəm ("processing.runalg ...").

QGIS -də çətin olsa belə, aşağıdakı sətirlə əmr satırında işləməlidir: processing.runalg ("qgis: joinattributesbylocation", qonaqlarPath, censusPath, "['kəsişir']", 1, "ortalama", 0, layerOutput) proses işləyir, ancaq boş bir şəkil faylı verir (1kb ölçü).

Bir çox yazıda təklif olunduğu kimi (Niyə "Atributları məkana görə birləşdirin" bir modeldə istifadə edildikdə məbləğləri hesablaya bilmir?) Və (Python skriptindən işləməyən QGIS Atributları Məkana görə), mən emalı v.2.2.0 -a endirdim və istifadə etdi birləşməyə qoşulun, nəticə yalnız mənə qoşulmuş şəkil sənədimin ilk sütunu üçün statistikanı verir və məndə olan 100+ sütun üçün deyil. İstifadə etdiyim xətt budur: processing.runalg ("qgis: joinbylocation", qonaqlarPath, censusPath, 1, 'ortalama', 0,1, layerOutput)

Biriniz bu problemlə qarşılaşdı və uğurla həll etdi, bilmirəm. (p.s. Qenerasiya -nın bütün versiyalarını sınadım) Ümid edirəm kimsə mənə kömək edə bilər! (Bu, stackexchange haqqında ilk sualımdır, inşallah kifayət qədər yaxşı tərtib edilmişdir)

Həmçinin, qgis: extractbylocation da naməlum səbəbdən boş şəkil faylları verir ... Yəni səbəb hər iki halda eyni ola bilər.

Bütün fayllar WGS84 CRS -dədir

İşdə istifadə etdiyim kod budur:

qgis.core -dan idxal sys idxal * PyQt4.QtGui -dən idxal * os idxal gəzinti tətbiqindən = QApplication ([]) QgsApplication.setPrefixPath ("C:/OSGEO4 ~ 1/apps/qgis", True) QgsApplication.initQgis ( ) sys.path.append (r'C:  OSGeo4W64  apps  qgis  python  plugins ') ogr2ogr = r "C:  OSGeo4W64  bin  ogr2ogr.exe" emalını process.core.Processing Import Processing Processing. initialize () Processing.updateAlgsList () qonşularıPath = r "C:  Users  JoeNavut  Desktop  tests  wgs84  corrected_geom  calgary.shp" #PATH to CONSYOR FILE censusPath = r "C:  Users  JoeNavut  Desktop  tests  wgs84  corrected_geom  censusData.shp "#SAYIM DOSYASINA YOL #qatOutput = qonşularPath.replace (". shp "," _Criteria.shp ") layerInput = QgsVectorLayer (кошуналарPath," file_to_calculate "," ogr ") censusInPortSP) , "file_for_calc", "ogr") print layerInput.isValid () çap censusInput.isValid () cəhd edin: processing.runalg ("qgis: joinattributesbylocation", qonaqlarPath, censusPath, "['kəsişir']", 1, "orta" , 0, yat erOutput) yazdır "Kriterlər hesablamaları tamamlandı" istisna olmaqla: çap "Kriteriya hesablamaları uğursuz oldu" QgsApplication.exitQgis () QApplication.exit ()

QGIS -də cədvəlin yaradıldığını, ancaq boş olduğunu görürük ...


Vəziyyətinizi dəyişdirməyə çalışın"['kəsişir']"sənin emal. runalg -ə qədər xəttqovşaqlar 'əvəzinə:

processing.runalg ("qgis: joinattributesbylocation", qonşularPath, censusPath, u'intersects ', 1, "mean", 0, layerOutput)

Daha əvvəl bu problemlə qarşılaşdım, bunu sınadım və QGIS 2.10.1-Pisa ilə işləyirəm; İşlənilir versiya 2.10.2.

Ümid edirəm kömək edər!


Videoya baxın: QGIS - Join Attributes By Location