Esri Grid предназначен для хранения растровых данных, которые задают географическое пространство как массив квадратных пикселов одинакового размера (также известных как ячейки), расположенных в строках и столбцах. Есть два типа гридов - в зависимости от типа данных: целочисленного или с плавающей точкой.
Атрибуты целочисленного грида хранятся в таблице атрибутов значений (VAT). VAT содержит одну запись для каждого уникального значения грида. Запись хранит уникальное значение и число пикселов. VALUE — это целое число, обозначающее определенный класс или группу пикселов. COUNT — это количество пикселов, с соответствующим значением грида. Например, если у 50 пикселов значение равно 1, соответствующее лесу, в VAT будет VALUE = 1 и COUNT = 50 для каждого из 50 пикселов.
Подробнее об атрибутивных таблицах растровых наборов данных
У гридов, содержащих значения с плавающей точкой, нет VAT, потому что пикселы грида могут принимать любое значение в пределах заданного диапазона значений. Пикселы грида этого типа не попадают точно в дискретные категории. Значение пиксела само по себе является атрибутом, описывающим местоположение. Например, в гриде, содержащем данные о высоте в метрах над уровнем моря, пиксел со значением 10,1662 означает, что это место находится на высоте около 10 метров над уровнем моря.
Диапазон значений данных, которые можно сохранить в качестве значений грида, следующий:
- Гриды с плавающей точкой могут хранить значения в диапазоне от -3.4 x 1038 до 3.4 x 1038.
- Целочисленные гриды могут хранить значения в диапазоне от -2147483648 до 2147483647 (-231 to 231-1).
Для целочисленных гридов эта информация относится только к элементу VALUE. Целочисленный грид может содержать другие элементы, добавленные к VAT, диапазон значений которых зависит от определения элемента.
Система координат грида такая же, как у других географических данных. Строки и столбцы располагаются параллельно осям x и y в системе координат. Поскольку у каждого пиксела грида такой же размер, как и у других пикселов, местоположение и площадь, покрываемая любым пикселом, можно определить по его строке и столбцу. Таким образом, система координат грида определяется размером пиксела, числом строк и столбцов и координатами x и y левого верхнего угла. Гриды также хранят дополнительную информацию, например, информацию о системе координат, связанной с гридом.
Внимание:
Как и в большинстве форматов, в названии грида не должно быть пробелов и любых других специальных символов. Имя файла многоканального грида не может содержать более 9 символов, а одноканальный набор растровых данных не может содержать более 13 символов.
Структура данных грида
Гриды реализованы с использованием мозаичной растровой структуры данных, в которой основной единицей хранения данных является прямоугольный блок пикселов. Блоки хранятся на диске в сжатом виде в структуре переменная-длина, называемой листом. Каждый блок сохраняется как одна запись переменная-длина.
Размер листа грида зависит от количества строк и столбцов грида на момент создания. Верхний предел размера листа устанавливается приложением (верхний предел - 4 000 000 x 4 000 000 пикселов). В результате большинство гридов, используемых для ГИС-приложений, автоматически сохраняются в одном листе. Пространственные данные для грида автоматически разбиваются на несколько листов, если размер грида во время создания превысит верхний предел размера листа.
Для хранения грида в виде блоков поддерживается как последовательный, так и произвольный пространственный доступ к большим наборам растровых данных. Блочная структура не накладывает ограничений на совместный анализ гридов. Листы и блоки из разных гридов не обязательно должны совпадать в пространстве карты для совместного анализа, и вы можете создавать грид и работать с ним так, как если бы это был бесшовный растр, состоящий из одинаковых квадратных пикселей.
В гридах используется схема сжатия растров по длинам серий, адаптивная на уровне блоков. Каждый блок тестируется на определение глубины цвета (в битах на пиксел), которая будет использоваться для блока, и более эффективного метода хранения (пиксел за пикселом или кодирование длин серии). Блок сохраняется в формате, требующем меньше дискового пространства. Схема адаптивного сжатия является оптимальным выбором из-за ее способности эффективно отображать как однородные категориальные, так и разнородные непрерывные данные, при поддержке совместного анализа с использованием обоих типов данных. Попиксельные операции с одним слоем растра, например, переклассификация данных, работают непосредственно с процессами обработки данных без их распаковки. Попиксельные операции с несколькими слоями на сжатых входных слоях пересекают процессы данных из разных слоев и работают с пересекающимися процессами. Операции, выполняемые для каждой окрестности, с одним слоем растра, и попиксельные операции с несколькими слоями, которые смешивают сжатые и несжатые данные, расширяют процессы в пикселы и прозрачно выполняют традиционную попиксельную обработку.
Блоковая структура листов грида также прозрачна для любых прикладных программ, которые обращаются к пространственным данным грида. Программы, работающие с гридами, получают доступ к пространственным данным, определяя прямоугольное окно, заданное в координатах карты.
Хранение данных грида
Грид хранится в базе геоданных. Грид хранится в виде отдельного каталога со связанными таблицами и файлами, содержащими определенную информацию о гриде. В рабочей области целочисленного грида содержатся следующие таблицы и файлы:
- Таблица BND, содержащая границу грида
- Файл HDR, хранящий специфическую информацию, описывающую грид, например, разрешение пикселов и коэффициент блоков
- Таблица STA, содержащая статистику для грида
- Таблица VAT, хранящая атрибутивные данные, связанные с зонами грида
- Файл LOG, который отслеживает действия, связанные с гридом
- Файл листа w001001.adf (q0x1y1), в котором хранятся данные пикселов, сопровождающий его индексный файл w001001x.adf (q0x1y1x), индексирующий блоки листа, и файлы LOG.
Если грид будет изменен, значения и информация, содержащиеся в файлах и таблицах, будут сразу же обновлены.
Таблица BND
BND содержит границу грида. Граница представляет собой прямоугольник, охватывающий все пикселы грида. Она хранится в координатах карты. Все BND грида хранятся в числах двойной точности.
Минимальные координаты в таблице BND относятся к левому нижнему углу левого нижнего пиксела грида. Максимальные координаты - к правому верхнему углу правого верхнего пиксела грида.
Файл HDR
HDR - это бинарный файл. Информация, хранящаяся в файле, включает размер пикселя, тип грида (целочисленный или с плавающей точкой), метод сжатия, коэффициент блока и информацию о листе.
Таблица STA
Таблица STA - таблица, содержащая статистические данные, касающиеся грида. Минимальное, максимальное и среднее значения, а также стандартное отклонение грида хранятся в таблице STA в виде значений с плавающей точкой. Вам не следует пытаться менять эти значения напрямую.
Поскольку NoData является неизвестным значением, такие значения не учитываются при расчете статистики в таблице STA.
Если создается двухуровневый грид (содержащий только значения 0 и 1), таблица STA будет содержать значение 0 для среднего и значение -1 для стандартного отклонения. Равное -1 значение стандартного отклонения говорит о том, что для грида не была вычислена статистика.
Если значение стандартного отклонения равно -2, значит, грид содержит только пикселы со значениями NoData.
Таблица VAT
VAT - это таблица, в которой хранятся связанные с зонами грида атрибуты. Только у целочисленных гридов есть связанная таблица VAT. В каждой VAT есть как минимум два столбца: VALUE и COUNT. Столбец VALUE содержит целочисленные значения, которые используются для различения характеристик одного местоположения от других местоположений в гриде. У всех пикселов, которым присвоено одно и то же значение, одинаковые характеристики и, следовательно, они принадлежат к одной и той же зоне. COUNT Это число пикселов в зоне.
В VAT можно добавлять новые столбцы. Столбцы VALUE и COUNT менять нельзя, а VAT должна быть отсортирована по столбцу 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) содержатся данные и индекс для первого или базового листа грида. Верхний предел размера листа очень велик, поэтому большинство тайлов хранятся в одном листе. При использовании дополнительных листов они автоматически нумеруются на основе пространственного отношения к первому листу. Листы представляются в виде бинарных файлов переменной длины.
Файл LOG
Файл LOG - это файл ASCII, содержащий информацию о создании и изменении грида. LOG отслеживает действия, выполняемые с гридом, но не содержит всех действий, выполненных с ним. Поскольку все операции с гридом приводят к созданию нового грида, только такие команды, как RENAME и COPY, могут изменять существующий грид и вноситься в файл LOG. С файлом LOG, как и со всеми ASCII-файлами, можно работать через системные команды или в любом текстовом редакторе.
Ограничения хранения
Имя грида ограничено следующим образом:
- Оно не может содержать пробелы и специальные символы.
- Оно не должно начинаться с цифры.
- Оно не должно быть длиннее 13 символов (многоканальный грид - длиннее 9 символов).
Существует ограничение на число файлов, которые могут храниться в каталоге, как для покрытий, так и для гридов. Это примерно 10 000. Следовательно, это накладывает ограничения на число гридов, которые вы можете сохранять в рабочей области. К примеру, ниже указаны теоретические максимальные количества наборов данных grid, которые могут храниться в одной директории рабочей области:
- До 5 000 гридов с плавающей точкой, или
- До 3 333 целочисленных гридов с VAT (до 5 000 без VAT), или
- До 10 000 стеков гридов
Эти значения являются теоретически максимальными. Если ваш процесс будет создавать промежуточные гриды (и, следовательно, файлы в рабочей области), эти значения будут меньше. Кроме того, если вы храните смесь файлов, например, гридов и покрытий, число сохраняемых файлов будет меньшим.
Эти числа относятся к количеству файлов в папке грида, в которых хранится информация в рабочей области. Ограничение составляет 9 999, но это не общее количество файлов в рабочей области, а число файлов, ссылающихся на файлы в рабочей области. Для каждого грида в папке сетки есть два файла, ссылающихся на файлы рабочей области: BND (границы) и таблицы STA (статистики) (9999/2≈5000). Если у грида есть таблица VAT, она также ссылается на файлы рабочей области, поэтому число сохраняемых файлов еще уменьшится (9999/3≈3333). У стека гридов есть один файл, ссылающийся на рабочую область (9999/1≈9999).
В несколько строк
Стек состоит из упорядоченного набора пространственно перекрывающихся гридов (слоев), рассматриваемых в качестве единого целого для многомерного анализа. Кластерный анализ, классификация и анализ по методу главных компонент могут применяться для слоев стека.
Вот основные характеристики стека:
- Набор слоев, каждый из которых соответствует гриду
- Экстент карты или BND
- Размер пиксела
- Тип данных
- Проекция
У каждого слоя в стеке есть порядковый номер, указывающий на его место в стеке. Гриды, составляющие стек, должны находиться в одной рабочей области.
Границы входных слоев могут перекрываться полностью, частично или не перекрываться вовсе, но только область перекрытия слоев будет составлять стек. BND стека - это область пересечения границ его слоев. Вычисления функции многомерного анализа выполняются для области перекрытия слоев. Если у входных слоев отсутствует общая область, стек будет пустым и никаких вычислений выполняться не будет.
Размер стека в пикселах по умолчанию соответствует самому грубому слою в стеке.
Вы можете комбинировать любое количество типов данных (вещественных или целых) входных гридов стека. Но прежде чем применять многомерный метод, вы должны понимать, что это за значения, будь то категориальные или непрерывные данные, а также знать диапазон или относительный диапазон этих значений. В некоторых видах анализа тип входных данных стека определяет тип выходных данных.
Информация о проекции входных гридов хранится в стеке. Поскольку стек рассматривается как единое целое, все гриды стека должны находиться в одной и той же системе координат. Информация о проекции используется для обеспечения того, чтобы все гриды стека занимали одну и ту же географическую область.
Хранение стека гридов
Стек хранится в структуре папок, так же, как грид. В директории стека есть два файла: внешняя таблица и файл ASCII PRJ. Сами гриды, составляющие стек, не хранятся в стеке. Они являются обычными гридами, хранящимися в вашей рабочей области. Это означает, что любой из гридов может использоваться в нескольких стеках. В таблице STK хранятся имена гридов, составляющих стек, и соответствующие им значения индекса:
GRID: LIST JER135.STK Record INDEX GRID 1 1 jer1 2 2 jer3 3 3 jer5
Поле INDEX указывает на положение грида в стеке, а поле GRID перечисляет имена гридов, составляющих стек. Пространственные данные входных гридов не дублируются в стеке. Поэтому стек всегда показывает самую актуальную версию входных гридов. Файл STK доступен, как и любой другой файл 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 в гриде
Каждому пикселу грида присваивается значение. Но пикселам без фактических значений может быть в гриде присвоено значение NoData. NoData и 0 — не одно и то же; 0 является допустимым числовым значением. Поэтому пикселы со значениями NoData не учитываются при расчете статистики в таблице STA грида.