RSD高分卫星数据处理能力提升——日正射处理数千景高分数据集
创始人
2024-05-15 05:42:32
0

李国春

通常认为,能够单日处理几百景高分辨率对地观测卫星数据的系统就已经是非常优秀的卫星数据处理系统了。RSD此次优化将其处理能力提升超过了一个数量级,达到了单日正射处理数千景高分辨率卫星数据集的水平。

不仅如此,RSD达到如此高的处理能力是在成本万元以内的消费级个人电脑上实现的,而且还是单CPU的独立机器。感兴趣的读者可以试验一下把这些数据集从一块硬盘拷贝到另一块硬盘所需要的时间,就能比较出RSD的处理速度多么恐怖。如果你有价值几万几十万元的高档工作站,处理速度会更快。

多搞几台这种消费级的计算单元,组建一个计算机集群,将这个脚本程序改成多机并行的,花很少的钱就可以挑战任何先进的对地观测卫星数据处理系统了。你要是感兴趣就联系我。

上一帖《一个高效的通用光学卫星数据正射校正程序》里面各种数据集正射都是几秒的时间,有同学反馈说我是不是把分钟错当成秒了。不是的,就是这个速度。RSD处理速度快主要得益于算法先进,其次是数据处理优化准确。RSD绝大多数处理模块都没有优化,这部分正射优化了是因为今年病了住院做不了其它推进性工作,我就整理下思路优化了一下。核心函数我把它改成 Sw7WristbandsBuffer,7Wristbands不是什么7个波段而是医院的腕带,用来纪念我2022年大难不死。:)

跑题了,言归正传。算法就不说了,我们自己独有的,和任何流行算法都不一样。在工程实现上也进行了精准的优化。顺便说一句,有人认为使用了高效的编程工具理所当然的就快,其实不然。工具不是决定因素,就像建筑工程的质量根本不取决于你使用了多么先进的装备一样。

下面进行详细介绍。

一、数据来源

本次试验使用的是高分2号卫星的多光谱和全色数据共1454景L1A级原始数据集。将这些数据集名称收集写入到一个文本文件,再输入到本试验脚本程序。脚本逐个读取文件名,在对应位置找到该数据集,进行处理。文本文件是通过运行代码 通配符查找文件.c 自动生成的。详见《搜索本地文件》。

运行通配符查找文件.c程序代码,在本地计算机一共搜索到(MSS和PAN各)1454个数据集。MSS和PAN各自结果分别保存在一个文本文件中。

结果见图1。

图1 本机搜索到的1455个GF2 MSS L1A文件

图1中的GF2.txt文件只列出了搜索到的TIFF文件,正射校正还需要一个RPC参数文件,通常RPC参数文件与TIFF文件有一样的主文件名,可以在程序里自动搜索,这里无需列出。

与MSS类似的还有一个PAN文件。需要重新搜索一次,并单独保存为一个文本文件,结果参见图1。

二、处理过程

在RSD的脚本窗口打开程序演示批量正射校正.c 。代码如下:

main(){STRING name;name = OpenFileDialog(TRUE);//name 返回待处理数据文件名的文本文件。参数TRUE 表示打开文件,FALSE 表示保存文件if(name == ""){Print("已退出主程序");return FALSE;}int nID1 = Open(name,TRUE);	//参数TRUE表示文本。STRING outPath;BrowseFolder(outPath);//选择一个结果文件的输出路径Print("开始生成中国区 SRTM 90m DEM 数据...");DWORD tc = GetTickCount();//创建 DEM 数据,正射校正用///double		demGeoBox[4];	//排列依次为:最小纬度、最小经度、最大纬度和最大经度longlong	demHeight = 30000;longlong	demWidth = 42000;short		demBuffer[demHeight][demWidth];double		dbOrgLat = 46.0;	//设置左上角位置的经纬度double		dbOrgLon = 95.0;short		defaltElv = 0.0;	double		demPixsize = 5.0/6000.0;	//SRTM90m = 0.0008333。ASTGTM2、3 DEM 为 0.00027778度/像元.demPixsize = 1.0/3600.0;DemSrtm90Buffer(demBuffer,dbOrgLat,dbOrgLon,demHeight,demWidth,defaltElv,demGeoBox);double dmtm = (GetTickCount() - tc) / 1000.0;Print("生成中国区 SRTM 90m DEM 数据用时 %f 秒。",dmtm);STRING mainName,outName,tifName,rpcName,outName,projStr;double box[4];	//地理位置4角坐标,排列依次为:最小N、最小E、最大N和最大Edouble pixsize = 0.8;//GF2 MSS 3.2m, GF2 PAN 0.8mlonglong	width,height;int			bands,datatype,rank,boo,n;;double datasetTime,outpuTime,totalTime;int dims[16];int count = 0;DWORD bgntc = GetTickCount();do{//读来一行文件名,并查找对应的 RPC 文件///tifName = "";n = Read(nID1,tifName);if(!PathFileExists(tifName)){continue;}rpcName = tifName - '.';rpcName = rpcName + ".rpb";if(!PathFileExists(rpcName)){rpcName = tifName - '.';rpcName = rpcName + "_rpc.txt";if(!PathFileExists(rpcName)){continue;}}Print("开始对%s进行正射校正...",tifName);//开始进行正射校正tc = GetTickCount();projStr = NULL;//投影参数串,指定 projStr=NULL; 时,自动探测带号,WGS84大地基准Alloc(WORD retBuffer[1][1][1] = {0};); //哑数组,接收处理结果。用 Alloc为每个文件单独申请和删除(每个文件大小不同)int boo = Sw7WristbandsBuffer(tifName,rpcName,retBuffer,box,demBuffer,demGeoBox,demPixsize,projStr,TRUE,CC,pixsize);datasetTime = (GetTickCount() - tc) / 1000.0;//正射校正结果导出为TIFF数据格式文件。mainName = FileNameMain(tifName);outName = outPath + mainName + ".tif"; //输出文件(.tif),输出路径 + 输入文件的主文件名+ 扩展名 .TIFFtc = GetTickCount();InqVariable(retBuffer,rank,dims,datatype);//读正射校正后PAN数据的数据范围、维数和数据类型信息height = dims[0];width = dims[1];bands = dims[2];		GdSaveTiffFile(outName,retBuffer,height,width,bands,datatype,BIP,projStr,box,pixsize);Free(retBuffer);outpuTime = (GetTickCount() - tc) / 1000.0;//处理计数、计时totalTime = (GetTickCount() - bgntc) / 1000.0;count++;Print("正射校正用时 %f 秒,导出结果用时 %f 秒。共处理了 %d 个数据集,累积用时 %f 分钟。",datasetTime,outpuTime,count,totalTime/60);}while(n);Close(nID1);Print("主程序结束");return TRUE;
}

(一)处理GF2 MSS 多光谱数据

将第27行代码 double pixsize = 0.8改为3.2,点击工具条上的小三角开始运行,输入上一步查找的文本文件并指定一个输出目录。运行后结果见图2。

图2 GF2 MSS正射校正后结果

1455数据集处理成功1454个,其中有一个处理失败。总计用时251.8分钟。平均每处理1个用时0.173分钟。每分钟处理5.77个,一天可以处理8315个GF2 多光谱数据集。

在输出目录中可以找到本次输出的1454个结果文件。见图3。

图3 GF2 MSS数据处理结果

可以在RSD中加载其中任意一个TIFF文件查看处理效果(略)。

(二)处理GF2 PAN 全色数据

将第27行代码 double pixsize = 3.2改改回0.8,点击工具条上的小三角开始运行,输入PAN文件名的文本文件并指定一个输出目录。运行后结果见图4。

图4  GF2 PAN数据处理结果

由于全部1455个数据集处理时间较长,这里只处理了50个数据集。50个数据集处理用时接近50分钟,基本上1分钟处理一个。一天可以处理1440个GF2 全色数据集。

如果按照处理一个多光谱和一个全色数据集为一景数据,则处理一景GF2数据需要1.173分钟,日处理1227景数据

三、讨论

1. 随着高分辨率对地观测卫星的发射越来越多,实现对地动态监测越来越现实。数据的快速处理越来与重要,尤其是对一些时间敏感的监测项目。

2. 通过99编程可实现更方便灵活的精准处理。

3. 各系列卫星属性各异,下一步研究如何快速自动提取卫星属性数据。

相关内容

热门资讯

迷你退出安卓系统了吗,转型新篇... 最近有没有发现你的手机上那个可爱的迷你退出图标突然不见了?别急,让我来给你揭秘迷你退出安卓系统了吗的...
华为优先使用安卓系统,打造自主... 你知道吗?最近科技圈里有个大动作,那就是华为宣布优先使用安卓系统。这可不是一个简单的决定,它背后可是...
安卓系统隐藏了设置,隐藏设置功... 你知道吗?安卓系统这个大宝藏里,竟然隐藏着一些不为人知的设置!是不是听起来就有点小激动呢?别急,今天...
反渣恋爱系统安卓,收获真爱 你有没有听说过那个神奇的“反渣恋爱系统安卓”呢?最近,这款应用在网络上可是火得一塌糊涂,不少单身狗都...
安卓出厂系统能升级,探索无限可... 你知道吗?现在这个时代,手机更新换代的速度简直就像坐上了火箭!而说到手机,安卓系统可是占据了半壁江山...
老安卓刷机系统,从入门到精通 你有没有想过,你的老安卓手机其实还有大大的潜力呢?没错,就是那个陪伴你多年的老安卓,它可不是只能用来...
安卓粉ios系统app,兼容性... 你有没有发现,身边的朋友圈里,安卓粉和iOS系统粉总是争论不休?今天,咱们就来聊聊这个话题,看看安卓...
安卓系统语言下载,探索安卓系统... 你有没有想过,你的安卓手机是不是该换换口味了?没错,就是语言!想象如果你能轻松切换到自己喜欢的语言,...
安卓共有多少种系统,究竟有多少... 你有没有想过,安卓这个我们每天不离手的操作系统,竟然有那么多不同的版本呢?没错,安卓系统就像一个大家...
安卓系统怎么播放swf,And... 你有没有遇到过这种情况:手里拿着一部安卓手机,想看一个SWF格式的动画,结果发现怎么也打不开?别急,...
pos机安卓系统跟win系统,... 你有没有想过,那些在我们生活中默默无闻的POS机,竟然也有自己的操作系统呢?没错,就是安卓系统和Wi...
俄罗斯封禁安卓系统,本土化替代... 俄罗斯封禁安卓系统的背后:技术、经济与社会的影响在数字化浪潮席卷全球的今天,智能手机已成为我们生活中...
安卓系统总是弹出权限,安卓系统... 手机里的安卓系统是不是总爱和你玩捉迷藏?每次打开一个应用,它就跳出来问你要不要给它开权限,真是让人又...
安卓系统测血氧,便捷健康生活新... 你知道吗?现在科技的发展真是让人惊叹不已!手机,这个我们日常生活中不可或缺的小玩意儿,竟然也能变身成...
蓝光助手安卓系统的,深度解析与... 你有没有发现,现在手机屏幕越来越大,看视频、刷抖音,简直爽到飞起!但是,你知道吗?长时间盯着屏幕,尤...
安卓系统如何隐藏提示,Andr... 你是不是也和我一样,在使用安卓手机的时候,总是被那些弹出来的提示信息打扰到?别急,今天就来教你怎么巧...
安卓6.0系统如何分区,And... 你有没有想过,你的安卓手机里那些神秘的分区到底是怎么来的?别急,今天就来给你揭秘安卓6.0系统如何分...
安卓系统图片怎么涂鸦,指尖上的... 你有没有想过,在安卓系统的手机上,那些单调的图片也能变得生动有趣呢?没错,就是涂鸦!今天,就让我来带...
安卓系统40g,40GB存储空... 你有没有发现,最近你的安卓手机突然变得有点“胖”了呢?没错,就是那个传说中的40G!别急,别慌,今天...
安卓5.0系统怎么重置,轻松实... 手机用久了是不是感觉卡得要命?别急,今天就来教你怎么给安卓5.0系统来个彻底的重置,让它焕发新生!一...