Шейп-файл

Формат геопространственных векторных данных
Шейп-файл
Векторная карта с точками, полилиниями и многоугольниками
Расширение имени файла.shp, .shx,.dbf
Тип интернет-СМИ
x-gis/x-shapefile
РазработаноЭсри
Тип форматаГИС
СтандартТехническое описание шейп-файла

Формат шейп-файла — это геопространственный векторный формат данных для программного обеспечения географической информационной системы (ГИС) . Он разработан и регулируется Esri как в основном открытая спецификация для взаимодействия данных между Esri и другими программными продуктами ГИС . [1] Формат шейп-файла может пространственно описывать векторные объекты: точки , линии и полигоны , представляющие, например, колодцы , реки и озера . Каждый элемент обычно имеет атрибуты , которые его описывают, такие как имя или температура .

Обзор

Формат shapefile — это цифровой векторный формат хранения для хранения географического местоположения и связанной с ним атрибутивной информации. Этот формат не имеет возможности хранить топологическую информацию. Формат shapefile был представлен в ArcView GIS версии 2 в начале 1990-х годов. Теперь можно читать и записывать географические наборы данных с помощью формата shapefile с помощью широкого спектра программного обеспечения.

Формат шейп-файла хранит геометрию в виде примитивных геометрических фигур, таких как точки, линии и многоугольники. Эти фигуры вместе с атрибутами данных, связанными с каждой фигурой, создают представление географических данных. Термин «шейп-файл» довольно распространен, но формат состоит из набора файлов с общим префиксом имени файла, хранящихся в одном каталоге . Три обязательных файла имеют расширения имен файлов .shp , .shx, и .dbf. Фактический шейп-файл относится конкретно к .shpфайлу, но сам по себе неполный для распространения, поскольку требуются другие вспомогательные файлы. В соответствии с Техническим описанием шейп-файлов ESRI [ 1] устаревшее программное обеспечение ГИС может ожидать, что префикс имени файла будет ограничен восемью символами для соответствия соглашению об именах файлов DOS 8.3 , хотя современные программные приложения принимают файлы с более длинными именами.

Обязательные файлы

.shp
Формат формы; сама геометрия объекта.
Тип содержимого :x-gis/x-shapefile
.shx
Формат индекса формы; позиционный индекс геометрии объекта, позволяющий быстро выполнять поиск вперед и назад.
Тип содержимого: x-gis/x-shapefile
.dbf
Формат атрибута; столбчатые атрибуты для каждой формы в формате dBase IV.
Тип содержимого: application/octet-stream ИЛИtext/plain

Другие файлы

  • .prj— описание проекции с использованием известного текстового представления систем координат {content-type: text/plain ИЛИ application/text}
  • .sbnи .sbxпространственный индекс объектов {content-type: x-gis/x-shapefile}
  • .fbnи .fbx— пространственный индекс объектов, доступных только для чтения {content-type: x-gis/x-shapefile}
  • .ainи .aih— индекс атрибута активных полей в таблице {content-type: x-gis/x-shapefile}
  • .ixs— индекс геокодирования для наборов данных для чтения и записи {content-type: x-gis/x-shapefile}
  • .mxs— индекс геокодирования для наборов данных для чтения и записи (формат ODB) {content-type: x-gis/x-shapefile}
  • .atx— индекс атрибута для .dbfфайла в форме (ArcGIS 8 и более поздние версии) {content-type: }shapefile.columnname.atxx-gis/x-shapefile
  • .shp.xmlгеопространственные метаданные в формате XML, например ISO 19115 или другая схема XML {content-type: application/fgdc+xml}
  • .cpg— используется для указания кодовой страницы (только для .dbf) для определения используемой кодировки символовtext/plain {content-type: ИЛИ x-gis/x-shapefile}
  • .qix— альтернативный пространственный индекс квадродерева , используемый MapServer и программным обеспечением GDAL/OGR {content-type: x-gis/x-shapefile}

В каждом из файлов .shp, .shx, и .dbfформы в каждом файле соответствуют друг другу в последовательности (т. е. первая запись в файле .shpсоответствует первой записи в файлах .shxи .dbfи т. д.). Файлы .shpи .shxимеют различные поля с разным порядком байтов , поэтому разработчик форматов файлов должен быть очень внимателен к соблюдению порядка байтов каждого поля и обращаться с ним правильно.

Форматы файлов

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

Основной файл ( .shp ) содержит геометрические данные. Геометрия заданного объекта хранится в виде набора векторных координат. [1] : 5  Двоичный файл состоит из одного заголовка фиксированной длины , за которым следует одна или несколько записей переменной длины . Каждая из записей переменной длины включает компонент заголовка записи и компонент содержимого записи. Подробное описание формата файла приведено в Техническом описании шейп-файлов ESRI . [1] Этот формат не следует путать с исходным форматом шрифта формы AutoCAD , который имеет такое же расширение..shp

Двумерный порядок осей координатных данных предполагает декартову систему координат , использующую порядок (XY) или (Восток Север). Этот порядок осей соответствует географическим системам координат , где порядок аналогичен (долгота широта). Геометрии также могут поддерживать 3- или 4- мерные координаты Z и M для высоты и меры соответственно. Z-измерение хранит высоту каждой координаты в трехмерном пространстве , что может использоваться для анализа или визуализации геометрий с использованием трехмерной компьютерной графики . Определяемое пользователем измерение M может использоваться для одной из многих функций, таких как хранение линейных референтных мер или относительного времени объекта в четырехмерном пространстве .

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

Заголовки шейп-файлов

Заголовок файла формата .shp
БайтыТипПорядковый номер байтовИспользование
0–3int32большойКод файла (всегда шестнадцатеричное значение 0x0000270a )
4–23int32большойНе используется; пять uint32
24–27int32большойДлина файла (в 16-битных словах, включая заголовок)
28–31int32маленькийВерсия
32–35int32маленькийТип формы (см. ссылку ниже)
36–67двойноймаленькийМинимальный ограничивающий прямоугольник (MBR) всех форм, содержащихся в наборе данных; четыре значения двойной точности в следующем порядке: мин. X, мин. Y, макс. X, макс. Y
68–83двойноймаленькийДиапазон Z; два дубля в следующем порядке: мин. Z, макс. Z
84–99двойноймаленькийДиапазон M; два дубля в следующем порядке: мин. M, макс. M

Заголовки записей шейп-файлов

Затем файл содержит любое количество записей переменной длины. Каждая запись имеет префикс в виде заголовка записи из 8 байт:

БайтыТипПорядковый номер байтовИспользование
0–3int32большойНомер записи (начиная с 1)
4–7int32большойДлина записи (в 16-битных словах)

Записи шейп-файлов

После заголовка записи следует сама запись:

БайтыТипПорядковый номер байтовИспользование
0–3int32маленькийТип формы (см. ссылку ниже)
4–Форма содержания

Содержимое записи переменной длины зависит от типа формы, который должен быть либо типом формы, указанным в заголовке файла, либо Null. Ниже приведены возможные типы форм:

ЦенитьТип формыПоля
0Нулевая формаНикто
1ТочкаХ, Y
3ПолилинияMBR, Количество деталей, Количество точек, Детали, Точки
5ПолигонMBR, Количество деталей, Количество точек, Детали, Точки
8МультипоинтMBR, Количество баллов, Баллы
11PointZX, Y, Z

Необязательно : М

13ПолилинияZОбязательно : MBR, Количество деталей, Количество точек, Детали, Точки, Диапазон Z, Массив Z

Дополнительно : диапазон M, массив M

15ПолигонZОбязательно : MBR, Количество деталей, Количество точек, Детали, Точки, Диапазон Z, Массив Z

Дополнительно : диапазон M, массив M

18MultiPointZОбязательно : MBR, Количество точек, Точки, Диапазон Z, Массив Z

Дополнительно : диапазон M, массив M

21ТочкаМX, Y, М
23ПолилинияМОбязательно : MBR, Количество частей, Количество точек, Части, Точки

Дополнительно : диапазон M, массив M

25ПолигонМОбязательно : MBR, Количество частей, Количество точек, Части, Точки

Дополнительно : диапазон M, массив M

28MultiPointMОбязательно : MBR, Количество баллов, Баллы

Необязательные поля : диапазон M, массив M

31МультиПатчОбязательно : MBR, Количество деталей, Количество точек, Детали, Типы деталей, Точки, Диапазон Z, Массив Z

Дополнительно : диапазон M, массив M

Формат индекса формы шейп-файла (.shx)

Индекс содержит позиционный индекс геометрии объекта и тот же 100-байтовый заголовок, что и .shpфайл, за которым следует любое количество 8-байтовых записей фиксированной длины, которые состоят из следующих двух полей:

БайтыТипПорядковый номер байтовИспользование
0–3int32большойСмещение записи (в 16-битных словах)
4–7int32большойДлина записи (в 16-битных словах)

Используя этот индекс, можно искать назад в шейп-файле, сначала выполняя поиск назад в шейп-индексе (что возможно, поскольку он использует записи фиксированной длины), затем считывая смещение записи и используя это смещение для поиска правильной позиции в файле .shp. Также можно искать вперед произвольное количество записей, используя тот же метод.

Можно сгенерировать полный индексный файл, имея один .shpфайл. Однако, поскольку шейп-файл должен всегда содержать индекс, это считается восстановлением поврежденного файла. [2]

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

Этот файл хранит атрибуты для каждой формы; он использует формат dBase IV. Формат общеизвестен и был реализован во многих клонах dBase, известных как xBase . Например, библиотека C shapefile с открытым исходным кодом называет свой формат "xBase", хотя это обычный dBase IV. [3]

Названия и значения атрибутов не стандартизированы и будут различаться в зависимости от источника шейп-файла.

Формат пространственного индекса шейп-файла (.сбн)

Это двоичный файл пространственного индекса , который используется только программным обеспечением Esri. Формат не документирован Esri. Однако он был подвергнут обратному проектированию и документирован сообществом разработчиков программного обеспечения с открытым исходным кодом. 100-байтовый заголовок аналогичен заголовку в .shp . [4] В настоящее время он не реализован другими поставщиками. Файл не является строго необходимым, поскольку содержит всю информацию, необходимую для успешного анализа пространственных данных..sbn.shp

Ограничения

Формат шейп-файла имеет ряд ограничений. [5]

Топология и формат шейп-файла

Формат shapefile не имеет возможности хранить топологические отношения между формами. Покрытия ESRI ArcInfo и многие базы геоданных имеют возможность хранить топологию объектов.

Хранение данных

Размер обоих файлов .shpи .dbfкомпонентов не может превышать 2 ГБ (или 2,31 байта ) — в лучшем случае около 70 миллионов точечных объектов. [6] Максимальное количество объектов для других типов геометрии варьируется в зависимости от количества используемых вершин.

Формат базы данных атрибутов для .dbfфайла компонента основан на более старом стандарте dBase . Этот формат базы данных изначально имеет ряд ограничений: [6]

  • В то время как текущий стандарт dBase и GDAL/OGR (основная библиотека программного обеспечения с открытым исходным кодом для чтения и записи наборов данных в формате shapefile) поддерживают нулевые значения, программное обеспечение ESRI представляет эти значения как нули — очень серьезная проблема для анализа количественных данных, поскольку это может исказить представление и статистику, если нулевые величины представлены как ноль.
  • Плохая поддержка имен полей Unicode или хранения полей
  • Максимальная длина имени поля — 10 символов.
  • Максимальное количество полей — 255.
  • Поддерживаемые типы полей: с плавающей точкой (хранение 13 символов), целое число (хранение 4 или 9 символов), дата (без хранения времени; хранение 8 символов) и текст (хранение максимум 254 символов)
  • Числа с плавающей точкой могут содержать ошибки округления, поскольку они хранятся в виде текста.

Смешение типов форм

Поскольку тип фигуры предшествует каждой записи геометрии, шейп-файл технически способен хранить смесь различных типов фигур. Однако спецификация гласит: «Все ненулевые фигуры в шейп-файле должны иметь один и тот же тип фигуры». Поэтому эта возможность смешивать типы фигур должна быть ограничена вкраплением нулевых фигур с единственным типом фигуры, объявленным в заголовке файла. Шейп-файл не должен содержать как данные полилинии, так и полигона, например, описания для колодца (точки), реки (полилинии) и озера (полигона) будут храниться в трех отдельных наборах данных.

Смотрите также

Ссылки

  1. ^ abcd ESRI (июль 1998 г.). "Техническое описание шейп-файла ESRI" (PDF) . Получено 4 июля 2007 г.
  2. ^ Ролласон, Эд. "qgis - Создание отсутствующего файла .shx?". Географические информационные системы Stack Exchange .
  3. ^ «Библиотека Shapefile C V1.2».
  4. ^ "SBN Format" (PDF) . 4 октября 2011 г. Архивировано из оригинала (PDF) 13 августа 2016 г. Получено 21 июня 2023 г.
  5. ^ Чепицкий, Яхим (2017). «Переход из Shapefile». switchfromshapefile.org .
  6. ^ ab "Справка ArcGIS Desktop 9.3 – Вопросы геообработки для выходных шейп-файлов". Esri. 24 апреля 2009 г.
  • Расширения файлов шейп-файлов – Esri Webhelp docs для ArcGIS 10.0 (2010)
  • Esri – Понимание топологии и шейп-файлов
  • shapelib.maptools.org – Бесплатная библиотека C для чтения/записи шейп-файлов
  • Библиотека Python Shapefile — библиотека Python с открытым исходным кодом (лицензия MIT) для чтения/записи shape-файлов
  • Библиотеки Java Shapefile и Dbase — библиотеки Java с открытым исходным кодом (лицензия Apache) для чтения/записи shapefiles и связанных файлов dBase (библиотеки являются частью библиотеки AFC, но могут использоваться независимо)
Получено с "https://en.wikipedia.org/w/index.php?title=Shapefile&oldid=1255410788"