Позволяет ли shape файл хранить топологические связи
Формат шейп- файла - это формат векторных геопространственных данных для программного обеспечения географической информационной системы (ГИС) . Он разработан и регулируется Esri как в основном открытая спецификация для взаимодействия данных между Esri и другими программными продуктами ГИС . [1] Формат шейп-файла может пространственно описывать векторные объекты: точки , линии и многоугольники , представляющие, например, колодцы , реки и озера . У каждого предмета обычно есть атрибуты, которые его описывают, например, имя. или температура .
Формат шейп-файла - это цифровой векторный формат хранения для хранения геометрического местоположения и связанной с ним атрибутивной информации. В этом формате отсутствует возможность хранения топологической информации. Формат шейп-файлов был представлен в ArcView GIS версии 2 в начале 1990-х годов. Теперь можно читать и записывать наборы географических данных с использованием формата шейп-файлов с помощью широкого спектра программного обеспечения.
В формате шейп-файла данные хранятся в виде примитивных геометрических фигур, таких как точки, линии и многоугольники. Эти фигуры вместе с атрибутами данных, которые связаны с каждой фигурой, создают представление географических данных. Термин «шейп-файл» довольно распространен, но формат состоит из набора файлов с общим префиксом имени файла, хранящихся в одном каталоге . Три обязательных файлы имеют расширение файлов .shp , .shx и .dbf . Фактический шейп - .shp файл относится конкретно к файлу, но сам по себе не является полным для распространения, поскольку требуются другие вспомогательные файлы. Устаревшее программное обеспечение ГИС может рассчитывать, что префикс имени файла будет ограничен восемью символами, чтобы соответствовать соглашению об именах файлов DOS 8.3 , хотя современные программные приложения принимают файлы с более длинными именами.
- .shp - формат формы; сама геометрия объекта
- .shx - формат индекса формы; позиционный индекс геометрии объекта для быстрого поиска вперед и назад
- .dbf - формат атрибута; атрибуты столбцов для каждой формы в формате dBase IV
- .prj - описание проекции с использованием общеизвестного текстового представления систем координат
- .sbn и .sbx - пространственный индекс функций
- .fbn и .fbx - пространственный индекс функций, которые доступны только для чтения
- .ain и .aih - индекс атрибута активных полей в таблице
- .ixs - индекс геокодирования для наборов данных для чтения и записи
- .mxs - индекс геокодирования для наборов данных для чтения и записи (формат ODB)
- .atx - индекс атрибута для .dbf файла в форме (ArcGIS 8 и новее) shapefile.columnname.atx x-gis/x-shapefile
- .shp.xml - геопространственные метаданные в формате XML, например ISO 19115 или другой XML-схеме
- .cpg - используется для указания кодовой страницы (только для .dbf ) для определения используемой кодировки символов
- .qix - альтернативный пространственный индекс дерева квадрантов, используемый программным обеспечением MapServer и GDAL / OGR
В каждом из .shp , .shx и .dbf файлов, формы в каждом файле соответствуют друг другу в последовательности (то есть, первая запись в .shp файл соответствует первой записи в .shx и .dbf файлов и т.д.). .shp И .shx файлы имеют различные поля с различными байтов , так что реализатор форматов файлов должны быть очень осторожными , соблюдать порядок следования байтов каждого поля и относиться к нему должным образом.
Упорядочение данных координат по двухмерной оси предполагает декартову систему координат с использованием порядка (XY) или (Восток и Север). Этот порядок осей согласован для географических систем координат , где порядок аналогичен (долгота и широта). Геометрия также может поддерживать 3- или 4- мерные координаты Z и M для высоты и измерения соответственно. Z-измерение хранит высоту каждой координаты в трехмерном пространстве , которое может использоваться для анализа или для визуализации геометрии с использованием трехмерной компьютерной графики . Определяемое пользователем M-измерение может использоваться для одной из многих функций, таких как хранение линейных мер привязки или относительного времени объекта в 4- мерном пространстве .
Затем файл содержит любое количество записей переменной длины. Каждой записи предшествует заголовок записи размером 8 байтов:
Байты | Тип | Порядок байтов | Применение |
---|---|---|---|
0–3 | int32 | большой | Номер записи (от 1) |
4–7 | int32 | большой | Длина записи (в 16-битных словах) |
За заголовком записи следует фактическая запись:
Байты | Тип | Порядок байтов | Применение |
---|---|---|---|
0–3 | int32 | маленький | Тип формы (см. Ссылку ниже) |
4– | - | - | Контент формы |
Содержимое записи переменной длины зависит от типа фигуры, который должен быть либо типом фигуры, указанным в заголовке файла, либо пустым. Ниже перечислены возможные типы фигур:
Необязательно : M
Дополнительно : диапазон M, массив M
Дополнительно : диапазон M, массив M
Дополнительно : диапазон M, массив M
Дополнительно : диапазон M, массив M
Дополнительно : диапазон M, массив M
Необязательные поля : диапазон M, массив M
Дополнительно : диапазон M, массив M
Байты | Тип | Порядок байтов | Применение |
---|---|---|---|
0–3 | int32 | большой | Смещение записи (в 16-битных словах) |
4–7 | int32 | большой | Длина записи (в 16-битных словах) |
Используя этот индекс, можно искать в шейп-файле назад, сначала ища назад по индексу формы (что возможно, потому что он использует записи фиксированной длины), затем считывая смещение записи и используя это смещение для поиска правильное положение в .shp файле. Также можно искать вперед произвольное количество записей, используя тот же метод.
Можно сгенерировать полный индексный файл для отдельного .shp файла. Однако, поскольку шейп-файл должен всегда содержать индекс, это считается восстановлением поврежденного файла. [2]
В этом файле хранятся атрибуты каждой формы; он использует формат dBase IV. Этот формат является общеизвестным и реализован во многих клонах dBase, известных как xBase . Например, библиотека C с открытым исходным кодом для шейп-файлов называет свой формат «xBase», хотя это простой dBase IV. [3]
Имена и значения атрибутов не стандартизированы и будут отличаться в зависимости от источника шейп-файла.
Компоненты шейп-файлов и расширения файлов
Шейп-файлы хранятся в трех или более файлах, которые имеют одинаковый префикс и находятся в одной папке (рабочей области шейп-файлов). Отдельные файлы можно увидеть с помощью Проводника Windows, в ArcGIS Pro они не отображаются.
Основной файл, в котором хранится геометрия объектов. В этом файле не хранятся атрибуты – только геометрия.
Парный к .shp файл, в котором хранятся местоположения отдельных ID пространственных объектов, находящихся в файле .shp .
Таблица dBASE, в которой находятся атрибуты пространственных объектов.
Файлы, в которых хранится пространственный индекс объектов.
Атрибутивный индекс, создающийся для каждой таблицы dBASE.
Индекс геокодирования для чтения-записи шейп-файлов.
Файл, в котором хранится информация о системе координат.
Метаданные для ArcGIS; хранит информацию о шейп-файле.
Ограничения по геометрии
- Каждый файл-компонент шейп-файла не может быть более 2 GB, что составляет примерно 70 миллионов точечных объектов. Количество линейных или полигональных объектов, которые могут содержаться в шейп-файле, зависит от числа вершин этих объектов (вершина является эквивалентом точки).
- В шейп-файлах не хранится значение допуска x,y, как в классах объектов базы геоданных. Допуск по x,y – это минимальное расстояние между координатами, ближе которого они будут считаться идентичными. Допуск x,y используется при оценке взаимосвязей между пространственными объектами одного класса объектов, или между объектами нескольких различных классов. Он активно используется при редактировании объектов. Если вы выполняете любую операцию, включающую сравнение объектов, например, используете инструменты группы Наложение, инструмент Вырезание , инструмент Выбрать в слое по расположению , или любой инструмент, который использует в качестве входных данных два или более класса пространственных объектов, следует использовать класс объектов базы геоданных (который имеет допуск по x,y) вместо шейп-файлов.
- Шейп-файл может занимать от трех до пяти раз больше места, по сравнению с файловой базой геоданных или SDE, поскольку использует иные методы сжатия.
- Шейп-файлы поддерживают объекты-мультипатчи, но не поддерживают следующие возможности мультипатчей:
- Координаты текстур
- Текстуры и частичное окрашивание
- Нормали освещенности
Неподдерживаемые функции
Шейп-файлы не имеют дополнительных типов данных, как другие рабочие области или классы объектов. При конвертации в шейп-файл класса объектов базы геоданных или набора данных другого формата следующие элементы будут потеряны:
- Подтипы
- Атрибутивные домены
- Геометрические сети
- Топологии
- Аннотация
Пространственная привязка и шейп-файлы
В разделе Пространственная привязка и геообработка обсуждается важность определения свойств пространственной привязки при использовании инструментов геообработки. Несколько параметров среды геообработки контролируют пространственную привязку данных при работе инструментов геообработки. Следующие параметры не поддерживаются, если в качестве выходных данных инструмента задан шейп-файл:
Формат шейп- файла - это формат векторных геопространственных данных для программного обеспечения географической информационной системы (ГИС) . Он разработан и регулируется Esri как в основном открытая спецификация для взаимодействия данных между Esri и другими программными продуктами ГИС . [1] Формат шейп-файла может пространственно описывать векторные объекты: точки , линии и многоугольники , представляющие, например, колодцы , реки и озера . У каждого предмета обычно есть атрибуты, которые его описывают, например, имя. или температура .
Shape length и shape area
Для классов линейных и полигональных объектов, хранящихся в базе геоданных, ArcGIS вычисляет и поддерживает поля shape_length и shape_area ; т.е., при изменении формы линии или полигона в классе объектов базы геоданных значения полей shape_length и shape_area обновляются, отражая внесенные в эти объекты изменения. Но для шейп-файлов этого не происходит. Даже если шейп-файл содержит поле shape_area или shape_leng , они не будут обновляться при изменении шейп-файла.
Шейп-файлы и геообработка
Любой инструмент геообработки, выходными данными которого является класс пространственных объектов, позволяет вам выбрать в качестве выходного набора данных шейп-файл или класс объектов базы геоданных. Точно так же, если выходными данными инструмента является таблица, вы можете выбрать таблицу базы геоданных или файл dBASE ( .dbf ). При выборе формата выходных данных, вы должны понимать возможные проблемы, которые возникают если в качестве входных данных задан класс объектов базы геоданных, а для выходных данных определен шейп-файл.
Инструмент геообработки создает выходной класс объектов или таблицу автоматически. Автоматически создаваемые выходные данные базируются на ряде факторов, как описано в разделе Использование параметров среды Текущая и Временная рабочие области. Если в качестве временной рабочей области задана системная папка, а не база геоданных, автоматически создаваемый выходной класс объектов будет шейп-файлом или файлом dBASE (см. рис. ниже).
Если в качестве временной рабочей области будет задана файловая база геоданных, автоматически создаваемый выходной класс объектов будет классом объектов этой базы геоданных, а не шейп-файлом или таблицей .dbf (см. рис. ниже).
Так как сохранение шейп-файла занимает мало времени, они часто используются для записи промежуточных данных в модели, что уменьшает время, необходимое для выполнения модели. Тем не менее, запись в файловую базу геоданных, как правило, занимает не больше времени, чем запись шейп-файла, поэтому, если скорость выполнения модели для вас не критична, вам следует использовать файловую базу геоданных для промежуточных и выходных данных. Однако, если вы все-таки используете шейп-файлы, помните об их ограничениях, описанных выше, и используйте шейп-файлы только для хранения простых пространственных объектов или атрибутов. Альтернативой использования шейп-файлов является использование виртуальной рабочей области для хранения промежуточных данных.
Неподдерживаемые функции
Шейп-файлы не имеют дополнительных типов данных, как другие рабочие области или классы объектов. При конвертации в шейп-файл класса объектов базы геоданных или набора данных другого формата следующие элементы будут потеряны:
- Подтипы
- Атрибутивные домены
- Геометрические сети
- Топологии
- Аннотация
Когда следует использовать шейп-файл?
- При экспорте данных для работы со сторонними (не- Esri ) программными приложениями.
- Когда вам нужно быстро записать простые объекты и атрибуты. (Однако, необходимо помнить о следующих ограничениях.)
Неподдерживаемые функции
Шейп-файлы не имеют дополнительных типов данных, как другие рабочие области или классы объектов. При конвертации в шейп-файл класса объектов базы геоданных, или набора данных другого формата, следующие элементы будут потеряны:
- Подтипы
- Атрибутивные домены
- Геометрические сети
- Топологии
- Аннотация
Пространственная привязка и шейп-файлы
В разделе Пространственная привязка и геообработка обсуждается важность определения свойств пространственной привязки при использовании инструментов геообработки. Несколько параметров среды геообработки контролируют пространственную привязку данных при работе инструментов геообработки. Следующие параметры не поддерживаются, если в качестве выходных данных инструмента задан шейп-файл:
Несколько лет назад в Esri были разработаны три основных формата данных для хранения географической информации – покрытия, шейп-файлы и базы геоданных. Шейп-файлы были разработаны как простой формат для хранения географической и атрибутивной информации. В силу их простоты, шейп-файлы стали популярным форматом для обмена данными. Хотя шейп-файлы просты и удобны в работе, они имеют некоторые ограничения, которые отсутствуют в базах геоданных. При использовании шейп-файлов, эти ограничения следует учитывать. В целом,
Эти и другие проблемы делают шейп-файлы слабо пригодными для активной работы с базами данных – они не соответствуют современным способам создания, редактирования, поддержки версий и архивирования.
Когда не следует использовать шейп-файл?
С некоторыми исключениями, описанными ниже, шейп-файлы подходят для хранения простой геометрии пространственных объектов. Однако шейп-файлы имеют серьезные проблемы, связанные с хранением атрибутов. Например, они не могут хранить значения NULL, округлять числа, имеют ограниченную поддержку символов Unicode, не могут хранить поля, имена которых длиннее 10 знаков, и не могут хранить дату и время в одном поле. Это только основные ограничения. Кроме того, они не поддерживают возможности, присутствующие в базах геоданных, например, работу с доменами и подтипами. Поэтому, не следует использовать шейп-файлы, если вы хотите хранить сложные атрибуты и пользоваться возможностями, предоставляемыми базами геоданных.
Шейп-файлы и геообработка
Любой инструмент геообработки, выходными данными которого является класс пространственных объектов, позволяет вам выбрать в качестве выходного набора данных шейп-файл или класс объектов базы геоданных. Точно так же, если выходными данными инструмента является таблица, вы можете выбрать таблицу базы геоданных или файл dBASE ( .dbf ). При выборе формата выходных данных, вы должны понимать возможные проблемы, которые возникают если в качестве входных данных задан класс объектов базы геоданных, а для выходных данных определен шейп-файл.
Инструмент геообработки создает выходной класс объектов или таблицу автоматически. Автоматически создаваемые выходные данные базируются на ряде факторов, как описано в разделе Использование параметров среды Текущая и Временная рабочие области. Если в качестве временной рабочей области задана системная папка, а не база геоданных, автоматически создаваемым выходным классом объектов будет шейп-файл или файл dBASE.
Если в качестве временной рабочей области будет задана файловая база геоданных, автоматически создаваемый выходной класс объектов будет классом объектов этой базы геоданных, а не шейп-файлом или таблицей .dbf .
Так как сохранение шейп-файла занимает мало времени, они часто используются для записи промежуточных данных в модели, что уменьшает время, необходимое для выполнения модели. Тем не менее, запись в файловую базу геоданных, как правило, занимает не больше времени, чем запись шейп-файла, поэтому, если скорость выполнения модели для вас не критична, вам следует использовать файловую базу геоданных для промежуточных и выходных данных. Однако, если вы все-таки используете шейп-файлы, помните об их ограничениях, описанных выше, и используйте шейп-файлы только для хранения простых пространственных объектов или атрибутов. Альтернативой использования шейп-файлов для хранения промежуточных данных является запись объектов в рабочую область памяти.
Пространственная привязка и шейп-файлы
В разделе Пространственная привязка и геообработка обсуждается важность определения свойств пространственной привязки при использовании инструментов геообработки. Несколько параметров среды геообработки контролируют пространственную привязку данных при работе инструментов геообработки. Следующие параметры не поддерживаются, если в качестве выходных данных инструмента задан шейп-файл:
Ограничения по геометрии
- Каждый файл-компонент шейп-файла не может быть более 2 GB, что составляет примерно 70 миллионов точечных объектов. Количество линейных или полигональных объектов, которые могут содержаться в шейп-файле, зависит от числа вершин этих объектов (вершина является эквивалентом точки).
- В шейп-файлах не хранится значение допуска x,y, как в классах объектов базы геоданных. Допуск по x,y – это минимальное расстояние между координатами, ближе которого они будут считаться идентичными. Допуск используется при оценке взаимосвязей между пространственными объектами одного класса объектов, или между объектами нескольких различных классов. Он активно используется при редактировании объектов. Если вы выполняете любую операцию, включающую сравнение объектов, например, используете инструменты группы Наложение (Overlay), инструмент Вырезать (Clip) , инструмент Выбрать в слое по расположению (Select Layer By Location) , или любой инструмент, который использует в качестве входных данных два или более класса пространственных объектов, следует использовать класс объектов базы геоданных (который имеет допуск по x,y) вместо шейп-файлов.
- Шейп-файл может занимать от трех до пяти раз больше места, по сравнению с файловой базой геоданных или SDE, поскольку использует иные методы сжатия.
- Шейп-файлы поддерживают объекты-мультипатчи, но не поддерживают следующие возможности мультипатчей:
- Координаты текстур
- Текстуры и частичное окрашивание
- Нормали освещенности
Ограничения по геометрии
- Каждый файл-компонент шейп-файла не может быть более 2 GB, что составляет примерно 70 миллионов точечных объектов. Количество линейных или полигональных объектов, которые могут содержаться в шейп-файле, зависит от числа вершин этих объектов (вершина является эквивалентом точки).
- В шейп-файлах не хранится значение допуска x,y, как в классах объектов базы геоданных. Допуск по x,y – это минимальное расстояние между координатами, ближе которого они будут считаться идентичными. Допуск x,y используется при оценке взаимосвязей между пространственными объектами одного класса объектов, или между объектами нескольких различных классов. Он активно используется при редактировании объектов. Если вы выполняете любую операцию, включающую сравнение объектов, например, используете инструменты группы Наложение, инструмент Вырезание , инструмент Выбрать в слое по расположению , или любой инструмент, который использует в качестве входных данных два или более класса пространственных объектов, следует использовать класс объектов базы геоданных (который имеет допуск по x,y) вместо шейп-файлов.
- Шейп-файл может занимать от трех до пяти раз больше места, по сравнению с файловой базой геоданных или SDE, поскольку использует иные методы сжатия.
- Шейп-файлы поддерживают объекты-мультипатчи, но не поддерживают следующие возможности мультипатчей:
- Координаты текстур
- Текстуры и частичное окрашивание
- Нормали освещенности
Представление нулевого значения
Шейп-файлы не поддерживают хранение пустых (Null) значений. Если класс объектов, содержащий значения NULL, конвертировать в шейп-файлы или конвертировать таблицу базы данных в файл dBASE, значения NULL будут заменены на значения, приведенные в следующей таблице.
Внимание:
При использовании шейп-файлов или файлов dBASE ( .dbf ) в качестве входных данных для инструментов ArcGIS не может определить, представляют ли значения полей значение NULL или допустимое значение.
Число – если необходимым выходным значением инструмента должны быть NULL, бесконечность или NaN (Не Число).
-1.7976931348623158e+308 (IEEE стандарт для максимального отрицательного значения)
Числовое (все остальные инструменты геообработки).
" " (пусто – один пробел)
Хранится как ноль, но отображается
Шейп-файлы и геообработка
Любой инструмент геообработки, выходными данными которого является класс пространственных объектов, позволяет вам выбрать в качестве выходного набора данных шейп-файл или класс объектов базы геоданных. Точно так же, если выходными данными инструмента является таблица, вы можете выбрать таблицу базы геоданных или файл dBASE ( .dbf ). При выборе формата выходных данных, вы должны понимать возможные проблемы, которые возникают если в качестве входных данных задан класс объектов базы геоданных, а для выходных данных определен шейп-файл.
Инструмент геообработки создает выходной класс объектов или таблицу автоматически. Если в качестве временной рабочей области задана системная папка, а не база геоданных, автоматически создаваемым выходным классом объектов будет шейп-файл или файл dBASE.
Если в качестве временной рабочей области будет задана файловая база геоданных, автоматически создаваемый выходной класс объектов будет классом объектов этой базы геоданных, а не шейп-файлом или таблицей .dbf .
Так как сохранение шейп-файла занимает мало времени, они часто используются для записи промежуточных данных в модели, что уменьшает время, необходимое для выполнения модели. Тем не менее, запись в файловую базу геоданных, как правило, занимает не больше времени, чем запись шейп-файла, поэтому, если скорость выполнения модели для вас не критична, вам следует использовать файловую базу геоданных для промежуточных и выходных данных. Однако, если вы все-таки используете шейп-файлы, помните об их ограничениях, описанных выше, и используйте шейп-файлы только для хранения простых пространственных объектов или атрибутов. Альтернативой использования шейп-файлов является использование виртуальной рабочей области для хранения промежуточных данных.
Представление нулевого значения
Шейп-файлы не поддерживают хранение пустых (Null) значений. Если класс объектов, содержащий значения NULL, конвертировать в шейп-файлы или конвертировать таблицу базы данных в файл dBASE, значения NULL будут заменены на значения, приведенные в следующей таблице.
Внимание:
При использовании шейп-файлов или файлов dBASE ( .dbf ) в качестве входных данных для инструментов ArcGIS не может определить, представляют ли значения полей значение NULL или допустимое значение.
Число – если инструмент требует NULL, бесконечность или NaN (Не Число) в выходном значении.
-1.7976931348623158e+308 (IEEE стандарт для максимального отрицательного значения)
Число (все остальные инструменты геообработки).
" " (пусто – без пробела)
Хранится как ноль, но отображается как
Когда следует использовать шейп-файл?
- При экспорте данных для работы со сторонними (не- Esri ) программными приложениями.
- Когда вам нужно быстро записать простые объекты и атрибуты. (Однако, необходимо помнить о следующих ограничениях.)
Пространственное представление
Края полилинии или многоугольника состоят из точек. Расстояние между точками неявно определяет масштаб, в котором функция визуально полезна. Превышение этого масштаба приводит к неровному изображению. Дополнительные точки потребуются для получения гладких форм в больших масштабах. Для объектов, лучше представленных гладкими кривыми, представление многоугольника требует гораздо большего объема памяти, чем, например, сплайны , которые могут эффективно захватывать плавно изменяющиеся формы. Ни один из типов формата шейп-файлов не поддерживает сплайны.
Связанные темы
© Copyright 2016 Environmental Systems Research Institute, Inc. | Конфиденциальность | Правовая информация
Несколько лет назад в Esri были разработаны три основных формата данных для хранения географической информации – покрытия, шейп-файлы и базы геоданных. Шейп-файлы были разработаны как простой формат для хранения географической и атрибутивной информации. В силу их простоты, шейп-файлы стали популярным форматом для обмена данными. Хотя шейп-файлы просты и удобны в работе, они имеют некоторые ограничения, которые отсутствуют в базах геоданных. При использовании шейп-файлов эти ограничения следует учитывать. В общих чертах, ограничения включают следующее:
Эти и другие проблемы делают шейп-файлы мало пригодными для активной работы с базами данных. Шейп-файлы не соответствуют современным способам создания, редактирования, поддержки версий и архивирования.
Смешивание типов форм
Поскольку тип формы предшествует каждой записи геометрии, шейп-файл технически способен хранить смесь различных типов форм. Однако в спецификации указано: «Все фигуры, отличные от Null, в шейп-файле должны быть одного и того же типа». Следовательно, эта возможность смешивания типов фигур должна быть ограничена перемежением пустых фигур с одним типом фигуры, объявленным в заголовке файла. Шейп-файл не должен содержать данные как полилинии, так и полигона, например, описания колодца (точки), реки (полилинии) и озера (многоугольника) будут храниться в трех отдельных наборах данных.
Несколько лет назад в Esri были разработаны три основных формата данных для хранения географической информации – покрытия, шейп-файлы и базы геоданных. Шейп-файлы были разработаны как простой формат для хранения географической и атрибутивной информации. В силу их простоты, шейп-файлы стали популярным форматом для обмена данными. Хотя шейп-файлы просты и удобны в работе, они имеют некоторые ограничения, которые отсутствуют в базах геоданных. При использовании шейп-файлов эти ограничения следует учитывать. В общих чертах, ограничения включают следующее:
- Географические данные представляют собой большее, чем только пространственные объекты и атрибуты, которые могут храниться в шейп-файле. Например, существуют аннотации, атрибутивные связи, топологические связи, атрибутивные домены и подтипы, координатная точность и разрешение, и множество других свойств, которые поддерживаются в базе геоданных, но не в шейп-файлах.
- Шейп-файлы используют формат dBASE (файл .dbf ) для хранения атрибутов. dBASE не является форматом Esri , он был разработан в начале 1980-х и в то время стал наиболее распространенным форматом хранения таблиц атрибутов. Однако с тех пор появилось большое количество улучшений, связанных с отображением данных, например, формат Unicode, поддерживающий большинство языков, использующихся в мире. Это одна из причин, почему шейп-файлы плохо подходят для хранения данных на других языках, кроме английского.
- В отличие от классов объектов базы геоданных, ArcGIS не вычисляет и не хранит поля длины и площади геометрии.
Эти и другие проблемы делают шейп-файлы мало пригодными для активной работы с базами данных. Шейп-файлы не соответствуют современным способам создания, редактирования, поддержки версий и архивирования.
Компоненты шейп-файлов и расширения файлов
Шейп-файлы хранятся в трех или более файлах, которые имеют одинаковый префикс и находятся в одной папке (рабочей области шейп-файлов). Отдельные файлы можно увидеть с помощью Проводника Windows, в ArcCatalog они не отображаются.
Основной файл, в котором хранится геометрия объектов. В этом файле не хранятся атрибуты – только геометрия.
Парный к .shp файл, в котором хранятся местоположения отдельных ID пространственных объектов, находящихся в файле .shp .
Таблица dBASE, в которой находятся атрибуты пространственных объектов.
Файлы, в которых хранится пространственный индекс объектов.
Атрибутивный индекс, создающийся для каждой таблицы dBASE.
Индекс геокодирования для чтения-записи шейп-файлов.
Файл, в котором хранится информация о системе координат.
Метаданные для ArcGIS; хранит информацию о шейп-файле.
Ограничения атрибутов
- В отличие от других форматов, шейп-файл хранит числовые атрибуты в символьном, а не бинарном формате. Для реальных числовых значений (например, с десятичными знаками), это может привести к ошибкам из-за округления. Это ограничение касается только атрибутов, и не относится к хранению координат в столбце shape. В следующей таблице представлены значения ширины полей для каждого типа атрибутов:
Примечание:
Если вам необходима поддержка кодировки Unicode для имен полей или атрибутивных значений, мы настоятельно рекомендуем использовать формат базы геоданных, а не шейп-файла.
Внимание:
То, что в полях дат не поддерживается время, может стать серьезным ограничителем для любого инструмента из набора Углубленный анализ пространственно-временных закономерностей, служащего для выполнения временного анализа. Старайтесь не использовать шейп-файлы для любых типов временного анализа или расчета времени и даты.
СОДЕРЖАНИЕ
Формат шейп-файла - это цифровой векторный формат хранения для хранения геометрического местоположения и связанной с ним атрибутивной информации. В этом формате отсутствует возможность хранения топологической информации. Формат шейп-файлов был представлен в ArcView GIS версии 2 в начале 1990-х годов. Теперь можно читать и записывать наборы географических данных с использованием формата шейп-файлов с помощью широкого спектра программного обеспечения.
В формате шейп-файла данные хранятся в виде примитивных геометрических фигур, таких как точки, линии и многоугольники. Эти фигуры вместе с атрибутами данных, которые связаны с каждой фигурой, создают представление географических данных. Термин «шейп-файл» довольно распространен, но формат состоит из набора файлов с общим префиксом имени файла, хранящихся в одном каталоге . Три обязательных файлы имеют расширение файлов .shp , .shx и .dbf . Фактический шейп - .shp файл относится конкретно к файлу, но сам по себе не является полным для распространения, поскольку требуются другие вспомогательные файлы. Устаревшее программное обеспечение ГИС может ожидать, что префикс имени файла будет ограничен восемью символами в соответствии с DOS. 8.3 соглашение об именах файлов , хотя современные программные приложения принимают файлы с более длинными именами.
- .shp - формат формы; сама геометрия объекта
- .shx - формат индекса формы; позиционный индекс геометрии объекта для быстрого поиска вперед и назад
- .dbf - формат атрибута; атрибуты столбцов для каждой формы в формате dBase IV
- .prj - описание проекции с использованием общеизвестного текстового представления систем координат
- .sbn и .sbx - пространственный индекс функций
- .fbn и .fbx - пространственный индекс функций, которые доступны только для чтения
- .ain и .aih - индекс атрибута активных полей в таблице
- .ixs - индекс геокодирования для наборов данных для чтения и записи
- .mxs - индекс геокодирования для наборов данных для чтения и записи (формат ODB)
- .atx - индекс атрибута для .dbf файла в форме (ArcGIS 8 и новее) shapefile.columnname.atx x-gis/x-shapefile
- .shp.xml - геопространственные метаданные в формате XML, например ISO 19115 или другой XML-схеме
- .cpg - используется для указания кодовой страницы (только для .dbf ) для определения используемой кодировки символов
- .qix - альтернативный пространственный индекс дерева квадрантов, используемый программным обеспечением MapServer и GDAL / OGR
В каждом из .shp , .shx и .dbf файлов, формы в каждом файле соответствуют друг другу в последовательности (то есть, первая запись в .shp файл соответствует первой записи в .shx и .dbf файлов и т.д.). .shp И .shx файлы имеют различные поля с различными байтов , так что реализатор форматов файлов должны быть очень осторожными , соблюдать порядок следования байтов каждого поля и относиться к нему должным образом.
Упорядочение данных координат по двухмерной оси предполагает декартову систему координат с использованием порядка (XY) или (Восток и Север). Этот порядок осей согласован для географических систем координат , где порядок аналогичен (долгота и широта). Геометрия также может поддерживать 3- или 4- мерные координаты Z и M для высоты и измерения соответственно. Z-измерение хранит высоту каждой координаты в трехмерном пространстве , которое может использоваться для анализа или для визуализации геометрии с использованием трехмерной компьютерной графики . Определяемое пользователем измерение M может использоваться для одной из многих функций, таких как сохранение линейных мер привязки или относительного времени. объекта в 4D пространстве .
Байты Тип Порядок байтов использование 0–3 int32 большой Код файла (всегда шестнадцатеричное значение 0x0000270a ) 4–23 int32 большой Не используется; пять uint32 24–27 int32 большой Длина файла (16-битными словами, включая заголовок) 28–31 int32 маленький Версия 32–35 int32 маленький Тип формы (см. Ссылку ниже) 36–67 двойной маленький Минимальный ограничивающий прямоугольник (MBR) всех фигур, содержащихся в наборе данных; четыре двойных в следующем порядке: мин. X, мин. Y, макс. X, макс. Y 68–83 двойной маленький Диапазон Z; два дубля в следующем порядке: min Z, max Z 84–99 двойной маленький Диапазон M; два дубля в следующем порядке: мин М, макс М Затем файл содержит любое количество записей переменной длины. Каждой записи предшествует заголовок записи размером 8 байтов:
Байты Тип Порядок байтов использование 0–3 int32 большой Номер записи (от 1) 4–7 int32 большой Длина записи (в 16-битных словах) За заголовком записи следует фактическая запись:
Байты Тип Порядок байтов использование 0–3 int32 маленький Тип формы (см. Ссылку ниже) 4– - - Контент формы Содержимое записи переменной длины зависит от типа фигуры, который должен быть либо типом фигуры, указанным в заголовке файла, либо пустым. Ниже перечислены возможные типы фигур:
Необязательно : M
Дополнительно : диапазон M, массив M
Дополнительно : диапазон M, массив M
Дополнительно : диапазон M, массив M
Дополнительно : диапазон M, массив M
Дополнительно : диапазон M, массив M
Необязательные поля : диапазон M, массив M
Дополнительно : диапазон M, массив M
Байты Тип Порядок байтов использование 0–3 int32 большой Смещение записи (в 16-битных словах) 4–7 int32 большой Длина записи (в 16-битных словах) Используя этот индекс, можно выполнять поиск в шейп-файле в обратном направлении, сначала выполняя поиск в обратном направлении по индексу формы (что возможно, потому что он использует записи фиксированной длины), затем считывая смещение записи и используя это смещение для поиска правильное положение в .shp файле. Также можно искать вперед произвольное количество записей, используя тот же метод.
Можно сгенерировать полный индексный файл для отдельного .shp файла. Однако, поскольку шейп-файл должен всегда содержать индекс, это считается восстановлением поврежденного файла. [2]
В этом файле хранятся атрибуты каждой формы; он использует формат dBase IV. Этот формат является общеизвестным и реализован во многих клонах dBase, известных как xBase . Например, библиотека C с открытым исходным кодом для шейп-файлов называет свой формат «xBase», хотя это простой dBase IV. [3]
Имена и значения атрибутов не стандартизированы и будут отличаться в зависимости от источника шейп-файла.
Формат шейп-файла не позволяет хранить топологическую информацию. В 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, в шейп-файле должны быть одного и того же типа». Следовательно, эта возможность смешивания типов фигур должна быть ограничена перемежением пустых фигур с одним типом фигуры, объявленным в заголовке файла. Шейп-файл не должен содержать данные как полилинии, так и полигона, например, описания колодца (точки), реки (полилинии) и озера (многоугольника) будут храниться в трех отдельных наборах данных.
Когда не следует использовать шейп-файл?
С некоторыми исключениями, описанными ниже, шейп-файлы подходят для хранения простой геометрии пространственных объектов. Однако шейп-файлы имеют серьезные проблемы, связанные с хранением атрибутов. Например, они не могут хранить значения NULL, они округляют числа, они не полностью поддерживают строки символов Unicode, не могут работать с полями, имена которых длиннее 10 знаков, и не могут хранить время в поле дат. Это только основные ограничения. Кроме того, они не поддерживают возможности, присутствующие в базах геоданных, например, работу с доменами и подтипами. Поэтому, не следует использовать шейп-файлы, если вы хотите хранить сложные атрибуты и пользоваться возможностями, предоставляемыми базами геоданных.
Ограничения атрибутов
- В отличие от других форматов, шейп-файл хранит числовые атрибуты в символьном, а не бинарном формате. Для реальных числовых значений (например, с десятичными знаками), это может привести к ошибкам из-за округления. Это ограничение касается только атрибутов, и не относится к хранению координат в столбце shape. В следующей таблице представлены значения ширины полей для каждого типа атрибутов:
Примечание:
Если вам необходима поддержка кодировки Unicode для имен полей или атрибутивных значений, мы настоятельно рекомендуем использовать формат базы геоданных, а не шейп-файла.
Компоненты шейп-файлов и расширения файлов
Шейп-файлы хранятся в трех или более файлах, которые имеют одинаковый префикс и находятся в одной папке (рабочей области шейп-файлов). Отдельные файлы можно увидеть с помощью Проводника Windows, в ArcCatalog они не отображаются.
Основной файл, в котором хранится геометрия объектов. В этом файле не хранятся атрибуты – только геометрия.
Парный к .shp файл, в котором хранятся местоположения отдельных ID пространственных объектов, находящихся в файле .shp.
Таблица dBASE, в которой находятся атрибуты пространственных объектов.
Файлы, в которых хранится пространственный индекс объектов.
Атрибутивный индекс, создающийся в ArcCatalog для каждой таблицы dBASE.
Индекс геокодирования для чтения-записи шейп-файлов.
Файл, в котором хранится информация о системе координат.
Метаданные для ArcGIS; хранит информацию о шейп-файле.
Когда следует использовать шейп-файл?
- При экспорте данных для работы со сторонними (не- Esri ) программными приложениями
- При экспорте данных для работы в ArcView GIS 3 или ArcInfo Workstation
- Если необходимо быстро записать простые объекты и атрибуты, например для сервисов геообработки (однако необходимо помнить об ограничениях, которые описаны ниже.)
Топология и формат шейп-файла
Формат шейп-файла не позволяет хранить топологическую информацию. В ESRI ArcInfo покрытия и личный / файл / предприятия геоданных имеют возможность хранить особенность топологии.
Хранилище данных
Размер обоих .shp и .dbf компонентных файлов не может превышать 2 ГБ (или 2 31 байта) - в лучшем случае около 70 миллионов точечных объектов. [5] Максимальное количество элементов для других типов геометрии зависит от количества используемых вершин.
Формат базы данных атрибутов для .dbf файла компонента основан на более старом стандарте dBase . Этот формат базы данных по своей сути имеет ряд ограничений: [5]
- В то время как текущий стандарт dBase и GDAL / OGR (основная программная библиотека с открытым исходным кодом для чтения и записи наборов данных формата шейп-файлов) поддерживают нулевые значения, программное обеспечение ESRI представляет эти значения как нули - очень серьезная проблема для анализа количественных данных, так как это может исказить представление и статистика, если нулевые величины представлены как нулевые
- Плохая поддержка имен полей Unicode или хранения полей
- Максимальная длина имени поля - 10 символов.
- Максимальное количество полей 255
- Поддерживаемые типы полей: с плавающей точкой (хранение 13 символов), целое число (хранение 4 или 9 символов), дата (без хранения времени; хранение 8 символов) и текст (максимальное хранение 254 символов).
- Числа с плавающей запятой могут содержать ошибки округления, поскольку они хранятся в виде текста.
Shape length и shape area
Для классов линейных и полигональных объектов, хранящихся в базе геоданных, ArcGIS вычисляет и хранит поля shape_length и shape_area ; т.е., когда вы редактируете форму линии или полигона в классе объектов базу геоданных, значения полей shape_length и shape_area вычисляются заново с учетом изменений. Но для шейп-файлов этого не происходит. Даже если шейп-файл содержит поле shape_area или shape_leng , они не будут обновляться при изменении шейп-файла.
Ограничения атрибутов
- В отличие от других форматов, шейп-файл хранит числовые атрибуты в символьном, а не бинарном формате. Для реальных числовых значений (например, с десятичными знаками), это может привести к ошибкам из-за округления. Это ограничение касается только атрибутов, и не относится к хранению координат в столбце shape. В следующей таблице представлены значения ширины полей для каждого типа атрибутов:
С плавающей точкой
С плавающей точкой
С плавающей точкой
Примечание:
Если вам необходима поддержка кодировки Unicode для имен полей или атрибутивных значений, мы настоятельно рекомендуем использовать формат базы геоданных, а не шейп-файла.
Внимание:
То, что в полях дат не поддерживается время, может стать серьезным ограничителем для любого инструмента из набора Углубленный анализ пространственно-временных закономерностей, служащего для выполнения временного анализа. Старайтесь не использовать шейп-файлы для любых типов временного анализа или расчета времени и даты.
Когда не следует использовать шейп-файл?
С некоторыми исключениями, описанными ниже, шейп-файлы подходят для хранения простой геометрии пространственных объектов. Однако шейп-файлы имеют серьезные проблемы, связанные с хранением атрибутов. Например, они не могут хранить значения NULL, они округляют числа, они не полностью поддерживают строки символов Unicode, не могут работать с полями, имена которых длиннее 10 знаков, и не могут хранить время в поле дат. Это только основные ограничения. Кроме того, они не поддерживают возможности, присутствующие в базах геоданных, например, работу с доменами и подтипами. Поэтому, не следует использовать шейп-файлы, если вы хотите хранить сложные атрибуты и пользоваться возможностями, предоставляемыми базами геоданных.
Представление нулевого значения
Шейп-файлы не поддерживают хранение пустых (Null) значений. Если класс объектов, содержащий значения NULL, конвертировать в шейп-файлы или конвертировать таблицу базы данных в файл dBASE, значения NULL будут заменены на значения, приведенные в следующей таблице.
Внимание:
При использовании шейп-файлов или файлов dBASE ( .dbf ) в качестве входных данных для инструментов ArcGIS не может определить, представляют ли значения полей значение NULL или допустимое значение.
Число – если необходимым выходным значением инструмента должны быть NULL, бесконечность или NaN (Не Число).
-1.7976931348623158e+308 (IEEE стандарт для максимального отрицательного значения)
Числовое (все остальные инструменты геообработки).
" " (пусто – один пробел)
Хранится как ноль, но отображается
Shape length и shape area
Для классов линейных и полигональных объектов, хранящихся в базе геоданных, ArcGIS вычисляет и поддерживает поля shape_length и shape_area ; т.е., при изменении формы линии или полигона в классе объектов базы геоданных значения полей shape_length и shape_area обновляются, отражая внесенные в эти объекты изменения. Но для шейп-файлов этого не происходит. Даже если шейп-файл содержит поле shape_area или shape_leng , они не будут обновляться при изменении шейп-файла.
Топология и формат шейп-файла
Формат шейп-файла не позволяет хранить топологическую информацию. В ESRI ArcInfo покрытия и личный / файл / предприятия геоданных имеют возможность хранить особенность топологии.
Читайте также: