在 Live 系统中,点击桌面上的 GRASS 图标,即可启动 GRASS GIS 。在“Welcome to GRASS”页面可以选择 Spearfish 或 simplified North Carolina (nc_basic_spm) 数据集,“user1”工程,并点击 [Start Grass] 启动。本文档中使用的示例数据集是 Spearfish 。
这将启动 GRASS GIS 。本版本的 GRASS 使用了 基于 wxPython 的新界面 。
Tip
若屏幕分辨率很小(例如 800x600),界面可能过于拥挤,以至于 [Start GRASS] 可能被覆盖。此时按住 Alt 将窗口部分拖出屏幕,并将窗口边框拖拽扩大可以解决问题。
根据所选择的数据集位置,从 PERMANENT mapset 添加 elevation.10m 或 elevation 数据集。在 Layer Manager 图层管理器点击显示一个格网和加号的图标,并从 “map to be displayed” 下拉菜单,点击 [Ok] 。
同样,点击 V 型折线和加号图标可以添加 roads 或 roadsmajor 等矢量线图层。
右键单击一个图层选择 Zoom to selected map(s) 可以缩放至全局。
在 Layer Manager 图层管理窗口,选中 elevation 图层,点击工具栏中的折线图图标,并选择 Profile surface map 。若没有自动选中,在对话框中选中所需图层亦可。点击 [Ok] 。选择左侧第二个图标可以创建剖面线。
首先,在 Settings ‣ Region ‣ Set region 选择 Set from default region 设定默认区域,点击 [Run] ,然后使用 Raster ‣ Generate surfaces ‣ Fractal surface 创建一个基于分形算法的随机表面。在 Optional 可以进一步调整设置。点击 [Run] 执行。点击 [Close] 可以关闭 r.surf.fractal 模块的界面。
执行前述步骤后,在 user1 地图集下应当存在两个栅格数据图层。取消勾选 elevation 可以关闭该图层的显示。若需要,点击眼睛图标刷新显示。
这里要改变分形图层的渲染颜色设置。选中该图层,在 Raster 菜单选择 Manage colors ‣ Color tables 。在 Colors 选项卡的下拉菜单 Type of color table 中选择一个。示例截图中选择的是 srtm 。完成后点击 [Run] 并关闭 r.colors 窗口。
显示将自动刷新。通过改动图层的元数据设置也可以强制刷新显示缓存。工具栏上的刷新按钮(第二个)亦可用于刷新。
这里使用 elevation 高程模型生成地形阴影图。首先,在主图层列表中右键单击 elevation 图层,选择 Set computation region from selected map(s) ,然后在 raster 目录选择 Terrain analysis ‣ Shaded relief (位于菜单中部),参数面板将会显示。
确认输入数据选择无误后点击 [Run] 。完成后将生成的 elevation.shade @user1 加入显示,关闭其它的图层。
同样选择 elevation @PERMANENT 图层,在 Raster 菜单选择 Hydrologic modeling ‣ Watershed analysis 。 r.watershed 模块将启动。设置 elevation 图层为输入,在 ‘Input options’ 设置 threshold 最小汇水区面积 为 10000 像元,在 ‘Output options’ 的 watershed basin 设置 “elev.basins” ,`stream segments` 设置 “elev.streams” 。点击 [Run] 执行。
在图层列表窗口选中新生成的两个图层,右击 “elev.basins” 选择 “Change opacity level 设置透明度” ,设为 50% 左右。若有需要,鼠标拖拽可以改变图层顺序,从而将该图层至于上方。
在图层窗口点击右侧第二个图标,选择 Add a grid layer 。在 size of grid 输入 0:03(0 度 3 分,格式为 D:M:S),在 “Optional” 选项卡勾选 `Draw geographic grid`,点击 [Ok] 并刷新。
下面添加比例尺。点击工具栏右侧的 Add map elements 按钮,选择 “Add scalebar and north arrow” 并勾选 show ,点击 [Ok] 。比例尺默认将出现在地图的左上角。拖拽可以改变其位置。同样,选择 “Add legend” ,点击 “Set Options” 并选中 “elev.basins” 并点击 [Ok] 可以生成其图例。
目前显示使用的是默认的字体。在图层管理窗口打开 Settings ‣ Preferences ,在 “Map Display” 选项卡点击 [Set font] ,选择偏好的字体,点击 [Apply] 。完成后刷新显示。
以上演示均为栅格数据操作。另一方面,作为一套完善的 GIS 系统,GRASS 同样具有强大的矢量数据处理能力,具备完备的拓扑构建和分析功能。
以上使用栅格方法生成了汇水区模型,这里要将其转换为矢量数据。在 Raster 菜单选择 Map type conversions ‣ Raster to vector 在 r.to.vect 对话框中,选中 basins @user1 作为 input 输入 ,设置一饿该输出名称(例如 basins_areas``,应当满足 SQL 语言的格式要求), `feature type` 设为 `area` 。在 `Attributes` 选项卡选择 “raster values as category numbers”,使用之前创建的栅格数据的参数作为多边形号。点击 [Run] 运行即可。矢量数据生成并显示后,建议调整其透明度。右击 ``basins_areas 图层,在 Properties 的 Selection 选项卡可以取消 rendering of area centroids 以关闭中心点显示。
下一步将要为新的多边形添加属性数据。这里输入的是各个汇水区的平均高程。在 Vector 选择 :menuselection:` Update attributes –> Update area attributes from raster` 启动 v.rast.stats 模块。使用 basin_areas 作为多边形图层,使用 elevation 作为栅格输入,输入栏目名称的前缀如 ele ,点击 [Run] 运行。在地图显示窗口,点击工具栏第五个图标可以查询任意位置对应多边形的属性。
使用 v.colors 模块可以依据属性改变多边形的颜色显示。在 Vector 选择 :menuselection:` Manage colors –> Color tables` ,以 basin_areas 作为 “input vector map” ,以 ele_mean 标注上一项生成的统计参数栏,并在 Colors 选项卡中复制 elevation 栅格的颜色数据。运行后,在图层列表点击 basin_areas 选择 Properties ,在 Colors 勾选 “getting colors from the map table column” ,点击 [Apply] ,显示将刷新。
以下演示属性表和 SQL 工具的操作。在图层表点击形似表格的图标(底部第二个),将显示当前连接的数据表。这里仅就前述汇水盆地进行简单的标准差查询。在 SELECT * FROM basin_areas WHERE 的下拉菜单选择 ele_stddev (标准差)作为查询对象,输入 < 50 并点击 [Apply] 确认。执行后,显示的数据项目将会减少,高程标准差较大的对象被排除了。右击表格选择 Select all 选中全部,再次右击选择 Highlight selected features 。选中的要素将会高亮显示。
在 File ‣ NVIZ 开启 3D 可视化工具。选择 elevation 作为 “raster elevation” 。在开启的界面中,选择 Visualize ‣ Raster Surfaces ,设置 fine resolution 为 “1”。调节视角控制滚动条尝试不同的视角。
为在 DEM 上叠加影象,在 Raster Surfaces 选择 Surface Attributes 菜单,在 “color” 项目中创建 “New Map” 。在前述 Spearfish 数据集选择 spot.image 是较好的选择。在 North Carolina 数据集可用 lsat7_2002_50 。点击 “Accept” 并在主窗口点击 “Draw”(左上角)。
很多用户可能想尝试 Cartographic Composer 制图工具和 object-oriented Graphical Modeling 面向对象的影象建模系统。其启动图标位于主界面底部工具栏。有关说明位于 wxGUI 。
新图形界面系统是使用 Python 语言编写的。对于 Python 开发人员,以下工具可能会很有用: 在图层窗口底部点击 Python shell ,使用 help(grass.core) 可以查看全部的核心 Python GIS 组件。此外,`array` (NumPy)、`db` (database)、`raster` 和 vector 都是重要的组件。为使用 GRASS 丰富的 C 函数库,可使用 Pythons CTypes 。
使用 File ‣ Exit GUI 关闭图形界面。在关闭 GRASS 命令行之前,尝试使用 g.manual --help 获取帮助信息。GRASS 是一套倾向于丰富的命令行函数库功能而非图形界面开发的 GIS 系统,适用于通过脚本实现批处理。脚本语言支持 Bourne Shell 和 Python ,两者均有良好的开发环境。应用这些工具,一个包含语法分析器、图形界面和文档模板的 GRASS 模块框架只需 5 分钟左右即可完成。
使用 g.manual -i 可以于浏览器中开启帮助文档。
输入 exit 关闭 GRASS 系统。