SARscape 二次开发讲解

        官方给了一些讲解(地址:SARscape/SARscape IDL Scripting/SARscape batch object),以及一些参考例子(地址:SARscape/SARscape IDL Scripting/Example)都可以用来学习参考。

        SARscape 二次开发可以分为10个详细的步骤,下面我将多视(MultiLooking)开发的代码为例,进行讲解,完整的程序连接在本文末尾

步骤1. 批量初始化和临时目录设置(可选)

        启动SARscape模块,设置临时路径。

SARscape_Batch_Init,Temp_Directory=aTmp

步骤2. 显示所有 SARscape 函数(可选)

        这一个步骤是写程序是需要用到的,等确定SARScape模块调用的函数(类)的名称,可以删掉,具体用法可以查看前面提到的官方讲解。

;(obj_new('SARscapeBatch'))->Manifest

         注:最新几个版本可以用“.”代替“->”,只不过为了便于和属性、结构体区分,依然用这个表示

步骤3. 输入数据和参数

        这个可以打开ENVI SARscape模块,具体查看所需的参数

; 3) 输入数据和参数;  inRasterName_data = theTestDir+Path_sep()+'_pwr';;  outRasterName = theTestDir+Path_sep()+'output'+Path_sep()+'_geo';;  inRasterName_dem = theTestDir+Path_sep()+'start_dem';;;  aGridSize = 25.0

步骤4. 加载用户特定的默认文件

        这个默认文件是用来设置缓存文件、SARscape 首选项,具体设置可以参考博客

;4) 加载用户特定的默认文件(即 SARscape_preferences_user_Sentinel.sml)可选;/FJEA_Program/Resource/SARscape_preferences_user_Sentinel_TOPSAR.smldefault_file_name = File_dirname(myResult.path)+Path_sep()+'Resource'+Path_sep()+'SARscape_preferences_user_Sentinel_TOPSAR.sml'aRet = SARscape_set_save_actual_default_in_dfl (default_file_name)

步骤5. 设置工作目录可选(可选)

;5) 设置工作目录可选IF (SARscape_set_working_in_actual_default(aWorkDir) EQ 'NotOK') THEN BEGINok = Dialog_message('您必须初始化一个有效的工作目录' ,/ERROR)SARscape_Batch_ExitReturnENDIF

步骤6. 创建具体对象

        这一个是用来选择功能的,例如:导入哨兵一号数据、多视、InSAR、DInDAR、滤波、裁剪……其对应的函数可以通过步骤2来查找;

; 6) 创建 IMPORTSENTINEL1FORMAT 对象aActualStep =  0oSB = Obj_new('SARscapeBatch',Module='INSARCOMPLEXDATAMULTILOOKING')IF (~Obj_valid(oSB)) THEN BEGIN; 对象无效,然后用户必须管理错误; 退出 SARscape 批处理SARscape_Batch_ExitReturnENDIF

步骤7. 填写参数

        即需要将参数填入到步骤6中的对象中,具体查看需要填写的参数可以用,并对比ENVI SARscape,如下图所示;

;oSB.Listparams
oSB->Setparam,'input_file_name', Files[index];必须是一个一个文件处理,因此写循环
oSB->Setparam,'output_file_name', Out_Path_Name

步骤8. 验证参数

        这个步骤是用来验证填入的参数是否可行。

;8) 验证参数ok = oSB->Verifyparams(Silent=0)IF ~ok THEN BEGINPrint,' ************************************************************* 'Print,' 模块无法执行; 一些参数需要填写 'Print,' ************************************************************* '; Exit from SARscape batchSARscape_Batch_ExitReturn;ENDIF

步骤9. 流程执行

        根据前面选择的对象以及设置的参数,来具体处理数据;

;OK = oSB->Executeprogress()
OK = oSB->Execute()

        以上两个代码,区别之处在于前一个有处理进度;后面一个没有进度;想用前面的代码,则必须打开ENVI。也可以用下面的代码来判断ENVI是否打开,来自动选择;

IF (Strpos(!PROMPT,'ENVI') GT -1 ) THEN BEGINOK = oSB->Executeprogress(show_end_dialog='NotOK')ENDIF ELSE BEGINOK = oSB->Execute();ENDELSEIF ~ok THEN BEGINPrint,' 多视处理:失败 'SARscape_Batch_ExitReturnENDIF

        

步骤10. 退出批处理程序

        最后一步,就是关闭SARScape模块

; 10)退出批处理程序SARscape_Batch_Exit

注:

        1. 在代码的第一句,需要加上下面这句代码。因为遥感数据范围很大,常规的数据空间(例如:int 2个字节)保存不了,所以需要加上这句代码,即实现将数据保存的空间扩大,int型的字节变为4个

COMPILE_OPT idl2

        2. 以上代码,如果操作错误,其结果都是返回0或NotOK,正确时才会返回1或则OK。因此,可以加入判断,来判定程序出错地方;

完整的程序连接在本文末尾,程序截图如下:

 

 

点击下载完整的程序

路漫漫其修远兮,吾将上下而求索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

applicationproperties不是小叶子_三角梅整株叶子发黄从这里找原因,早解决早生长!...

家里的花草长得好不好,看叶子就行,长势好的叶子翠绿,油亮有光泽,长势不好的叶子发黄,暗淡无生机。所以如果花草的叶子不健康,那么就是哪里出了问题,需要及时找出原因解决。为什么家里盆栽的三角…

十万个为什么儿童版_把中国科技传播至阿语地区,少儿社《十万个为什么》阿拉伯文版亮相童书展...

在11月13日至15日举行的第八届上海国际童书展上,少年儿童出版社的《十万个为什么》阿拉伯文版亮相。该书于2020年正式出版,中国的科技成果将沿着“一带一路”,传播至2.9亿人口所在的阿语地区。《绘心寓意中国古代寓言典藏图画书 曾子不撒谎》…

利用Matlab判断某些点是否在多边形区域内

目录 1. 代码作用及实现效果 2. 技术分析: 3. 程序 1. 代码作用及实现效果 先给各位看看具体效果,如下所示,其中红色的点表示需要判断的点,是否在蓝色区域内,从图中可知,有两个点在蓝色区域内&…

spark1.0和2.0的区别_【系统】华为正式发布鸿蒙OS 2.0手机Beta版:UI界面、交互无区别...

今天上午,华为正式发布了鸿蒙OS 2.0手机开发者Beta版本,HarmonyOS 是面向万物互联时代的全场景分布式操作系统,华为希望和合作伙伴、开发者一起打造面向万物互联时代的超级终端体验。目前也已经开启了公测招募活动,不过报名还是有…

Matlab 纯代码进行GUI界面编程

Matlab界面编程传统的有guide,现在matlab朝着appdesigner方向发展。这两种方法都是非常简单适合新手的,如果是一个未接触这方面的,我建议直接学APPdesigner,如果想了解更深入,可以尝试利用纯代码进行编程。 编程要点…

深入到系统组件是否白盒测试_2019年系统集成项目管理工程师:第一章 信息化知识(三)要点?...

今天幸福哥助理继续为大家分享第一章 第三节 信息化知识(二) 信息系统设计、软件工程及面向对象系统分析与设计等复习知识要点,备考笔记知识点的分享会不定期整理,如果你正好参加这个考试,可以关注我,收藏,或者转发。一…

IDL 文本编码、代码补全快捷方式、IDL doc、格式器、行号显示设置

目录 1. 文本文件编码设置 2. 自动补全设置 3. IDL doc设置 4. 格式器设置 5. 显示行号 每种编程语言的某些设置(快捷键、显示风格)都大相径庭,因此需要需要对一些显示,使得更符合自己的编程习惯,方便用起来得心…

IDL学习(对象):IDLffShape

目录 一、描述 二、创建 三、属性 3.1 ATTRIBUTE_INFO 3.2 ATTRIBUTE_NAMES 3.3 DBF_ONLY 3.4 ENTITY_TYPE 3.5 FILENAME 3.6 IS_OPEN 3.7 N_ATTRIBUTES 3.8 N_ENTITIES 3.9 N_RECORDS 3.10 UPDATE 四、方法: 4.1 IDLffShape::AddAttribute 4.2 IDLff…

tablueau地图标记圆形_30天30张中国风地图,从青绿山水到秦砖汉瓦

本文来自#30天制图挑战#的GISer November_阿瑜瑜瑜瑜,完成了30幅中国风专辑地图,唯美又有韵味,十分赏心悦目,简直把中国风玩出了花~接下来,快来跟着小编一起细品30幅中国风地图吧~~~ 01day 1千里江山图《千里江山图》是…

语言省考安徽考区_安徽省中小学新任教师公开招聘统一笔试 中学信息技术学科考试大纲...

一、考试性质安徽省中小学新任教师公开招聘考试为全省统一组织的公开性选拔考试,是落实“省考、县管、校用”教师管理体制的基础工作。其目的是吸引有志于从事基础教育事业的优秀人才到中小学任教,进一步规范中小学新任教师公开招聘工作,把好…

IDL学习:语法基础-指针、链表

本博客将介绍IDL语法基础中的指针、链表的创建及相关的用法。记录自己的学习整理理解 。 1. 指针 指针也就是内存地址,是用来存放内存地址的变量,指针可以理解为通讯地址,可以通过通讯地址查询具体的信息,而指针可以查询所指向的…

IDL学习:语法基础-对象、哈希表

本博客将介绍IDL语法基础中的对象、哈希表的创建及相关的操作发法。哈希表、链表都可以看做对象,包含了add、reserve、Sort等方法。记录自己的学习整理理解 。 1. 对象 对象是数据(属性)和程序(方法)封装在一起的实体…

茶苑机器人怎么看出来_小儿脑瘫怎么看出来?出现4个异常,该早点去看医生...

小儿脑瘫表现出来的症状是多种多样的,一般儿童三个月就能够展现出来,家长应该多观察孩子的一些异常情况,及时去医院做诊断,做到防患于未然。小儿脑瘫的表现有哪些?1、运动发育明显落后正常的儿童3个月能抬头&#xff0…

itil 容量管理流程_探索ITIL和DevOps的边界

其实在今天的运维领域,ITIL和DevOps之间的冲突还是蛮明显的,有些是表现在产品上,有些是表现在思维/理念上。ITIL在产品上以流程为核心目标的设计,很难满足自动化的要求,DevOps极力推崇工具/平台/自服务文化&#xff1b…

本博客IDL 学习目录

本博客非技术博客,而是总结我在学习IDL、编写IDL代码方面的博客,旨在方便各位可以通过我这篇博客直接选感兴趣的部分。本博客将会持续更新,不断补充…… IDL 学习 1. IDL 文本编码、代码补全快捷方式、IDL doc、格式器、行号显示设置 2. ID…

Matlab 中@ 的用法

Matlab 中的用法主要有:函数句柄、函数表达式、调用父类以及类文件夹。 前两种有很多介绍,后两种涉及类,介绍的人很少。前2个例子,参考了其它博客,总感觉用法都写的不全,所以在此基础上,补充了3…

金蝶k3单据编码规则_金蝶K3存货跌价案例教程

目录案例介绍 后台设置 计提存货跌价准备显示计提表计提凭证模板设置计提凭证生成手工结转跌价准备案例介绍关于存货跌价准备,企业会计准则第1号存货相关规定如下:第十五条 资产负债表日,存货应当按照成本与可变现净值孰低计量。存货成本高于…

maven 关联源码插件_繁琐的任务简单化,Maven的插件机制

Maven的生命周期与Maven插件是项目绑定的,生命周期可以理解为项目构建步骤的集合,它定义了各个构建环节的执行顺序,有了这个顺序,Maven 就可以自动化的执行构建命令。Maven 的核心程序中定义了抽象的生命周期,生命周期…

双稳态继电器工作原理图_固态继电器只有单一的作用吗?带你了解不一样的固态继电器...

固态继电器简写SSR(Solid State Relay),是一种全部又分离的固态电子元件(如光耦合器、晶体管、可控硅、电阻、电容、集成电路等)组成的无触点电阻开关,这里请注意,相比较与继电器、接触器,固态继电器是无触点的耦合开关。因此&…

c++switch实现猜拳_C语言实现人机猜拳游戏,非常适合C++小白练习的项目!

学习迷茫遇到问题了吗?现在关注微信公众号:C程序编程 免费获取进阶指导和学习资料!本文福利在文末!这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决。你出的拳头由你自己决定,电…