Що таке файл SHP?
SHP — це розширення файлу для одного з основних типів файлів, які використовуються для представлення ESRI Shapefile. Він представляє геопросторову інформацію у формі векторних даних для використання програмами географічних інформаційних систем (ГІС). Формат розроблено як відкриті специфікації, щоб полегшити взаємодію між ESRI та іншими програмними продуктами.
Представлення даних
Як згадувалося, формат шейп-файлу описує геопросторову інформацію набору даних як векторні об’єкти. Ці векторні функції включають:
- бали
- лінії
- багатокутники
Ці об’єкти в поєднанні можуть представляти майже будь-які типи фігур, як-от колодязі, кордони країни, просторові точки, течії річок, озера тощо. Кожен векторний об’єкт може мати атрибути, які фактично визначають призначення цього об’єкта. Наприклад, шейп-файл, що містить міста Лос-Анджелеса, може мати назву міста та температуру як атрибути, що надає змістовне представлення просторовим даним.
Пов’язані файли
Окремий файл shp не може використовуватися програмним забезпеченням для визначення значення даних, які він містить. Щоб зрозуміти інформацію, що міститься в такому файлі, шейп-файл використовує такі додаткові обов’язкові файли.
- файл shx - індексний файл
- файл dbf - файл dBASE, який зберігає всі атрибути фігур у головному файлі
- файл prj - зберігає інформацію про проект файлу
Можуть існувати й інші додаткові файли, які мають те саме ім’я, що й основний файл.
Специфікації формату файлу SHP
Відкриті специфікації шейп-файлу доступні в Інтернеті від ESRI у формі Технічного опису, де детально розробляється загальна структура файлу. Інформація в основному файлі .shp складається із заголовків і записів. За заголовком файлу фіксованої довжини йдуть записи змінної довжини, де кожен запис складається із заголовка запису фіксованої довжини, за яким слідує вміст запису змінної довжини.
Головний заголовок файлу SHP
Головний заголовок файлу починається з початку файлу і має довжину 100 байт. Організація цього головного заголовка файлу разом із позицією байтів, значенням, типом і порядком байтів, як показано в наступній таблиці.
Байти | Поле | Значення | Тип | Порядок байтів |
---|---|---|---|---|
0-3 | Код файлу | 9994 | Ціле число | Великий порядок байтів |
4-23 | Не використовується | 0 | Ціле | Великий порядок байтів |
24-27 | Довжина файлу | Довжина файлу | Ціле число | Великий порядок байтів |
28-31 | Версія | 1000 | Ціле | Little Endian |
32-35 | Тип форми | Тип форми | Ціле число | Little Endian |
36-67 | Мінімальний обмежувальний прямокутник | Xmin, Ymin, Xmax і Ymax | double | Little Endian |
68-83 | Обмежувальна рамка | Zmin, Zmax | double | Little Endian |
84-99 | Обмежувальна рамка | Mmin, Mmax | подвійний |
Слід зазначити, що значення довжини файлу - це загальна довжина файлу в 16-бітних словах, яка також включає п’ятдесят 16-бітних слів, що утворюють заголовок.
Типи фігур
Значення поля типів фігур у таблиці вище:
Значення | Тип форми |
---|---|
0 | Нульова форма |
1 | Точка |
3 | Лахана |
5 | Многокутник |
8 | Багатоточкова |
11 | Точка Z |
13 | PolyLineZ |
15 | МногокутникZ |
18 | MultiPointZ |
21 | Точка М |
23 | ПолілініяM |
25 | МногокутникM |
28 | MultiPointM |
31 | Мультипатч |
Записи даних
За головним заголовком файлу йдуть записи змінної довжини, де кожен запис складається із заголовка запису фіксованої довжини, за яким слідує вміст запису змінної довжини.
Заголовок запису
Заголовок запису містить інформацію про номер запису та довжину вмісту запису фіксованою довжиною 8 байт. Організація заголовка запису виглядає так:
Байти | Поле | Значення | Тип | Порядок байтів |
---|---|---|---|---|
0-3 | Номер запису | Номер запису | Ціле число | Великий |
4-7 | Довжина запису | Довжина запису | Ціле число | Великий |
Вміст запису
Вміст запису шейп-файлу складається з типу фігури, за яким слідують геометричні дані цієї фігури. Тип фігури 0 представляє нульову фігуру, яка не має геометричних даних для фігури. Довжина вмісту запису є відображенням частин фігури та вершин. Давайте візьмемо приклад типу Point Shape, щоб уточнити, як запис містить інформацію про такий тип форми.
Точка представляє певне географічне розташування в порядку X, Y, де кожна координата представлена значенням подвійної точності. У наступній таблиці показано розміщення типу фігури Point.
Байти | Тип форми | Значення | Тип | Номер | Порядок байтів |
---|---|---|---|---|---|
0-3 | Тип форми | 1 | Ціле | 1 | Мало |
4-11 | X | X | подвійний | 1 | Мало |
12-19 | Y | Y | подвійний | 1 | Мало |
Приклади інших типів форм можна знайти в документі з технічним описом ESRI.
Посилання
- Технічний опис ESRI Shapefile від ESRI