15.3. GRASS 地理信息系统功能¶
15.3.1. GRASS 地理信息系统项目的定义:位置和地图集¶
在启动GRASS会话之前,需要定义GIS数据库目录、位置(项目)和地图集(子项目)。 启动GRASS GIS后,会打开启动屏幕,允许用户选择数据库、位置和地图集 (请参阅 https://grass.osgeo.org/grass72/manuals/helptext.html )。
GIS数据库目录:在开始使用GRASS之前,必须创建此目录;在这个数据库中, 项目是按存储在名为“locations”的子目录中的项目区域组织的。
位置:位置由其坐标系、地图投影和地理边界定义。GRASS启动时可以添加新位置。
当第一次使用新位置启动GRASS时,定义位置的子目录会自动创建。在每个位置内,都存在一个强制的“永久”地图集, 其中包含投影信息和一些更多定义。永久地图集中的数据只能由永久地图集的所有者添加、修改或删除;但是,其他用户可以访问、 分析它们并将其复制到自己的地图集中。永久地图集对于提供通用空间数据(例如海拔模型)非常有用, 在同一位置工作的所有用户都可以访问该数据,但受文本保护。此地图集还包含"DEFAULT_WIND" 文件, 该文件保存位置的默认区域边界坐标值,所有用户在开始使用数据库时都会将其保存。
地图集:每个位置可以有许多地图集(location子目录)。可以在GRASS启动时添加新地图集。地图包含一组不同的数据层,
每个数据层与相同(或相同)地理区域的子集相关,并且每个数据层绘制在相同的地图坐标系中。在每个GRASS会话开始时,
用户都会识别GRASS数据库、位置和地图集,这些数据库将成为用户在会话期间的当前数据库、当前位置和当前地图集;
用户在会话期间创建的任何地图都将存储在会话开始时设置的当前地图集下(请参阅 g.mapset
和 g.gisenv
有关
在会话内更改地图集)。在所有地图集中,都会保留一个"WIND"文件,用于存储当前边界坐标值和当前选择的栅格分辨率。
用户可以随时选择切换回默认区域。
选择新位置时,位置向导将启动一系列对话框,这些对话框能够浏览和选择预定义的投影(prj文件,也通过EPSG代码)或定义单个投影。 我们还可以从地理参考数据文件轻松创建新位置(例如SHAPE文件或GeoTIFF)。然后,地图集的空间范围可以根据包围矩形角的 地理坐标的规范来定义。
此过程也可以从QGIS环境启动,如进一步描述和说明的那样(请参阅第3.4.1节)。
15.3.2. GRASS 区域的修改¶
GRASS 区域概念至关重要,因为它将考虑地理投影的参数、地理位置以及由空间分辨率定义的栅格表示的行和列数来确定数据的显示。 这些参数的默认值存储在 PERMANENT 地图集中的DEFAULT_WIND文件中。当前区域的参数存储在当前地图集的WIND文件中。

显示的定义参数的WIND文件 当前地图集
因此,对于同一地理区域,可以通过修改空间分辨率多次定义GRASS区域。这可能很有用,例如,如果要测试几种图像处理算法, 我们可以比较它们:然后在对原始图像开始选择处理之前,将使用分辨率提升的图像来执行这些测试。
在GRASS软件中,我们可以使用 g.region
命令重新定义区域,因为 g.region-d
命令将返回原点区域。有关更多详细信息,
请参阅例如 https://grass.osgeo.org/grass73/manuals/g.region.html
或 https://www.ing.unitn.it/~grass/docs/tutorial_62_en/htdocs/comandi/g.region.htm。
在QGIS GRASS环境中,可以使用GRASS工具( GRASS MODULES > 区域设置 )中提供的 g.region
命令修改和保存区域设置。
对于网格地图,可以使用 r.region
命令修改区域设置( GRASS MODULES > Raster > Develop Map > Set the Boundary definition )
或通过重新采样更改空间分辨率( GRASS MODULES > Raster > Develop Map > Change resolution )。
这些可能性如图3.6所示。
15.3.3. 将栅格数据复制到GRASS中¶
导入先前在QGIS中显示的栅格文件的过程是最常见的做法,稍后将介绍(第3.4.1节)。 但是,可以从QGIS-GRASS界面中的GRASSTools导入外部栅格文件 ( GRASS MODULES > 文件管理 > 导入到GRASS >将栅格导入到 GRASS >从外部文件导入到 GRASS )。

图3.6. GRASS Tools命令修改区域设置、栅格地图边界和分辨率
这适用于GDAL 库中识别的所有栅格文件,以及ASCII、二进制和某些卫星图像格式,
例如SPOT VGT(NDVI)、ASTER或 DEM 文件(SRTM或ASTER)。
在QGIS“处理”工具箱中的GRASS GIS7命令列表中,我们可以找到 r.in.lidar
命令,
该命令使我们能够使用单变量统计数据和“分类”类型聚合从LAS LIDAR点云创建栅格地图。
请注意,我们可以同时将多个栅格文件导入到目录中。在后一种情况下,选择文件的格式(例如:tiff),并将扩展名 ''.tiff'' 添加到导入文件的名称中。

GRASS Tools用于导入外部栅格数据的命令
15.3.4. 将矢量数据导入到GRASS中¶
导入矢量层类似于导入栅格层。通过GRASS Tools,我们可以将QGIS中已经显示的矢量层导入GRASS(请参阅第3.4.2节),
而且还可以导入外部载体文件: GRASSMMODULES > 文件管理 > 导入到GRASS > 导入矢量数据到GRASS ;
首先,GDAL -OGR 库的所有矢量格式(commandv.in.ogr),
还可以直接导入DXF、ESRI(e00)、ASCII、MapGenor MATLAB格式,等等。
请注意,我们可以从数据库中导入各种格式的属性表(命令 db.in.ogr
)。

GRASS Tools命令导入矢量数据和属性
打开GRASS GIS7命令时(314个地理算法)在QGISProcess收件箱中,我们可以评估字母方向盘中的一些外部方向盘导入命令,
以及 thev.in.lidar
命令(矢量地图中LIDAR LAS点云的转换)和 v.in.wfs
命令,
用于从OGC WFS(Web要素服务)服务器导入方向盘(例如,请参阅Mapserver开源平台)。这些可能性如图3.9所示。
15.3.5. 图像地理参考¶
大多数卫星图像现在都可以作为地理参考数据提供。然而,如果我们需要对原始图像或扫描地图进行地理参考,
我们可以参考以下教程: https://grasswiki.osgeo.org/wiki/Georeferencing 。
使用航拍照片时,我们可以使用 i.ortho.photo
命令正射纠正图像组文件(图像组由公共区域的几张扫描航拍照片组成)。

GRASS GIS命令,用于导入QGIS处理工具箱中可用的外部矢量数据
地理配准也可以通过“Georeferencer GDAL ”插件在QGIS中进行。这是一个核心插件,已经是QGIS安装的一部分;我们只需要启用它 (请参阅以下教程: http://www.qgistutorials.com/en/docs/georeferencing_basics.html ; https://docs.qgis.org/2.14/en/docs/training_manual/forestry/map_georeferencing.html 。
15.3.6. 图像的辐射预处理¶
我们可以从数字(DN)物理值进行转换:传感器辐射度W·m-2。
通过使用应用于ASTER或Landsat图像的专用工具来测量SR-1或大气反射率(TOAR):
iaster.toar
或 i.landsat.toarcommands
。
对于任何其他类型的传感器,有必要使用校准参数和必要的辅助数据执行计算。
计算是使用 r.map
命令完成的,这是一个用于修改栅格文件数据的通用命令。
请注意,我们还可以使用QGIS“栅格计算器”工具。
如果希望获得地面反射率的估计值(TOCR,树冠反射率顶部),则需要使用 i.atcorr
命令来纠正大气影响。
这使我们能够基于算法6S(太阳光谱中卫星信号的第二模拟, [VERMOTE97] ) 。
模型所需的参数,包括大气类型、气溶胶类型和水平能见度,在作为输入提供的文本文件中指定。
最后,由于 i.topo.corr
命令,还可以对地形影响进行修正。当然,纠正需要一个 DEM 。
该过程包括首先计算照明图,然后根据以下选项之一执行纠正:cosine、Minnaert、C factor、百分比。
VERMOTE E.F., TANRE D., DEUZE J.L. 等人,“第二次模拟太阳光谱中的卫星信号,6S:概述”, IEEE《地球科学与遥感学报》,第35卷,第3期,pp。675–686, 1997.
15.3.7. 全色锐化¶
将多频段图像与具有更高空间分辨率的多色图像结合起来通常很有用,以便通过合并创建具有改进空间分辨率的多频段图像。
GRASS软件允许使用 i.panshreef
命令执行此操作,但输入多频段图像仅限于3通道输入图像(红、绿、蓝)。
合并可以通过任何建议的技术来执行:IHS、主成分和Brovey方法(颜色规范化)。
15.3.8. 光谱指数和生物物理参数的计算¶
对于卫星图像产品,可以对光谱带的各种组合进行编程,以获得植被指数、辐射率、发射率和“生物量增长”产品。
植被指数:i.vi命令可以计算许多植被指数:ARVI、DVI、EVI、EVI2、GARI、GEMI、GVI、IPVI、MSAVI、MSAVI2、NDVI、PVI、RVI、SAVI、SR、WDVI。 这些计算将根据反射率值(TOAR或TOCR)进行;对于SAVI,有必要指定其他参数:“土壤线”原点处的坡度和纵坐标, 降低由于土壤表面状态引起的噪声的因素。
“Tasselled cap”指数:i.tasscap命令可用于计算这些指数,由[KAUTH76]_定义, 它结合了六个通道(陆地卫星4-7,陆地卫星8)或七个通道通道(MODIS)。请注意,这种在反射率中压缩多频带数据的技术 实际上给出了四个指标,称为*亮度**指数*、绿色**指数,*湿度指数*和雾度指数*(仅适用于陆地卫星5、7、8)。 该计算可应用于Landsat 4 TM、Landsat 5 TM、Landsat7 ETM+和MODIS数据;相应的参考文献定义了使用条件 算法(例如Landsat 7 ETM+大气外反射率(TOAR)值)必须输入)。
反照率:反照率,这里定义为“短波反射率”,太阳光谱域(波长:0.3-3µm)中表面的反射率,是地球辐射传输和能量平衡模型中 使用的一个重要参数表面。i.albedo命令根据获得的地面反射率数据计算此参数来自以下传感器:NOAA-AVHRR(两个通道)、 Landsat 5和7(六个通道),陆地卫星8号(7个频道)、ASTER(6个频道)和MODIS(7个通道)。
发射率:i.emissions命令提供了一种计算表面发射率的方法在8-14µm光谱范围内,基于NDVI和发射率[CASELLES97]_, 适用于分散到中等密度的植被冠层:NDVI从0.15到0.71,导致发射率从0.97到0.99。
生物量增长:i.Biomass命令可以计算每日增长根据Bastiaansen和Ali[BASTIANSSEN2002]和Chemin等人的研究。 [化学05]。此计算需要以下参数作为输入:fPAR(光合可同化辐射分数)、光利用效率,大气透射率、水可用性。对于最后一个参数, 可以考虑i.eb.evapfr命令的结果。的确,后一个命令使得计算蒸发分数和土壤含水量; 它是蒸散量计算集的一部分还提供对瞬时净辐射估计的访问的命令,土壤热通量、感热通量、潜在蒸散量(Hargreaves的方法, Penman-Monteith或Priestley Taylor),实际蒸散量及其时间积分。
KAUTH R.J., THOMAS G.S., “The Tasseled Cap – 图形农作物光谱时间发展描述如LANDSAT所见”, 机械加工研讨会论文集遥感数据,可在以下网址获得: http://docs.lib.purdue.edu/lars_symp/159/, 1976.
CASELLES V.,COLL C.,VALOR E.,“陆地表面发射率和AVHRR在整个HAPEX萨赫勒地区的温度测定数据”, 《国际遥感杂志》,第18卷,第5期,pp。1009–1027, 1997.
BASTIAANSSEN W.G.M.,ALI S.,“一种新的作物产量预测基于印度河流域卫星测量的模型,巴基斯坦”, 《农业、生态系统和环境》,第94卷,第3期,第321-340页,2002年。
CHEMIN Y.,PLATONOV A.,ABDULLAEV I.等人,“补充转型期农田水分生产力遥感评价《水国际》“, 第30卷,第4期,第513-521页,2005年。
15.3.9. 分类和细分¶
在本节中,我们将介绍无监督分类的图像处理能力( i.cluster
紧随其后的是 i.maxlik
)、
最大似然分类(SLC)( i.gensig
或 g.gui.iclass
,其次是 i.maxlik
)、
监督上下文分类( i.gensigset
, i.smap
)和面向对象的分割( i.segment
)。
聚类和无监督分类:使用i.cluster命令使用*kmeans*算法对具有相似光谱响应的像素进行处理。用户指定所需的类别数量, 以及约束聚合迭代过程的参数,并在行和列中对图像进行采样。可以从有限数量的用户定义的子组中执行光谱聚合使用i.group命令。 当用户表示类别的初始光谱响应(例如用i.gensig获得),然后通过迭代算法对其进行修改。 结果是一个包含以下内容的文件最终类统计数据(均值和协方差),然后用作i.maxlik的输入执行分类的第二阶段。
监督分类MLC的统计数据:使用i.gensig命令创建从地图中定义的类别统计数据,标识代表每个类别的像素用户定义的主题类。 此地面实况图可以从矢量文件生成通过使用wxGUI Vector在图像显示屏上进行数字化而产生数字化仪命令。 然后,类统计文件被用作i.maxlik的输入。
生成MLC统计数据的交互式工具:g.gui.iclass命令用于操作定义区域的交互式工具对图像感兴趣, 并创建主题类的光谱响应以这些地区为代表。该工具使我们能够控制监督学习过程通过可视化不同通道中类别的光谱响应的直方图, 以及可以根据距离阈值分配给每个类别的像素(光谱响应包含在区间均值±标准差中)。结果是一个矢量图, 以及用作i.maxlik输入的统计文件。
最大似然分类MLC:i.maxlik命令用于实现基于最大似然准则的像素分类算法类光谱响应的高斯分布假设(如果不符合要求, 可以排除一个类别)。程序生成分类图像,以及一个“拒绝光栅图”图像,指示哪些像素可以被拒绝(未分类)基于χ2检验考虑16个 预定义的置信区间(拒绝指数1:分类良好的像素,拒绝指数16:可能错误分类的像素)。 如上所述,i.maxlik可以在无监督分类的上下文中使用(参见聚类)或在监督分类的背景下。
SMAP分类统计:使用i.gensigset命令识别每个主题中子类的光谱响应用户预先定义的类。主题类已定义通过指定属于每个 类别(感兴趣区域)的像素的光栅图像。根据这一界限,程序确定了频谱的最佳数量在混合高斯响应的假设下, 并生成这些子类的统计数据,其将用作i.smap程序的输入。
SMAP分类:`i.SMAP`命令根据顺序最大值*A Priori*估计算法(参见 [BOUMAN94] , [MCCAULEY95] ).
BOUMAN C.,SHAPIRO M.,“多尺度随机场模型贝叶斯图像分割”,IEEE图像处理学报, 1994年,第3卷,第2期,第162-177页。
MCCAULEY J.D., ENGEL B.A., ,“场景分割的比较:SMAP、ECHO和最大可能性”,IEEE地球科学学报遥感, 第33卷,第6期,第1313-1316页,1995年。
这种方法依赖于对具有多种分辨率的图像进行分割,因此导致分类图像具有或多或少的强化平滑。此分类不适用于遮罩图像或零值。
面向对象的分类:在非常高的空间分辨率图像的情况下,逐像素分类是困难且低效的:因此,建议通过创建对象(连续的像素区域) 来分割图像,然后将其用作分类过程(如i.maxlik)中的输入。i.segment命令使得描绘相似连续像素组成为可能, 相似性标准是距离(欧几里德距离或曼哈顿距离)根据像素的辐射值以及紧凑性和平滑性计算根据定义对象的像素组的周长和 面积定义的索引。通过改变阈值的值,可以调整执行分割。
GRASS 维基包含预分类和分类工具的表格: https://grasswiki.osgeo.org/wiki/Image_classification 。 该表格提供了有关多个模块组合可能使用的信息。