🔤 ატრიბუტული ველების ტიპები — Shapefile და GeoPackage¶
ვექტორული შრის ატრიბუტული ცხრილი (attribute table) ცხრილის მსგავსად შედგება ველებისგან (fields / columns) და ჩანაწერებისგან (records / rows). თითოეულ ველს აქვს მონაცემთა ტიპი (data type), რომელიც განსაზღვრავს, თუ რა სახის მნიშვნელობის შენახვა შეიძლება ამ ველში — მთელი რიცხვი, ათწილადი, ტექსტი, თარიღი და ა.შ.
მნიშვნელოვანია
ველის ტიპი და მისი შეზღუდვები დამოკიდებულია ფაილის ფორმატზე. ერთი და იგივე მონაცემი Shapefile-ში და GeoPackage-ში სხვადასხვაგვარად ინახება. სწორი ფორმატის და ტიპის არჩევა თავიდან გვარიდებს მონაცემების დაკარგვას ან დამახინჯებას (მაგ. თარიღიდან საათის მოცილება, ტექსტის შემოკლება, ველის სახელის დაკვეცა).
📊 საბაზისო მონაცემთა ტიპები (თეორია)¶
| ტიპი | აღწერა | მაგალითი |
|---|---|---|
| Integer / int | მთელი რიცხვი (ათწილადის გარეშე) | 42, -7, 2025 |
| Integer64 / bigint | დიდი მთელი რიცხვი (64-ბიტიანი) | 9000000000 |
| Real / Double / Float | ათწილადი (მცურავწერტილიანი) რიცხვი | 3.14, -0.5, 1250.75 |
| String / Text | ტექსტური მნიშვნელობა | "გზა", "Tbilisi" |
| Date | თარიღი (წელი-თვე-დღე) | 2025-07-10 |
| DateTime | თარიღი + დრო | 2025-07-10 14:30:00 |
| Boolean | ლოგიკური მნიშვნელობა | True / False |
Integer vs Double
- Integer — მთელი რიცხვი, არ ინახავს ათწილადს (
5, არა5.0). - Double / Float — ინახავს ათწილად ნაწილს (
5.75).Double(64-ბიტი) უფრო ზუსტია ვიდრეFloat(32-ბიტი). - თუ ფართობს ან სიგრძეს ინახავ — გამოიყენე Double; თუ ობიექტების რაოდენობას ან ID-ს — Integer.
🗂️ Shapefile-ის ველების ტიპები (.dbf)¶
Shapefile-ში ატრიბუტები ინახება .dbf (dBASE) ფაილში. ეს ძველი ფორმატია და მას აქვს მკაცრი შეზღუდვები.
მხარდაჭერილი ტიპები¶
| dBASE კოდი | QGIS-ის სახელი | აღწერა | შეზღუდვა |
|---|---|---|---|
C |
Text (string) | ტექსტი | მაქს. 254 სიმბოლო |
N |
Integer (32 bit) | მთელი რიცხვი | სიგანე ≤ 10 ციფრი (int32) |
N |
Integer64 (64 bit) | დიდი მთელი რიცხვი | სიგანე ≤ 18–20; ზუსტად ინახება არასაიმედოდ |
N/F |
Real / Double | ათწილადი რიცხვი | სიგანე + სიზუსტე (მაქს. ~15 მნიშვნელოვანი ციფრი) |
D |
Date | თარიღი | ფორმატი YYYYMMDD, მხოლოდ თარიღი |
L |
Boolean | ლოგიკური (T/F) | 1 სიმბოლო |
❗ Shapefile-ის მთავარი შეზღუდვები¶
- 🏷️ ველის სახელი — მაქსიმუმ 10 სიმბოლო. გრძელი სახელი ავტომატურად იკვეცება (
temperature→temperatur), რამაც შეიძლება გამოიწვიოს დუბლიკატები. - ✂️ ტექსტი — მაქსიმუმ 254 სიმბოლო. უფრო გრძელი ტექსტი იკვეცება (truncate).
- ⏰ არ არსებობს
DateTimeანTimeტიპი. მხოლოდDate(თარიღი). დროის კომპონენტი იკარგება. - 🔢
Integer64სრულად არ არის მხარდაჭერილი — ძალიან დიდი რიცხვები შეიძლება დაზიანდეს ანReal-ად გადავიდეს. - 🈳
NULL(ცარიელი) მნიშვნელობის სუსტი მხარდაჭერა — ცარიელი ველი ხშირად ინახება როგორც0ან ცარიელი ტექსტი. - 🌍 კოდირების პრობლემები — ქართული/უნიკოდის ტექსტისთვის საჭიროა სწორი
.cpgფაილი (UTF-8), თორემ ტექსტი დამახინჯდება. - 📐 ერთი გეომეტრიის ტიპი ერთ ფაილში (Point / Line / Polygon — ცალ-ცალკე).
ტიპური შეცდომა
თუ ველში ინახავ თარიღსა და დროს (2025-07-10 14:30) Shapefile-ში, დრო დაიკარგება — შენახული იქნება მხოლოდ 2025-07-10. ასეთ შემთხვევაში გამოიყენე GeoPackage.
📦 GeoPackage-ის ველების ტიპები (.gpkg)¶
GeoPackage (.gpkg) თანამედროვე, ღია (OGC) ფორმატია, აგებული SQLite მონაცემთა ბაზაზე. მას ბევრად უფრო მდიდარი და მოქნილი ტიპების სისტემა აქვს ვიდრე Shapefile-ს.
მხარდაჭერილი ტიპები¶
| GeoPackage ტიპი | დიაპაზონი / აღწერა | QGIS-ის ეკვივალენტი |
|---|---|---|
BOOLEAN |
0 / 1 (true/false) |
Boolean |
TINYINT |
8-ბიტიანი მთელი (−128…127) | Integer |
SMALLINT |
16-ბიტიანი მთელი | Integer |
MEDIUMINT |
32-ბიტიანი მთელი | Integer (32 bit) |
INTEGER / INT |
64-ბიტიანი მთელი | Integer64 (64 bit) |
FLOAT |
32-ბიტიანი ათწილადი | Real (float) |
DOUBLE / REAL |
64-ბიტიანი ათწილადი | Real (double) |
TEXT / TEXT(n) |
ტექსტი (შეზღუდვის გარეშე ან მაქს. n) |
Text |
DATE |
თარიღი YYYY-MM-DD |
Date |
DATETIME |
თარიღი + დრო (ISO 8601, დროის სარტყელით) | DateTime |
BLOB |
ბინარული მონაცემი (მაგ. სურათი) | Binary |
✅ GeoPackage-ის უპირატესობები Shapefile-თან შედარებით¶
- 🏷️ ველის სახელს არ აქვს 10-სიმბოლიანი ლიმიტი.
- 📝 ტექსტი პრაქტიკულად შეზღუდვის გარეშე (254 სიმბოლოს ლიმიტი აღარ არსებობს).
- ⏱️ სრული
DateTimeმხარდაჭერა — თარიღი, დრო და დროის სარტყელი (timezone) ინახება. - 🔢 ნამდვილი 64-ბიტიანი
Integer64მხარდაჭერა. - 🈳
NULL-ის სრული მხარდაჭერა (ცარიელი ≠ ნული). - 🌍 UTF-8 კოდირება ჩაშენებულია — ქართული ტექსტი უპრობლემოდ ინახება.
- 🗃️ ერთ ფაილში მრავალი შრე (და მრავალი გეომეტრიის ტიპი) — Shapefile-ისგან განსხვავებით.
- 📁 ერთი ფაილი
.shp/.shx/.dbf/.prj/.cpg-ის ნაცვლად.
⚖️ Shapefile vs GeoPackage — ველების შედარება¶
| მახასიათებელი | 🗂️ Shapefile (.dbf) |
📦 GeoPackage (.gpkg) |
|---|---|---|
| ველის სახელის სიგრძე | ≤ 10 სიმბოლო | პრაქტიკულად შეუზღუდავი |
| ტექსტის სიგრძე | ≤ 254 სიმბოლო | შეუზღუდავი / TEXT(n) |
| Integer (32 bit) | ✅ | ✅ (MEDIUMINT) |
| Integer64 (64 bit) | ⚠️ არასაიმედო | ✅ (INTEGER) |
| Real / Double | ✅ | ✅ (DOUBLE) |
| Date (თარიღი) | ✅ | ✅ |
| DateTime (თარიღი+დრო) | ❌ | ✅ |
| Boolean | ✅ (L) |
✅ (BOOLEAN) |
| Binary / BLOB | ❌ | ✅ |
| NULL მნიშვნელობა | ⚠️ სუსტი | ✅ სრული |
| UTF-8 (ქართული) | ⚠️ .cpg-ზეა დამოკიდებული |
✅ ჩაშენებული |
| ფაილების რაოდენობა | მინ. 3 (.shp/.shx/.dbf) |
1 (.gpkg) |
რეკომენდაცია
ახალი პროექტებისთვის გამოიყენე GeoPackage — მას არ აქვს Shapefile-ის შეზღუდვები (ველის სახელი, ტექსტის სიგრძე, თარიღი+დრო). Shapefile დატოვე მხოლოდ თავსებადობისთვის (მაგ. ძველ პროგრამებთან გაცვლისას).