matlab将nc数据转换为tif
来源:互联网 发布:餐饮软件开发 编辑:程序博客网 时间:2024/05/17 09:42
直接接入正题,用arcgis直接读取气象数据(.nc)是比较困难的,所以先用matlab将nc数据转换成易于arcgis处理的tif数据。
解决思路:将每个波段转换成一个tif文件。
matlab提供了geotiffwrite供我们直接输出tif数据。
该函数主要用到以下三个参数:
path:输出tif的全路径
Data:数据矩阵
Refference:空间参考信息
源码如下:
clcclear% nc文件根路径ncFileBasePath='G:\';% 输出tif根路径tiffOutFileBasePath='G:\tif\';% 获取该文件夹下所有nc文imageList=dir(strcat(ncFileBasePath,'*.nc'));for fileindex=1:length(imageList) % 完整文件名 filename=imageList(fileindex).name; % 不带后缀的文件名 filenameWithoutSufix=filename(1:find(filename=='.')-1); % nc文件的完整路径 fileFullPath=strcat(ncFileBasePath,filename); ncinf = ncinfo(fileFullPath); ETaSets=ncread(fileFullPath,'spei'); SizeInfo=size(ETaSets); for subsetIndex=1:SizeInfo(3) disp(subsetIndex); MonthData=ETaSets(:,:,subsetIndex); MonthData(isnan(MonthData))=-8888; tifOutputFullPath=strcat(tiffOutFileBasePath,filenameWithoutSufix,num2str(subsetIndex,'%02d'),'.tif'); MonthData = rot90(MonthData); Refference=georasterref('RasterSize',size(MonthData),'Latlim',[-89.75 89.75],'Lonlim',[-179.75 179.75]); Refference.ColumnsStartFrom = 'north'; geotiffwrite(tifOutputFullPath,MonthData,Refference); endenddisp('成功!');
大家在使用时可能会用到以下几个问题。
1.如何取到我想要的波段信息?
ETaSets=ncread(fileFullPath,'spei');
这里用到ncread函数,可以读取nc数据的某个属性,但每个函数中的属性名可能不一致。我们可以在ncinf中查看。
ncinf = ncinfo(fileFullPath);
在工作区双击ncinf变量,打开variables(变量)窗口
我们看到我们想要的变量名为‘spei’
2.Refference的经度范围和纬度范围?
Refference=georasterref('RasterSize',size(MonthData),'Latlim',[-89.75 89.75],'Lonlim',[-179.75 179.75]);
同样可以在ncinf中查看到
分别双击lon和lat的attribute查看
3.用你的代码输出的图像是反转的?
类似下面的情况:
可以看到图像发生了一定的偏转,具体原因我也不太清楚,希望有大神指点,但是这种情况可以通过以下 几种方式调节:
将矩阵旋转一定角度:
% 逆时针旋转90°MonthData = rot90(MonthData);
% 上下翻转MonthData = flipud(MonthData)
% 左右翻转MonthData = fliplr(MonthData)
设置Refference的属性:
Refference.ColumnsStartFrom = 'north';Refference.ColumnsStartFrom = 'south';Refference.RowsStartFrom = 'east';Refference.RowsStartFrom = 'west';
经过以上设置就能得到精确的tif图像了
以上分析比较浅,有什么错误的地方欢迎指正。
阅读全文
1 0
- matlab将nc数据转换为tif
- MATLAB读取nc文件并转换为.tif格式
- 将TIF 文件转换为图片
- 将内存图像数据保存为png及tif方法
- 将caffemodel文件转换为Matlab可用的数据形式
- 使用C#将word文档转换为可供传真的tif文件
- C#使用GDAL将tif图像转换为jpg、bmp、png和gif格式的图像
- Matlab 查阅、读取nc数据
- 将MATLAB中的mat数据转换为OpenCV能够读取的xml数据
- TIF 文档转换为 PDF文档
- matlab 将dcm文件转换为raw
- matlab将图像转换为视频
- MATLAB 将图像序列转换为视频
- MATLAB转换TXT中灰度值数据格式,将灰度数据输出为图像
- 将matlab数据保存为excel文件
- 将matlab数据保存为excel文件
- 【整理】查看SVG图片,将SVG图片转换为PNG,JPG,TIF等方面的工具或软件
- MATLAB 读取NC数据的命令
- css三种表示引用方式
- spring中的url模板映射
- 一次非常有意思的SQL优化经历:从30248.271s到0.001s
- ubuntu中CUDA 5.5安装
- Swift-颜色设置技巧和(.clr)文件的创建和使用
- matlab将nc数据转换为tif
- Android传感器介绍
- Hibernate一对多映射
- saltstack学习-基本介绍和安装
- Ubuntu中安装Nvidia闭源驱动
- DNS在架构设计中的巧用
- 线程安全与可重入函数
- day09多态、接口、抽象类
- 【GDSOI2017】 逃亡