- 积分
- 725
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-4-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
各位好!如题,具体如下:本人最近正在处理数据,《EOS/MODIS资料的数据处理方法及其在白天低云大雾监测中的应用》 ,文章很详细的阐述了如何去利用Matlab软件对Modis L1B产品进行处理。但是在对经纬度进行插值时,我遇到了一些问题: 首先,我们知道:L1B产品包括很多种分辨率,其中,250m分辨率文件中的经纬度数据是1354*2030,而1000m分辨率文件中的经纬度数据是271*406;
现在我们要对太阳天顶角SolarZenith进行插值(文章中提到使用双线性插值法),即我尝试使用imresize函数来进行插值,但是显示错误,因为两个分辨率不是正好的5倍关系(即271*5不等于1354)。现暂时利用graddata函数进行插值,但不知道效果是否理想,请问在matlab中双线性插值法是如何使用的?
附上我编写的程序:
%对太阳天顶角SolarZenith进行插值%%%
XI=hdfread('F:\Data\MOD02QKM\2007\MOD02QKM.A2007124.0310.005.2010192205629.hdf', '/MODIS_SWATH_Type_L1B/Geolocation Fields/Longitude', 'Index', {[1 1],[1 1],[2030 1354]});
YI=hdfread('F:\Data\MOD02QKM\2007\MOD02QKM.A2007124.0310.005.2010192205629.hdf', '/MODIS_SWATH_Type_L1B/Geolocation Fields/Latitude', 'Index', {[1 1],[1 1],[2030 1354]});
%XI,YI为250m分辨率下的经度、纬度,大小为【2030,1354】
SolarZenith = hdfread('F:\Data\MOD021KM\2007\MOD021KM.A2007124.0310.005.2010192205629.hdf', '/MODIS_SWATH_Type_L1B/Data Fields/SolarZenith', 'Index', {[1 1],[1 1],[406 271]});
Latitude = hdfread('F:\Data\MOD021KM\2007\MOD021KM.A2007124.0310.005.2010192205629.hdf', '/MODIS_SWATH_Type_L1B/Geolocation Fields/Latitude', 'Index', {[1 1],[1 1],[406 271]});
Longitude = hdfread('F:\Data\MOD021KM\2007\MOD021KM.A2007124.0310.005.2010192205629.hdf', '/MODIS_SWATH_Type_L1B/Geolocation Fields/Longitude', 'Index', {[1 1],[1 1],[406 271]});
%Longitude,Latitude为1km分辨率下的经度、纬度,大小为【406,271】
XI=double(XI);
YI=double(YI);
Longitude=double(Longitude);
Latitude=double(Latitude);
SolarZenith=double(SolarZenith);
%%%%插值方法采用三个一组立方差值,后期学习双线性插值法%%%
SolarZc=griddata(Longitude,Latitude,SolarZenith,XI,YI,'cubic');
%SolarZc=imresize(SolarZenith,5,'bilinear');
希望能得到您的帮助,万分感谢!
|
|