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不是小叶子_三角梅整株叶子发黄从这里找原因,早解决早生长!...

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

利用Matlab替换图片部分颜色

目录 1. 需求分析 2. 技术分析 3. 程序代码 1. 需求分析 日常工作、研究、学习当中,往往需要对图片进行处理。其中图片重新着色、渲染是非常常见的。比如说去掉或则更换证件照底色;去掉遥感图像中黑边……为解决此类问题,而编写此代码。 …

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

在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学习:语法基础-变量

目录 1. 变量命名规则 2. 数据类型 3. 基本操作 3.1 数据类型选择 3.2 改变数据类型 3.3 科学计数法 1. 变量命名规则 与其他编程语言一样,IDL也有自己的变量命名规则: 字符规则:首字母必须是26个英文字母,且只能由字母、数…

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

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

IDL学习:语法基础-数组

目录 1. 创建数组 1.1 直接创建 1. 2 利用函数创建 2. 数组索引 3. 数组操作 3.1 数组的信息 3.2 数组维度变化 3.3 数组的最大值和最小值 3.4 数组方差、均值、标准差、总和运算 3.5 数组元素筛选及重新赋值 3.6 数组元素的排序 3.7 数组间比较 4. 数组运算 4.…

amd为什么还用针脚_为什么AMD不取消cpu上的针脚?

在过去,AMD的速龙系列处理器也使用了LGA触点式接口。包括AMD的皓龙在内的一系列服务器处理器也使用类似于英特尔的LGA接口,但AMD多年来一直在消费级CPU上使用针脚式接口。这样做很好?为什么?这是因为在Intel切换到触点式接口之后&…

IDL学习:语法基础-字符串

1. 创建字符串 IDL中可以用单引号‘’或双引号""来创建字符转 >>a hlz >>b "hlz" >>a eq b1 创建字符串数组,可以利用中括号[]和逗号,相组合的方式进行创建 >>a [Hlz,XMU,厦门] >>a Hlz XMU 厦门 &g…

epoll监听文件_epoll使用详解

epoll介绍epoll的行为与poll(2)相似,监视多个有IO事件的文件描述符。epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外,还提供了边缘触发(Edge Triggered),这就使得用户空间程序有可能缓存IO状态,减少epoll_wait…

IDL学习:语法基础-结构体

结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“属性”(亦称之为“成员”),这些成员可以是变量、数组、字符串以及结构等类型数据。IDL中常用于函数返回值(PS:因为IDL中函数最多…

hdfs数据节点分发什么协议_分布式文件系统HDFS解析

Hadoop 主要由HDFS和MapReduce 引擎两部分组成。最底部是HDFS,它存储Hadoop 集群中所有存储节点上的文件。HDFS 的上一层是MapReduce 引擎,该引擎由JobTrackers 和TaskTrackers组成。一、HDFS基本概念1、数据块HDFS默认的最基本的存储单位是64M的数据块&…

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

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

计算机等级考试java题型_计算机二级考试《java》试题及答案

计算机二级考试《java》试题及答案2017下半年计算机二级考试将于9月23日-26日举行,下面是小编为大家整理的计算机二级考试《java》试题及答案,欢迎参考~计算机二级考试《java》试题及答案一、判断题1. Java语言中的数组元素下标总是从0开始,下…