Daha çox

Atributlar cədvəlini bir giriş qatından başqa bir təbəqəyə python istifadə edərək unikal id ilə necə birləşdirmək olar


Attibute dəyərləri ilə bir giriş qatım var və giriş qatının atribut cədvəlini python istifadə edərək unikal dəyərlərlə digər təbəqəyə qatmaq istədim. gis.stackexchange.com/questions/89706/how-to-merge-shape-files-with-attributes-from-a-python-script-in-qgis Bu keçid xüsusiyyətləri və atributları əl ilə birləşdirmək barədə məlumat verir. . amma attribut masalarına qoşulmaq istəyirəm. Python istifadə edərək bunu necə edə bilərəm?


İki qatınızı bu şəkildə birləşdirə bilərsiniz:

# Giriş və hədəf təbəqələrini əldə edin targetLyr = iface.mapCanvas (). Qat () [1] # ToC-dən ikinci qat inLyr = iface.mapCanvas (). Qat () [0] # ToC-dən ilk qat # Set xüsusiyyətlərindən qoşulma targetField = "myTargetField" inField = "myInputField" joinObject = QgsVectorJoinInfo () joinObject.joinLayerId = inLyr.id () joinObject.joinFieldName = inField joinObject.targetFieldName = targetField targetLoJo

EDİT: QGIS-ə qatlarınızı yükləməmisinizsə, onlara bu şəkildə bir qovluqdan daxil ola bilərsiniz:

targetLyr = QgsVectorLayer ('/ path / to / layer1.shp', 'Layer 1', 'ogr') # Hesab edirəm ki, Shapefiles inLyr = QgsVectorLayer ('/ path / to / layer2.shp', 'Layer 2', 'ogr') # ToC-dən ilk qat

Bir həll istifadə etmək istəyirsinizsəemalQGIS-də forma sənədlərini python skriptindən atributlarla necə birləşdirmək olar? (gcarillo həllində olmadan):

1) Ən asan həll yolu alət qutusundan axtarılan alqoritmi işə salmaq və baxmaqdır/… /.Qgis2/processing/processing.logfayl. Son sətirlər həllini verir:

ALGORITHM | Pazartesi 27 Tem 2015 16: 29: 33 | processing.runalg ("qgis: joinattributesbylocation", "/ Users / Shared / test.shp", "/ Users / Shared // test2.shp", "['intersects' , 'ehtiva edir', 'bərabərdir', 'üst-üstə düşür', 'daxilində'] ", 0," cəmi, orta, min, max, median ", 1, Yoxdur)

2) İzahat üçün konsoldan işləmə alqoritmlərinin istifadəsinə baxın:

idxal emalı processing.alglist ("qoşulmaq") Atributları məkana görə qoşulun --------------------------> qgis: joinattributesbylocation Atributlar cədvəlinə qoşulun --- -----------------------------> qgis: joinattributestable

və parametrlər üçün:

processing.alghelp ("qgis: joinattributesbylocation")… processing.alghelp ("qgis: joinattributestable")…

Bir nümunə və QGIS-də (və ya Tercihen Python) Overlay Analizindəki şərhlərlə


Videoya baxın: Sirdaş anons (Oktyabr 2021).