用IDL生成数组的方法


发布日期 : 2025-12-29 02:27:11 UTC

访问量: 202 次浏览

有一段时间不用IDL了,今天在处理FAST格式的Landsat影像时,想要按波段将FAST格式的影像存储为GeoTIFF格式的影像,需要针对波段数生成数组, 于是重新看了一下在IDL中生成数组。 对于一维数组而言,IDL自然就可以生成一个数组,每个元素的值就是其指标值。

IDL> a = lindgen(n)

有了这样一个数组,下面的操作就和操作一个元素是一样的,比如要生成一个存指标的平方值的数组。

IDL> b = a^2

那么对于二维数组应该怎么办呢?我想到的办法是生成两个数组,一个数组的每个元素存其行指标,另外一个数组的每个元素存其列指标。具体实现可以作如下操作。 `

IDL> a = lindgen(n,m) IDL> y = a/n IDL> x = a-y*n `

如此之后将x和y两个和a大小相同的数组当作a的x坐标和y坐标处理就可以了。比如要生成一个高斯函数。

IDL> gauss = exp(-(x^2+y^2))

多维数组可以类推。这样处理可以比循环快很多,尤其是多维的时候,不过显而易见,存储量增大了很多,这就是代价。