QGIS-ში შრის მონიშვნა და შერჩევა PyQGIS-ით¶
განმარტებები¶
iface— QGIS-ის GUI ინტერფეისისთვის (QGIS Python Console / Plugins).QgsProject— მიმდინარე პროექტის მართვა (გაფართოება, შრეთა წაკითხვა).-
processing— QGIS-ის ხელსაწყოების ნაკრები; მონიშვნებისqgis:selectbyattribute,native:selectbylocationდა სხვ. -
writer - ის წაშლა აუცილებელია. განმარტება ჩასამატებელია.
- ამ თემის კოდებში მოცემულია როგორც დირექტორიიდან წაკითხვა შრის და ისე მისი ობიექტების შერჩევა, ასევე პროექტში უკვე დამატებულის მოძებნა, გააქტიურება და ოპერაციის განხორციელება.
მონიშვნის ოპერატორები გამოიყენება selectbyattribute ფუნქციაში. ისინი განსაზღვრავენ ლოგიკურ შედარებას ველის მნიშვნელობასთან.
| კოდი | ოპერატორი | აღწერა | მაგალითი SQL-ში |
|---|---|---|---|
| 0 | = | ტოლია | DISTR_ENG = 'Oni' |
| 1 | ≠ | არ უდრის | DISTR_ENG ≠ 'Poti' |
| 2 | > | მეტია | Area > 1000000 |
| 3 | >= | მეტი ან ტოლი | Area >= 1000000 |
| 4 | < | ნაკლებია | Area < 1000000 |
| 5 | <= | ნაკლები ან ტოლი | Area <= 1000000 |
| 6 | begins with | იწყება...-ით | DISTR_ENG begins with 'O' |
| 7 | contains | შეიცავს | DISTR_ENG contains 'ani' |
| 8 | is null | ცარიელია | DISTR_ENG is null |
| 9 | is not null | არ არის ცარიელი | DISTR_ENG is not null |
| 10 | does not contain | არ შეიცავს | DISTR_ENG does not contain 'ani' |
ინტერაქტიული მონიშვნის მეთოდები¶
ინტერაქტიული მონიშვნის მეთოდები განსაზღვრავს, როგორ მოქმედებს ახალი შერჩევა არსებულზე.
| კოდი | მეთოდი | აღწერა |
|---|---|---|
| 'METHOD':0 | creating new selection | ქმნის ახალ შერჩევას (წინა შერჩევა იწმინდება) |
| 'METHOD':1 | adding to current selection | ამატებს ახალ ობიექტებს მიმდინარე შერჩევას |
| 'METHOD':2 | removing from current selection | აცილებს ობიექტებს მიმდინარე შერჩევიდან |
| 'METHOD':3 | selecting within current selection | შერჩევა მხოლოდ მიმდინარე შერჩევის ფარგლებში |
შრის წაკითხვა¶
| Read_layer | |
|---|---|
შრეში ყველა ობიექტის მონიშვნა — Select All¶
| select_all_features | |
|---|---|
მონიშნული ობიექტების ფერის შეცვლა
¶
| change_selection_color | |
|---|---|
შრეში ატრიბუტებით მონიშვნა¶
| select_object_with_selectbyattribute_tool | |
|---|---|
მოვნიშნოთ შრეში ყველა მუნიციპალიტეტი, გარდა ფოთისა.¶
| select_object_with_selectbyattribute_tool | |
|---|---|
ობიექტის გამოხატვით შერჩევა - Select By Expression¶
ტექსტური ტიპის მონაცემები¶
SQL - ში DISTR_ENG = 'Gardabani'¶
| select_object_with_selectbyattribute_tool | |
|---|---|
Info
ბრჭყალები ('') გამოიყენება ტექსტური მნიშვნელობებისთვის (სტრინგები), რადგან QGIS SQL-ში ასეა განსაზღვრული. \' არის ესკეიპი (escape sequence) Python-ში: რადგან მთლიანი გამოხატვა ერთ ციტატაშია ჩაკეტილი ("" ან ''), შიგნით მეორე ციტატის დასაწყებად/დასასრულებლად \' უნდა გამოიყენო, რომ Python-ნი არ შეცდეს და სწორად გაანალიზოს სტრინგი. თუ ესკეიპი არ იქნება, Python-ის პარსერი დაუშვებდა სინტაქსურ შეცდომას.
ობიექტის სივრცითი შერჩევა - Select By Location¶
დასამუშავებელია -¶
fn = r’D:\Location\Municipalitys.shp’
fn_sel = r’D:\Location\Settlments.shp'
fn_2 = r’D:\Location\ soxumi.shp’
processing.run("native:selectbylocation", \
{'INPUT':fn_sel, 'PREDICATE':[0], 'INTERSECT': fn_2, 'METHOD':0})
processing.run("native:selectbylocation", {'INPUT':fn_sel,'PREDICATE':[0],\
'INTERSECT':QgsProcessingFeatureSourceDefinition(fn, selectedFeaturesOnly=True, \
featureLimit=-1, geometryCheck=QgsFeatureRequest.GeometryAbortOnInvalid),'METHOD':0})
--
fn = r'C:\Users\Public\GIS\PyGK\tema_3\Georgia_municipalities.shp'
fn1 = r'C:\Users\Public\GIS\PyGK\tema_3\settlement.shp'
processing.run("native:selectbylocation", {'INPUT':fn1,'PREDICATE':[0],'INTERSECT':QgsProcessingFeatureSourceDefinition(fn, selectedFeaturesOnly=True, featureLimit=-1, geometryCheck=QgsFeatureRequest.GeometryAbortOnInvalid),'METHOD':0})
layer = iface.addVectorLayer(fn1, '', 'ogr')
რიცხვითი ტიპის მონაცემები¶
| select_object_selectByExpression | |
|---|---|