MSWEP数据nc格式转tif格式

11 篇文章 4 订阅
6 篇文章 12 订阅

这里将数据从0.1°重采样到0.25°

%%
clc;
clear;

%%
fullpath = mfilename('fullpath');
[path, name] = fileparts(fullpath);

%%
ncpath = strcat(path, '\3hourly_nc\');
tifpath = strcat(path, '\tiffile_test\');
files = dir(strcat(ncpath, '*.nc'));
len = length(files);

for i = 1 : len
    filename = files(i).name;
    filename = filename(1 : size(filename, 2) - 3);
    ncfile = strcat(ncpath, filename, '.nc');
    ncinf = ncinfo(ncfile);
    
        
    if size(filename, 2) > 19
        filename = filename(1 : 19);
    end
    
    %
    stryear = filename(1 : 4);
    strdays = filename(5 : 7);
    strhour = filename(9 : 10);
    
    filedate = datetime(strcat(stryear, '-01-01')) + caldays(str2double(strdays) - 1);
    filedate = char(filedate);
    filedate = filedate([1 : 4, 6 : 7, 9 : 10]);
    filedate = strcat(filedate, strhour);
       
    OutputPath = strcat(tifpath, filedate, '.tif');
    
    if exist(OutputPath, 'file') == 2
        [num2str(i), '	', num2str(len), '	', filename, '	', filedate, '	continue']
        continue;
    end
    
    [num2str(i), '	', num2str(len), '	', filename, '	', filedate]
    
    preciSets = ncread(ncfile, 'precipitation');
    preciSets = rot90(preciSets);
    % preciSets = preciSets';
    lon = ncread(ncfile, 'lon');
    lat = ncread(ncfile, 'lat');
    
    [X, Y] = meshgrid(lon, lat);
    lat1 = 89.875 : -0.25 : -89.875;
    lon1 = -179.875: 0.25 : 179.875;
    [XI, YI] = meshgrid(lon1, lat1);
    preciSets1 = interp2(X, Y, preciSets, XI, YI, 'linear');
    
    Refference = georasterref('RasterSize', size(preciSets1), 'Lonlim', [-180 180], 'Latlim', [-90 90]);
    geotiffwrite(OutputPath, preciSets1, Refference);
end
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: NC格式是一种常见的气象、海洋等领域数据格式,而TIFF则是一种图像文件格式。如果要将NC格式数据换为TIFF格式的图像,需要用到MATLAB软件。 MATLAB软件提供了nc文件读写函数,可以读取NC格式数据文件。通过调用这些函数,可以将NC格式数据换成MATLAB中的数据格式。接着将MATLAB中的数据保存为TIFF格式的图像即可。 具体的步骤如下: 1.使用MATLABnc文件读写函数,读取NC格式数据文件,将其化为MATLAB中的数据格式。 2.为了将数据保存为TIFF格式的图像,需要根据数据的分辨率、大小等因素创建一个新的空图像。 3.利用MATLAB中的图像处理函数,将数据映射到新创建的图像上。 4.使用MATLAB的imwrite函数,保存映射后的图像为TIFF格式。 需要注意的是,在这个过程中,需要确保数据的空间参考、投影等信息与图像一致,否则会导致产生误差。 通过这些步骤,就可以将NC格式数据换成TIFF格式的图像,方便后续处理及展示。 ### 回答2: NC格式是一种常见的气象、海洋、地球物理等科学领域数据格式,而tif格式是一种光栅图像格式。如果需要将NC格式数据换成tif格式,则需要借助Matlab等软件进行处理。 具体步骤如下: 1. 导入NC格式数据Matlab提供了ncread函数,可以读取NC格式数据。通常情况下,使用ncinfo函数先查看NC文件的元数据信息,以便正确读取和处理数据。 2. 处理NC数据。根据具体需求,对NC数据进行处理。例如,可以进行数据筛选、平均、插值、重采样等操作。 3. 生成tif格式数据。对处理后的数据,可以使用Matlab中提供的imwrite函数将其换成tif格式数据。需要注意的是,imwrite函数要求输入数据必须为二维矩阵或三维数组。 4. 保存tif格式数据。将生成的tif格式数据保存到指定的路径下,以便后续使用。 总之,将NC格式数据换成tif格式需要一定的编程技巧和处理经验,但是Matlab提供了很好的支持,在掌握相关技巧之后,可以进行快速、高效的数据换。 ### 回答3: nc格式是一种常见的科学数据格式,常用于气象、海洋学、地质学等领域。而tif格式是一种常用的图像格式,我们通常将遥感影像、卫星影像等数据换为tif格式。 在matlab中进行nc格式tif的操作,可以使用matlab自带的netcdf工具箱。具体操作步骤如下: 1. 导入nc格式数据:使用matlab的netcdf.open函数打开nc格式文件,使用netcdf.getVar函数读取数据。 2. 处理数据:由于nc格式数据通常为多维数组,需要使用matlab的矩阵操作函数对数组进行处理。 3. 导出tif格式数据:使用matlab的imwrite函数将处理后的数据输出为tif格式文件。 需要注意的是,在进行nc格式tif的过程中,需要根据数据特点对matlab代码进行相应的修改和调整,并确保数据处理的精度和准确性。 综上所述,nc格式换为tif格式需要借助matlab提供的工具以及相应的操作技巧,以完成数据换和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A-Chin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值