欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > CloudSat数据产品数据下载与处理 (matlab)

CloudSat数据产品数据下载与处理 (matlab)

2024/10/27 4:45:13 来源:https://blog.csdn.net/weixin_43750300/article/details/143202686  浏览:    关键词:CloudSat数据产品数据下载与处理 (matlab)

CloudSat数据下载

这个数据我之前和CALIPSO弄混了,后来发现它们虽然是同一个火箭上去,但是数据产品却在不同的平台下,CloudSat的数据更加关注云的特性,包括云覆盖、云水当量、云分类数据。

数据网址在:CloudSat网址
但是目前数据网站下载似乎无法连接,因此采用了添加公钥登录sftp的方法下载,添加sftp的方法在网站上已经有了介绍 SFTP aceess,这里就不多赘述了。

产品包括1-B 2-B 2-C等,每个数据包含的变量不同,这里我下载的是2B-CWC数据,主要是包括云水当量廓线。

数据处理

下载后的数据命名方式为:[yeardaynumtime_轨道名_产品名.hdf]
如:2018213150513_65299_CS_2B-CWC-RO_GRANULE_P1_R05_E07_F03.hdf
指的就是2018年的低213天15时05分13秒得到的2B-CWC数据。

数据是普通hdf格式,在matlab中,使用hdfinfohdfread读取。
使用hdfinfo可以得到一个结构体,在matlab中,可以直接点击查看结构体的内容,并通过点击查看相迎变量,再通过hdfread读取数据,
如下图:在这里插入图片描述
这里是个三层结构,数据主要在info.Vgroup.Vgroup,Vdata里。
开始读取数据:

hdfname=[path,filename{i}];info=hdfinfo(hdfname);vgroup=info.Vgroup.Vgroup;geoinfo=vgroup(1).Vdata;lat=hdfread(geoinfo(4));lon=hdfread(geoinfo(5));height=hdfread(vgroup(1).SDS);time=hdfread(geoinfo(2));vdata=vgroup(2).SDS;lwc=hdfread(vdata(13));iwc=hdfread(vdata(15));

其中,iwc和lwc即为云的液态水含量与固态水含量。
height为卫星的radar bin的高度,总共有125个bin,间隔大约为240m,大约在-4570-25000m之间。下图为bin的示例:

在这里插入图片描述
考虑到实际使用时,主要是提取部分区域的部分数据用来比对,通过设定经纬度的边界来提取:

lat=lat{1};lon=lon{1};idx1=find(lat<latmax&lat>latmin);idx2=find(lon<lonmax&lon>lonmin);idx=intersect(idx1,idx2);if ~isempty(idx)iwc_use=iwc(idx,:);lwc_use=lwc(idx,:);height_use=height(idx,:);lat_use=lat(idx);lon_use=lon(idx);a=filename{i};ncname=regexp(a,'\d{13}','match');d=ncname{1};y=str2double(d(1:4));daynum=str2double(d(5:7));h=str2double(d(8:9));[mon,day]=day2mon(y,daynum);newname=datestr(datetime(y,mon,day,h,0,0),'yyyy-mm-dd_HH');ncfile=[path,newname,'.nc'];disp(ncfile);nccreate(ncfile,'lat','Dimensions',{'x',length(idx)});nccreate(ncfile,'lon','Dimensions',{'x',length(idx)});nccreate(ncfile,'height','Dimensions',{'x',length(idx),'y',125});nccreate(ncfile,'iwc','Dimensions',{'x',length(idx),'y',125});nccreate(ncfile,'lwc','Dimensions',{'x',length(idx),'y',125});ncwrite(ncfile,'lat',lat_use);ncwrite(ncfile,'lon',lon_use);ncwrite(ncfile,'iwc',iwc_use);ncwrite(ncfile,'lwc',lwc_use)ncwrite(ncfile,'height',height_use)end

输出即可

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com