Range 修复IDL中颜色栏调色板中的范围

Range 修复IDL中颜色栏调色板中的范围,range,idl,colorbar,palette,Range,Idl,Colorbar,Palette,我正在使用IDL,我有一个数组,如: intensity[360,13] 包含值范围为0到60的条目。 重点是我想用0到100的比例来绘制它。 但是,如果我这样做: im = IMAGE(intensity, TITLE='Intensity', DIMENSIONS=[1400,400]) im = COLORBAR(TARGET=im) im.Save, 'intensity.png' 它固定了从强度值的最小值到最大值的任意比例。我怎么能强迫它呢?我试着说: im = COLORBAR(

我正在使用IDL,我有一个数组,如:

intensity[360,13]
包含值范围为0到60的条目。 重点是我想用0到100的比例来绘制它。 但是,如果我这样做:

im = IMAGE(intensity, TITLE='Intensity', DIMENSIONS=[1400,400])
im = COLORBAR(TARGET=im)
im.Save, 'intensity.png'
它固定了从强度值的最小值到最大值的任意比例。我怎么能强迫它呢?我试着说:

im = COLORBAR(TARGET=im, RANGE=[0,100])
但它只设置颜色栏值,而不更改图像中的颜色。
是否可以将0和100之间的比例标准化,或者我应该以不同的方式进行操作?对不起,我不习惯IDL,我有点赶时间:)非常感谢

您是否尝试过将数组乘以某个分数来重新规范化它?在您的情况下,您可以执行以下操作:

copy_array  = intensity
copy_array *= 100/60
您还可以使用类似于
BYTSCL.PRO
的例程,将关键字
TOP
设置为100。可以找到文档。

您需要:

首先获取rgb颜色方案,并通过以下方式将其保存到
rgb

TVLCT, rgb, /get
然后:

1:
bytscl
强度数组,将最小值和最大值设置为所需颜色栏的上限和下限。 例如,如果您希望颜色栏变为10到70,则:

copy_array  = bytscl(intensity, min = 10, max = 70).
2:按照正常方式进行成像,但使用RGB_表:

im = IMAGE(intensity, TITLE='Intensity', DIMENSIONS=[1400,400], RGB_table = rgb)
3:打开颜色栏(但无目标),使用最小值、最大值和rgb颜色表:

im = COLORBAR(RANGE=[10,70], RGB_table)   (you may also need to supply a position for the bar too).
如果在colorbar命令中使用
target
,则无法设置范围