📝 PyQGIS — პრაქტიკული დავალებები¶
ამ განყოფილებაში თავმოყრილია სტუდენტებისთვის განკუთვნილი პრაქტიკული დავალებები. ყველა ოპერაცია უნდა შესრულდეს PyQGIS-ით (QGIS-ის Python კონსოლში).
| # | დავალება | თემები |
|---|---|---|
| 1 | დავალება 1 | შრის შექმნა, ველების წაშლა, ფართობი/პერიმეტრი, დუბლიკატები |
| 2 | დავალება 2 | მონიშვნა და წაშლა, მოჭრა, DMS → ათწილადი, სიგრძეები |
| 3 | დავალება 3 | ველის დამატება, გაერთიანება, UTM კოორდინატები, რელიეფი |
| 4 | დავალება 4 | ფილტრი, გეომეტრიის გარდაქმნა, შრის შექმნა, კოორდინატების კონვერტაცია |
| 5 | დავალება 5 | რასტრის სტატისტიკა, რეკლასიფიკაცია, ჰისტოგრამა, იზოხაზები |
📋 ზოგადი წესები¶
- საქაღალდეს დაარქვით თქვენი სახელი და გვარი, მაგ.
Giorgi_Kapanadze_task1. - არქივების, საქაღალდეების, ფაილების, ცხრილის სვეტების, ცვლადების, ფუნქციებისა და კლასების სახელებში გამოიყენეთ მხოლოდ ლათინური ასოები და ქვედა ტირე. ქართული ასოები და სხვა სიმბოლოები აკრძალულია.
- შრეების, სვეტებისა და გამოსავალი საქაღალდეების სახელები (სადაც პირობაში არ არის მითითებული) თავად აირჩიეთ GIS-ის ფაილური ორგანიზების პრინციპებით.
- სკრინშოტი გადაიღეთ მთლიანი ეკრანის (Snipping Tool). კლასში ატვირთეთ მხოლოდ სკრინშოტები.
- უნივერსიტეტის კომპიუტერებზე იმუშავეთ
C:\Users\Public\ანC:\Users\Public\Documentsსაქაღალდეში. - ყველა ოპერაცია დაწერეთ PyQGIS-ით და კოდის სკრინშოტები შეინახეთ
screenshotსაქაღალდეში.
📦 მონაცემები¶
დავალებების მონაცემები განთავსდება საქაღალდეში
sample_data/practice.
თითოეული დავალების გვერდზე მითითებულია საჭირო ფაილები.
რელიეფის მოდელი srtm_45_04.tif (24 MB) ცალკე, GitHub Release-იდან ჩამოიტვირთება. დანარჩენი ფაილები shared/ და task_04/ საქაღალდეებშია.
💡 ამოხსნები¶
ყოველი ამოცანის ქვეშ არის დაკეცილი ბლოკი „ამოხსნა". ჯერ სცადეთ დამოუკიდებლად და ბლოკი გახსენით მხოლოდ შემდეგ. ამოხსნებში ბილიკები და სვეტების სახელები ილუსტრაციისთვისაა; მოარგეთ თქვენს მონაცემებს.
ზოგადი დამხმარე კოდი (გამოიყენება ყველა დავალებაში)
from qgis.core import *
import processing
base = r'C:/Users/Public/Documents/practice' # თქვენი სამუშაო საქაღალდე
def save_shp(layer, path):
"""ინახავს შრეს Shapefile-ად (UTF-8)."""
opts = QgsVectorFileWriter.SaveVectorOptions()
opts.driverName = 'ESRI Shapefile'
opts.fileEncoding = 'UTF-8'
res = QgsVectorFileWriter.writeAsVectorFormatV3(
layer, path, QgsProject.instance().transformContext(), opts)
return res[0] == QgsVectorFileWriter.NoError