\chapter
\section*{Введение}
Это занятие познакомит вас с GRASS-ом и позволит научиться работать с
его интерфейсом пользователя. На занятии мы рассмотрим многие команды, 
которые чаще
всего используются при манипулировании данными и их визуализации в
GRASS. Кроме того, мы познакомимся с концепцией раздельных  слоев карты, 
каждый из которых связан с определенной тематической информацией.

\section*{Запускаем GRASS}

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

Когда вы запускаете GRASS (обычно командой \texttt{grass4.2} или
\texttt{grass5.0}), вы видите следующий экран (\figurename
\ref{startscreen})

\begin{figure}[h]
\caption{Стартовый экран GRASS. Заметим что значения параметров
Location, Mapset и Database могут быть разными на разных машинах} 
\label{startscreen}
\begin{minipage}{0.8\textwidth}
\small
\begin{verbatim}

             GRASS 4.2

  LOCATION: spearfish___ (enter list for list of locations)
  MAPSET:   PERMANENT___ (or mapsets within a location) 

  DATABASE: /home/grass/data__________________________

    AFTER COMPLETING ALL ANSWERS, HIT <Esc> TO CONTINUE
                 (OR Ctrl-C TO CANCEL)

\end{verbatim}

\end{minipage}

\end{figure}

Если по каким-либо причинам, этот экран не появляется, свяжитесь с вашим
системным администратором или обратитесь к документации по установке
GRASS.

Теперь вам требуется сообщить GRASS-у, с каким набором данных вы
собираетесь работать. Начальный экран предлагает вам указать 
LOCATION, MAPSET и DATASET.

LOCATION (регион) определяет географическое положение и размеры области
изучения. В наших упражнениях мы будем работать с небольшим участком в
графстве Лестершир\mnote{Ох уж эти англичане! Никогда бы не подумал
что Leicester читается как Лестер}, в центральной Англии. Нажмите клавишу Enter
несколько раз, пока курсор не окажется в строке LOCATION. Затем наберите
название изучаемого региона~---\texttt{leics}.

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

Нажмите Enter еще раз для того, чтобы переместить курсор в строку
MAPSET (набор карт). Набор карт в GRASS~--- это персональный
пользовательский набор файлов, которые относятся к текущему региону. Для
удобства используйте ваше логинное имя для вашего набора карт. Это
гарантирует, что все файлы, которые вы создали или изменили, не будут
случайно изменены кем-либо еще. (Заметим, что существует набор карт по
умолчанию PERMANENT, содержащий информацию, которую может читать любой
пользователь GRASS).

Настройка DATABASE (база данных) в данном случае  не нуждается в
изменении. Это просто директория в которой размещаются регионы и наборы
карт. 

{\small
(Замечание для системных администраторов~--- директория базы данных
GRASS може быть задана с помощью переменной среды GISDBASE.) 

}
После того, как вы задали все необходимые параметры, нажмите Esc\footnote{Обратите внимание, что в GRASS клавиша Esc
используется \emph{не для отмены} действия, а наоборот, для его
\emph{подтверждения}, как эквивалент кнопки Ok в графических диалоговых окнах
других программ. Эквивалентом кнопки Cancel служит комбинация клавиш
Ctrl-C. \emph{Прим. перев}} для
входа в сеанс GRASS. 

\section*{Введение в GRASS}
\begin{description}
\item[Цель задания] Получение первоначальных навыков работы в ГИС GRASS
\item[Задачи] После выполнения этого задания вы должны уметь:
\begin{itemize}
\item Получать список доступных картографических слоев
\item Анализировать содержание любого картографического слоя
\item Визуализировать слои на экране компьютера
\item Создавать комплексные тематические карты\mnote{Лихо! на первом
занятии~--- комплексные тематические карты. Надо бы придумать слово попроще}
\item Обновлять вспомогательные файлы картографического слоя 
\end{itemize}
\end{description}

\begin{figure}[h]\caption{}
\fbox{
\begin{tabular}{ll}
\multicolumn{2}{c}{Используемые команды GRASS}\\
\\
\tt g.list&\tt d.mon\\
\tt d.rast&\tt r.report\\
\tt d.legend&\tt d.erase\\
\tt d.colormode&\tt r.colors\\
\tt d.colortable&\tt d.histogram\\
\tt r.patch&\tt r.support\\
\tt g.remove&\tt exit\\
\end{tabular}
}
\end{figure}
\section{Шаг 1. Получаем список доступных слоев}

Для начала мы должны получить список всех данных, которые сейчас
содержатся в системе. 

\cmdtitle Наберите команду \texttt{g.list} и нажмите \fbox{Enter}.

Вы увидите на экране список из 8 возможных типов файлов, которые могут
быть перечислены. Все слои в нашем упражнении~--- растровые, поэтому 
выберите 1 и нажмите  Enter.

\discussion Вы могли обратить внимание, что информация
хранится в GRASS как набор независимых ,,слоев''. Каждый слой содержит
данные по одной ,,теме'', такой как дороги, застроенные территориии или
плотность населения. Такой способ хранения информации достаточно часто
используется в геоинформационных системах. 

Вам придется достаточно часто пользоваться командой  \texttt{g.list}
чтобы напомнить себе названия имеющихся слоев, особенно после того, как
вы начнете создавать свои собственные слои с помощью ГИС-операций.

\emph{Проверьте, что все слои, перечисленные на \figurename \ref{maplist}
показаны на экране вашего компьютера, как входящие в набор карт
PERMANENT; если это не так, сообщите об этом системному администратору
или преподавателю}

Нажмите Enter еще раз для завершения команды g.list

\refstepcounter{figure}\figurename \thefigure:{Растровые слои, используемые в этих упражнениях}\par\nopagebreak
\label{maplist}
\fbox{
\begin{tabular}{ll}
\\
\bf Имя файла&\bf Название слоя\\
\\
crash&Места дорожно-транспортных происшествий\\
contours& Изолинии рельефа\\
image & Спутниковый снимок\\
landcov & Растительный покров и землепользование\\
plant & Очистные сооружения\\
popln & Население\\
rail & Железные дороги\\
roads & Дорожная сеть\\
segment & Загрязненный участок реки \\
source & Источник загрязнения\\
spillage & Разлив химикатов\\
topo & Цифровая модель рельефа\\
urban & Основные районы застройки\\
water & Реки и др. водные объекты\\
\end{tabular}
}

\section{Шаг 2: Смотрим на изучаемый регион} 

Для того, чтобы вывести на экран какую-либо графику в GRASS, необходимо
сначала открыть \emph{,,графическое окно''}.

\gcommand{d.mon start=x0}

\begin{figure}[p]
\fbox{\makebox[10cm]{\rule{0pt}{15cm}}}
\mnote{Кто спер карту - мой ghostscript или ихний wordperfect?}
\caption{Карта исследуемого района}
\label{map}
\end{figure}
\afterpage{\clearpage}
\discussion В GRASS вы можете открыть до 7 графических окон
одновременно. Они называются от x0  до x6. Каждое окно можно перемещать
по экрану и изменять его размер, располагая его на любом участке экрана. 
Если вы хотите переместить окно, подведите курсор к его заголовку,
нажмите левую кнопку мыши и переместите окно в желаемое место. Для того,
чтобы изменить размер окна, поместите курсор его на угол, и переместите
мышь, удерживая левую кнопку нажатой.

После того, как вы удовлетворены положением окна на экране, вы должны
сообщить GRASS-у, что это окно должно быть выбрано в для вывода.

\gcommand{d.mon select=x0}

Для того чтобы вы быстрее освоились с изучаемым регионом, выведите на
экран сначала спутниковый снимок, который даст вам общее представление о
географии этого района.

\gcommand{d.rast image}

\discussion  Этот снимок достаточно похож на обычную
черно-белую фотографию, сделанную из космоса, хотя на самом деле он
сделан в инфракрасном диапазоне. Он предназначен для того чтобы
предоставить вам ,,реалистичное''  представление о районе с которым мы
работаем. Тем не менее, ,,реалистичность'' ограничена тем способом,
которым пространство моделируется в  GRASS\mnote{Ну чтоб им не
положить снимок с разрешением заведомо большим разрешения экрана!};  
помните, что это растровая ГИС, и она использует решетку прямоугольных
ячеек для представления пространства\footnote{Это совершенно не
ограничивает точность анализа. Никто не мешает вам (кроме требуемых
затрат дискового пространства и времени на обработку) хранить растровые
слои с разрешением сканера/принтера.~--- \emph{Прим перев.}}.

\emph{Сравните этот снимок с планом района (\figurename \ref{map}). Какие
объекты и типы землепользования вы можете опознать?}

\section{Шаг 3: Описываем содержимое растрового слоя}
\label{step3}
На этом шаге вы будете рассматривать параметры растрового слоя, в
терминах его физического размера или ,,разрешения'' сетки ячеек.

\gcommand{r.report roads units=kilom,percent}

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

Под информацией о регионе, дается заголовок растрового слоя и имена
категорий в этом слое. Распространенность каждой категории показывается
в тех единицах, которые были указаны в параметре команды ( км${}^2$ и \% 
в данном случае).

\emph{Для каждого из слоев перечисленных на \figurename \ref{listtoreport},
используйте команду \texttt{r.report} для того, чтобы узнать наиболее и
наименее распростраенную категорию. Для каких растровых слоев это
полезная информация, и для каких нет? Почему?}

\refstepcounter{figure}\figurename \thefigure:\par\nopagebreak
\label{listtoreport}
\fbox{
\begin{tabular}{lll}
Слой&\parbox{2cm}{Наиболее распространенная категория}&
\parbox{2cm}{Наименее распространенная категория}\\
\\
\tt landcov&\tofill{2cm}&\tofill{2cm}\\
\tt popln&\tofill{2cm}&\tofill{2cm}\\
\tt rail&\tofill{2cm}&\tofill{2cm}\\
\tt roads&\tofill{2cm}&\tofill{2cm}\\
\tt topo& \tofill{2cm}&\tofill{2cm}\\
\end{tabular}
}

\discussion Вы должны были обнаружить, что отчет по слою
\texttt{topo} прокручивается слишком быстро.  GRASS не принимает во
внимание количество категорий, когда выводит отчет. Для того чтобы
просмотр отчета был  более ,,дружественным'', вы можете скомбинировать
\texttt{r.report} с командой \texttt{more}\footnote{\texttt{less} is
more than \texttt{more}~--- \emph{Прим. Перев}}. \texttt{more}~---
утилита для постраничного просмотра текста, делающая паузу после каждого
экрана информации. Для просмотра следующего экрана нажмите Пробел, для
выхода из \texttt{more}~--- q.

\gcommand{ r.report topo units=kilom,percent \verb!|! more}

\discussion Возможность комбинировать подобным способом команды
GRASS и команды UNIX~--- это свойство придающее GRASS очень большую
гибкость и мощность. Это особенно ценно, когда необходимо организовать
обмен данными между GRASS и другими программами UNIX.  

\section{Шаг 4: Просматриваем слои}
\label{step4}
Теперь вы можете использовать механизм визуализации, впервые увиденный
вами на шаге 2, для того чтобы просмотреть все картографические слои,
перечисленные на \figurename \ref{maplist} на странице
\pageref{maplist}.

\gcommand{\tt d.rast roads}

\discussion Команда \texttt{d.rast} это основной способ
показа растровых слоев в GRASS. Если вы обратитесь к к карте изучаемого
участка (\figurename \ref{map}), станет очевидно, что сеть дорог,
видимая на экране~--- это упрощенная версия той, что есть на карте.
Степень детализации и точность картографических слоев ГИС варьируется
в зависимости от источника информации и планируемого применения, но
они всегда являются упрощениями или моделями реального мира\footnote{Не
забывайте о том, что карта это тоже модель. ГИС-слои, как и карты~---
модели реального мира. Не рассматривайте ГИС как компьютерное
представление карты. Это компьютерное представление \emph{той же
информации о местности},  которая на бумаге представляется в виде
карты.~--- \emph{Прим. перев.}}.

Чтобы сделать карту более удобной для восприятия, можно вывести на экран 
легенду, связанную со слоем. Для начала, выведем ее в отдельном
графическом окне.

\gcommand{\textt{d.mon start x=1 select=x1\\
d.legend roads}

Если неободимо, подвиньте новое окно с помощью мыши. Теперь попробуйте
посмотреть другой слой вместе с его легендой.

\gcommand{d.mon select=x0\\
d.rast water\\
\\
d.mon select=x1\\
d.erase\\
d.legend water lines=20}

\discussion Первая команда указывает GRASSу, что выдвачу
следует направить в исходное графическое окно x0.
После этого выводится растровый слой \texttt{water}. Для того, чтобы
изобразить легенду, используется второе ,,легендарное'' окно x1. 
Прежде чем изобразить вторую легенду в этом окне, необходимо стереть
старую. Когда GRASS выводит легенду, он, по умолчанию, делает каждый
прямоугольник насколько возможно большим, чтобы легенда заполнила все
окно. Поскольку легенда карты водных объектов содержит только одну
категорию (помеченную как четыре), будет выведена слишком крупная
легенда. Используя параметр \texttt{lines=20}, GRASS масштабирует
легенду так, как будто следует разместить в окне 20 категорий.

\emph{Повторите процедуру для слоев \texttt{rail}, \texttt{urban} и
\texttt{topo} задавая значение \texttt{lines}, если считаете нужным.

Для каких типов растровых карт \texttt{d.legend} наиболее подходит?}

Выведем снова спутниковую фотографию

\gcommands{d.mon select=x0\\
d.rast image}

\discussion Фотография должна быть отрисована примерно 8-ю оттеноками
серого цвета~--- достаночно, чтобы опознать большую часть объектов
исследуемого участка.  Так как  GRASS может использовать до 240 цветов
даже на самых дешевых видеокартах, почему здесь только восемь оттенков?
GRASS имеет постоянную палитру цветов, которые все  могут быть
отображены одновременно. Так как изображение может содержать любые цвета,
 только небольшое количество цветов в палитре может быть зарезервировано
 для оттенков серого\mnote{Отсутствие нормальной поддержки truecolor~---
 откровенное свинство.}. GRASS просто ставит в соответствие значению
 каждой ячейки растра ближайший доступный цвет.

Мы можем\footnote{В GRASS 4.2~--- только на визуалах класса
PseudoColor} получить более качественное изображение, отказавшисть от
фиксированной палитры GRASS и отдав большую часть диапазона цветов
одному изображению.

Убедитесь, что курсор мыши расположен над графическим окном x0.

\gcommand{ d.colormode float\\
           d.rast image}

\discussion Вы должны увидеть существенно улучшившийся фотоснимок
изучаемого участка. Большая часть 256 доступных цветов теперь
используется для оттенков серого в этом единственном окне. Когда
используется \emph{плавающая цветовая палитра}, GRASS выделяет точные
цвета для того окна, над которым находится курсор.

\emph{Попробуйте поперемещать курсор между разными графическими окнами.

Что происходит с цветами на снимке и в окне легенды, когда вы это
делаете?

Когда стоит использовать плавающую палитру цветов, и когда фиксированная
больше подходит?}

Наконец, попробуем изменить цветовую схему спутникового снимка.

\gcommand{ r.colors image color=wave\\
d.rast image}

\discussion Каждый растровый файл в GRASS связан с файлом цветов,
который хранит цвета, связанные с категориями растра. Цветовой файл
может быть изменен несколькими способами. Один из самых простых~---
использовать одну из предопределенных палитр GRASS. В данном примере
палитра была изменена с серой ({\tt grey}) красно-зелено-синюю цветовую
волну ({\tt wave}).

Выведите на экран всю цветовую палитру, связанную с определенным файлом.

\gcommand{ d.erase\\
d.colortable image}

Выведите список предопределенный цветовых палитр, которые могут быть
вызваны командой \texttt{r.colors}.

\gcommand{r.colors help}

\discussion{Все варианты выбора, доступные в команде \texttt{r.colors}
должны быть перечислены. Доступные варианты параметров для любой команды
могут быть получены путем набора команды со словом \texttt{help} в
качестве параметра. Или, если вы наберете команду без параметров, она
будет задавать вопросы про каждый из доступных параметров. Приложение
\ref{commandsapndx} содержит краткую сводку применения и все параметры
всех команд GRASS, использованных в наших упражнениях.

\emph{Замените палитру снимка на некоторые, или все, из предопределенных
палитр, перечисленных командой \textt{r.colors help}.

Можете ли вы предложить практическое применение для каждой из этих
палитр?}

Наконец, вернем палитру и цветовой режим GRASS в исходное состояние.

\gcommand{r.colors image color=grey\\
d.colormode fixed
d.erase
}
\section{Шаг 5: Вывод простой статистической информации о слое}

Сейчас мы используем  GRASS для вывода некоторой статистической
информации, касающейся слоя.

\gcommand{d.histogram roads}

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

Если вы хотите увидеть название каждой из категорий, используте
\texttt{r.report}.

\gcommand{r.report roads}

\emph{Определите сколько ячеек в слое \texttt{road} соответствуют
дорогам класса 'C' с помощью \texttt{d.histogram} и \texttt{r.report}.

Какую часть общего числа ячеек это составляет?

Если вы не можете вспомнить как использовать \texttt{r.report}
возвратитесь к Шагу 3 на странице \pageref{step3}
	   
\medskip

Теперь займитесь построением гистограмм для любых доступных слоев.
Обратитесь к приложению \ref{commandsapndx} или используйте
\texttt{d.histogram help} для того чтобы узнать как построить круговую
диаграмму вместо гистограммы~--- поэкспериментируйте немного!}

\section{Шаг 6: Объединяем слои в ,,комплексную'' карту}

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

Мы будем объединять слои \texttt{urban}, \texttt{water}, \texttt{rail} и
\texttt{roads}.

\discussion Можно представить себе  наложение слоев двумя способами.
Во-перовых, можно осуществить \emph{,,графическое наложение''}, когда
несколько растровых слоев отображаются совместно в одном графическом
окне. Это только визуализация, и никакая информация об этом наложении не
сохраняется. Во-вторых, растровые слои могут быть скомбинированы для
создания нового растрового слоя. Это обычно более важный процесс, так
как новый слой может потом дальше обрабатываться средствами ГИС.

Сначала, выполним графическое наложение.

\gcommand{ d.rast urban\\
d.rast -o water\\
d.rast -o rail\\
d.rast -o roads}

\discussion Если  при вызове \texttt{d.rast} используется ключ \texttt{-o},
то предыдущий слой не стирается по мере вывода нового. Так как
большая часть растрового слоя представляет собой ,,фон'' (категория 0),
каждое последующий слой  не закрывает предыдущий полностью.

Теперь попробуем альтанативный подход и создадим новый ,,комплексный''
слой

\gcommand{r.patch input=roads,rail,water,urban output=composite}

\discussion Команда \texttt{r.patch} позволяет скомбинировать разные
слои, сохраняя цвета и названия, связанные с каждой категорией. Только
пустые (категория 0) ячейки могут быть заменены содержимым другого слоя7

\emph{Выведите новый слой \texttt{composite} на экран (обратитесь к шагу
4 на странице \pageref{step4} если вы забыли как это делается

Какое значение имеет порядок, в котором накладываются растровые слои?

Можете ли вы объяснить разницу в порядке для графического и файловог
наложения? Если вы не уверены, попробуйте поменять порядок и увидеть.
}

\section{Шаг 7. Финальные штрихи к комплексной карте}

Картографический слой, сгенерированный на шаге 6 и сохраненный в файле
\texttt{composite} создан путем объединения нескольких слоев. К
сожалению, новая карта до сих пор имеет название первого из входных
слоев команды \texttt{r.patch} (\texttt{roads}). В качестве последнего
упражнения в этом разделе мы используем команду GRASS \texttt{r.support}
для того чтобы изменить заголовок слоя. 

Работая с этой командой вы узнаете кое-что о том, какие вспомогательные
файлы связаны с растровым слоем GRASS.

\gcommand{r.support}

\bf{Диалог:}\parbox[t]{10cm}{{\tt
Enter name of the raster file\\
> \textbf{composite}

Edut the header file for [composite] ?
> y
\fbox{Enter}\\
\textit{(выдает размеры файла и количество байт в значении ячейки)}\\
\fbox{Esc}\\
\textit{(выдает географические координаты границ слоя)}\\
\fbox{Esc}\\
\textit{(выдает общее количество строк и колонок растра)}

Do you accept this header ?
> \textbf{y}

Update the stats (histogram, range) ?\\
> \textbf{n}\\
\textit{(Это включает обновление файла, который хранит верхний и нижний
пределы значений растрового слоя)}

Edit the category file?\\
> \textbf{y}\\
\fbox{Esc}\\
\textit{Замените заголовок на \textbf{Composite Infrastructure Map}
нажав \fbox{Enter} до тех пор, пока курсор не окажется в строке
заголовка и введя новый текст}\\
\fbox{Esc}
Category file for [composite] updated\\
\fbox[Enter]

Create/update color table?\\
> \textbf{n}

Update history file ?\\
> \textbf{y}\\
\fbox{Esc}\fbox{Esc}\

}}

\emph[Сейчас вы создали полностью документированный растровый
картографический слой  GRASS!}

\section{Закрепление материала}

В самом начале наших упражнений мы поставили перед собой ряд целей и
перечилили список команд  GRASS, которые нам встретятся. Теперь
посмотрим, можете ли вы связать эти команды с этими целями и заполнить
приведенные ниже таблицы. Вам может помочь знание соглашения об именах
комманд, используемых в GRASS. Команды, начинающиеся с \texttt{d.}
связаны с визуализацией на дисплее, \texttt{g.}~--- общие (general)
команды, оперирурющие с файлами, \texttt{i.}~--- команды связанные с
обработкой изображений (image) и \texttt{r.} команды работают с
растровыми слоями.

\fbox{
\begin{tabular}{ll}
\multicolumn{l}{Используемые команды GRASS}\\
\tt g.list &\tt d.mon\\
\tt d.rast &\tt r.report\\
\tt d.legend &\tt d.erase\\
\tt d.colormode & \tt r.colors\\
\tt d.colortable & \tt d.histogram\\
\tt r.patch& \tt r.support\\
\tt g.remove\\
\end{tabular}
}

\fbox{
\begin{tabular}{p{4cm}r}
\bf Задача: &\bf Использованные команды \\
Оценить частоту встречаемости категорий слоя&\tofill{4cm}\\
Получить список доступных слоев&\tofill{4cm}\\
Отредактировать вспомогательые файлы слоя & \tofill{4cm}\\
Создать комплексную карту&\tofill{4cm}\\
Вывести растровый слоя на экран&\tofill{4cm}\\
\end{tabular}
}

\paragraph{Убираем за собой:} Растровые слои, которые вы создали во
время этого занятия не будут нужны на последующих занятиях.  Вы можете
сэкономить дисковое пространство, удалив эти слои, но будьте при этом
осторожны. Во-первых, воспользуйтесь командой \texttt{g.list} для того
чтобы напомнить себе имена слоев, хранящихся на диске в данный момент.
Помните, что вы не удаляете никаких файлов в наборе PERMANENT, а только
слои, созданные в вашем собственном наборе карт. Теперь вы можете
удалить любые слои, которые вы считаете ненужными, используя команду
\texttt{g.remove}, сопровождаемую именем слоя.

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

\gcommand{d.mon stop=x0\\
d.mon stop=x1}

И наконец, для того, чтобы выйти из GRASS

\gcommand{exit}

\bfshape{Диалог:}\parbox[t]{10cm}{{\tt Shall the mapset <username> be
saved?\\
> \bfshape{y} (Вводите n, только если вы не хотите сохранять никаких
файлов в наборе)

Do you wish to selectively remove data files?\\
> \bfshape{y}

Please select type of file to be removed.\\
1. Raster files\\
> \bfshape{1}
(Укажите имена файлов, которые вы хотите удалить)

GOOD BYE from GRASS!
}


