GIS-LAB

Географические информационные системы и дистанционное зондирование

Учебное руководство по GRASS

2. Архитектура

<<< предыдущая глава | оглавление | следующая глава >>>

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

2.1 Географические данные

ГИС состоит из четырех основных компонентов (1):

  • Ввод
  • Администрирование
  • Анализ
  • Презентация

Эта четырехкомпонентная модель работает с данными трех типов: пространственными, атрибутивными и графическими данными со следующими свойствами:

Пространственные данные описывают пространственную структуру объектов включая их форму и положение относительно друг друга в пространстве. Обычно пространственные взаимоотношения между отдельными точечными, линейными и полигональными объектами определяются через соответствующую систему координат связывающую их положение с реальным миром. Пространственные данные могут быть представлены как растровые (пиксели) или векторные (полигоны/площади, линии, точки) объекты (см. рис. 2).

Растровые данные непрерывно распределены в пространстве и представляют из себя матрицу обычно квадратных ячеек одинакового размера. Каждая ячейка имеет атрибут, который представляет какое-либо явление (например температуру или цвет). Каждая ячейка также имеет координаты выраженные в виде ряда и колонки в которых она находится. Доступ к пространственным данным осуществляется с помощью географических координат или рядов/колонок. Работа с растровыми данными включает анализ и применение данных дистанционного зондирования таких как спектрозональная аэро-, космическая съемка и других типов растровых данных. Один из главных недостатков растровых данных - экспоненциальный рост необходимых вычислительных ресурсов (временной ресурс ЦПУ) вместе с ростом разрешения. В последние годы в связи с увеличением мощности ЦПУ и емкости носителей этот недостаток стал менее актуальным. Растровые данные не поддерживают так называемые отношения соседства, так как каждый пиксел уникально определен положением в системе координат..


Рисунок 2: Пространственные и атрибутивные данные в ГИС

Векторные данные используются для хранения линейных или полигональных объектов (замкнутые линии). Линия соединяет две точки (узла) определенных своими координатами. Каждый векторный объект может иметь один, несколько или не иметь атрибутов (свойств). Для атрибутивных данных в GRASS по умолчанию используется формат dBase. Так же можно подключаться к различным СУБД таким как, например, PostgreSQL, MySQL, Oracle и другим. По сравнению с растровыми данными, векторные данные характеризуются относительно небольшими требованиями к памяти и более быстрой обработкой таких данных. В отличие от растровых данных векторные данные имеют топологию, которая означает, что линии и полигоны «знают» из каких узлов они состоят и с какими объектами они граничат.

Точечные данные можно считать особой формой векторных данных используемых для хранения безразмерных объектов. С этими данными можно работать как с векторными начиная с GRASS 6.0, в версии 5.4 точечные данные имеют особый формат.

Атрибутивные данные связанны со всеми типами данных перечисленными выше. Обычно, они хранятся в базе данных, к которой ГИС подключается посредством DBMi (интерфейс управления базой данных).

Графические данные – описывают то, как пространственные данные будут выглядеть на устройстве вывода (мониторе, плоттере и т.д.).

Явления и объекты могут использоваться в ГИС в двух формах:

  • непрерывное представление -> матричные и неограниченные в пространстве объекты
  • дискретное представление -> определенные площадные и линейные объекты

При организации ГИС, выбор типа данных определяется стандартами, разрешением, объемом данных и их источниками, планируемым анализом данных и другими условиями.

Модули GRASS позволяют осуществлять конвертацию из одного типа данных в другой. Изолинии могут храниться как векторные объекты и быть трансформированы в растровую цифровую модель рельефа с помощью интерполяции. В этом случае, качество результирующих данных будет зависеть от разрешения исходных данных (рис. 3).


Рисунок 3: Сравнение растровых и векторных данных на одну и ту же территорию

2.2 Измерения данных в ГИС

Пространственные данные в основном представлены в плоском, двухмерном виде (2D) или, если присутствует третий параметр (например высота), в псевдотрехмерном виде (2.5D). Данные о сторонах объектов (например стенах домов или лестничных пролетах) могут быть представлены только в трехмерном виде (3D) и работают с ними специальные системы (рис. 4).


Рисунок 4: Измерения данных в ГИС

2.3 База данных GRASS

Пространственные данных хранятся GRASS в наборе стандартных поддиректорий, совокупность которых называется базой данных GRASS. В большинстве случаев для базы данных создается новая директория в домашней директории Home пользователя (например, grassdata/):

cd # Linux автоматически переходит в домашний каталог пользователя
mkdir grassdata # Создаёт поддиректорию для базы данных GRASS

Набор поддиректорий в виде так называемой «области» (location) будет автоматически создан для каждого проекта создаваемого в GRASS. Все данные проекта сохраняются в поддиректориях области. Область может быть дальше разделена на поддиректории, называемые «наборы» (mapsets). С помощью этих категорий GRASS контролирует организацию и доступ к данным (см. главы 2.3.1 и 2.3.2).


Рисунок 5: Пример структуры данных в GRASS 6.0

В связи с тем, что разные составляющие данных (пространственная, атрибутивная и графическая) каждого из слоев хранятся в разных поддиректориях, все операции по управлению данными должны осуществляться с помощью команд GRASS, например файловые операции (копирование, удаление, переименование) должны осуществляться соответствующими командами GRASS (g.copy, g.remove, g.rename)

2.3.1 Набор PERMANENT

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

Другим пользователям GRASS и пользователю имеющему права записи в наборе PERMANENT для создания, хранения и работы со своими данными, а так же для работы с данными из набора PERMANENT рекомендуется создавать дополнительные наборы на его основе.

Файлы в наборе PERMANENT

В области GRASS можно управлять доступом к наборам поотдельности. Если в наборе PERMANENT не хранится никаких пространственных данных, он будет содержать только следующую информацию о проекте:

DEFAULT_WIND Координаты границ, расширения и разрешения рабочего пространства PERMANENT
MYNAME Название проекта -> например: hanover
PROJ_INFO Описание проекции -> например, tmerc (Проекция поперечная Меркатора), bessel (эллипсоид), potsdam (датум)
PROJ_UNITS Описание используемых единиц: например: метры
WIND Описание текущего фрагмента (REGION) и проекции набора (MAPSET)
VAR Описание драйвера базы данных и путей

2.3.2 Структура наборов

Каждый пользователь GRASS может создать один или несколько наборов в которых он будет управлять своими данными. По охвату они могут соответствовать проекту целиком или быть меньше.

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

Файловая структура набора

Cats/ Категорийные данные (например значения цвета или температуры) и атрибуты (классы) растровых наборов данных
cell/ Растровые данные
cellhd/ Заголовки растровых данных
cell_misc/ Статистика растровых данных
colr/ Цветовая информация растровых данных
dbf/ Атрибутивная информация векторных данных в формате DBASE
fcell/ Растровые данные в формате с плавающей точкой
hist/ 'История' растровых наборов данных
vector/ Векторные данные (пространственные данные, топология, и т.д.)
WIND Описание текущего фрагмента и проекции набора

В GRASS 6.0 один пользователь может запускать несколько параллельных сессий GRASS.

Структура команд GRASS

Команды GRASS обладают очень четкой структурой. Тип команды может быть определен по сокращению перед первой точкой (префикс). Команды представляющие собой независимые программы называются модулями GRASS. Их названия описывают сами себя. Так, например, модуль для векторизации называется r.digit, чтобы сконвертировать векторные данные в растровые нужно использовать модуль v.to.rast. Таблица 1 детально описывает структуру названий команд и модулей GRASS.

Модули и программы в GRASS

Модули GRASS, если Вы работаете в Unix/Linux, можно также использовать совместно с командами системы с помощью оболочки системы – командного интерпретатора. Это особенно полезно для целей программирования, интеграции ваших модулей или модулей GRASS. Несмотря на то, что поначалу это кажется сложным для новичка, GRASS предоставляет практически неограниченные возможности реализации своих собственных процессов. Также очень просто создавать простые Unix скрипты для командного интерпретатора.

Таблица 1: Структура названий модулей GRASS
Префикс T Класс функций Назначение команд
d.* отображение Отображение и графические операции в мониторе
r.* растр Обработка растровых данных
i.* снимки Обработка данных дистанционного зондирования
v.* вектор Обработка векторных данных
g.* общие Общие файловые операции
p.* дизайн Дизайн карт и их макетов
ps.* постскрипт Дизайн карт в формате postscript
db.* база данных Управление базами данных
r3.* 3D растр Обработка 3D растровых данных

2.5 Справка по модулям GRASS

Для практически любого из 400 модулей GRASS существует файл справки в котором описывается команда и ее синтаксис. Краткую справку о модуле можно вызвать параметром ‘-help’.

d.rast -help

Подробное описание и примеры использования модуля совпадающие с содержанием справки, находящимся на домашней странице GRASS, может быть вызвано с помощью команды g.manual и указанием названия модуля.

g.manual d.rast

Команда вызывает браузер с открытым текстом описания команды. В справку также интегрирован общий индекс, который можно также найти в главе 21.

2.6 Переменные GRASS

Во время сессии GRASS устанавливаются некоторые переменные среды. Они могут быть просмотрены или изменены с помощью модулем g.gisenv.
Если модуль вызывается без параметров, GRASS показывается текущие настройки всех переменных:

g.gisenv
GISDBASE=/home/holl/grassdata
GRASS_DB_ENCODING=utf-8
MAPSET=PERMANENT
LOCATION_NAME=spearfish
GRASS_GUI=tcltk

Чтобы узнать какой из наборов является текущим нужно вызвать модуль с параметром 'MAPSET':

g.gisenv MAPSET

Чтобы изменить переменную, нужно использовать следующее выражение:

g.gisenv set='OVERWRITE=1'

Эта команда установит переменную OVERWRITE в режим перезаписи, который по умолчанию отключен.

Детальный список переменных GRASS может быть вызван с помощью команды g.manual:

g.manual variables

Примечание: Помимо упомянутой переменной 'OVERWRITE' также можно заставить модули обработки растровых и векторных данных перезаписывать данные с помощью ключа -o или --overwrite (с двумя знаками минус). Таким образом можно заставить команду перезаписать результат, по умолчанию данные защищены от записи.

<<< предыдущая глава | оглавление | следующая глава >>>

Обсудить в форуме Комментариев — 3

Последнее обновление: March 23 2009

Donate

Новое на форумеRSS

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter