Shapefile

O harta vectoriala cu puncte, polilinii si pologoane
Dezvoltat deEsri
Tipul formatuluiGIS
Standard(e)Shapefile Technical Description

Shapefile-ul este un format de date vector geospațiale pentru software-ul Sistemelor informaționale geografice (GIS) . Este dezvoltat și reglementat de Esri ca o specificație deschisă mai ales pentru interoperabilitatea datelor între Esri și alte produse software GIS. [1] Acest format poate descrie spațial caracteristici vectoriale: puncte, linii și poligoane, reprezentând limite naturale, de exemplu, puțuri de apă, râuri și lacuri. Fiecare element are de obicei atribute care îl descriu, cum ar fi numele sau temperatura.

Prezentare generală

modificare

Shapefile-ul este un format digital de stocarea datelor vectoriale pentru geometria locației și atributele asociate cu aceasta. Acest format nu are capacitatea de a stoca informații topologice. Acest format a fost introdus cu ArcView GIS v2 la începutul anilor 1990. Acum este posibil să citiți și să scrieți seturi de date geografice folosind formatul de fișiere cu o mare varietate de software-uri.

Shapefile-ul stochează datele ca forme geometrice primitive, precum puncte, linii și poligoane. Aceste forme, împreună cu atributele de date care sunt legate de fiecare formă, creează reprezentarea datelor geografice. Termenul "shapefile" este destul de comun, dar formatul constă într-o colecție de fișiere cu un prefix comun, stocate în același director. Extensiile fișierelor obligatorii a acestui format sunt .shp, .shx și .dbf. Actualul shapefile se referă în mod specific la fișierul.shp , dar singur este incomplet pentru distribuire si folosire sunt necesare și celelalte fișiere. Software-uri GIS mai vechi se pot aștepta ca prefixul numelui fișierelor să fie limitat la opt caractere pentru a se conforma convenției DOS 8.3. Cu aplicațiile software moderne acceptă limitare este depasita.

Fișiere obligatorii
  • .shp - shape format (formatul formei); geometria entității.
  • .shx - shape index format; un indice de poziție a trăsăturilor geometrice pentru a permite căutarea rapidă înainte și înapoi
  • .dbf - tabelul de atribute (database format); atribute sub forma de tabel asociat cu entitate geometrica, în format dBase IV
Alte fișiere
  • .prj - descrierea proiecției cartografice, in limbajul de marcare WKT.
  • .sbn și .sbx - indice spațial al obiectelor
  • .fbn și .fbx - indice spațial al obiectelor care sunt read-only (numai pentru citirea datelor)
  • .ain și .aih - indice de atribut al câmpurilor active dintr-un tabel
  • .ixs - indice de geocodare pentru seturi de date de citire-scriere
  • .mxs - index de geocodare pentru seturile de date pentru citire-scriere (format ODB)
  • .atx - indice de atribut pentru fișierul .dbf sub forma shapefile.numeColoană .atx (ArcGIS 8 și versiuni ulterioare)
  • .shp.xml - metadate geospatiale în format XML, cum ar fi ISO 19115 sau alte scheme XML
  • .cpg - folosit pentru a specifica pagina de cod (numai pentru .dbf) pentru identificarea codificării caracterelor
  • .qix - o alternativă quadtree index spațial utilizat de MapServer și software-uri GDAL/OGR

În fiecare dintre fișierele .shp, .shx și .dbf, formele din fiecare fișier corespund reciproc în ordine (adică, prima înregistrare din fișierul .shp corespunde primei înregistrări din fișiere .shx și .dbf etc.). Fiserele .shp și .shx au diferite domenii cu diferite endianness-uri, practica cu acest format trebuie să fie făcuta cu atenție să respecte endianness fiecărui câmp și sa o trateze în mod corespunzător.

Fișierul Shapefile .shp

modificare

Fișierul principal (.shp) conține datele geometrice. Fișierul binar este format dintr-un singur antet cu lungime fixă urmat de una sau mai multe înregistrări cu lungime variabilă. Fiecare dintre înregistrările cu lungime variabilă include un antet de înregistrare și o componentă de conținut de înregistrare. O descriere detaliată a formatului fișierului este oferită în Descrierea tehnică a modelului ESRI. [1] Acest format nu trebuie confundat cu formatul sursei fontului AutoCAD, care împărtășește extensia tot .shp .

Ordinea pe axa 2D a datelor de coordonate presupune un sistem de coordonate carteziene, folosind ordinea (XY) sau (Est Nord). Această ordine de axe este consistentă pentru sistemele de coordonate geografice, unde ordinea este similară (latitudinea longitudinală). Geometria poate suporta 3 sau 4 dimensiuni Z, pentru elevație și valoare M, pentru și măsură (distanta). O dimensiune Z stochează elevarea fiecărei coordonate în spațiul 3D, unde poate fi folosită pentru analiză sau pentru vizualizarea geometriilor folosind grafică digitală 3D . Dimensiunea M este definită de utilizator, poate fi utilizată pentru diferite funcții, cum ar fi stocarea măsurilor de referință liniară sau timpul relativ al unei caracteristici în spațiul 4D.

Antetul principal al fișierului este fixat la 100 de octeți și conține 17 câmpuri; nouă câmpuri de 4 biți (întregi semnate pe 32 de biți sau int32), urmate de opt câmpuri decimale flotante semnate cu 8 biți (camp dublu):

Octeți Tip Endianness Folosire
0-3 int32 mare Cod fișier (valoarea hex 0x0000270a)
4-23 int32 mare neutilizate; cinci uint32
24-27 int32 mare Lungimea fișierului (în cuvinte pe 16 biți, inclusiv antetul)
28-31 int32 mic Versiune
32-35 int32 mic Tipul formei (vezi referința de mai jos)
36-67 dubla mic Dreptunghi minim de delimitare (MBR) al tuturor formelor conținute în setul de date; patru duble în următoarea ordine: X minim, Y minim, X mare, Y mare
68-83 dubla mic Intervalul valorii Z; două duble în următoarea ordine: Z minim, Z maxim
84-99 dubla mic Intervalul M; două duble în următoarea ordine: M minim, M maxim

Fișierul conține orice număr de înregistrări cu lungime variabilă. Fiecare înregistrare este prefixată cu un antet de înregistrare de 8 octeți:

Octeți Tip Endianness Folosire
0-3 int32 mare Număr de înregistrare (bazat pe 1)
4-7 int32 mare Lungime înregistrare (în cuvinte pe 16 biți)

În urma antetul înregistrării este înregistrarea concreta:

Octeți Tip Endianness Folosire
0-3 int32 puțin Tip-ul geometriei (vezi referința de mai jos)
4- - - Continutul geometriei

Conținutul înregistrării cu lungime variabilă depinde de tipul geometriei, care este fie dat de catre antet fie valoare Nula. Următoarele tipuri de geometrice sunt posibile:

Valoare Tip-ul geometriei Câmpuri
0 Forma nulă Nici unul
1 Punct X, Y
3 Polilinie MBR, Număr de piese, Număr de puncte, Piese, Puncte
5 Poligon MBR, Număr de piese, Număr de puncte, Piese, Puncte
8 MultiPunct MBR, Număr de puncte, Puncte
11 PointZ X, Y, Z, M (optional)
13 PolilinieZ Campuri obligatorii: MBR, Număr de piese, Număr de puncte, Piese, Puncte, interval Z, multime Z

Opțional : interval M, multime M

15 PolygonZ Obligatoriu : MBR, Număr de piese, Număr de puncte, Piese, Puncte, interval Z, multime Z

Opțional : interval M, multime M

18 MultiPunctZ Obligatoriu : MBR, Număr de puncte, Puncte, interval Z, tablou Z

Opțional : gama M, tabloul M

21 PointM X, Y, M
23 PolilinieZ Obligatoriu : MBR, Număr de piese, Număr de puncte, Piese, Puncte
Opțional : interval M, multime M
25 PoligonM Obligatoriu : MBR, Număr de piese, Număr de puncte, Piese, Puncte

Opțional : interval M, multime M

28 MultiPunctM Obligatoriu : MBR, Număr de puncte, Puncte

Câmpuri opționale : interval M, multime M

31 MultiLinie Obligatoriu : MBR, Număr de piese, Număr de puncte, Piese, Tipuri de piese, Puncte, interval Z, multime Z

Opțional : interval M, multime M

Indice de poziție (Shapefile shape index format .shx)

modificare

Indexul conține același antet de 100 de biți ca fișierul .shp, urmat de orice număr de înregistrări cu 8 biți cu lungime fixă care constă din următoarele două câmpuri:

Octeti Tip Endianness Folosire
0-3 int32 mare Înregistrare offset (în cuvinte pe 16 biți)
4-7 int32 mare Lungime înregistrare (în cuvinte pe 16 biți)

Folosind acest indice, este posibil să căutați înapoi în fișier, mai întâi, căutând înapoi în indexul geometriei (ceea ce este posibil, deoarece folosește înregistrări cu lungime fixă), apoi citind decalarea înregistrărilor și folosind acea compensare pentru a căuta la poziția corectă în fișierul .shp. Este, de asemenea, posibil să căutați mai departe un număr arbitrar de înregistrări folosind aceeași metodă.

tabelul de atribute (Shapefile attribute format .dbf)

modificare

Acest fișier stochează atributele pentru fiecare formă; folosește formatul dBase IV. Un format alternativ care de asemenea poate fi folosit este xBase, care este o specificație deschisă, și este utilizat în librariile open source, cum ar fi libraria Shapefile C. [2]

Numele și valorile atributelor nu sunt standardizate și vor fi diferite în funcție de sursa fișierului de formă.

Indice spatial (Shapefile spatial index format.sbn)

modificare

Acesta este un fișier binar cu indice spațial, care este utilizat doar de software-ul Esri. Formatul nu este documentat de Esri. Cu toate acestea, a fost proiectat invers și documentat [3] de către comunitatea open source. În prezent nu este implementat de alți furnizori. Fișierul .sbn nu este strict necesar, deoarece fișierul .shp conține toate informațiile necesare pentru a analiza cu succes datele spațiale.

Limitări

modificare

Topologia și formatul shpaefile-ului

modificare

Shpaefile-ulnu are capacitatea de a stoca informații topologice. ESRI ArcInfo si alte tiputi baze de date au capacitatea de a stoca caracteristici topologice.

Reprezentare spațială

modificare

Marginile unei linii sau poligon sunt compuse din puncte. Distanța punctelor determină implicit scara la care elementele pot fi vizual utile. Depășirea acestei scări duce la o reprezentare zimțată. Puncte suplimentare ar fi necesare pentru a obține forme netede la scări mai mari. Elementele sunt mai bine reprezentate de curbe netede, reprezentarea de tip poligon necesită mult mai mult spațiu de stocare, ca de exemplu, curbele netede (splines), care pot capătă forme care variază fără probleme în mod eficient. Niciunul dintre shapefile-uri nu acceptă curbe netede (splines).

Mărimea ambelor fișiere .shpși .dbf nu poate depăși 2 GB - cel mult în jur de 70 de milioane de puncte. Numărul maxim de caracteristici pentru alte tipuri de geometrie variază în funcție de numărul de noduri (vertex) utilizate.

Formatul bazei de date pentru atribute .dbf e bazează pe un standard dBase mai vechi. Acest format al bazei de date are în mod inerent o serie de limitări:

  • În timp ce standardul actual dBase și GDAL/OGR (principala librarie open source pentru citirea și scrierea seturilor de date shapefile) acceptă valori nule, software-ul ESRI reprezintă aceste valori ca zerouri - o problemă foarte serioasă pentru analizarea datelor cantitative, întrucât s-ar putea denatura, reprezentarea și statistica dacă cantitățile nule sunt reprezentate ca zero
  • Asistență slabă pentru câmp-urile Unicode sau pentru stocarea câmpului
  • Lungimea maximă a numelor de câmp este de 10 caractere
  • Numărul maxim de câmpuri este de 255
  • Tipurile de câmp acceptate sunt: punct flotant (stocare 13 caractere), număr întreg (4 sau 9 caractere de stocare), dată (fără stocare timp; stocare 8 caractere) și text (stocare maximă de 254 caractere)
  • Numerele cu punct flotant pot conține erori de rotunjire, deoarece sunt stocate ca text

Tipuri de geometrii amestecare

modificare

Deoarece forma precede fiecare înregistrare de geometrie, un fisier este capabil fizic de a stoca un amestec de diferite tipuri de forme. Cu toate acestea, specificația prevede: "Toate formele care nu sunt nule dintr-un fișier shapefile trebuie să aibă același tip de formă." Prin urmare, această capacitate de a amesteca tipurile de forme trebuie să se limiteze la intersectarea formelor nule cu tipul de formă unic declarat în antetul fișierului. Un model de formă nu trebuie să conțină atât date liniare cât și poligonale, de exemplu, descrierile pentru un puț (punct), un râu (polilinie) și un lac (poligon) ar fi stocate în trei seturi de date separate.

linkuri externe

modificare
  1. ^ a b ESRI (iulie 1998). „ESRI Shapefile Technical Description” (PDF). Accesat în . 
  2. ^ „Shapefile C Library V1.2”. 
  3. ^ „Wayback Machine” (PDF). . Arhivat din original (PDF) la . 
  4. ^ Egger, Manfred. „Shapefile Projectionfinder” (PDF). www.egger-gis.at (în engleză). 
  5. ^ „Shapefile Projectionfinder”.