你不是登录.您的编辑将被放置在队列中,直到完成同行评议

我们欢迎编辑,使文章更容易理解和更有价值的读者。因为社区成员会审查编辑,所以请尽量让帖子比你发现它的时候更好,例如,通过修改语法或添加额外的资源和超链接。

如何计算不同高程区域的MODIS积雪?

我正在研究MOD10C2(8天积雪),当我针对不同海拔区域剪辑MODIS积雪时,结果与总体趋势相反。海拔越高,积雪越少,海拔越低,积雪越高。我用matlab做了inpolygon函数,(inpolygon(xq,yq,xv,yv))我不知道我哪里出错了。

首先,我以这种方式导入数据

hdfvars = {'Eight_Day_CMG_Snow_Cover', 'Eight_Day_CMG_Clear_Index',…“Eight_Day_CMG_Cloud_Obscured”、“Snow_Spatial_QA '};projectdir = 'E:\test\hdf test';Dinfo = dir(fullfile(projectdir, '*.hdf'));Num_files = length(dinfo);文件名= fullfile(projectdir, {dinfo.name});8_day_cmg_snow_cover = cell(num_files, 1);第八条day_cmg_clear_index = cell(num_files, 1);eight_day_cmg_cloud_hazy = cell(num_files, 1);Snow_Spatial_QA = cell(num_files, 1); for K = 1 : num_files this_file = filenames{K}; Eight_Day_CMG_Snow_Cover{K} = hdfread(this_file, hdfvars{1}); Eight_Day_CMG_Clear_Index{K} = hdfread(this_file, hdfvars{2}); Eight_Day_CMG_Cloud_Obscured{K} = hdfread(this_file, hdfvars{3}); Snow_Spatial_QA{K} = hdfread(this_file, hdfvars{4}); end

然后以这种方式重塑数据

B2 = 0 (3,600,7200,24);B2(i,j,1:24) =重塑(Eight_Day_CMG_Snow_Cover{i,j},[1 3 2]);结束结束

然后生成lat lon并对感兴趣的区域进行子集

Lon = -180:0.05:180;Lat = -90:0.05:90;subsetqa = 8_day_cmg_snow_cover (2001:2817,4801:5741,:);

然后尝试用高程多边形进行提取,我尝试了[月]和[8天]分数积雪数据,高程多边形提取自SRTM DEM。我尝试用matlab这样做

Shapefile = ' Shapefile . '轴马力”;S = shaperead(shapefile);N =长度(S);for i = 1:N plot(S(i).X,S(i).Y) hold on end %% lon = load('testlon.mat');Lon = Lon。testlon;Lat = load(' testat .mat');Lat = Lat。testlat;[X,Y] =网格(lon,lat);Data = load('testarray.mat');数据=数据。testarray; [nx,ny,d] = size(data) ; %%Extract data iwant = cell(d,N) ; for i =1:d A = data(:,:,i) ; for j = 1:N idx = inpolygon(X(:),Y(:),S(i).X,S(i).Y) ; iwant{i,j} = A(idx) ; end

然后用这种方法将输出转换成矩阵

Test = cell2mat(cellfun(@转置,iwant,'uniform',0));

注意:这张照片只显示了一个高程带的多边形,我们有六个不同的高程带。

在这里输入图像描述

回答

取消
4
  • \ begingroup美元 在导入MOD10C2的所有四个波段后,为了加快工作速度,我在三维上拼接了仅“Eight_Day_CMG_Snow_Cover”的23个文件(23个8days snow cover)。 \ endgroup美元
    - - - - - -伊尔凡
    2019年2月5日2:07
  • \ begingroup美元 有道理,但是你在连接上搞砸了一些东西,上面的第一个图是证明。将导入和连接的代码添加到问题中。 \ endgroup美元
    - - - - - -卡米洛·Rada
    2019年2月5日2:10
  • \ begingroup美元 @irfan看到答案的变化。 \ endgroup美元
    - - - - - -卡米洛·Rada
    2019年2月5日15:33
  • 1
    \ begingroup美元 @亲爱的Camilo Rada,这对我来说很有效。谢谢你的宝贵时间。最后一件事,如何从数据中提取经纬度和经度。比方说,我想要一个MOD10C2的子集,从10到30 N和40到60 E,所以我应该有三个.mat文件。E(1)积雪,(2)纬度,(3)lon作进一步分析。 \ endgroup美元
    - - - - - -伊尔凡
    2019年2月6日8:29

Baidu
map