第一步,下载好一个NC格式FY-4A AGRI 云检测CLM产品,这里下载的是云检测实时产品(中国区域/标称);下载好的名称如下图所示:
FY4A:卫星名;AGRI:仪器名称;N_REGC:中国区域;1047E:星下点经度;L2:数据级别;CLM:云检测产品;
20180620203000:观测起始时间:2018年6月20日20时30分00秒(UTC时);
20180620203416:观测结束时间:2018年6月20日20时34分16秒(UTC时);
4000M:空间分辨率;NC:文件格式。
在这里http://satellite.nsmc.org.cn/PortalSite/StaticContent/DocumentDownload.aspx?TypeID=15下载“FY-4A云检测实时产品格式说明”文档,并查阅;
从文档中可以找到,云检测的主要数据存储在变量CLM中。每个像元的值有以下含义:0表示有云(cloud);1表示可能有云(probably cloud);2表示可能晴空(probably clear);3表示晴空(clear);126表示太空(space);127表示填充值(fillvalue)。
我用的是ENVI 5.1,是不可以直接打开NC格式的文件的,但是可以用IDL读取并转换文ENVI标准格式在ENVI里打开,参考代码如下:
;❀❀❀❤❤❤这个程序是为了博客“用IDL读取NC格式的FY-4A AGRI 云检测CLM产品文件并转为ENVI标准格式”而创作
;❀❀❀❤❤❤编写人:大脸婵
;❀❀❀❤❤❤编写环境:ENVI5.1+IDL8.3
;❀❀❀❤❤❤编写日期:2019.6.20
pro REAd_NC_CLM_to_STANDARD_ENVI
;严格编译规则
compile_opt idl2
;初始化
envi, /restore_base_save_files
envi_batch_init
;设定目录窗口,打开需要处理的NC格式数据
NC_File = dialog_pickfile(/multiple_files, title = '打开需要转换的数据')
;定义ENVI标准格式文件的数量N
N = n_elements(NC_File)
;构建for循环,依次处理NC文件
for i = 0,N - 1 do begin
;打开NC文件
ID_Nc_File = ncdf_open(NC_File[i], /write)
;查看NC文件的指定变量'CLM'
CLM_id = NCDF_VARID(ID_Nc_File, 'CLM')
;读取CLM到CLM_arr中
NCDF_VARGET, ID_Nc_File, CLM_id, CLM_arr
;获取CLM_arr这个数组每个维度的维数,CLM_arr在这里一般是一个二维数组,
;1108×2748,第一个维数是sample,第二个维数是line,需要在后面设置头文件里使用
dimensions = size(CLM_arr,/dimensions)
;用file_basename提取文件名
NC_File_Basename = file_basename(NC_File[i], '.NC')
;用strmid提取文件名中的日期Date,从第45个字符开始往后14个,YYYYMMDDHHMMSS
Date = strmid(NC_File_Basename,44,14)
;❀❀❀这里需要注意设定输出路径❀❀❀
Out_Path = 'F:\test\'
;写成envi标准格式文件
envi_write_envi_file, CLM_arr, $
INTERLEAVE = 0, $ ;存储方式设置为BSQ
nb = 1, $ ;波段数量为1
nl = dimensions[1], $ ;Line的数量为dimensions的第2个数
ns = dimensions[0], $ ;Sample的数量为dimensions的第1个数
out_name = Out_path + Date + '_CLM.dat',$ ;这里设置新文件的输出路径和名称
r_fid = fid ;返回新生成文件的ID,这时新文件已经在ENVI中打开了
envi_file_mng, ID = fid, /remove ;把新文件在ENVI中关掉
endfor
;关闭
envi_batch_exit
end
处理后在envi中打开,并将五个值填充不同的颜色,可以看到图像中的云的分布概况:0填充为白色,表示有云(cloud);1填充为浅蓝色,表示可能有云(probably cloud);2填充为黄色,表示可能晴空(probably clear);3填充为绿色,表示晴空(clear);126填充为黑色,表示太空(space);127填充为灰色,表示填充值(fillvalue)。
注意:该文件只是一个半圆盘,是没有地理信息的,具体可以用查找表的方式将其转换成等经纬度投影等,下一篇讲。