<<< предыдущая глава | оглавление | следующая глава >>>
GRASS - гибридная ГИС с модульной структурой, позволяющая работать как с растровыми так и векторными данными. Каждая функция GRASS выполняется своим модулем. Таким образом, GRASS обладает четкой прозрачной структурой. Другим преимуществом модульной структуры является более оптимальная работа с памятью, одновременно работают только необходимые модули.
ГИС состоит из четырех основных компонентов (1):
Эта четырехкомпонентная модель работает с данными трех типов: пространственными, атрибутивными и графическими данными со следующими свойствами:
Пространственные данные описывают пространственную структуру объектов включая их форму и положение относительно друг друга в пространстве. Обычно пространственные взаимоотношения между отдельными точечными, линейными и полигональными объектами определяются через соответствующую систему координат связывающую их положение с реальным миром. Пространственные данные могут быть представлены как растровые (пиксели) или векторные (полигоны/площади, линии, точки) объекты (см. рис. 2).
Растровые данные непрерывно распределены в пространстве и представляют из себя матрицу обычно квадратных ячеек одинакового размера. Каждая ячейка имеет атрибут, который представляет какое-либо явление (например температуру или цвет). Каждая ячейка также имеет координаты выраженные в виде ряда и колонки в которых она находится. Доступ к пространственным данным осуществляется с помощью географических координат или рядов/колонок. Работа с растровыми данными включает анализ и применение данных дистанционного зондирования таких как спектрозональная аэро-, космическая съемка и других типов растровых данных. Один из главных недостатков растровых данных - экспоненциальный рост необходимых вычислительных ресурсов (временной ресурс ЦПУ) вместе с ростом разрешения. В последние годы в связи с увеличением мощности ЦПУ и емкости носителей этот недостаток стал менее актуальным. Растровые данные не поддерживают так называемые отношения соседства, так как каждый пиксел уникально определен положением в системе координат..
Рисунок 2: Пространственные и атрибутивные данные в ГИС
Векторные данные используются для хранения линейных или полигональных объектов (замкнутые линии). Линия соединяет две точки (узла) определенных своими координатами. Каждый векторный объект может иметь один, несколько или не иметь атрибутов (свойств). Для атрибутивных данных в GRASS по умолчанию используется формат dBase. Так же можно подключаться к различным СУБД таким как, например, PostgreSQL, MySQL, Oracle и другим. По сравнению с растровыми данными, векторные данные характеризуются относительно небольшими требованиями к памяти и более быстрой обработкой таких данных. В отличие от растровых данных векторные данные имеют топологию, которая означает, что линии и полигоны «знают» из каких узлов они состоят и с какими объектами они граничат.
Точечные данные можно считать особой формой векторных данных используемых для хранения безразмерных объектов. С этими данными можно работать как с векторными начиная с GRASS 6.0, в версии 5.4 точечные данные имеют особый формат.
Атрибутивные данные связанны со всеми типами данных перечисленными выше. Обычно, они хранятся в базе данных, к которой ГИС подключается посредством DBMi (интерфейс управления базой данных).
Графические данные – описывают то, как пространственные данные будут выглядеть на устройстве вывода (мониторе, плоттере и т.д.).
Явления и объекты могут использоваться в ГИС в двух формах:
При организации ГИС, выбор типа данных определяется стандартами, разрешением, объемом данных и их источниками, планируемым анализом данных и другими условиями.
Модули GRASS позволяют осуществлять конвертацию из одного типа данных в другой. Изолинии могут храниться как векторные объекты и быть трансформированы в растровую цифровую модель рельефа с помощью интерполяции. В этом случае, качество результирующих данных будет зависеть от разрешения исходных данных (рис. 3).
Рисунок 3: Сравнение растровых и векторных данных на одну и ту же территорию
Пространственные данные в основном представлены в плоском, двухмерном виде (2D) или, если присутствует третий параметр (например высота), в псевдотрехмерном виде (2.5D). Данные о сторонах объектов (например стенах домов или лестничных пролетах) могут быть представлены только в трехмерном виде (3D) и работают с ними специальные системы (рис. 4).
Рисунок 4: Измерения данных в ГИС
Пространственные данных хранятся 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
)
Вся информация о проекции, разрешении и географическом охвате территории проекта хранится в специальном наборе области, который носит название PERMANENT и автоматически генерируется GRASS. Если необходимо, какие-либо данные (например исходные данные) проекта могут также храниться в этом наборе, только пользователь создавший проект имеет права доступа для этого набора. Внутренняя структура данных гарантирует, что эти данные не могут быть изменены другими пользователями.
Другим пользователям GRASS и пользователю имеющему права записи в наборе PERMANENT для создания, хранения и работы со своими данными, а так же для работы с данными из набора PERMANENT рекомендуется создавать дополнительные наборы на его основе.
Файлы в наборе PERMANENT
В области GRASS можно управлять доступом к наборам поотдельности. Если в наборе PERMANENT не хранится никаких пространственных данных, он будет содержать только следующую информацию о проекте:
DEFAULT_WIND | Координаты границ, расширения и разрешения рабочего пространства PERMANENT |
MYNAME | Название проекта -> например: hanover |
PROJ_INFO | Описание проекции -> например, tmerc (Проекция поперечная Меркатора), bessel (эллипсоид), potsdam (датум) |
PROJ_UNITS | Описание используемых единиц: например: метры |
WIND | Описание текущего фрагмента (REGION) и проекции набора (MAPSET) |
VAR | Описание драйвера базы данных и путей |
Каждый пользователь GRASS может создать один или несколько наборов в которых он будет управлять своими данными. По охвату они могут соответствовать проекту целиком или быть меньше.
Подобная структура позволяет нескольким пользователям одновременно работать с одним проектом через сеть, без риска изменить или повредить чужие данные. Наборы других пользователей могут быть специально интегрированы в собственные проекты текущего пользователя предоставлением ему прав на чтение. Карты получаемые в результате любого анализа сохраняются в наборе пользователя текущей сессии GRASS.
Файловая структура набора
Cats/ | Категорийные данные (например значения цвета или температуры) и атрибуты (классы) растровых наборов данных |
cell/ | Растровые данные |
cellhd/ | Заголовки растровых данных |
cell_misc/ | Статистика растровых данных |
colr/ | Цветовая информация растровых данных |
dbf/ | Атрибутивная информация векторных данных в формате DBASE |
fcell/ | Растровые данные в формате с плавающей точкой |
hist/ | 'История' растровых наборов данных |
vector/ | Векторные данные (пространственные данные, топология, и т.д.) |
WIND | Описание текущего фрагмента и проекции набора |
В GRASS 6.0 один пользователь может запускать несколько параллельных сессий GRASS.
Команды GRASS обладают очень четкой
структурой. Тип команды может быть определен по сокращению перед первой
точкой (префикс). Команды представляющие собой независимые программы называются
модулями GRASS. Их названия описывают сами себя. Так, например, модуль для векторизации называется
r.digit
, чтобы сконвертировать векторные данные
в растровые нужно использовать модуль v.to.rast
.
Таблица 1 детально описывает структуру названий
команд и модулей GRASS.
Модули и программы в GRASS
Модули GRASS, если Вы работаете в Unix/Linux, можно также использовать совместно с командами системы с помощью оболочки системы – командного интерпретатора. Это особенно полезно для целей программирования, интеграции ваших модулей или модулей GRASS. Несмотря на то, что поначалу это кажется сложным для новичка, GRASS предоставляет практически неограниченные возможности реализации своих собственных процессов. Также очень просто создавать простые Unix скрипты для командного интерпретатора.
Для практически любого из 400 модулей GRASS существует файл справки в котором описывается команда и ее синтаксис. Краткую справку о модуле можно вызвать параметром ‘-help’.
d.rast -help
Подробное описание и примеры использования модуля
совпадающие с содержанием справки, находящимся на домашней странице GRASS,
может быть вызвано с помощью команды g.manual
и указанием названия модуля.
g.manual d.rast
Команда вызывает браузер с открытым текстом описания команды. В справку также интегрирован общий индекс, который можно также найти в главе 21.
Во время сессии 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
Решение задач на сфере: обратная геодезическая задача
Решение задач на сфере: прямая геодезическая задача
© GIS-Lab и авторы, 2002-2018. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).