在RSD交互平台上能处理的所有数据都可以通过写GeoGeo(下称99)脚本语言代码实现批量处理,当然也包括YF3-MERSI L1B数据。事实上,无论是RSD交互平台还是99脚本批处理,RSD对FY3 数据处理都非常完美。

这里演示通过RSD交互平台的脚本窗口执行99脚本解释代码来批量处理FY3-MERSI的250m数据集。

提到99脚本语言,同学们可能会马上想到是不是又要我学什么新语言?不要担心,不是这样的。99脚本解释器基本上遵循了c语言最基本的部分。相信大多数同学大学期间都考过计算机二级考试,其中c/c++ 的考试内容就已经超出了99脚本对计算机语言部分的要求,如果你考过这个计算机二级就足够了。

99脚本没有别出心裁搞自己的一套语法主要是考虑了同学们的接受感受,对繁杂的卫星数据大多是通过函数来实现的,你要做的只是使用基本的程序控制来调用这些函数。所以了解为处理这些复杂数据提供的这些函数的功能才是主要工作,而不是学习一些为了刷存在感的符号。

当然99脚本不是完全和c一致(如果是那样我就没必要再写一套解释程序了),99有好多自有的特点,比方大数据支持能申请几百个G甚至上T的数组,这些数组可以部署在计算机集群上,通过数据的配置回收机制实现大规模运算。99的线程函数可以通过一个简单的thread关键字在本地创建新线程,还可以通过一个process关键字在任意节点机上创建部署进程。99的事件和消息机制可以任意触发和响应来自节点机/主机的控制信息。类似的新概念和技术还有很多。我已经发布了一些参考文档,请参阅CSDN博客https://blog.csdn.net/gordon3000/article/details/39336569和一些连续的相关博文(2014年的,多年没更新可能个别有出入)。

1 打开脚本窗口

右击主窗口上方工具条空白部分打开“脚本编辑窗口”。同样打开输出窗口,用于输出程序执行结果(如果有)。

2 编辑代码

代码可以直接在脚本编辑窗口编辑输入和保存,也可以用其它字处理软件编辑。如果需要保存就保存文一个扩展名为.c的文件。这样直接就可以在脚本编辑窗口打开。

为批量处理FY3-MERSI数据编辑的99代码如下:

//

//   GeoGraph 脚本语言示例代码 ——创建任务

//

//   李国春2012年12月4日

//

main()

{

intb;

intc;

intn;

STRING str;

STRING name;

intnID1 = Open("D:\\MERSI250文件名.txt",1);   //待打开文件名的文件

STRING tplname = "G:\\RSDTestData\\LN250M.tpl";

do{

n = Read(nID1,str);                       //读来一行完整的文件名

if(n != 0)

{

c =CreateMission(tplname);

b =LoadFile(MERSIL1BQKM,str);

b =SwMakeNativeGridLayer(1,"GRID",2);

name = str - '.';                    //去掉原来文件名的扩展名+ '.'

name = name + ".tif";                //待保存的新名

GdExportTiffFile(2,name);            //将正射校正后的文件保存。表示保存该任务里面的第层

EndMission(c);

}

}while(n);                                     // 循环所有的文件,直至没有更多的文件了。

Close(nID1);                                   //关闭文件名文件

return1;

}

将这部分代码粘贴到脚本编辑窗口。

3 代码意义的解释

第8~12行声明了几个变量,前三个是整型的,后面两个是字符串类型。

第13行打开一个文件,文件名为D:\\MERSI250文件名.txt,这是一个文本文件,里面保存了待打开的FY3-MERSI250m L1B数据集的文件名,99脚本从这个文件逐条读入数据集名称并打开,例如下面的文件内容:

可见第一个文件名为CMA标准的FY3-MERSI 250m L1B数据集,第二个为非CMA标准的数据格式,自有接收机单位(如各省的气象局)有这种数据,RSD对其能够自动识别。

第14行存储了一个框架名称,这里指定的是辽宁省的一个Albers投影的250m框架,数据处理按该框架范围进行。

第15行和27行构成一个循环,将上述文件逐个处理直至完成。

第16行读来一个数据集名。

第19行按框架创建任务。

第20行使用函数LoadFile(MERSIL1BQKM,str)加载FY3-MERRSI 250m L1B数据集。

第21行的SwMakeNativeGridLayer(1,"GRID",2)函数将当前任务的该层(层1)重采样为GRID。函数的第1个参数为层序号,第2个参数是新层名,第3个参数是重采样方式,0为稀疏采样,这里的2为最近邻点法。重采样后自动产生新层(层2)。

第22、23行建立一个待保存数据的新文件名,扩展名为.tif。

第24行GdExportTiffFile(2,name) 函数导出tif文件,第1个参数是待导出层序号。

第25行结束任务,准备下一个文件的处理。

第28行关闭文件名文件。

4 运行代码

点击脚本编辑窗口上方工具栏的小三角即可运行代码。运行结束后可以在文件名指定位置找到导出的.tif文件。

本例导出如下两个文件:

如果你有很多的文件需要批量处理,都写在文件名文件里吧,处理数量是没有什么限制的。

如果需要导出img文件,使用GdExportImgFile函数,并将到处文件的扩展名改为img即可。

5 处理其它数据

99脚本加载数据使用一个称之为数据集识别字的标识符,如第20行的MERSIL1BQKM,表示FY3-MERSI的250mL1B数据集。对于FY3-MERSI 1km L1B数据集,使用标识符 MERSIL1B1KM,同学们可以自行测试。更多的数据集识别字将陆续介绍。

6 更多

99还比较娇嫩,比较难伺候。特意为99设计了断点和单步调试和变量监视功能。

想要设置断点可以点击行号后面位置,出现了一个小方块,这就是一个断点。

看见15行后面的小方块了?如果你点击运行(小三角),运行到这儿就停下了。

15行变成了品红色,程序现在停在这儿了。当然光停这儿没有什么用途,还要看看变量等执行的对不对。

打开监视窗口,右击一个变量,在弹出菜单选择添加监视。

可以看见字符串变量tplname已经被正确赋值了。

程序也可以单步执行,按工具条上的小脚丫。

如果程序需要停下来,或者重置重新开始,请把工具栏上那个鲜红的小方块按灭,再重新执行就可以了。

确认程序调试无误后再完全执行。

在百度云盘https://pan.baidu.com/s/1T-LBvaD_zVCwJsGf_hCyCg下载新版的SetupRsd2.1.4.rar。如果你是第一次安装,参考下软件包里面的安装说明,最好安装相关辅助数据。

详情加企鹅群136965427,在这里解答和讨论有关遥感数据处理和RSD平台的有关技术问题。

批量处理FY3-MERSI L1B数据相关推荐

  1. PHP如何批量更新MYSQL中的数据

    最近项目需要用到批量更新数据库里的数据,在网上找了一下这方面的例子,觉得这个还不错,分享给大家. 在这个业务里里面涉及到了更新两张数据表,那么大家是不是会想到非常简单,马上上代码 $sql = &qu ...

  2. mysql导入多个txt_MySQL批量导入Excel、txt数据

    我想Excel是当今最大众化的批量数据管理软件了吧,所以我们会经常涉及到将Excel中数据导入到MySQL中的工作.网上有一些关于直接将Excel导入MySQL的教程,不知道是我安装的office不对 ...

  3. Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据

    通常我们获取游标数据是用 fetch some_cursor into var1, var2 的形式,当游标中的记录数不多时不打紧.然而自 Oracle 8i 起,Oracle 为我们提供了 fetc ...

  4. kibana数据导入导出_MySQL数据库批量导出和导入查询数据

    MySQL数据库批量导出和导入查询数据的过程是使用-e参数去执行命令. 由于工作需要,我需要先在一个MySQL库中查询出结果,然后以查出结果为参数,去放入另外一个MySQL数据库中当成where的条件 ...

  5. 快速清除oracle多个表,Oracle数据库之批量清除一个表的数据,TB级别数据

    本文主要向大家介绍了Oracle数据库之批量清除一个表的数据,TB级别数据,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 有个需求,要求清理8TB的数据,只保留一个月的数据,现 ...

  6. mysql批量导入txt数据_MySQL批量导入Excel、txt数据

    我想Excel是当今最大众化的批量数据管理软件了吧,所以我们会经常涉及到将Excel中数据导入到MySQL中的工作.网上有一些关于直接将Excel导入MySQL的教程,不知道是我安装的office不对 ...

  7. 使用GDAL工具对FY3系列卫星数据进行校正

    本文档主要对如何使用GDAL提供的工具对FY3系列卫星数据进行校正处理.FY3系列卫星提供的数据一般是以HDF5格式下发,一个典型的FY3A和FY3B的数据文件名如下: FY3A_MERSI_GBAL ...

  8. matlab批量处理excel(CSV)文件数据

    微信公众号:好玩的matlab 今天是2019-1-29,参加完2019年美国大学生数学建模竞赛,小伙伴都回家了,就我一个人在寝室,太无聊了,就把在比赛中遇到的excel批处理,写一下思路(ps:其实 ...

  9. Google Earth Engine(GEE)批量下载不透水面数据

    目标: 提取山西省不透水面数据并批量下载,使用的数据为清华大学宫鹏老师的不透水面数据集"Tsinghua/FROM-GLC/GAIA/v10" 参考文献:Gong, P., Li, ...

最新文章

  1. 干货!Java 学习路线指南,看这文就够了!
  2. MySQL索引使用方法和性能优化
  3. CSP认证201412-1 门禁系统[C++题解]:哈希表
  4. 在浏览器里,从输入 URL 到页面展示,这中间发生了什么?-学习笔记
  5. kafka maven没有下载_构建工具的进化:ant, maven, gradle
  6. java编写应用程序_为您的Java应用程序编写数据驱动的测试
  7. 前端学习(500):水平居中布局得第二种方式
  8. CSS综合征病例,ChurgStrauss 综合征 (css) 变应性嗜酸性肉芽肿课件
  9. bochs上网镜像怎么上网_【bochs win10镜像可上网版】bochs win10镜像img下载 完整版-趣致软件园...
  10. 200以内的质数(python)
  11. android之父:安迪*鲁宾
  12. 【动手学强化学习】DDPG+HER
  13. fastposter v2.7.0 发布 电商海报编辑器
  14. 隐私计算:数据脱敏、匿名化、假名化、差分隐私和同态加密
  15. Beaver‘s Calculator
  16. 大数据----2.基础环境搭建
  17. long自动转为float类型
  18. 2019.9-电赛国赛-基于FDC2214的纸张计数显示装置
  19. 如何使用 JavaScript 创建水平和垂直标签?
  20. 什么是中视频计划,这个文章正确解析不误导

热门文章

  1. uni-app技术分享| uni-app转小程序_实时音视频
  2. 企业管理的“斯隆铁律”
  3. Redis 存储对象信息是用 Hash 还是 String
  4. CAD系统变量详细说明
  5. iOS 动态化的故事
  6. 深入理解JVM-内存模型
  7. vue3头像上传组件
  8. 如何让Div中的Table居中
  9. Web服务器群集——LVS-DR+Keepalived 高可用集群
  10. iOS图片合成————(拍照换发)