Shapefile

Shapefile
Розширення файлу:..shp, .shx, .dbf
MIME-тип:application/vnd.shp[1], application/vnd.shx[2] і application/vnd.dbf[3]
Розробник:Esri
Тип формату:ГІС
Стандарт(и):Shapefile Technical Description

«Шейп-файл» (англ. Shapefile) — популярний векторний формат файлів для програмного забезпечення геоінформаційної системи (ГІС). Розробляється та підтримується компанією ESRI з метою сумісності даних між продуктами ESRI та стороннім програмним забезпеченням.[4] Формат файлу дозволяє зберігати наступні типи геометричних фігур: точки, лінії, які представляють, для прикладу дороги та стежки, полігони, що представляють, наприклад, колодязі, річки, озера. Кожен елемент, як правило, має атрибути, які описують його, такі як назва, температура чи тип дороги її завантаженість.

Огляд

Формат shapefile є цифровим векторним форматом для зберігання геометричних об'єктів та пов'язаної з ними атрибутивної інформації. Цей формат не має можливості зберігати топологічну інформацію. Формат шейп був введений з ArcView GIS версії 2 на початку 1990-х років. Тепер можна читати і писати географічні набори даних, використовуючи формат шейп файлу з широким спектром програмного забезпечення.

Формат шейп простий тому, що він може зберігати примітивні геометричні типи даних точок, ліній і полігонів.

Термін «шейп-файл» досить часто помилково асоціюють лиш з одним файлом. Насправді специфікація формату визначає набір файлів із загальним префіксом назви файлу, які зберігаються в тому ж каталозі . Обов'язковий файл .shp. Хоча деяке програмне забезпечення вимагає три файли: .shp, .shx і .dbf. Фактично шейп відноситься конкретно до файлу .shp. Застаріле програмне забезпечення ГІС може потребувати, щоб префікс назви файлу був обмежений вісьмома символами, щоб відповідати вимогам DOS для назви файлу Конвенції 8.3, хоча сучасні програми оперують файлами із довшими назвами.

Файл .prj є важливим, якщо треба явно вказати картографічну проєкцію. Найчастіше використовують WGS 84. Будь-яку проєкцію можна однозначно описати у форматі WKT[en] або PROJ4[en]. Файл .prj містить опис проєкції у форматі ESRI WKT.


Обов'язкові файли
  • .shp — головний файл; містить набори геометричних об'єктів
  • .shx — індексний файл; використовується для зв'язку між файлами .dbf і .shp
  • .dbf — атрибутивний файл; містить атрибути об'єктів, описаних в .shp файлі у форматі dBase IV
Інші файли
  • .prj — формат проєкції; системи і відомості про проєкції, текстовий файл, що описує проєкцію, використовуючи формат ESRI WKT[en]
  • .sbn і .sbx — просторовий індекс з особливостей
  • .fbn і .fbx — просторовий індекс з особливостей, які доступні тільки для читання
  • .ain і .aih — індекс атрибуту активних полів в таблиці
  • .ixs — індекс геокодування для читання і запису наборів даних
  • .mxs — індекс геокодування для читання і запису наборів даних (формат ОДБ)
  • .atx — індекс атрибут файлу .dbf у вигляді шейп ColumnName .atx (ArcGIS 8 і пізніше)
  • .shp.xml — геопросторові метадані у форматі XML, такому як ISO 19115 або інша XML-схема
  • .cpg — використовується для вказівки кодової сторінки (тільки для .dbf) для ідентифікації кодувань, які будуть використовуватися
  • .qix — альтернативний дерево-квадрантному просторовий індекс, що використовується в MapServer та програмному забезпеченні GDAL / OGR

У кожному з .shp, .shx, і .dbf файлів, геометричні фігури в кожному файлі відповідають один одному в послідовності (тобто, перший запис у файлі відповідає .shp першому запису в .SHX і .dbf файлах і т. д.). .shp і .shx файли мають різні поля з різним порядком байтів, тому ті, хто випускає файли, повинні бути дуже обережні, щоб дотримуватися порядку байтів для кожного поля і розглядати його належним чином.

Формат шейп-файлу (.shp)

Основний файл (.shp) містить геометричні дані. Двійковий файл складається з одного заголовка фіксованої довжини та одного або більше записів змінної довжини. Кожен із записів включає в себе заголовок запису та вміст (як правило, набір координат точок). Детальний опис формату файлу дається в технічному описі шейп-файлу ESRI . [1] Цей формат не слід плутати з форматом джерела шрифту фігури AutoCAD, який також має розширення .shp .

Порядок 2D осей передбачає декартову систему координат, використовуючи порядок (XY) або (широта-довгота). Цей порядок осей відповідає географічній системі координат, де порядок аналогічний. Геометрія також може підтримувати 3 або 4 мірні Z і М координати, для підвищень та замірів, відповідно. Вимір Z зберігає висоту кожної координати в 3D просторі, які можуть бути використані для аналізу або для візуалізації геометрії з використанням 3D комп'ютерної графіки. Визначений користувачем вимір М може бути використаний для однієї з багатьох функцій, таких як зберігання замірів, чи часу в 4D просторі.

Основний заголовок файлу фіксований, довжина становить 100 байт в і містить 17 полів; дев'ять 4-байтних (32-розрядне ціле число або int32) та наступні вісім полів з плаваючою комою та із знаком:

Байти Тип Порядок байтів Використання
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 символів зберігання)
  • Числа з плаваючою точкою можуть містити помилки округлення, так як вони зберігаються у вигляді тексту

Мішані типи фігур

Шейп-файл фізично здатний зберігати набір різних типів фігур. Тим не менш, в специфікації зазначено: «Всі ненульові фігури в шейп-файлі зобов'язані бути одного типу». Тому ця здатність змішувати типи форми має бути обмежена нульовими фігурами з фігурами одного типу, заявленими в заголовку файлу. Шейп-файл не повинен містити дані як ламаної, так і багатокутника, наприклад, для опису для пункту (точки), річки (ламаної), і озера (багатокутника) потрібно три окремих файли.

Див. також

Примітки

  1. https://www.iana.org/assignments/media-types/application/vnd.shp
  2. https://www.iana.org/assignments/media-types/application/vnd.shx
  3. https://www.iana.org/assignments/media-types/application/vnd.dbf
  4. ESRI (July 1998). ESRI Shapefile Technical Description (PDF). Архів оригіналу (PDF) за 27 вересня 2019. Процитовано 4 липня 2007.
  5. Shapefile C Library V1.2. Архів оригіналу за 23 червня 2018. Процитовано 24 грудня 2017.
  6. Wayback Machine (PDF). 13 серпня 2016. Архів оригіналу (PDF) за 13 серпня 2016. Процитовано 24 грудня 2017. [Архівовано 2016-08-13 у Wayback Machine.]
  7. а б ArcGIS Desktop 9.3 Help – Geoprocessing considerations for shapefile output. Esri. 24 квітня 2009. Архів оригіналу за 4 березня 2016. Процитовано 24 грудня 2017.