Формат Esri Grid

Формат GRID - это формат хранения растровых данных, разработанный Esri. Существует два типа гридов: целочисленный и с плавающей точкой. Целочисленный грид используется для отображения дискретных объектов, а с плавающей точкой - для отображения непрерывных данных.

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

Атрибуты целочисленного грида хранятся в таблице значений атрибутов (VAT). Таблица VAT содержит одну запись для каждого уникального значения в грид. Запись хранит уникальное значение (VALUE - целое число, представляющее отдельный класс или группу ячеек) и количество ячеек (COUNT) в гриде, имеющее это значение. Например, если 50 ячеек имеют значение 1, означающее лес, то в таблице VAT для каждой из этих 50 ячеек будет указано VALUE = 1 и COUNT = 50.

Пример VAT грида

Более подробно об атрибутивных таблицах наборов растровых данных

Гриды с плавающей точкой не имеют таблицы VAT, т.к. ячейки грида могут принимать любое значение из разрешенного диапазона. Ячейки этого типа нельзя распределить по отдельным категориям. Значение ячейки само по себе является атрибутом, описывающим её положение. Например, в гриде, отображающем данные высот над уровнем моря в метрах, ячейка со значением 10,1662 обозначает точку, расположенную на высоте примерно 10 метров над уровнем моря.

Диапазон значений, который может использоваться ячейками грида, составляет:

В целочисленном гриде это значение используется только переменной VALUE. Целочисленный грид может иметь дополнительные поля INFO в таблице VAT, диапазон значений которых зависит от определения поля.

Система координат грида такая же, как и у других географических данных. Строки и столбцы параллельны осям x и y системы координат. Т.к. все ячейки грида имеют одинаковый размер, расположение ячейки, а также площадь, покрываемая ячейкой, определяются её положением среди строк и столбцов. Поэтому, система координат грида определяется размером ячейки, числом строк и столбцов и координатами x,y верхнего левого угла. Гриды также несут дополнительную информацию, например систему координат.

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

Как со многими форматами, в названии грида не следует использовать пробелы или другие специальные символы. Многоканальный грид не может иметь больше 9 символов в имени файла, а одноканальный набор растровых данных не может иметь больше 13 символов.

Структура данных GRID

Гриды строятся на основании полистной структуры растровых данных, в которой основной единицей хранения данных является прямоугольный блок ячеек. Блоки хранятся на жёстком диске в сжатом виде в файле переменной длины, который называется лист. Каждый блок хранится как одна запись переменной длины.

Размер листа грида зависит от числа строк и столбцов на момент его создания. Верхняя граница размера листа устанавливается приложением и, на данный момент, составляет 4000000 x 4000000 ячеек. В результате, большая часть гридов для приложений ГИС сохраняется в одном листе. Пространственные данные грида автоматически разбиваются на несколько листов, если размер грида в момент создания превышает верхний лимит размера листа.

Блочное хранение гридов поддерживает как последовательный, так и случайный пространственный доступ к большим наборам растровых данных. Блочная структура не несёт ограничений на совместный анализ гридов. Листы и блоки различных гридов не обязательно должны совмещаться на карте для проведения совместного анализа. Листовая и блочная структура грида полностью скрыта от пользователя, который всегда работает с гридом так, как если бы он был цельным растром, состоящем из одинаковых квадратных ячеек.

В качестве схемы сжатия гриды используют кодирование по длинам серий, которое на уровне блоков является адаптивным. Каждый блок тестируется для определения глубины (числа бит на ячейку) блока и выбора наиболее эффективной технологии хранения (по ячейкам или по длинам серий). Блок хранится в том формате, который требует меньше дискового пространства. Схема адаптивного сжатия является оптимальной, т.к. позволяет эффективно обрабатывать как однородные категорийные, так и гетерогенные непрерывные данные, при одновременной поддержке совместного анализа этих двух типов данных. Операции над одиночными ячейками одного слоя, например, переклассификация данных, проводятся непосредственно над данными, без декомпрессии. Операции над ячейками нескольких сжатых слоёв определяют пересечения серий данных из разных слоёв и обрабатывают пересекающиеся участки. Операции над соседними ячейками одного слоя и над одиночными ячейками нескольких слоёв, в которых перемешаны сжатые и несжатые данные, преобразуют серии в ячейки и выполняют традиционную поячеечную обработку.

Структура блоков листов грида

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

Хранение данных GRID

Грид хранится в рабочей области ArcInfo. Такой грид, как покрытие, хранится в отдельной папке, вместе со связанными таблицами и файлами, которые содержат относящуюся к гриду информацию. В папке целочисленного грида (которую создаёт ArcInfo Workstation), располагаются следующие таблицы и файлы: таблица BND, которая содержит границы грида; файл HDR, содержащий описательную информацию, например, разрешение ячейки и коэффициент блокирования; таблицу STA, в которой хранится статистика для грида; таблица VAT, в которой находятся атрибутивные данные, связанные с зонами грида; файл журнала (LOG), в который записываются все действия, производимые с гридом; и файл листа w001001.adf (q0x1y1), в котором хранятся данные ячеек, вместе с сопутствующим индексным файлом w001001x.adf (q0x1y1x), содержащим индексы блоков листа, и файлом журнала (LOG). Если при создании грида использовались операторы ArcGIS, некоторые из этих файлов могут отсутствовать, например LOG-файл.

Грид

Если грид изменяется, значения и другая информация, содержащаяся в этих файлах, немедленно обновляются. Информация, содержащаяся в таблице INFO, описывает данный грид, и доступна для пользователя.

Таблица BND

Файл BND содержит границы грида. Границы представлены прямоугольником, охватывающем ячейки грида; он хранится в координатах карты. Все границы грида хранятся в формате двойной точности.

Минимальное значение в таблице BND - координата левого нижнего угла левой нижней ячейки грида. Максимальное значение в этом файле – значение координаты правого верхнего угла правой верхней ячейки.

Файл HDR

Файл HDR является бинарным. Информация, хранящаяся в этом файле, содержит размер ячейки, тип грида (целочисленный или с плавающей точкой), метод сжатия, коэффициент блокирования и данные о листах.

Таблица STA

Таблица STA - такая же, как и INFO, но содержит статистические данные о гриде. Минимум, максимум, среднее и стандартное отклонение грида хранятся в виде значений с плавающей точкой. Изменять эти значения вручную не следует.

Т.к. NoData означает неизвестное значение, NoData не используется при вычислении статистики в таблице STA.

Если вы создаёте двухуровневый грид (содержащий только значения 0 и 1), среднее значение будет равно 0, а стандартное отклонение -1. Значение стандартного отклонения -1 означает, что статистика для грида вычислена не была.

Значение стандартного отклонения -2 означает, что грид содержит только ячейки NoData.

Таблица VAT

Таблица VAT содержит атрибуты, связанные с зонами грида. Только целочисленные гриды имеют таблицу VAT. Каждая таблица VAT имеет как минимум два элемента, VALUE и COUNT. Элемент VALUE содержит целочисленные значения, использующиеся для различения характеристик различных месторасположений в гриде. Все ячейки, имеющие одинаковое значение, имеют одинаковые характеристики и, поэтому, относятся к одной зоне. COUNT показывает число ячеек, содержащихся в зоне.

В таблицу VAT можно добавить и другие элементы. При этом элементы VALUE и COUNT не должны изменяться, а таблица должна быть отсортирована по элементу VALUE. Никогда не добавляйте новые элементы перед добавлением VALUE или COUNT.

Ячейки, содержащие NoData, в таблице VAT не представлены.

Пример таблицы VAT:

Record	 VALUE     COUNT
 1        0       628872
 2        1       265043
 3        2       151150
 4        3      3185652
 5        4        79983
 6        5         4782
 7        6        74334
 8        7         8877
 9        8         1817
 10       9          491
 11      10          858
 12      11         8770
 13      12        28789
 14      13        72539
 15      14         3686
 16      15         3932
 17      16        13227
 18      17         1890
 19      18         1305
 20      19       427286
 21      20         6695

Файлы листов

Файлы w001001.adf (q0x1y1) и w001001x.adf (q0x1y1x) содержат данные и индекс первого, или базового, листа грида. Максимальный размер листа очень велик, и большинство гридов помещаются в один лист. Если используются дополнительные листы, они автоматически нумеруются относительно пространственной привязки к первому листу. Листы существуют в виде бинарных файлов переменной длины. В предыдущих версиях (до ARC/INFO 7.x), эти файлы назывались q0x1y1 и q0x1y1x.Их можно использовать и в текущей версии.

Файл журнала (LOG)

Файл LOG - это файл формата ASCII, который содержит информацию о создании грида и изменениях в нём. LOG отслеживает все действия, выполняемые над гридом, но сохраняет информацию не обо всех действиях. Т.к. все функции Grid приводят к появлению нового грида, только команды Grid, такие как RENAME и COPY, которые могут изменить существующий грид, записываются в файл LOG. Файл LOG можно открыть, как и любой другой ASCII файл, любым текстовым редактором.

Ограничения хранения

Имя грида должно соответствовать следующим условиям:

  • Использование пробелов не допускается.
  • Имя не может начинаться с цифры.
  • Длина не может превышать 13 знаков (для многоканального - 9 знаков).

Существует ограничение на количество файлов, которые могут храниться в папке INFO как для покрытий, так и для гридов. Допускается всего около 10000 файлов. Поэтому, количество гридов, которые можно сохранить в рабочей области, ограничено. Например, ниже приведен список теоретического максимального количества наборов данных грид, которые можно сохранить в одной папке рабочей области:

  • Менее 5000 гридов с плавающей точкой, или
  • Менее 3333 целочисленных гридов с VAT (менее 5000 без VAT), или
  • Менее 10000 стеков грид

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

Это количество соответствует числу файлов в папке грида, в которых хранится информация в папке INFO. Это ограничение равно 10000 (9999), но это не общее количество файлов в папке INFO, а количество файлов, которые ссылаются на файлы в папке INFO. Для каждого грида, в папке создается два файла, указывающих на файлы в папке INFO: файл BND (границы) и таблица STA (статистика) (9999/2≈5000). Если грид имеет VAT, он также ссылается на файлы в папке INFO, поэтому, это число снова сокращается (9999/3≈3333). Стек гридов имеет только один файл, ссылающийся на папку INFO (9999/1≈9999).

В несколько строк

Стек состоит из упорядоченного набора перекрывающихся в пространстве гридов (слоёв), который обрабатывается многофакторным анализом как единое целое. Кластерный анализ, классификация и важнейший компонент анализа – все они работают со слоями в стэке.

Стек гридов

Стек имеет следующие характеристики:

Каждый слой стека имеет индекс, указывающий его положение в стеке. Гриды, входящие в стек, должны быть в одной рабочей области.

Границы входных слоёв могут совпадать полностью, частично или не совпадать совсем, но только области совпадающих слоёв будут рассматриваться как стек. В стеке BND содержится информация о пересечениях границ его слоев. В перекрывающихся областях производится мультивариантный анализ. Если входные слои не перекрываются, стек пуст и вычисление не производится.

Пример случая вычисления стека

Размер ячейки стека, по умолчанию, выбирается согласно слою с самыми крупными ячейками.

В стеке вы можете комбинировать любое количество типов данных (как дискретных, так и непрерывных) входных гридов. Однако, перед использованием мультивариантных методов, следует выяснить, какие именно данные используются, категорийные или непрерывные, а также диапазон, или относительный диапазон значений. В некоторых видах анализа, тип входных данных стека определяет тип выходных данных.

Проекция входных гридов также хранится в стеке. Т.к. стек обрабатывается как единое целое, все гриды, входящие в него, должны иметь одну проекцию. Проекция позволяет убедиться, что информация каждого грида в стеке относится к одной и той же географической области.

Хранение стека грида

Стек хранится в структуре папок, так же, как грид или покрытие. В папке стека находятся два файла: внешняя таблица INFO STK и файл ASCII PRJ. Гриды, образующие стек, не хранятся в нём. Они остаются обычными гридами в рабочей области. Это означает, что гриды могут использоваться в нескольких стеках. В таблице STK содержаться названия гридов, входящих в стек и соответствующие им индексы:

GRID: LIST JER135.STK
Record  INDEX   GRID
  1       1     jer1
  2       2     jer3
  3       3     jer5

INDEX обозначает положение грида в стеке, а GRID содержит имена входящих в него гридов. Пространственные данные входных гридов не дублируются в стеке. В результате, стек всегда содержит последнюю версию входных гридов. Файл STK доступен так же, как и любой другой INFO файл. Вы можете добавлять в него описания, например, дату сбора данных, но не используйте INFO для изменения значений пункта INDEX или имен в пункте GRID. Все подобные манипуляции должны выполняться с помощью разнообразных команд управления стеком, доступных в Grid.

В файле PRJ, если он присутствует, хранится проекция стека:

Projection STATEPLANE 
Zone     4701 
Datum    NAD27 
Zunits   NO 
Units    FEET 
Spheroid CLARKE1866 
Xshift   0.0000000000 
Yshift   0.0000000000 
Parameters

Если проекция любого из входящих в стек гридов неизвестна, файл PRJ создан не будет.

Имя стека не должно содержать пробелов, не может начинаться с цифры и не должно быть длиннее 9 знаков.

NoData в GRID

Каждая ячейка в гриде имеет присвоенное ей значение; однако, ячейкам, не имеющих значений, можно присвоить NoData. NoData и 0 (ноль) не эквивалентны; 0 - это валидное значение. По этой причине, ячейки с NoData не могут использоваться при вычислении статистики в таблице STA грида.

Более подробно о NoData

9/11/2013