利用IDL中的SHIFT函数实现经度翻转

在使用IDL处理图像的时候会遇到这么一种问题,就是经度起点的问题,通常情况下,我们是以0度本初子午线作为起点,也就是如图所示的图像。

但是也有特殊情况,例如下面这种数据:

在一些特殊要求下,我们需要对下面的这种数据做一个偏转,使其图像统一。这里我们用到了IDL中的SHIFT函数。

函数原型

Result = SHIFT(Array, S1, ..., Sn)

这里Array就是一个数组,S1,S2,S3分别代表对应Array维数的操作,这么说可能有点拗口。看下面一段代码:

A = INDGEN(5)
PRINT, A, SHIFT(A, 1), SHIFT(A, -1)

结果为

0   1   2   3   4

4 0 1 2 3

1 2 3 4 0

可以看出,这里对A这个数组进行了一次右移,一次左移。

扩展到二维,S1代表对Array第一维做的操作,S2代表第二维,以此类推。

回到正题,在处理数据的时候,如果需要偏移经度,这时候只需要对数据对应的经度的维数加或者减去相应的数值即可。

例如sst是一个[4096*2048]的数组,对应第二张图,如果需要转换成第一张图的形式,需要做以下操作:

 sst=shift(sst,2048)
IDL遥感应用入门(14):IDL读取netcdf数据(.nc) 利用IDL中的REVERSE函数实现纬度反转

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论