შიგთავსზე გადასვლა

📝 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