王淮亮,李玉宝,虞 毅,高 永,王鹿振,高君亮
(1.内蒙古农业大学生态环境学院,内蒙古呼和浩特 010019;2.温州大学生命环境科学学院,浙江温州 325035;3.国际竹藤网络中心,北京 100102;4.青海省水利水电勘测设计研究院,青海西宁 810012;5.中国林业科学研究院 沙漠林业实验中心,内蒙古 磴口 015200)
表层土壤粗粒化是土地荒漠化的主要表现形式之一,研究发现:土壤机械组成对土壤风蚀有显著影响[1,2],土壤颗粒粒径特征能够反映土壤结构性状[3],与土壤物理、化学性质紧密相关,可以作为评价土壤风蚀程度[4]和脆弱生态环境条件下土壤演变的一项综合性定量指标[5,6]。因此,准确、迅速地把握地表粗颗粒的百分比例和残留状态,是准确判断地表土壤侵蚀程度的首要条件,并能够为制定相应的治理措施提供参考。
除传统的筛分法外,人们尝试了获取地表物质粒径信息的新方法[7,8]。近年来,随着数值影像处理技术的发展,Pat S.Chavez等人开发出了一套对沙表数值影像进行三波段数值分析技术,能够在不破坏现地沙表面状态的情况下,较为准确地测算出地表各粒级沙粒的残留量[9]。我们引进吸收了该技术,并通过试验初步确立了应用ERDAS IMAGINE和ArcGIS软件从数值影像中提取沙表粗颗粒信息的技术规程,图像处理过程依次是:图片格式转换→图像裁剪→空间模型分类→GIS矢量化→GIS小图斑去除分析[10],但步骤多,操作繁杂,为使操作变的直观、简便,我们将方法改进后,在ERDAS9.0下开发了地表粗粒信息提取的客户化模块,本文将对该模块的设计与实现进行介绍。
ERDAS IMAGINE(简称ERDAS)是美国ERDAS公司开发的遥感图像处理系统。它以先进的图象处理技术,友好、灵活的用户界面和操作方式,面向广阔应用领域的产品模块,成为全球遥感、GIS及相关领域最受欢迎和最具竞争力的软件系统之一[11]。ERDAS提供了覆盖RS/GIS绝大部分领域的处理模块,除此以外它还提供了一系列的客户化工具。随软件本身自带的EML(Erdas Macro Language)是宏语言的一种,可用于定义用户界面的结构和内容及提供某些基本过程编辑能力,它允许用户定制自己的界面,包括修改标准的ERDAS图形用户界面和定制自己的应用程序界面[12~15]。
空间建模工具(Spatial Modeler)是ERDAS下的一个模块,是一个面向目标的模型语言环境,由空间建模语言(SML)、模型生成器(Model Maker)提供了23类共200多个函数和操作算子,可以操作栅格数据、矢量数据、矩阵、表格及分级数据。用户只需要在窗口中绘出模型的流程图,指定流程的意义和所有参数、矩阵,即可完成模型的设计[16]。图形模型可以运行、编辑、保存或转化为文本模型语言,并进一步使用SML进行编辑。高海东等还研究了客户化ERDAS空间模型参数的方法[17]。
2.2.1 添加面板图标 由于ERDAS IMAGINE界面是建立在EML语言基础上的,它的大部分界面都由*.eml格式的EML文本写成,此次,我们想要在系统界而上添加一个如图1所示的Sand图标,则首先将$IMAGINE_HOME/scripts/imagine.eml复制到$HOME/.imagine900/imagine.eml($IMAGINE_HOME是ERDAS9.0的安装目录,$HOME是其运行目录),然后编辑复制的副本imagine.eml,在图标面板定义块中定义新的面板图标。打开文件Imagine.eml,在frame iconpanel程序的后面添加如下的几行:
图1 图标面板Fig.1 Icon Panel
添加完后,保存。重新打开ERDAS就可以发现在原有界面上添加了Sand图标。图标文件可以自己进行定义和编辑,将图标指定为68×48大小的*.icon格式图片,也可以是*.bmp位图格式。
2.2.2 编辑子菜单客户化界面 在上一步的程序中,load已经指定了新增模块的文件名为sand.eml,由它来指定新的功能菜单,根据改进的ERDAS下地表粗粒信息提取步骤编写sand.eml的内容:
图2 子菜单客户化界面Fig.2 Customized submenus
component Sand{
frame windows{title"粗粒化信息提取";
button viewer{title" 图 片 浏 览 ...";
geometry 0,2,150,28;
on mousedown{viewer create at 0 125 size 500 600;}}
button import{title"图 片 格 式 转 换 ...";
geometry 0,32,150,28;
on mousedown{load"import.eml";}}
button subset{title"图 像 裁 剪 ...";
geometry 0,62,150,28;
on mousedown{load"ii_subset.eml";}}
button modeler{title"空 间 模 型 分 类 ...";
geometry 0,92,150,28;
on mousedown{load"model.eml";}}
button cleantools{title"小 斑 去 除 分 析 ...";
geometry 0,122,150,28;
on mousedown{load"cleantools.eml";}}
button rasttovect{title"矢 量 化 ...";
geometry 0,152,150,28;
on mousedown{load"rasttovect.eml";}}
button cancel{title"关 闭";
below rasttovect;
size 5.5,1.5;
on mousedown unload;}
button help{title"帮 助";
rightof cancel;
size 5,1.5;
on mousedown showhelp;}
}
on startup display windows;}
运行后生成的地表粗粒化信息提取模块的子菜单客户化界面如图2a所示,同样的方法,在“空间模型分类”和“小图斑去除分析”两个子菜单下还完善了二级子菜单(图2b,图2c)。可见,该设计包含了地表粗粒信息提取的所有步骤,除空间模型分类需进一步编辑外,每个命令均可调用ERDAS软件的相应功能算法,相比ERDAS的原英文界面直观便捷。
王鹿振等通过试验,用Spatial Modeler模块确定了一套适合粗粒信息分类的规则[10]。但是,生成的图形模型包含有文件路径参数,在对多个文件应用同一个算法进行处理时,就需要不断更改模型的输入输出参数,应用时非常麻烦。为解决此问题,我们对相应的空间图形模型参数进行了客户化,设计了交互式对话框。以“乌审旗地表粗化信息分类模型”为例,实现方法如下。
2.3.1 生成空间图形模型的文本模型 定义模型中图形对象的参数和操作后,将其转化为SML编写的文本模型,在Spatial Modeler菜单栏中选择Process→Generate Script保存为文本模型,文件名为wushen.mdl保存于 ERDAS运行目录下,如“C:Documents and SettingsAdministrator.imagine900”。
图3 定义操作对象和函数后图形模型Fig.3 Graphical model by defined object-operated and function
2.3.2 图形模型参数客户化 用文本编辑器将生成的文本模型打开,可以看到,在图形模型中使用矢量对象和栅格对象时,文本模型保存了数据对象的完整路径,如此例中的18和19行。在这里,将模型保存的数据对象的完整路径分别替换为arg1(变量1)和arg2(变量2)。替换之后文本模型如图4所示,将文本模型按原文件与存储路径进行保存。
图4 文本模型Fig.4 Script model
替换文本模型中的数据对象参数后,在$HOME/.imagine900目录下创建wsq_model.eml文件(该文件名是由乌审旗模型分类子菜单代码制定),然后利用EML来编辑定制该模型的对话框界面。部分函数定义如下:
component wsq_model{
frame wsq_model{title"乌审旗地表粗化信息提取模型";
statusbar;
filename outputname;
button ok;
button batchbutton;
……
filename input{title above left"输入文件:";
info"选择欲处理的图片.";
shortform;
geometry 10,15,160,49;
select getpref("eml""default_data_path")+"/*.img";
filetypedef"raster";
……
on input{
if(($input!="")&($outputname!="")){
enable ok;
enable batchbutton; }
else
{disable ok;
disable batchbutton;} }
}
……
on startup{display wsq_model;}}
点击“乌审旗模型分类…”子菜单命令,便可运行编辑后的EML文件,对话框程序界面如图5所示。提示用户输入处理对象和输出结果。生成的模型可以多次运行,当对多个文件进行相同的操作时,不必在图形模型中逐次修改参数,还可进行自定义空间模型法则的批处理,提高工作效率。
图5 用户对话框Fig.5 User dialog box
我们制定了利用ERDAS IMAGINE从RGB三波段光学照片中独立提取地表粗粒化信息的操作步骤(①图片格式转换→②图像裁剪→③粗粒化信息空间模型分类→④小图斑去除分析→⑤矢量化),并利用软件自带的Spatial Modeler和EML集成、开发了便捷的客户化应用模块,相比之前确立的利用ERDAS IMAGINE及ArcGIS软件联合提取地表粗粒化信息的方法[10],简化了多文件相同算法处理时不断更改模型输入输出参数的繁琐操作,汉化、直观的模块界面能有效地提高图像处理效率。
ERDAS IMAGINE作为遥感图像处理系统,拥有面向广阔应用领域的产品模块、服务于不同层次用户的模型开发工具。利用Spatial Modeler可按照自己的需求进行简单的图形应用编程,以便用户设计出最适合数据的处理算法[17],EML语言的功能主要是用户对图形界面的客户化,可对软件界面进行实时的编辑无须重新启动软件,用户进行界面客户化的时候十分方便,此次地表粗粒信息提取模块的开发实现了Spatial Modeler工具与EML宏语言的完美结合,使这些函数的功能在可视化界面上得到了良好的发挥。
但是,随着科技的发展,对ERDAS功能的需求越来越多,ERDAS IMAGINE二次开发还存在缺点:首先需要用户对它的控件属性掌握的很好,不然在使用EML编辑调试时容易出错[13];其次,Spatial Modeler提供的自带函数的功能有限,一些图像的处理算法还较落后,而且不允许用户自己开发新的数据结构加入其中,因此,现有的开发工具还急待改善[14,15]。本次开发的各个程序文件可以和其他的用户进行交流,希望能为ERDAS在土壤侵蚀、荒漠化监测以及路面、墙体等裂隙评估领域的开发应用提供参考。
[1]Chepil W S.Factors that influence clod structure and erodi-ability of soil by wind:II.Water stable structure[J].Soil Sci,1953,76:389-399
[2]T·雅库布夫.土壤风蚀及其防治[M].北京:中国农业出版社,1955.15-26
[3]齐雁冰,常庆瑞,惠泱河.人工植被恢复荒漠化逆转过程中土壤颗粒分形特征[J].土壤学报,2007,44(3):566-569
[4]张国瑞.农田风蚀土壤的颗粒分形特征研究[D].内蒙古农业大学,2007,6
[5]任 雪,褚贵新,王国栋,等.准噶尔盆地南缘绿洲-沙漠过渡带“肥岛”形成过程中土壤颗粒的分形研究[J].中国沙漠,2009,29(2):298-304
[6]高君亮,李玉宝,虞 毅,等.毛乌素沙地不同土地利用类型土壤分形特征[J].水土保持研究,2010,17(6):220-223
[7]朱元骏,邵明安.黄土高原水蚀风蚀交错带小流域坡面表土砾石空间分布[J].中国科学D辑:地球科学,2008,38(3):375-383
[8]王献礼,张永双,曲永新,等.基于数字图像处理技术的冰川堆积物粒度分析—以川西贡嘎山冰川堆积物为例[J].地质通报,2010,29(2-3):469-475
[9]MACKINNON D J,CHAVEZ P S,JR.Extraction of the geometry of surface clasts from ground-based digital images:Application to studies of wind erosion[C].In:Lee,Jeffrey A.and Zobeck,Ted M.,2002,Proceedings of ICAR5/GCTE-SEN Joint Conference,International Center for Arid and Semiarid Lands Studies,Lubbock,Texas,USA Publication.2002-2:127-129
[10]王鹿振.基于数字图像处理的风蚀地表粗化信息提取研究[D].北京:中国林业科学研究院,2010
[11]ESRI中国(北京)有限公司.ERDAS IMAGINE遥感图像处理系统产品介绍[G].2004
[12]ERDAS,Inc.Atlanta,Georgia.ERDAS Macro Language Reference Manual[G].2003
[13]刘俊杰,贾永红,柯美忠.Erdas Imagine二次开发与客户化方法研究[J].地理空间信息,2003,12,01(4):29-30,33
[14]刘丹丹,刘合林.建立经验统计遥感信息模型时数据处理中的C Toolkit方法[J].东北林业大学学报,2008.12,36(12):36-38
[15]谷光宗,任 静,孟 城,等.基于 ERDAS IMAGINE—C Toolkit的二次开发[J].测绘工程,2008.8,17(4):66-69,73
[16]党安荣,王晓栋,陈晓峰,等.ERDAS IMAGINE遥感图像处理方法[M].北京:清华大学出版社,2003
[17]高海东,王 涛.ERDAS IMAGINE空间模型参数客户化的实现方法[J].测绘与空间地理信息,2009,2,32(1):120-122