|
|
|
|

ERDAS批处理的一个简单的空间模型建立

用一个单一的输入影像,通过例子程序的产生来举例说明如何建立一个批处理的空间模型。这个模型将用“ 1 ”替换专题图像的第三个类别值,剩下的类别值则用“ 0 ”替换。这仅仅是一个例子, 因此请替换你自己需要替换的文件。这个程序在 IMAGINE 的高级版本...

作者:刘卓颖来源:本站原创|2006年07月03日
 用一个单一的输入影像,通过例子程序的产生来举例说明如何建立一个批处理的空间模型。这个模型将用“ 1 ”替换专题图像的第三个类别值,剩下的类别值则用“ 0 ”替换。这仅仅是一个例子, 因此请替换你自己需要替换的文件。这个程序在 IMAGINE 的高级版本中能够运行。但是,如果你没有脚本模型( .mdl 文件),那么则需要专业版本的 IMAGINE 自身来产生脚本模型。如果你对运行这个模型的过程不太熟悉,则需要运行下面的命令行。所用的空格和引语是非常详细而明确的。在这一个特定的模型里,引号中的第一个文件将会用脚本模型文件的变量( argument(arg1) )替换,用 arg2 替换第二个文件,对于接下来的文件你可以指定整数值替换而无需加引号。任何模型都可以替换基本模型,但在这里只给你展示对于文件和等级数(整数)如何使用变量( argument )。

Step1

创建模型并运行已确使它能产生一个输出的文件。如果模型产生了一个输出文件,那么就可以产生一个模型脚本了。在 Model Maker 里边,使用 <Ctrl G> 或选择 Process/Generate Script 。

然后保存。文件的后缀名是“ .mdl ”。

Step2

在 IMAGINE 文本编辑器 (Tools/Edit Text File) 里打开 .mdl 文件。在打开的 .mdl 文件中,一些命令行会比其他的命令行要长并环绕在一起,但不管怎么样看起来是跟下面相似的:

COMMENT”Generated from graphical model: c:/recode-mgd.gmd ”;
#
# set cell size for the model
#
SET CELLSIZE MIN;
#
# set window for the model
#
# SET WINDOW UNION;
#
# set area of interest for the model
#
SET AOI NONE;
#
# declarations
#
Integer RASTER n1_recode FILE OLD NEAREST NEIGHBOR AOI NONE” c:/recode.img” ;
Integer RASTER n2_junk FILE DELETE_IF_EXISTING USEALL THEMATIC BIN DIRECT DEFAULT 8 BIT UNSINGED INTEGER” c:/junk.img”;
INTEGER SCALAR n4_Integer;
#
# load scalar n4_Integer
#
n4_Integer=6
#
# function definitions
#
n2_junk=EITHER 1 IF ($n1_recode==$n4_Integer) OR 0 OTHERWISE;
QUIT;

在命令行中不是黑体字的而且带下划线的部分将被 arguments 替换掉。你需要滚动鼠标来看整个命令行,因为 IMAGINE 文本编辑器不会自动换行。

Step3

所引用的目录和文件需要替换。连接所有的字符窜包括引号也将被替换。对于那些整数值只需要用 argument 替换数字部分就可以了。替换如下:

Integer RASTER n1_recode File OLD NEAREST NEIGHBOR AOI NONE arg1;
DEFAULT 8 BIT UNSIGNED INTEGER arg2;
n4_Integer=arg3

Step4

现在你可以在 ERDAS 的主模板上运行这些命令行了: Session/Commands…

打上下面例子出现的命令行。确信你把自己的文件和目录已经替换了例子中出现的文件和目录。为了命名方便,用“ outfile ”作为根文件使用,这样“ _outfile ”就被加到所有你输入的文件中。

job modeler “c:/integer .mdl” -s-m ”c:/recode.img” ”c:/outfile.img” 3

有必要提到的是,如果你想运行整数型的模型并用 recode.img 替换 arg1 ,用 outfile 替换 arg2 ,指定一个整数如 3 来替换 arg3 ,就应该把这些命令行拷贝下来。

Step5

一旦你把脚本敲好了,就因该运行你的模型并产生一个你确信能在 viewer 窗口中打开的文件。这样也能保证你的命令行是正确的并能得到一个输出文件。如果模型运行正确并能产生输出文件,那么把命令行粘贴到 IMAGINE 文本编辑器上: Tools/Edit Text Files 。

所要敲入的命令行如下:

job modeler “c:/integer. mdl” –s-m ” c:/recode.img” ”c:/outfile.img” 3

为了在批处理中使用这些命令行,删掉命令行开头的 job ,另存为“ Batch Command File ”,文件后缀名为 .bcf 。

modeler “c:/integer. mdl” –s-m ” c:/recode.img” ”c:/outfile.img” 3

Step6

从 Session 的下拉菜单中载入 bcf 文件: Session/Open Batch Command File…

显示如下:

 

Step7

点击“ <back ”按钮一次,这样你就可以选择 Modify commands automatically 。这样你就可以自动产生输出文件,曾加一个文件跟到你输入的文件中,所以你可不必提供所有的输出文件名。

Step8

点击“ Next> ”按钮两次以察看输入文件的选择。
虽然刚开始只出现一个文件,但是你可以通过下拉增加你所需要增加的文件。
从窗口文件目录中选择或通过选择 Select files to add 图标,选定第一个文件并按 shif 键选择最后一个文件(所选择的文件为高亮度显示),把所选的文件加载入到批处理的画板中。

 

Step9

选择 Finish 开始运行或选择 Next> 推后运行。运行完后,你可以看到所有输出的文件开头都你指定输出的那部分并随同新的根文件名一起输出。

上一篇:图象几何纠正的过程

下一篇:关于SRTM精度的讨论