- 积分
- 66
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-5-3
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最近处理modis卫星数据,网上找了个处理的程序包,自己研究了一下程序,在关于经纬坐标差值的程序方面不是很懂,特来求教。程序见下。在经纬度坐标差值里面,X为什么赋值1到270?y为什么赋值1到406?YI为什么赋值2030个点?XI为什么赋值1354个点?这样设置有什么讲究吗?
另外,程序包运行的时候显示程序中这句“z=0.39*log(COD)-0.01”出错运行不了。我研究了一下,这句应该是云高度的转换。我推敲分析了一下应该是COD(关于具体的请看下面的程序)这个量里面应该有负值,不符合log函数的调用规则。于是试验了一下发现不用转换而直接调用变量COD可以运行绘图(见附图)。于是问题来了!源程序为什么会有高度转换的这句“z=0.39*log(COD)-0.01”,我这样不转换直接调用变量COD绘制出的图会不会是错的?
clear all;close all;clc;
filename = 'MOD06_L2.A2010236.0220.006.2015047032450.hdf';
file_info = hdfinfo(filename);
lon = hdfread(filename,'Longitude'); %经度
lat = hdfread(filename,'Latitude'); %纬度
%----------------经纬度坐标插值--------------------
y=1:406;x=1:270;
yi=linspace(min(y),max(y),2030);
xi=linspace(min(x),max(x),1354);
[X,Y]=meshgrid(x,y);
[Xi,Yi]=meshgrid(xi,yi);
Z1=lon;
Longitude=interp2(X,Y,Z1,Xi,Yi,'spline');
Z2=lat;
Latitude =interp2(X,Y,Z2,Xi,Yi,'spline');
%---云顶温度,k----------------------------------------------
%temperature = hdfread(filename,'Cloud_Top_Temperature'); %云顶温度
temperature = hdfread(filename,'cloud_top_temperature_1km'); %云顶温度
scale_factor = 0.009999999776482582;
add_offset = -15000.0;
temp = (temperature - add_offset)*scale_factor; %温度数据转换,单位:K
% ---云顶高度,m-----------------------------------------------
% height=hdfread(filename,'Cloud_Top_Height'); %云顶高度
height=hdfread(filename,'cloud_top_height_1km');
scale_factor = 1.0;
add_offset = 0.0;
zt = (height - add_offset)*scale_factor; %高度转换,单位:m
%----有效粒子半径,单位:micron -------------------------------
radius=hdfread(filename,'Cloud_Effective_Radius')
scale_factor = 0.009999999776482582;
add_offset = 0.0;
re = (radius - add_offset)*scale_factor; %1*1,有效粒子半径,单位:micron
%-----------------------------------------------------
thickness=hdfread(filename,'Cloud_Optical_Thickness')
scale_factor = 0.009999999776482582;
add_offset = 0.0;
COD = (thickness - add_offset)*scale_factor; %1*1
%-freezing level,m-----------------------------------------------------
zfr=zt+(temp-273.15)/6.5
%-几何高度,km?----------------------------------------
z=0.39*log(COD)-0.01
%-cloud base altitude-----------------------------------------
zb=zt-z
%-LWP,1*1,g/m^2------------------------------------------------
path=hdfread(filename,'Cloud_Water_Path');
scale_factor = 1.0;
add_offset = 0.0;
lwp=(path - add_offset)*scale_factor;
if zb<zfr
slwp=lwp(zt-zfr)/z
else
slwp=lwp
end
% --------------------------------------------------
contourf(Longitude,Latitude,slwp);
%contourf(lon,lat,ht);
colorbar
axis([120 125 30 34 ])
|
|