- 积分
- 595
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2016-12-14
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
各位老师,大佬好,
我目前想用matlab提取两种文件相同地理位置的格网值,并且计算他们的相关系数。这两种文件大小不同,nc文件大,tif文件小,nc文件空间范围包含tif文件。 ps:tif文件本质上是用一个不规则的矢量掩膜在arcgis软件上裁剪大的tif文件(大小和nc文件一样)得到的,是我的真实研究区。 文件的示意图如下:
我的思路是,先用ind2sub函数提取tif文件有效值的坐标,然后利用得到的坐标基于sub2ind函数得到tif文件和nc文件的索引值。 问题在于 这样操作得到的nc文件值的位置和tif文件的位置是否是一 一对应的? 如果不对应的话,有大神知道matlab如何根据不规则矢量或者栅格掩膜来裁剪,从而使得两种文件的空间范围一致?
我的代码如下:
filename1='D:\modis\result\MOD11C1\day'
filename5='C:\Users\Administrator\Desktop\2004_5km'
file1=dir(fullfile(filename1,'*.tif')) %tif范围小
file5=dir(fullfile(filename5,'*.nc')) %nc范围大
Input_length=length(file1)
lst_modis=[]
lst_clm=[] %定义初始0矩阵
for i=1:Input_length
[lst_day,R]=geotiffread(fullfile(filename1,file1(i).name))
a=double(lst_day*0.02) %尺度因子转换单位
idx=find(a~=0) %去除无效值
[x,y]=ind2sub(size(a),idx)
A=a(sub2ind(size(a),x,y))
filename=fullfile(filename5,file5(i).name)
skin=(ncread(filename,'TSKIN'))' %需要转置
SKIN=skin(sub2ind(size(skin),x,y)) %提取同样位置nc文件的温度信息
lst_modis=[lst_modis;average]
lst_clm=[lst_clm;SKIN]
end
number=length(lst_clm)
CC=corrcoef(lst_modis,lst_clm); %R 相关性系数
|
|