Векторная карта с точками, полилиниями и многоугольниками | |
Расширение имени файла | .shp , .shx ,.dbf |
---|---|
Тип интернет-СМИ | x-gis / x-shapefile |
Разработан | Esri |
Тип формата | ГИС |
Стандарт | Техническое описание шейп-файла |
Формат шейп- файла - это формат векторных геопространственных данных для программного обеспечения географической информационной системы (ГИС) . Он разработан и регулируется Esri как в основном открытая спецификация для взаимодействия данных между Esri и другими программными продуктами ГИС . [1] Формат шейп-файла может пространственно описывать векторные объекты: точки , линии и многоугольники , представляющие, например, колодцы , реки и озера . У каждого предмета обычно есть атрибуты, которые его описывают, например, имя.или температура .
Обзор [ править ]
Формат шейп-файла - это цифровой векторный формат хранения для хранения геометрического местоположения и связанной с ним атрибутивной информации. В этом формате отсутствует возможность хранения топологической информации. Формат шейп-файлов был представлен в ArcView GIS версии 2 в начале 1990-х годов. Теперь можно читать и записывать наборы географических данных с использованием формата шейп-файлов с помощью широкого спектра программного обеспечения.
В формате шейп-файла данные хранятся в виде примитивных геометрических фигур, таких как точки, линии и многоугольники. Эти фигуры вместе с атрибутами данных, которые связаны с каждой фигурой, создают представление географических данных. Термин «шейп-файл» довольно распространен, но формат состоит из набора файлов с общим префиксом имени файла, хранящихся в одном каталоге . Три обязательных файлы имеют расширение файлов .shp
, .shx
и .dbf
. Фактический шейп - .shp
файл относится конкретно к файлу, но сам по себе не является полным для распространения, поскольку требуются другие вспомогательные файлы. Устаревшее программное обеспечение ГИС может рассчитывать, что префикс имени файла будет ограничен восемью символами в соответствии с DOS8.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
- описание проекции с использованием хорошо известного текстового представления систем координат {content-type: text / plain OR 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.atx
x-gis/x-shapefile
.shp.xml
- геопространственные метаданные в формате XML, например ISO 19115 или другой XML-схеме {content-type: application / fgdc + xml}.cpg
- используется для указания кодовой страницы (только для.dbf
) для определения используемой кодировки символов {content-type:text/plain
ORx-gis/x-shapefile
}.qix
- альтернативный пространственный индекс дерева квадрантов, используемый MapServer и ПО GDAL / OGR {content-type: x-gis / x-shapefile}
В каждом из .shp
, .shx
и .dbf
файлов, формы в каждом файле соответствуют друг другу в последовательности (то есть, первая запись в .shp
файл соответствует первой записи в .shx
и .dbf
файлов и т.д.). .shp
И .shx
файлы имеют различные поля с различными байтов , так что реализатор форматов файлов должны быть очень осторожными , соблюдать порядок следования байтов каждого поля и относиться к нему должным образом.
Формат шейп-файла ( .shp ) [ править ]
Главный файл ( .shp ) содержит геометрические данные. Двоичный файл состоит из одной фиксированной длины заголовка за которым следует один или более переменной длины записей . Каждая из записей переменной длины включает компонент заголовка записи и компонент содержимого записи. Подробное описание формата файла приведено в Техническом описании ESRI Shapefile . [1] Этот формат не следует путать с исходным форматом шрифта AutoCAD shape, который имеет такое же расширение..shp
Упорядочение данных координат по двухмерной оси предполагает декартову систему координат с использованием порядка (XY) или (Восток и Север). Этот порядок осей согласован для географических систем координат , где порядок аналогичен (долгота и широта). Геометрия также может поддерживать 3- или 4- мерные координаты Z и M для высоты и измерения соответственно. Z-измерение хранит высоту каждой координаты в трехмерном пространстве , которое можно использовать для анализа или для визуализации геометрии с помощью компьютерной трехмерной графики . Определяемое пользователем измерение 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
файле. Также можно искать вперед произвольное количество записей, используя тот же метод.
Можно создать полный индексный файл для отдельного .shp
файла. Однако, поскольку шейп-файл всегда должен содержать индекс, это считается восстановлением поврежденного файла. [2]
Формат атрибута шейп-файла ( .dbf ) [ править ]
В этом файле хранятся атрибуты каждой формы; он использует формат dBase IV. Этот формат широко известен и был реализован во многих клонах dBase, известных как xBase . Например, библиотека C с открытым исходным кодом для шейп-файлов называет свой формат «xBase», хотя это простой dBase IV. [3]
Имена и значения атрибутов не стандартизированы и будут отличаться в зависимости от источника шейп-файла.
Формат пространственного индекса шейп-файла ( .sbn ) [ править ]
Это двоичный файл пространственного индекса , который используется только программным обеспечением Esri. Формат не задокументирован Esri. Однако он был переработан и задокументирован сообществом открытого исходного кода. 100-байтовый заголовок аналогичен заголовку в .sbp или идентичен ему . [4] В настоящее время не реализован другими поставщиками. Файл не является строго необходимым, поскольку файл содержит всю информацию , необходимую для успешного синтаксического анализа пространственных данных..sbn
.shp
Ограничения [ править ]
Топология и формат шейп-файла [ править ]
Формат шейп-файла не имеет возможности хранить топологическую информацию. В ESRI ArcInfo покрытия и личный / файл / предприятия геоданных имеют возможность хранить особенность топологии.
Пространственное представление [ править ]
Края полилинии или многоугольника состоят из точек. Расстояние между точками неявно определяет масштаб, в котором функция визуально полезна. Превышение этого масштаба приводит к неровному изображению. Дополнительные точки потребуются для получения гладких форм в больших масштабах. Для объектов, лучше представленных гладкими кривыми, представление многоугольника требует гораздо большего объема памяти, чем, например, сплайны , которые могут эффективно захватывать плавно изменяющиеся формы. Ни один из типов формата шейп-файлов не поддерживает сплайны.
Хранение данных [ править ]
Размер обоих файлов .shp
и .dbf
файлов компонентов не может превышать 2 ГБ (или 2 31 байта) - в лучшем случае около 70 миллионов точечных объектов. [5] Максимальное количество элементов для других типов геометрии зависит от количества используемых вершин.
Формат базы данных атрибутов для .dbf
файла компонента основан на более старом стандарте dBase . Этот формат базы данных по своей сути имеет ряд ограничений: [5]
- В то время как текущий стандарт dBase и GDAL / OGR (основная программная библиотека с открытым исходным кодом для чтения и записи наборов данных формата шейп-файлов) поддерживают нулевые значения, программное обеспечение 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) для чтения / записи шейп-файлов
- Поиск проекций шейп-файлов - автоматическое обнаружение неизвестных проекций шейп-файла [6] [7]
- Java Shapefile и Dbase Библиотека - Open Source (Apache License) Java библиотека для чтения / записи шейпфайлы и связанной Dbase файлов (библиотеки являются частью библиотеки AFC , но могут быть использованы независимо друг от друга)
Ссылки [ править ]
- ^ a b ESRI (июль 1998 г.). «Техническое описание ESRI Shapefile» (PDF) . Проверено 4 июля 2007 . Цитировать журнал требует
|journal=
( помощь ) - ^ Rollason, Ed. "qgis - Создание отсутствующего файла .shx?" . Обмен стеком географических информационных систем .
- ^ "Библиотека Shapefile C V1.2" .
- ^ (PDF) . 13 августа 2016 г. https://web.archive.org/web/20160813212443/https://pyshp.googlecode.com/files/sbn_format.pdf . Архивировано 13 августа 2016 года. Отсутствует или пусто
|title=
( справка )CS1 maint: bot: original URL status unknown (link) - ^ a b «Справка ArcGIS Desktop 9.3 - Рекомендации по геообработке для вывода в шейп-файл» . Esri. 24 апреля 2009 г.
- ^ Эггер, Манфред. "Проекционный искатель шейп-файлов" (PDF) . www.egger-gis.at .
- ^ "Проекционный искатель шейп-файла" .