Шейп-файл - Shapefile

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

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

Обзор

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

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

Обязательные файлы
  • .shp - формат формы; сама геометрия объекта {content-type: x-gis / x-shapefile}
  • .shx - формат индекса формы; позиционный индекс геометрии объекта для быстрого поиска вперед и назад {content-type: x-gis / x-shapefile}
  • .dbf - формат атрибута; столбчатые атрибуты для каждой формы в dBase Формат IV {content-type: application / octet-stream OR text / plain}
Другие файлы
  • .prj - описание проекции с использованием общеизвестное текстовое представление систем координат {тип-контента: текст / обычный ИЛИ приложение / текст}
  • .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 файл в виде шейп-файл.имя столбца.atx (ArcGIS 8 и новее) {content-type: x-gis / x-shapefile }
  • .shp.xmlгеопространственные метаданные в формате XML, например ISO 19115 или другой Схема XML {тип-контента: приложение / fgdc + xml}
  • .cpg - используется для указания кодовая страница (только для .dbf) для определения кодировка символов будет использоваться {content-type: текст / простой ИЛИ x-gis / x-shapefile }
  • .qix - альтернатива квадродерево пространственный индекс, используемый MapServer и ГДАЛ / ОГР программное обеспечение {content-type: x-gis / x-shapefile}

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

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

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

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

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

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

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

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

За заголовком записи следует фактическая запись:

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

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

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

Необязательный: M

13PolylineZОбязательное: MBR, количество частей, количество точек, части, точки, диапазон Z, массив Z

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

15PolygonZОбязательное: MBR, количество частей, количество точек, части, точки, диапазон Z, массив Z

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

18MultiPointZОбязательное: MBR, количество точек, точки, диапазон Z, массив Z

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

21PointMX, Y, M
23PolylineMОбязательное: MBR, Количество деталей, Количество точек, Детали, Пункты

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

25PolygonMОбязательное: MBR, Количество деталей, Количество точек, Детали, Пункты

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

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

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

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

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

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

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

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

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

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

В этом файле хранятся атрибуты каждой формы; он использует dBase IV формат. Альтернативный формат, который также можно использовать, - это xBase формат, который имеет открытая спецификация, и используется в Открытый исходный код шейп-файл библиотеки, например, библиотека Shapefile C.[2]

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

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

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

Ограничения

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

В формате шейп-файла нет возможности хранить топологический Информация. ESRI ArcInfo покрытия и личные / файловые / корпоративные базы геоданных есть возможность хранить топологию объектов.

Пространственное представление

Края ломаная линия или многоугольник состоят из точек. Расстояние между точками неявно определяет масштаб, в котором функция визуально полезна. Превышение этого масштаба приводит к неровному изображению. Дополнительные точки потребуются для получения гладких форм в больших масштабах. Для пространственных объектов, лучше представленных сглаженными кривыми, полигональное представление требует гораздо большего объема памяти, чем, например, шлицы, который может эффективно захватывать плавно меняющиеся формы. Ни один из типов формата шейп-файлов не поддерживает сплайны.

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

Размер обоих .shp и .dbf файлы компонентов не могут превышать 2 ГБ (или 231 байтов) - в лучшем случае около 70 миллионов точек.[4] Максимальное количество элементов для других типов геометрии зависит от количества используемых вершин.

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

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

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

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

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

внешние ссылки

использованная литература

  1. ^ а б ESRI (Июль 1998 г.). "Техническое описание ESRI Shapefile" (PDF). Получено 2007-07-04. Цитировать журнал требует | журнал = (Помогите)
  2. ^ "Библиотека шейп-файла C V1.2".
  3. ^ (PDF). 13 августа 2016 г. https://web.archive.org/web/20160813212443/https://pyshp.googlecode.com/files/sbn_format.pdf. Архивировано 13 августа 2016 года. Отсутствует или пусто | название = (Помогите)CS1 maint: BOT: статус исходного URL-адреса неизвестен (ссылка на сайт)
  4. ^ а б «Справка ArcGIS Desktop 9.3 - Рекомендации по геообработке для вывода шейп-файлов». Esri. 24 апреля 2009 г.
  5. ^ Эггер, Манфред. "Проекционный искатель шейп-файлов" (PDF). www.egger-gis.at.
  6. ^ "Проекционный искатель шейп-файлов".