您的当前位置:首页正文

实例与练习之七空间建模及批处理

2024-01-10 来源:步旅网
《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室实例与练习七:空间建模及批处理

本练习以SPOT影像空间增强为例,具体说明如何利用ERDASIMAGINE9.2中ModelMaker模块建立模型。数据为9.2自带数据。

8.1建模思路

遥感影像增强是遥感数字图像处理的重要工作。空间增强是有目的突出图像上的某些特征,如突出边缘或线性地物;也可以有目的的去除某些特征。空间增强的目的性很强,处理后的图像突出了需要的信息,从而达到图像增强的目的。

模型设计的基本思路是选择ERDASIMAGINE9.2软件的空间分析工具,选择其中的卷积运算函数,利用ERDASIMAGINE9.2软件自带的求和矩阵,对SPOT图像进行空间增强操作,实现对该景SPOT影像地物边缘和线性地物信息的增强。

8.2操作流程图

空间建模流程图如图8.1所示。

1

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.1ERDASIMAGINE8.1空间缄默流程图

8.3具体操作

一、打开ModelMaker窗口

在ERDAS主窗口,选择Modeler图标/ModelMaker命令,打开ModelMaker对话框与工具面板。

二、放置对象模型

1、在ModelMaker工具面板工具中点击需要的对象图标,然后放置在图形窗口中,本例需要添加两个Raster图标

、一个Matrix图标

、一个Function图标

2、在工具面板,单击Select图标3、在工具面板,单击Connect图标

,选择并移动对象图形,按操作顺序排列。,并单击Lock图标

4、在图形窗口,绘制连接线,将输入数据图形与函数图形连接。

。5、形成图形模型的基本框架(图8.2)

三、定义参数与操作

在ModelMaker窗口中,依次双击每一个图形对象,选择所要添加的影像数据和函数,在对应的参数对话框中数据相应的参数,具体操作如下。1、定义输入图像

双击左上方栅格图像,打开Raster对话框,确定输入图像(FileName)为atl_spotp_87.img。单击OK按钮,关闭Raster对话框,返回ModelMaker窗口。2、定义输入卷积矩阵

双击右上方矩阵图形,打开MatrixDefinition对话框,打开卷积核矩阵表格,设置如图8.3所示。设置完毕后单击OK按钮,关闭MatrixDefinition对话框与卷积核矩阵,返回ModelMaker窗口。3、定义卷积处理函数

(1)双击中部的函数图形,打开FunctionDefinition窗口(图8.4)。图8.2图形模型的基本框架(2)确定函数类型(Function)为Analysis。(3)选择卷积函数,双击CONVOLVE(,),CONVOLVE(,)语句出现在函数定义框中。

(4)在CONVOLVE(,)语句中单击,在可供选择数据框(AvailableInputs)中选择$n1_atl_spotp_87。CONVOLVE语句中参数定义为$n1_atl_spotp_87。(5)在CONVOLVE(,)语句中单击,在AvailableInputs框中选择$n2_Summary。CONVOLVE语句中参数定义为$n2_Summary。(6)函数定义框显示CONVOLVE($n1_atl_spotp_87,$n2_Summary)。(7)单击OK按钮,关闭FunctionDefinition窗口,返回ModelMaker窗口。

2

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.3卷积核矩阵

图8.4FunctionDefinition窗口

4、定义输出图像

(1)双击最下面的栅格图形,打开Raster对话框。

(2)选择输出图像(FileName)为Spots_summary.img;确定输出数据类型(DatType)为Unsigned8Bit;确定输出文件类型(FileType)为Continuous;输出统计忽略零值:Ignore0.0inStatsCalculation。

(3)单击OK按钮,关闭Raster对话框,返回ModelMaker窗口。见图8.5。

3

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.5

四、注释图形模型1、加入注释(1)单击Text图标

输出设置对话框

(2)在图形模型窗口中,单击放置模型标题的位置。(3)打开TextString对话框(图8.6),在TextString对话框中输入标题字符“EnhanceSpotsImage”。

(4)单击OK按钮,关闭TextString对话框,标题字符放在图形模型窗口。

图8.6TextString对话框

2、调整注释字体、大小、类型

(1)在图形模型窗口中单击选择注释标题字符。

(2)选择Text/Font命令,可对字体进行调节;选择Text/Size命令,可调整字体大小;选择Text/Style命令,可以调整字符类型(4种)。

(3)在图形模型窗口双击标题字符,打开TextString对话框,进入编辑状态,可以对标题字符串的内容进行编辑修改。

(4)重复上述过程,依次标注输入图像“InputImage”,卷积核“ConvolveKernel”,输出图像“OutputImage”。

(5)在图形模型窗口双击函数图形,打开函数定义对话框,在函数定义框中选择剪贴函数表达式(Ctrl+C),在TextString对话框中粘贴函数表达式(Ctrl+V)。(6)得到注释以后的图形模型(图8.7)。

4

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.7注释以后的图形模型

五、保存图形模型

图形模型是用户设计的模型的可视化表达,具有直观明了的特点,对图形模型的保存,不仅有助于用户后期对模型进行分析与纠错,而且可以给其他用户作为参考。

选择File/SaveAs命令,打开SaveModel对话框,如图8.8所示进行设置后,单击OK按钮,关闭SaveModel对话框,模型被保存。六、运行图形模型

选择Process/Run命令,或者单击Run图标

,模型被启动运行。

七、生成文本程序

用户用模型生成器设计的图形模型常常想封装成一段代码保存下来,以后可以随时使用,ERDASIMAGE9.2软件提供了图形模型生成器文本程序的功能,在ModelMaker中生成的图形模型可以保存为文本程序-空间建模语言程序,也可以叫做程序模型(*.gml),程序可以在ERDASIMAGINE9.2文本编辑器(在ERDASIMAGINE主菜单,选择Tools/EditTextFile命令,打开文本编辑器)中进行编辑,也可以再次运行或保存在空间模型库中,由图形模型生成器生成SML文本程序的具体操作过程如下:

1、选择Process/GenerateScript命令,打开GenerateScript对话框(图8.9)。

2、在GenerateScript对话框中,保存文本程序文件目录为models,文件名称(ScriptName)为spots_summary.mdl。

3、单击OK按钮,关闭GenerateScript对话框,生成文本程序。

4、在如图8.10所示的ModelLibrarian对话框中,可以直接运行程序模型,可以将程序模型的运行交给批处理进程,可以删除程序模型,可以编辑程序模型。单击Edit按钮,打开文本编辑器(图8.11)。

(1)应用文本编辑器中的编辑命令和工具修改程序。(2)选择File/Save命令,保存修改程序。(3)单击File/Close命令,退出编辑状态。

5

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.8SaveModel对话框图8.9GenerateScript对话框

图8.10ModelLibrarian对话框图8.11文本编辑器

八、打印图形模型

图形模型是用户空间建模思想的真实体现,也是其他用户对模型进一步分析的素材。ERDASIMAGINE9.2软件支持图形模型的打印输出。图形模型的输出可以有多种选择:其一是保存为IMAGINE的注记文件,其二是保存为Postscript压缩文件;其三是直接打印输出。

前两种输出方式可以通过保存文件操作完成(File/SaveAs),第三种打印输出过程具体步骤如下:

1、设置纸张大小。

(1)选择File/PageSetup命令,打开PageSetup对话框(图8.12)。(2)选中PrintPageNumbens复选框,选择打印页码。

(3)单击OK按钮,关闭PageSetup对话框,应用页面设置。2、预览分页线

6

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室选择FileShowPageBreaks命令,如果图形模型范围超过一页纸,窗口显示分页线,如果图形模型范围在一页之内。窗口中没有分页线。3、打印输出

选择File/Print命令,或者单击Print图标

图8.12PageSetup对话框

8.4批处理操作8.4.1批处理功能介绍

用户在对很多数据进行重复操作时,希望软件能提供一种功能,让很多执行操作按照自己需要的顺序和参数排列,并按照自己设计的时间安排,让机器自动执行。ERDAS提供给用户批处理地处理方式,通过批处理方式,用户可以用“一个或者多个命令(功能)”来处理“一个或者多个”文件,这个功能在安排系统处于不繁忙状态时处理某些数据,或者对大量数据进行相同处理过程时非常有用,如对数百个图像进行二次投影变换处理的情况。

9.2中的批处理功能是通过向导的方式来实现的。一个批处理是以存放在确定目录下的几个文件的形式存在的。可以在9.2菜单条Session的Preference中设置该目录。例如,设C:\\Project\\为默认目录,在名字为User计算机上以Administrator登录,产生一个名字叫做BatchProcess的批处理,实际将在C:\\Project\\Use\\Administrator下产生几个后缀不同的名为BatchProcess的文件。这些文件基本都是文本文件,如BatchProcess.bat、BatchProcess.bcf、BatchProcess.bls、BatchProcess.id、BatchProcess.lck和BatchProcess.log等。可参见Help。另外,在ScheduledBatchJobList中也有各个批处理文件的位置信息。

8.4.2批处理操作过程

1、单文件命令批处理

通过单文件命令批处理的建立,可以将处理过程安排在系统不繁忙时进行,这在大容量文件进行耗时处理时非常有用。下面以GIS分析功能中的Clump命令(聚类统计)为例说明如何对一个文件进行单命令批处理操作。(1)启动Clump工具在ERDAS主窗口,选择Interpreter图标/GISAnalysis/Clump命令,打开Clump对话框(图

7

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室8.4.1)。

在Clump对话框中,选择处理图像文件(InputFile)为:C\\ProgramFiles\\LeciaGeosystms\\GeospatialImaging9.2\\example\\atl_spotp_87.img;输出图像文件(InputFile)为batch_singlefile。CorrdinateType、SubsetDefinition等项,这里使用默认值。

图8.4.1Clump对话框

(2)启动批处理功能

在Clump对话框中单击Batch按钮,启动批处理向导,调出SelectTypeofCommandProcessing窗口(图8.4.2)。关于图8.4.2所示SelectTypeofCommandProcess面板中的设置项功能见表8.1。

图8.4.2SelectTypeofCommandProcessing窗口表8.1SelectTyptofCommandProcessing面板选择项简介

设置项

UseCommandastheyareModifycommandmanually

设置项的简介

将命令传给日程服务,可以让该命令立即执行,如果系统允许的话,也可以设置为随后执行

将激活EditCommands/CreateVariables面板以手工修改命令

将激活EditCommands/CreateVariables面板并且自

Modifycommandsautomatically

动用变量名字代替文件名字,而且也允许再进行手工编辑

在SelectTyptofCommandProcessing面板,选择UseCommandastheyare/Next按钮,打开SelectWhentoProcessCommands窗口(图8.4.3)。

8

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.4.3SelectWhentoProcessCommands窗口

a.如果想立即进行处理,则使用默认选项单击Finish按钮。

b.如果想随后处理,则选择StartProcessingLaterAt单选按钮,并设置处理过程的开始时间、命名该批处理,然后单击Finish按钮,则到预定时间系统开始处理过程。若要删除、查看或者编辑系统已经完成或还未进行的批处理过程,可以在ERDAS主菜单,选择Session/ViewOfflineBatchQueue命令,打开ScheduledBatchJobList对话框,其中列出了所有完成、正在进行、还未进行的批处理。

对已经完成的批处理,用户选中它后可以通过Log按钮查看有关这个批处理的纪录,这对检验批处理是否达到预期目的是很有用的。2、多文件单命令立即批处理

在实际工作中经常要多多个文件执行同一类型的操作。以下将通过对多个Image图像进行统计值计算来说明如何利用ERDAS9.2的批处理功能对多个文件执行单一命令的立即批处理操作。

(1)启动命令的批处理功能

在ERDAS主菜单,单击Tools/ImageCommandTool命令,打开ImageCommand对话框。a.选择一幅Image图像:atl_spotp_87.img。b.选中ComputeStatics复选框。

c.单击Batch按钮,调出SelectTypeofCommandProcessing窗口(图8.4.2)。

如果想立即进行统计计算,则单击SelectTypeofCommandProcessing窗口的Finish按钮,此时系统就会进行处理。如果想使这个处理过程自动作用于多个文件,则继续下面的步骤。

(2)批处理对象名称的变量化

在SelectTypeofCommandProcessing窗口,选择ModifyCommandsManually/Next按钮,打开EditCommands/CreateVariables窗口(图8.4.4)。

9

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.4.4EditCommands/CreateVariables窗口

EditCommands/CreateVariables窗口有两个选项卡,Commands和Variables。

从Commands选项卡可以看到有一个命令行,它的含义是“对哪个文件基于何种设置进行何种操作处理”。处理对象(本例是atl_spotp_87.img)是用文件的全部路径名字(路径及名字)来确定的。为了使该命令作用于多个图像文件,需要将atl_spotp_87.img文件的全路径名字用一个变量代替,并使该变量对应于多个图像文件的全路径名。

EditCommands/CreateVariables对话框的Variables选项卡的具体设置和使用将在“多文件多命令批处理”中的“批处理对象名字的变量化”中介绍,这里对Commands选项卡几个按钮的含义进行说明(表8.2)。

表8.2EditCommands/CreateVariables窗口中Commands选项卡图标功能简介

图形

功能简介

自动生成变量以代替输入文件名和输出文件名在命令行的光标位置处将选定的变量插进去

用选定的变量代替命令行中光标所在位置的参数(如一个文件的全路径名字)。命令行中的光标尽管只占了一个位置,但却代表了一个参数,可以双击光标,则它代表的参数将显示出来。

Commands选项卡中的命令可以存储成一个批处理命令文件(.bcf),以后在其他批处理设置时,可以直接调用该命令

直接调用批处理命令文件的内容。例如,正在处理一个有关统计的批处理,可以调用一个过去存储的有关产生金字塔层的批处理,此时有关统计的批处理工作将取消而代之以有关金字塔层的批处理

(3)将一个具体文件的名字变成一个抽象变量的名字

在EditCommands/CreateVariables窗口,选择Commands选项卡

图标。

此时命令行处理对象(atl_spotp_87.img)的全路径名字被一个变量(默认为Input)所代替。这个变量名子目前只与一个文件(atl_spotp_87.img)的全路径名字关联,下面将使该变量与多个文件名字关联起来,以通过该变量使多个图像得到处理。(4)变量与多个图像文件建立关联

在在EditCommands/CreateVariables窗口,单击Next按钮,打开SelectFiletoProcess窗口(图8.4.5)。通过功能图标在SelectFiletoProcess窗口中加入多个需要处理的文件。

图8.4.5SelectFiletoProcess窗口

从SelectFiletoProcess窗口面板上可以看到,变量Input与atl_spotp_87.img是相关联的,现在要通过本对话框的几个工具将另外几个需要处理的文件的全路径名字与变量Input关联

10

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室起来。

(5)批处理的立即执行

在SelectFilestoProcess窗口,单击Finish按钮,执行批处理。3、多文件命令随后批处理

在上一节的最后一步,如果不单击Finish按钮而单击Next按钮就将对“作用于多个文件的”批处理命令进行时间设置,从而可以设置为随后处理。操作如下(前四步同“多文件单命令立即批处理”的前四步)。

(1)在SelectFilestoProcess窗口,单击Next按钮,打开SelectWhentoProcessCommands对话框。

a.选择StartProcessingLaterAt单选按钮。

b.确定批处理地执行时间,在Name文本框为该批处理命一个名字。c.单击OK按钮,返回SelectFilestoProcess对话框。(2)向服务日程提交批处理任务。

在SelectFilestoProcess对话框中,单击Finish按钮,提交批处理任务。4、多文件多命令批处理

在实际工作中经常要涉及比前面几个例子更复杂的情况,对大量数据要进行多步操作,前一步的输出将是后一步骤的输入,对这种情况进行批处理设置对工作很有帮助,这就是多文件多命令批处理需要解决的问题。

本例将对多个图像文件进行3步处理:首先,进行直方图均衡;其次,对直方图均衡的结果进行亮度反转;最后,对结果产生金字塔层。操作流程如图8.4.6。

设置处理环境启动批处理功能多命令处理区直方图均衡处理亮度反转产生金字塔批处理名字变量化输出名字模式自定义加载批处理文件批处理文件执行时间及名称向服务日程提交任务图8.4.6多文件多命令批处理操作流程图

(1)处理环境设置

在ERDAS主菜单,选择Session/Preferences命令,打开PreferencesEditor对话框。a.在目录(Category)中选择BatchProcessing。

b.选中RunBatchCommandsinRecordMode复选框(只有这样,批处理才可以连续执行几

11

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室个步骤,而且前一步的输出才可以作为后一步的输入使用)。见图8.4.7。

图8.4.7PreferencesEditor对话框

c.单击UseSave按钮。d.单击Close按钮。

(2)启动批处理记录功能

在ERDAS主菜单,选择Session/StartRecordingBatchCommands命令,打开RecordCommandsforAutomation窗口(图8.4.8)。

窗口左下角有一个方形的纪录指示灯在闪烁,表明现在处于记录状态,不要关闭该对话框,继续执行下一步操作。

图8.4.8RecordCommandsforAutomation窗口

(3)直方图均衡处理

在ERDAS主窗口,选择Interpreter图标/RadiometricEnhancement命令,打开HistogramEqualization对话框。

设置直方图均衡处理参数,如图8.4.9所示。选择输入数据(InputFile)为C:\\ProgramFiles\\LeciaGeosystems\\GeospatialImaging9.2\\examples\\atl_spotp_87.img,选择输出数据(OutputFile)为:…\\chp9\utor\\spot87_output.img。最后单击Batch按钮,实现批处理操作。

12

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.4.9HistogramEqualization对话框

由于(2)使得RecordCommandsforAutomation对话框处于记录状态,此时单击HistogramEqualization对话框的Batch按钮,不会像前两个例子一样打开SelectTypeofCommandsProcessing对话框,而是导致此功能的立即执行并且在RecordCommandsforAutomation面板记录下来。

(4)亮度反转批处理

在ERDAS主窗口,选择Interpreter图标/RadiometricEnhancement/BrightnessInversion命令,打开BrightnessInversion对话框(图8.4.10)。

设置亮度反转处理参数,请注意:这里的输入文件是(3)操作的输出文件spot87_output.img,输出文件定为试验数据中…\\chp9\utor\\spotrev.img。最后单击Batch按钮,实现批处理操作。

与(3)相同,单击Batch按钮将立即执行BrightnessInversion处理功能的实现,并在CommandsforAutomation对话框自动记录。

图8.4.10BrightnessInversion对话框

(5)产生金字塔层

a.在ERDAS主菜单,选择Tools/ImageCommandTool命令,打开/ImageCommands对话框。b.选择输入文件(InputFile)为Spotrev.img(请注意,这里的输入文件是(4)操作的输出文件)。

c.选中ComputerPyramidLayers复选框/Option按钮,打开PyramidLayersOption对话框。d.在KernelSize下拉框中选择2*2;取消选中ExternalFile按钮。见图8.4.11。e.单击OK按钮,返回ImageCommands对话框。f.单击Batch按钮,实现批处理操作。与第(3)、(4)相同,单击Batch按钮将导致金字塔层计算的实现以及在RecordCommands

13

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室forAutomation对话框。注意RecordCommandsforAutomation对话框中的内容,可知记录的3个命令行中所有文件名都是具体的文件名,下面几步将把文件名字转为变量名以便该Batch可用于其他文件处理过程。

(6)批处理对象名字的变量化

a.在RecordCommandsforAutomation窗口(图8.4.8),单击Next按钮,打开SelectTypeofCommandProcessing对话框。

b.选择ModifyCommandsAutomatically单选按钮,单击Next按钮,打开EditCommands/CreateVariables窗口。

从EditCommands/CreateVariables对话框Commands选项卡可知此时所有命令的输入、输出文件名字都用变量名进行了代替。这3个变量名字默认为“Input”、“Temp1”和“Output”,如图8.4.12所示。

图8.4.11金字塔层对话框

图8.4.12EditCommands/CreateVariables对话框Commands选项卡

打开Variables选项卡,可以看到对这几个变量的设置。Intput是用户输入的,因此为Use型。对Templ,系统将其名字改为$(Input.root)spotp_87_output.img,如Input为abc.img,则Templ将为abc_image.img。比较特殊的是对Templ系统选中了两个复选框,即DeleteBeforeProcessing和DeleteAfterProcessing。选Delete是为避免由于同名文件存在导致中间文件不能生成;选中DeleteAfterProcessing复选框是指Templ作为输入文件的使命完成后将其删除,应为Templ是一个中间文件,没必要保留。再看Output变量,系统将其名字改为$(Input.root)_spotrev.img,如Input为abc.img,则Output将为abc_image.img。这说明输出文件(如Output)的名字设置不一定只能基于其直接的输入文件(如Templ)。对Output,DeleteBeforeProcessing复选框被选中,而DeleteAfterProcessing未被选中。(7)输出文件名字模式的自定义

对Auto型变量的名字模式可以进行调整,单击EditCommands/CreateVariables对话框的Variables标签,以打开Variables选项卡,选择一个Auto型的变量后,单击Pattern编辑框右部的Set按钮可以调出EditReplacementPattern对话框。使用时先选择Templates中的合适元素,从而在Pattern中的光标处放置一个“空模式”,然后将光标放在“空模式”中的合适位值,单击Variables、Functions列表框中的恰当元素,将空模式填充上。见下图8.4.13所示。

14

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室图8.4.13输出文件名字模式自定义对话框

(8)加载批处理输入文件

a.在EditCommands/CreateVariables对话框,单击Next按钮,打开SelectFilestoProcess对话框。见图8.4.14。

b.单击AddFiles图标,打开SelectBatchFiles对话框,见图8.4.15所示。

图8.4.14SelectFilestoProcess对话框图8.4.15SelectBatchFiles对话框

c.单击MultipleFileSelection标签,进入MultipleFileSelection对话框。d.选中UsethefollowingSelectionPattern复选框,选择输入文件格式(SelectionPattern)为:C:\\ProgramFiles\\LeciaGeosysytems\\GeospatialImaging9.2\\examples\\atl_spot*.img。e.单击OK按钮,返回SelectFilestoProcess对话框。

这样,目录下所有atl_spot开头的图像文件都被加载到批处理中。见图8.4.16所示

图8.4.16加载atl_spot图像文件

(9)批处理执行时间及名字

15

《遥感原理与应用》练习之空间建模及批处理昆明冶专GIS教研室a.在SelectFilestoProcess对话框,单击Next按钮,打开SelectWhentoProcess对话框。b.选择StartProcessingLaterat单选按钮,确定批处理地执行时间,在Name文本框为该批处理命一个名字。见图8.4.17。

图8.4.17批处理执行时间及名字设置对话框

批处理地名字中不能用某些特殊的字符,如v、?、<、>、*及空格和TAB键等,如果处理这些符号,系统会自动将其转化为下划线(_)。(10)向服务日程提交批处理任务

在SelectFilestoProcess对话框,单击Finish按钮,提交批处理任务。

16

因篇幅问题不能全部显示,请点此查看更多更全内容