Шейп-файл - Shapefile
Векторная карта с точками, полилиниями и многоугольниками | |
Тип интернет-СМИ | 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–3 | int32 | большой | Код файла (всегда шестнадцатеричное значение 0x0000270a) |
4–23 | int32 | большой | Не используется; пять uint32 |
24–27 | int32 | большой | Длина файла (16-битными словами, включая заголовок) |
28–31 | int32 | маленький | Версия |
32–35 | int32 | маленький | Тип формы (см. Ссылку ниже) |
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–3 | int32 | большой | Номер записи (от 1) |
4–7 | int32 | большой | Длина записи (в 16-битных словах) |
За заголовком записи следует фактическая запись:
Байтов | Тип | Порядок байтов | Применение |
---|---|---|---|
0–3 | int32 | маленький | Тип формы (см. Ссылку ниже) |
4– | – | – | Контент формы |
Содержимое записи переменной длины зависит от типа фигуры, который должен быть либо типом фигуры, указанным в заголовке файла, либо пустым. Ниже перечислены возможные типы фигур:
Ценность | Тип формы | Поля |
---|---|---|
0 | Нулевая форма | Никто |
1 | Точка | X, Y |
3 | Ломаная линия | MBR, Количество деталей, Количество точек, Детали, Пункты |
5 | Многоугольник | MBR, Количество деталей, Количество точек, Детали, Пункты |
8 | MultiPoint | MBR, Количество точек, Баллы |
11 | PointZ | X, Y, Z Необязательный: M |
13 | PolylineZ | Обязательное: MBR, количество частей, количество точек, части, точки, диапазон Z, массив Z Необязательный: M диапазон, M массив |
15 | PolygonZ | Обязательное: MBR, количество частей, количество точек, части, точки, диапазон Z, массив Z Необязательный: M диапазон, M массив |
18 | MultiPointZ | Обязательное: MBR, количество точек, точки, диапазон Z, массив Z Необязательный: M диапазон, M массив |
21 | PointM | X, Y, M |
23 | PolylineM | Обязательное: MBR, Количество деталей, Количество точек, Детали, Пункты Необязательный: M диапазон, M массив |
25 | PolygonM | Обязательное: MBR, Количество деталей, Количество точек, Детали, Пункты Необязательный: M диапазон, M массив |
28 | MultiPointM | Обязательное: MBR, Количество точек, Количество точек Дополнительные поля: M диапазон, M массив |
31 | Мультипатч | Обязательное: MBR, Количество деталей, Количество точек, Детали, Типы деталей, Точки, Диапазон Z, Массив Z Необязательный: M диапазон, M массив |
Формат индекса формы шейп-файла (.shx)
Индекс содержит тот же 100-байтовый заголовок, что и индекс .shp
файл, за которым следует любое количество 8-байтовых записей фиксированной длины, которые состоят из следующих двух полей:
Байтов | Тип | Порядок байтов | Применение |
---|---|---|---|
0–3 | int32 | большой | Смещение записи (16-битными словами) |
4–7 | int32 | большой | Длина записи (в 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, в шейп-файле должны быть одного типа». Следовательно, эта возможность смешивания типов фигур должна быть ограничена перемежением пустых фигур с одним типом фигуры, объявленным в заголовке файла. Шейп-файл не должен содержать данные как полилинии, так и полигона, например, описания колодца (точки), реки (полилинии) и озера (многоугольника) будут храниться в трех отдельных наборах данных.
Смотрите также
- Система географической информации
- Открытый геопространственный консорциум
- Фонд геопространственных данных с открытым исходным кодом (OSGeo)
- Список программного обеспечения географических информационных систем
- Сравнение программного обеспечения геоинформационных систем
внешние ссылки
- Расширения файлов шейп-файлов - Документы Esri Webhelp для ArcGIS 10.0 (2010 г.)
- Esri - понимание топологии и шейп-файлов
- shapelib.maptools.org - Бесплатная библиотека c для чтения / записи шейп-файлов
- Библиотека шейп-файлов Python - Библиотека Python с открытым исходным кодом (лицензия MIT) для чтения / записи шейп-файлов
- Поиск проекции шейп-файла - автоматическое обнаружение неизвестной проекции шейп-файла [5] [6]
- Ява Шейп-файл и Dbase Библиотеки - библиотеки Java с открытым исходным кодом (лицензия Apache) для чтения / записи шейп-файлов и связанных файлов dBase (библиотеки являются частью Библиотека AFC но может использоваться независимо)
использованная литература
- ^ а б ESRI (Июль 1998 г.). "Техническое описание ESRI Shapefile" (PDF). Получено 2007-07-04. Цитировать журнал требует
| журнал =
(Помогите) - ^ "Библиотека шейп-файла C V1.2".
- ^ (PDF). 13 августа 2016 г. https://web.archive.org/web/20160813212443/https://pyshp.googlecode.com/files/sbn_format.pdf. Архивировано 13 августа 2016 года. Отсутствует или пусто
| название =
(Помогите)CS1 maint: BOT: статус исходного URL-адреса неизвестен (ссылка на сайт) - ^ а б «Справка ArcGIS Desktop 9.3 - Рекомендации по геообработке для вывода шейп-файлов». Esri. 24 апреля 2009 г.
- ^ Эггер, Манфред. "Проекционный искатель шейп-файлов" (PDF). www.egger-gis.at.
- ^ "Проекционный искатель шейп-файлов".