FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理

1 了解实验数据

1.1 文件名解释

以一个文件名为例:

FY4A:卫星名;AGRI:仪器名称;N_REGC:中国区域;1047E:星下点经度;L1:数据级别;GEO:定位数据;

20180620163000:观测起始时间:2018年6月20日16时30分00秒(UTC时);

20180620163416:观测结束时间:2018年6月20日16时34分16秒(UTC时);

4000M:空间分辨率;HDF:文件格式。

1.2 下载数据

这个数据的时间间隔有些不太确定,一天大概有100多个数据文件,今天这个实验选择:北京时间2018年6月21日(即2018年的夏至)。分析每个半点的数据,即文件名中观测起始时间的后四位是3000。

这样如果一天的数据数目完整,可以下载24个半点的数据。需要注意的是,因为我们下载的是北京时间2018年6月21日的24个数据,而在下载网页选择中选择的是世界时UTC,与北京时间相差八个小时,所以实际上我们下载的数据是从UTM时间2018年6月20日16时30分-2018年6月21日15时30分。

下载好的数据如下:

FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理_第1张图片

1.3 查看数据属性

这个网站可以找到“FY-4A成像仪L1_GEO数据格式说明”:

http://satellite.nsmc.org.cn/PortalSite/StaticContent/DocumentDownload.aspx?TypeID=15

FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理_第2张图片

下载下来打开,可以找到该文件中太阳天顶角的信息。下图的表格反映了该文件中太阳天顶角的一些信息,valid_range代表太阳天顶角的值(0-180度),FillValue代表填充值:65535。

FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理_第3张图片

1.4 打开数据

用ENVI也可以查看文件的属性,找到文件中的太阳天顶角(SunZenith)的信息,打开:

FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理_第4张图片

打开以后可以看到这个图,查看图中每个部分的值,灰色区域中就是有效的太阳天顶角的值,值的范围是0-180,白色区域中就是文件的填充值,值为65535.

FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理_第5张图片

便于理解,简单用蓝线将这个半圆盘补全。这个文件实际上是显示了一个半圆盘的一部分,该部分只包括了中国和周边的一些地区。

FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理_第6张图片

2 了解太阳天顶角(SunZenith

太阳天顶角是太阳入射方向和天顶方向之间的夹角。当地面上一点的天顶角大于等于0小于90°时,与该点的太阳高度角互补,该点有太阳照射;当天顶角大于等于90度以后,该点就没有太阳照射了。所以根据一个像元的太阳天顶角信息,可以判断此时该点有无太阳照射。利用这个信息可以辅助于多方面的研究。

 

FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理_第7张图片

3 处理太阳天顶角数据实验

3.1 处理方法

现在我们有一天每半小时的太阳高度角文件,可以把进行二值化,简单的反映出太阳在夏至这一天东升西落的情况。下面这个IDL程序将该数据中的太阳天顶角二值化,当太阳天顶角小于等于90°(即太阳高度角大于0°时),认为有太阳照射,设值为1;反之设为0。可以批量实现该数据原始HDF文件的打开、读取数据、二值化、生成ENVI标准格式和tiff图像的处理。

;#将FY4A-AGRI—L1数据太阳天顶角二值化,当太阳天顶角小于等于90°(即太阳高度角大于0°时),认为有太阳照射,设值为1;反之设为0#
pro sunzenith_angle_binaryzation

  ;严格编译规则
  compile_opt idl2

  ;初始化
  envi, /restore_base_save_files
  envi_batch_init
  
  ;设定目录窗口,打开需要处理的HDF格式数据
  HDF_File = dialog_pickfile(/multiple_files,  title = '打开需要转换的数据')
  ;定义ENVI标准格式文件的数量N
  N = n_elements(HDF_File)
  
  ;构建for循环,依次处理HDF文件
  for i = 0,N - 1 do begin
  
  ;用h5f_open打开文件
  File_ID = h5f_open(HDF_File[i])
  ;用h5g_open打开dataset,双引号''中是要打开数据集的名称
  Dataset_ID=h5d_open(File_ID, 'NOMSunZenith')
  ;用h5d_read读取数据集数据,存入Data中
  Data = h5d_read(Dataset_ID)
  ;当太阳天顶角大于90°(即太阳高度角小于0°时),认为没有太阳照射,所有的像元值为0 
  Data[where(Data gt 90)] = 0
  ;剩下的像元值为1,即有太阳照射
  Data[where(Data ne 0)] = 1
  
  ;用file_basename提取文件名
  HDF_File_Basename = file_basename(HDF_File[i], '.HDF')
  ;用strmid提取文件名中的日期Date,从第45个字符开始往后14个,YYYYMMDDHHMMSS
  Date = strmid(HDF_File_Basename,44,14)  
  ;设定输出路径
  Out_Path = 'F:\test\'
  ;设定输出名
  Out_File = Out_path + Date + '_SZ.dat'
  openw, lun, Out_File,  /get_lun
  writeu, lun, byte(Data)
  free_lun, lun
  
  ;写出文件的头文件信息
  envi_setup_head,$
    ;数据类型是1:Byte (8 bits)
    DATA_TYPE = 1 , $
    FNAME = Out_path + Date + '_SZ.hdr',$
    ;储存方式是0:BSQ
    INTERLEAVE = 0, $
    NB = 1, $
    NL = 1108, $
    NS = 2748, $
    OFFSET = 0, /write
  
  ;写成tiff格式
  write_tiff, Out_path + Date +'.tiff', Data, /float
  
  endfor 
  ;关闭
  envi_batch_exit
end

3.2 处理结果展示

处理好后每个半点的图像如下所示,白色区域就是有太阳照射的地方,可以看到一天当中随着太阳天顶角的变化,太阳照射区域(白色区域)的变化由东向西增多,从北京时间21日10:30到16:30,整个区域都有太阳照射。之后从东边开始,黑色区域增多,即太阳照射区域减少。

FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理_第8张图片

 

你可能感兴趣的:(FY 4A AGRI成像仪中国区域4KML1定位数据太阳天顶角数据的简单处理)