კოორდინატების კონვერტაცია - Coordinate conversion¶
კოორდინატები ხშირად გვხვდება ორ ფორმატში:
- DMS - Degrees, Minutes, Seconds (გრადუსები, წუთები, წამები)
- DD - Decimal Degrees (მეათედი გრადუსები)
ამ გვერდზე ნახავ ორივე მიმართულებით კონვერტაციის ფუნქციებს, ტექსტიდან კოორდინატის ამოკითხვას, სიის დამუშავებას და QGIS-ში გამოყენებას.
კოორდინატების თანმიმდევრობა
ყოველთვის გაითვალისწინე თანმიმდევრობა. ადამიანი ამბობს "განედი, გრძედი" (lat, lon), ხოლო QGIS-ში QgsPointXY(x, y) ნიშნავს QgsPointXY(გრძედი, განედი).
1) DMS → DD¶
ფორმულა:
[ \text{DD} = d + \frac{m}{60} + \frac{s}{3600} ]
სამხრეთ და დასავლეთ ნახევარსფეროში DD უარყოფითია (N/E = +, S/W = −).
მაგალითი: Kotia Cave, Chiatura-Perevisa-Sveri-Tvalueti-Gezruli, Georgia.
კოორდინატები Google Earth-იდან
42°12'47.83"N 43°19'27.72"E > 42.213286° 43.324367°
2) DD → DMS¶
წამების დამრგვალება
თუ ჯერ გრადუსებს, მერე წუთებს და ბოლოს წამებს ცალ-ცალკე დავთვლით, დამრგვალებისას შეიძლება მივიღოთ 59.99999 ან 60.0 წამი. ამიტომ ზემოთ ფუნქცია ჯერ ყველაფერს წამებში გადაიყვანს და მხოლოდ მერე ყოფს.
3) DMS ტექსტიდან DD¶
Google Maps-დან ან დოკუმენტიდან კოორდინატი ხშირად ტექსტად გვაქვს, მაგალითად 42°12'47.83"N. რეგულარული გამოსახულებით შეგვიძლია პირდაპირ გადავიყვანოთ DD-ში.
parse_dms() იყენებს პირველ განყოფილებაში აღწერილ dms_to_dd() ფუნქციას, ამიტომ ორივე ერთ სესიაში გაუშვი.
4) სიის კონვერტაცია და CSV-ში შენახვა¶
ერთი წერტილის ნაცვლად ხშირად მთელი სია გვაქვს. ქვემოთ ყოველი წერტილი ინახება სახელით, განედით და გრძედით. შედეგი ისე იწერება, რომ QGIS-მა პირდაპირ გახსნას.
შედეგი converted_coordinates.csv:
5) QGIS-ში გამოყენება¶
CSV-ის გახსნა წერტილებად¶
| csv_to_layer.py | |
|---|---|
თუ შრე ფაილად გვინდა (Shapefile ან GeoPackage), იხილე შრის შექმნა CSV-დან.
გადაყვანა სხვა საკოორდინატო სისტემაში¶
გეოგრაფიული კოორდინატები (EPSG:4326) საქართველოში ხშირად უნდა გადავიყვანოთ პროექციულ სისტემაში, მაგალითად EPSG:32638 (UTM 38N).
Field Calculator-ში¶
QGIS-ს DD → DMS გარდასაქმნელად ჩაშენებული ფუნქცია აქვს:
-- განედი DMS ფორმატში
to_dms(y($geometry), 'y', 2)
-- გრძედი DMS ფორმატში
to_dms(x($geometry), 'x', 2)
-- მეათედი გრადუსები
x($geometry) -- longitude
y($geometry) -- latitude
შენიშვნა
ფუნქცია to_dms() მუშაობს გეოგრაფიულ კოორდინატებზე. თუ შრე პროექციულ სისტემაშია, ჯერ გადაიყვანე transform($geometry, 'EPSG:32638', 'EPSG:4326')-ით.
🗺️ დიაგრამა¶
flowchart TD
A["📍 Input Coordinates"] --> B["DMS (Degrees, Minutes, Seconds)"]
A --> C["DD (Decimal Degrees)"]
B -->|Formula: d + m/60 + s/3600| C
C -->|Extract deg, min, sec| B
C --> D["Use in GIS / GeoJSON (lon, lat)"]
B --> E["Manual entry (N/S/E/W)"]
style A fill:#f0f0f0,stroke:#555,stroke-width:1px
style B fill:#ffe0cc,stroke:#d96,stroke-width:1px
style C fill:#e0f7ff,stroke:#09c,stroke-width:1px
style D fill:#d4f8d4,stroke:#080,stroke-width:1px
style E fill:#fff7cc,stroke:#aa0,stroke-width:1px
✅ დავალება¶
- მოძებნე შენი სკოლის კოორდინატები Google Maps-ზე (DMS ფორმატში).
- გადაიყვანე DD ფორმატში
parse_dms()ფუნქციით. - ჩაწერე CSV-ში
Name, lat, lonსვეტებით. - ჩატვირთე QGIS-ში
Add Delimited Text Layer-ით ანcsv_to_layer.pyსკრიპტით და შეამოწმე რუკაზე. - დამატებით: გადაიყვანე წერტილი
EPSG:32638-ში და შეადარე მიღებული X, Y მნიშვნელობები QGIS-ისIdentifyხელსაწყოს შედეგს.