MATLAB中自定义栅格数据地理坐标R,利用geotifwrite写入tif

场景描述:

有时候将nc格式的数据转成tiff,或者是将一个矩阵输出成带有地理坐标信息tiff数据时,常常涉及到空间参考的定义和geotiffwrite()函数。

问题描述:

以全球数据为例,今天发现在matlab中对矩阵进行显示后,该数据是正常的,但是添加了空间参考输出后,数据的南北维度颠倒了。如图1是正常显示的结果,图2是输出后的南北纬被颠倒的结果。图下方是一段示例代码。

正常显示的结果应该如下所示:

上述倒置的图像的代码是:

Matlab 复制代码
A=zeros(180,360);  //创建一个180行,360列的矩阵
A=function;  //对A进行复制计算,这里就用function来指代
Ref=georasterref('RasterSize',[180,360],'Latlim',[-90,90],'Lonlim',[-180,180]);  //定义空间参考信息
geotiffwrite(outfilepath, A, Ref); //将A输出到tiff文件中

解决方法:

在完成了矩阵A的赋值后,应该在后面添加一个rot90()函数将原来的数据倒置一下,所以纠正后的代码应该如下。

Matlab 复制代码
A=zeros(180,360);  //创建一个180行,360列的矩阵
A=function;  //对A进行复制计算,这里就用function来指代
A=rot90(A');  //将矩阵A倒置一下,即南北维度调换
Ref=georasterref('RasterSize',[180,360],'Latlim',[-90,90],'Lonlim',[-180,180]);  //定义空间参考信息
geotiffwrite(outfilepath, A, Ref); //将A输出到tiff文件中