Shapefile
«Шейп-файл» (англ. Shapefile) — популярний векторний формат файлів для програмного забезпечення геоінформаційної системи (ГІС). Розробляється та підтримується компанією ESRI з метою сумісності даних між продуктами ESRI та стороннім програмним забезпеченням.[4] Формат файлу дозволяє зберігати наступні типи геометричних фігур: точки, лінії, які представляють, для прикладу дороги та стежки, полігони, що представляють, наприклад, колодязі, річки, озера. Кожен елемент, як правило, має атрибути, які описують його, такі як назва, температура чи тип дороги її завантаженість. ОглядФормат shapefile є цифровим векторним форматом для зберігання геометричних об'єктів та пов'язаної з ними атрибутивної інформації. Цей формат не має можливості зберігати топологічну інформацію. Формат шейп був введений з ArcView GIS версії 2 на початку 1990-х років. Тепер можна читати і писати географічні набори даних, використовуючи формат шейп файлу з широким спектром програмного забезпечення. Формат шейп простий тому, що він може зберігати примітивні геометричні типи даних точок, ліній і полігонів. Термін «шейп-файл» досить часто помилково асоціюють лиш з одним файлом. Насправді специфікація формату визначає набір файлів із загальним префіксом назви файлу, які зберігаються в тому ж каталозі . Обов'язковий файл Файл .prj є важливим, якщо треба явно вказати картографічну проєкцію. Найчастіше використовують WGS 84. Будь-яку проєкцію можна однозначно описати у форматі WKT[en] або PROJ4[en]. Файл .prj містить опис проєкції у форматі ESRI WKT.
У кожному з Формат шейп-файлу |
Байти | Тип | Порядок байтів | Використання |
---|---|---|---|
0-3 | int32 | big-endian | Код файлу (завжди шістнадцяткове значення 0x0000270a) |
4-23 | int32 | big-endian | Невикористані; п'ять uint32 |
24-27 | int32 | big-endian | Довжина файлу (в 16-бітних слів, включаючи заголовок) |
28-31 | int32 | little-endian | Версія |
32-35 | int32 | little-endian | Тип фігури (див. нижче) |
36-67 | double | little-endian | Габаритний прямокутник; чотири двовимірні точки в наступному порядку: min X, min Y, max X, max Y |
68-83 | double | little-endian | Діапазон Z; дві двовимірні точки в наступному порядку: min Z, max Z |
84-99 | double | little-endian | Діапазон M; дві двовимірні точки в наступному: min M, max M |
Потім файл містить будь-яку кількість записів змінної довжини. Кожен запис спочатку містить заголовка з 8 байт:
Б | Тип | Порядок байтів | Використання |
---|---|---|---|
0-3 | int32 | big-endian | Номер запису (поч. з 1) |
4-7 | int32 | big-endian | Довжина запису (в int16) |
Після заголовка запису йде сам запис:
Б | Тип | Порядок байтів | Використання |
---|---|---|---|
0-3 | int32 | little-endian | Тип фігури (див посилання нижче) |
4 | - | - | Вміст фігури (точки) |
Вміст змінної довжини запису залежить від типу фігури. Нижче наведені можливі типи форми:
Вартість | Тип фігури | Поля |
---|---|---|
0 | Нульова фігура | Ніяких |
1 | Точка | X, Y |
3 | Ламана | MBR, Кількість частин, кількість точок, частини, точки |
5 | Полігон | MBR, Кількість частин, кількість точок, частини, точки |
8 | Мультиточка | MBR, Кількість частин, точки |
11 | PointZ | X, Y, Z Додатково: М |
13 | PolylineZ | Обов'язково: MBR, Кількість частин, кількість точок, частини, точки, Z Діапазон, Z масив Додатково: діапазон значень М, масив значень M |
15 | PolygonZ | Обов'язково: MBR, Кількість частин, кількість точок, частини, точки, Z Діапазон, Z масив Додатково: діапазон значень М, масив значень M |
18 | MultiPointZ | Обов'язково: MBR, Кількість точок, точки, Z Діапазон, Z масив Додатково: діапазон значень М, масив значень M |
21 | Точка © | X, Y, M |
23 | PolylineM | Обов'язково: MBR, Кількість частин, кількість точок, частини, точки Додатково: діапазон значень М, масив значень M |
25 | PolygonM | Обов'язково: MBR, Кількість частин, кількість точок, частини, точки Додатково: діапазон значень М, масив значень M |
28 | MultiPointM | Обов'язково: MBR, Кількість пунктів, Окуляри Додатково: діапазон значень М, масив значень M |
31 | MultiPatch | Обов'язково: MBR, Кількість частин, кількість точок, частини, види частин, точки, Z діапазон, Z масив Додатково: діапазон значень М, масив значень M |
Формат індексного файлу (.shx)
Індексний файл містить той же заголовок 100 байт як .shp
файл, а потім будь-яке число 8 байтових записів фіксованої довжини, які складаються з двох полів:
Б | Тип | Порядок байтів | Використання |
---|---|---|---|
0-3 | int32 | big-endian | Зміщення запису (в 16-бітних слів) |
4-7 | int32 | big-endian | Довжина запису (в 16-бітних слів) |
Використовуючи цей індекс, можна шукати в зворотному напрямку по шейп-фйлу завдяки, по-перше, переміщенні назад в індексах фігур (що можливо, оскільки він використовує записи фіксованої довжини), далі читаючи зміщення запису, і за допомогою цього зміщення отримати правильне положення у .shp
файлі.
Формат атрибутивного файлу (.dbf)
Атрибути для кожної фігури зберігаються у форматі DBase. Альтернативний формат, який також може бути використаний — XBase, який має відкриту специфікацію, і використовується в відкритих вихідних Shapefile бібліотек, таких як бібліотеки Shapefile C. [5]
Формат просторовий індексного файлу (.sbn)
Це двійковий просторовий індексний файл, який використовується тільки програмним забезпеченням ESRI. Формат не задокументований ESRI. Однак було зроблене зворотнє проєктування і документування [6] спільнотою відкритого коду. Файл .sbn
не є строго необхідним, оскільки .shp
файл містить всю інформацію, необхідну для успішного розбору просторових даних.
Обмеження
Топологія і формат шейп
Формат шейп не має можливості зберігати топологічну інформацію. У ESRI ArcInfo використовуються різні БД, які дають можливість зберігати особливість топології.
Просторове уявлення
Краї ламаної або багатокутника складаються з точок. Відстань між точками неявно визначає масштаб, в якому дані корисні візуально. Для функцій, представлених більш плавними кривими, подання багатокутника вимагає набагато більше даних, ніж для зберігання, наприклад, сплайнами, яке може захоплювати плавні зміни форми ефективно. Жоден з типів формату шейп не підтримує сплайни.
Зберігання даних
Розмір обох .shp
і .dbf
файлів не може перевищувати 2 Гб (або 231 байт) — не більше, ніж близько 70 млн точок. [7]
Формат бази даних файлу атрибутів .dbf
заснований на старому стандарті dBase. Цей формат бази даних по своїй суті має ряд обмежень: [7]
- У той час як в даний час стандартом Dbase і GDAL / OGR (головна бібліотека з відкритим вихідним кодом програмне забезпечення для читання і запису у форматі шейп наборів даних) підтримує null-значення, ESRI представляє ці значення як нулі — дуже серйозне питання для аналізу кількісних даних, так як це може спотворити уявлення і статистику, якщо null-величини представляються як нуль (0)
- Погана підтримка Unicode-назв полів або вмісту поля
- Максимальна довжина назв полів становить 10 символів
- Максимальна кількість полів 255
- Підтримувані типи полів: з плаваючою точкою (13 символів зберігання), число (4 або 9 зберігання символів), дата (без часу зберігання; 8 зберігання символів), і текст (максимум 254 символів зберігання)
- Числа з плаваючою точкою можуть містити помилки округлення, так як вони зберігаються у вигляді тексту
Мішані типи фігур
Шейп-файл фізично здатний зберігати набір різних типів фігур. Тим не менш, в специфікації зазначено: «Всі ненульові фігури в шейп-файлі зобов'язані бути одного типу». Тому ця здатність змішувати типи форми має бути обмежена нульовими фігурами з фігурами одного типу, заявленими в заголовку файлу. Шейп-файл не повинен містити дані як ламаної, так і багатокутника, наприклад, для опису для пункту (точки), річки (ламаної), і озера (багатокутника) потрібно три окремих файли.
Див. також
Примітки
- ↑ https://www.iana.org/assignments/media-types/application/vnd.shp
- ↑ https://www.iana.org/assignments/media-types/application/vnd.shx
- ↑ https://www.iana.org/assignments/media-types/application/vnd.dbf
- ↑ ESRI (July 1998). ESRI Shapefile Technical Description (PDF). Архів оригіналу (PDF) за 27 вересня 2019. Процитовано 4 липня 2007.
- ↑ Shapefile C Library V1.2. Архів оригіналу за 23 червня 2018. Процитовано 24 грудня 2017.
- ↑ Wayback Machine (PDF). 13 серпня 2016. Архів оригіналу (PDF) за 13 серпня 2016. Процитовано 24 грудня 2017. [Архівовано 2016-08-13 у Wayback Machine.]
- ↑ а б ArcGIS Desktop 9.3 Help – Geoprocessing considerations for shapefile output. Esri. 24 квітня 2009. Архів оригіналу за 4 березня 2016. Процитовано 24 грудня 2017.
Це незавершена стаття з географії. Ви можете допомогти проєкту, виправивши або дописавши її. |
Це незавершена стаття про програмне забезпечення. Ви можете допомогти проєкту, виправивши або дописавши її. |