文件说明

mlse.land98.res1 为最新反演的地表微波比辐射率数据,第1个分辨率对应的卫星像斑直径为56km,格点距离10km
mlse.land98.res3 为最新反演的地表微波比辐射率数据,第3个分辨率对应的卫星像斑直径为21km,格点距离10km
MYD13C2.006 是月平均NDVI数据,存储格式是HDF格式,分辨率是5km
MYD13C1.005 是16天平均NDVI数据,存储格式是HDF格式,分辨率是5km

通道信息

  • res1:
    6.925v, 6.925h, 10.65v, 10.65h, 18.7v, 18.7h, 23.8v, 23.8h, 36.5v, 36.5h, 89.0v, 89.0h 单位GHz
  • res3:
    18.7v, 18.7h, 23.8v, 23.8h, 36.5v, 36.5h, 89.0v, 89.0h 单位GHz

读取MLSE数据

mlse是以TXT文件格式存储的,可以用NCL或者Fortran读取。

诸参数说明如下:

fortran
ip   integer型 每个AMSR-E数据点所拥有的唯一ID;  
ipp integer型 筛选landflag>98的样本点时引入,应等于ip;
newl integer型 样本对应的大气廓线层数;

qc integer型 cloud quality control :
qc = 0 ;clear sky
qc = 1 ; pure water cloud
qc = 2 ; pure ice cloud
qc = 3 ; mixed cloud exist
qc = 4 ; uncertain cloud exist

lon float 经度;
lat float 纬度;

cwc float 云液态水柱积分 g/cm2 手动计算;
cic float 云冰水柱积分 g/cm2 手动计算;
tw1 float 云液态水柱积分 g/cm2 模式输出;
tw2 float 云冰水柱积分 g/cm2 模式输出;

lst float 地表温度 k;
t2m float 两米温度 k;

stime float 扫面时间 h+m/60
landflag int 陆地分数 0-100

tb float(12) 12个通道天顶亮温观测;
mlse float(12) 12个通道地表微博比辐射率反演结果;

tbsurf 即表面微波亮温计算公式:
tbsurf=LST*MLSE
```


### 利用fortran读取

读取mlse.land98.res1
```Fortran
CC F77(fixed form) code
integer ip,cip,newl,qc,i,j
real lon,lat
real cwc,cic,tw1,tw2,lst,t2m
real mlse(12),tb(12),stime,landflag

1100 read(12,*,end=1101) ip,cip,newl,qc,lon,lat,
+ (mlse(i),i=1,12),(tb(i),i=1,12),
+ cwc,cic,tw1,tw2,lst,stime,t2m,landflag

读取mlse.land98.res3

fortran
CC F77(fixed form) code
integer ip,cip,newl,qc,i,j
real lon,lat
real cwc,cic,tw1,tw2,lst,t2m
real mlse(8),tb(8),stime,landflag

1100 read(12,*,end=1101) ip,cip,newl,qc,lon,lat,
+ (mlse(i),i=1,8),(tb(i),i=1,8),
+ cwc,cic,tw1,tw2,lst,stime,t2m,landflag

详细参考 do.mlse.month.ave.f 文件,利用Fortran求取月平均。

利用NCL读取

plaintext
filein="./mlse.land98.res1/mlse.land98.res1.200804"+dd+".txt"      
nrows = numAsciiRow(filein); 读取行数
ncols = numAsciiCol(filein); 读取列数

array = asciiread(filein,(/nrows,ncols/),"float") ; 读取数据阵
;分配变量
ip = floattoint(array(:,0));
cip = floattoint(array(:,1));
newl = floattoint(array(:,2));
qc = floattoint(array(:,3));
flon = array(:,4);
flat = array(:,5);
mlse = array(:,6:17);
tb = array(:,18:29);
cwc = array(:,30);
cic = array(:,31);
tw1 = array(:,32);
tw2 = array(:,33);
lst = array(:,34);
stime = array(:,35);
t2m = array(:,36);
land = array(:,37);

详细参考 mlse.res1.spatial.distribution.ncl 文件,利用NCL格点化20080426的MLSE,并画出空间分布图。

注意,读取mlse.land98.res3时 mlse和tb只有8列:

plaintext
...  
...
mlse = array(:,6:17-4);
tb = array(:,18-4:29-8);
cwc = array(:,30-8);
cic = array(:,31-8);
tw1 = array(:,32-8);
tw2 = array(:,33-8);
lst = array(:,34-8);
stime = array(:,35-8);
t2m = array(:,36-8);
land = array(:,37-8);

读取NDVI

NDVI是以HDF文件格式存储的,可以用NCL读取;
HDF可以用 panoply 或者HDF view 打开hdf文件查看其属性和变量。

利用NCL读取

在装有NCL的环境中运行ncl_filedump,可以得到HDF文件内部变量和属性信息:

bash
Herrera@Herrera-PC /cygdrive/e/given/MYD13C2.006
$ncl_filedump -c MYD13C2.A2008001.006.2015171174851.hdf > info.txt

打开’info.txt’即可看到详情。

ncl提取hdf文件的CMG_0_05_Deg_Monthly_NDVI , YDim_MOD_Grid_monthly_CMG_VIXDim_MOD_Grid_monthly_CMG_VI 变量

plaintext
filename ="./MYD13C2.A2008001.006.2015171174851.hdf"
eos_file = addfile(filename, "r") ; Read file
eos_he2 = addfile(filename+".he2","r")
data_raw = eos_file->CMG_0_05_Deg_Monthly_NDVI
;;printVarSummary(data_raw)

data = tofloat(data_raw/data_raw@scale_factor+data_raw@add_offset)

lat = eos_he2->YDim_MOD_Grid_monthly_CMG_VI
lon = eos_he2->XDim_MOD_Grid_monthly_CMG_VI

详细参考 make.ndvi.series.regions.ncl 文件,求取设定区域的NDVI区域平均时间序列。


胡继恒 16研 QQ:1831743701 Email:hjh18305@mail.ustc.edu.cn