Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Формат шейп- файла - это формат векторных геопространственных данных для программного обеспечения географической информационной системы (ГИС) . Он разработан и регулируется 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.atxx-gis/x-shapefile
  • .shp.xml- геопространственные метаданные в формате XML, например ISO 19115 или другой XML-схеме {content-type: application / fgdc + xml}
  • .cpg- используется для указания кодовой страницы (только для .dbf) для определения используемой кодировки символов {content-type: text/plainOR x-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-байтовых ( двойных ) подписанных полей с плавающей запятой:

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

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

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

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

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

Используя этот индекс, можно выполнять поиск в шейп-файле в обратном направлении, сначала выполняя поиск в обратном направлении по индексу фигуры (что возможно, поскольку он использует записи фиксированной длины), затем считывая смещение записи и используя это смещение для поиска правильное положение в .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 , но могут быть использованы независимо друг от друга)

Ссылки [ править ]

  1. ^ a b ESRI (июль 1998 г.). «Техническое описание ESRI Shapefile» (PDF) . Проверено 4 июля 2007 . Цитировать журнал требует |journal=( помощь )
  2. ^ Rollason, Ed. "qgis - Создание отсутствующего файла .shx?" . Обмен стеком географических информационных систем .
  3. ^ "Библиотека Shapefile C V1.2" .
  4. ^ (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)
  5. ^ a b «Справка ArcGIS Desktop 9.3 - Рекомендации по геообработке для вывода в шейп-файл» . Esri. 24 апреля 2009 г.
  6. ^ Эггер, Манфред. "Проекционный искатель шейп-файлов" (PDF) . www.egger-gis.at .
  7. ^ "Проекционный искатель шейп-файла" .