Особенности геообработки с выходными данными в формате шейп-файла.

Несколько лет назад в Esri были разработаны три основных формата данных для хранения географической информации – покрытия, шейп-файлы и базы геоданных. Шейп-файлы были разработаны как простой формат для хранения географической и атрибутивной информации. В силу их простоты, шейп-файлы стали популярным форматом для обмена данными. Хотя шейп-файлы просты и удобны в работе, они имеют некоторые ограничения, которые отсутствуют в базах геоданных. При использовании шейп-файлов, эти ограничения следует учитывать. В целом,

Эти и другие проблемы делают шейп-файлы слабо пригодными для активной работы с базами данных – они не соответствуют современным способам создания, редактирования, поддержки версий и архивирования.

Когда следует использовать шейп-файл?

Когда не следует использовать шейп-файл?

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

Компоненты шейп-файлов и расширения файлов

Шейп-файлы хранятся в трех или более файлах, которые имеют одинаковый префикс и находятся в одной папке (рабочей области шейп-файлов). Отдельные файлы можно увидеть с помощью Проводника Windows, в ArcCatalog они не отображаются.

Дополнительный модуль

Описание

Необходимо?

.shp

Основной файл, в котором хранится геометрия объектов. В этом файле не хранятся атрибуты – только геометрия.

Да

.shx

Парный к .shp файл, в котором хранятся местоположения отдельных ID пространственных объектов, находящихся в файле .shp.

Да

.dbf

Таблица dBASE, в которой находятся атрибуты пространственных объектов.

Да

.sbn и .sbx

Файлы, в которых хранится пространственный индекс объектов.

No

.atx

Атрибутивный индекс, создающийся в ArcCatalog для каждой таблицы dBASE.

No

.ixs и .mxs

Индекс геокодирования для чтения-записи шейп-файлов.

No

.prj

Файл, в котором хранится информация о системе координат.

No

.xml

Метаданные для ArcGIS; хранит информацию о шейп-файле.

No

Расширения шейп-файлов

Ограничения по геометрии

Ограничения атрибутов

Представление нулевого значения

Шейп-файлы не поддерживают хранение пустых (Null) значений. Если класс объектов, содержащий значения NULL, конвертировать в шейп-файлы или конвертировать таблицу базы данных в файл dBASE, значения NULL будут заменены на значения, приведенные в следующей таблице.

ВниманиеВнимание:

При использовании шейп-файлов или файлов dBASE (.dbf) в качестве входных данных для инструментов ArcGIS не может определить, представляют ли значения полей значение NULL или допустимое значение.

Тип данных, содержащий пустые значения

Подстановка значений NULL

Число – если инструмент требует NULL, бесконечность или NaN (Не Число) в выходном значении.

-1.7976931348623158e+308 (IEEE стандарт для максимального отрицательного значения)

Число (все остальные инструменты геообработки).

0

Текст

" " (пусто – без пробела)

Date (Дата)

Хранится как ноль, но отображается как <null>

Подстановка значений NULL в шейп-файлах и файлах dBASE (.dbf)

Неподдерживаемые функции

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

Shape length и shape area

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

Шейп-файлы и геообработка

Любой инструмент геообработки, выходными данными которого является класс пространственных объектов, позволяет вам выбрать в качестве выходного набора данных шейп-файл или класс объектов базы геоданных. Точно так же, если выходными данными инструмента является таблица, вы можете выбрать таблицу базы геоданных или файл dBASE (.dbf). При выборе формата выходных данных, вы должны понимать возможные проблемы, которые возникают если в качестве входных данных задан класс объектов базы геоданных, а для выходных данных определен шейп-файл.

Инструмент геообработки создает выходной класс объектов или таблицу автоматически. Автоматически создаваемые выходные данные базируются на ряде факторов, как описано в разделе Использование параметров среды Текущая и Временная рабочие области. Если в качестве временной рабочей области задана системная папка, а не база геоданных, автоматически создаваемый выходной класс объектов будет шейп-файлом или файлом dBASE (см. рис. ниже).

Выходные данные в формате шейп-файлов или таблиц dBASE

Если в качестве временной рабочей области будет задана файловая база геоданных, автоматически создаваемый выходной класс объектов будет классом объектов этой базы геоданных, а не шейп-файлом или таблицей .dbf (см. рис. ниже).

Более подробно о параметрах среды геообработки

Так как сохранение шейп-файла занимает мало времени, они часто используются для записи промежуточных данных в модели, что уменьшает время, необходимое для выполнения модели. Тем не менее, запись в файловую базу геоданных, как правило, занимает не больше времени, чем запись шейп-файла, поэтому, если скорость выполнения модели для вас не критична, вам следует использовать файловую базу геоданных для промежуточных и выходных данных. Однако, если вы все-таки используете шейп-файлы, помните об их ограничениях, описанных выше, и используйте шейп-файлы только для хранения простых пространственных объектов или атрибутов. Альтернативой использования шейп-файлов является использование виртуальной рабочей области для хранения промежуточных данных.

Более подробно о виртуальной рабочей области

Пространственная привязка и шейп-файлы

В разделе Пространственная привязка и геообработка обсуждается важность определения свойств пространственной привязки при использовании инструментов геообработки. Несколько параметров среды геообработки контролируют пространственную привязку данных при работе инструментов геообработки. Следующие параметры не поддерживаются, если в качестве выходных данных инструмента задан шейп-файл:

Связанные темы

5/10/2014