IDL 9.1版本具有以下新增功能和更新:
新增功能:
Windows 小部件的深色模式 球谐变换 GAUSS_QUAD_LEGENDRE 功能 读取和转换 float16/binary16 半精度浮点数 命令行进度条 IDL_HASHVAR 功能 新的 SVG 图标 RENDER_SVG 功能 RENDER_ICON 功能 SVG_ICON_BROWSER 例程
更新功能:
VS Code 的 IDL 扩展
HDF5 可以处理空数组
HttpRequest 进度条
IDL_String::替换新的 Count 参数
对 NaN 和 Infinity 值的 JSON 支持
LEGEND 填充颜色
MapContinents Shapefile
多行工具提示
PRINT/PRINTF 新的 NEWLINE 关键字
Shapefile 增强
TS_SMOOTH新的 NAN 关键字
WIDGET_BROWSER 支持
WIDGET_LABEL 和 WIDGET_TEXT 文本和背景颜色
WIDGET_PROPERTYSHEET Top Header 关键字
WIDGET_TEXT 对齐关键字
WIDGET_TEXT FRAME = 0
WRITE_PNG 压缩关键字
Dataminer 安装
Windows小部件的深色模式
在 Windows 上,IDL 小部件现在支持深色模式主题。您可以使用新的 IDL 首选项IDL_THEME 更改小部件主题,该首选项可以设置为 0 表示浅色模式(默认),设置为 1 表示深色模式。可以使用 IDL Workbench 中的首选项对话框或使用 PREF_SET 例程来设置主题首选项。新的只读系统变量 !THEME允许您确定首选项的当前值。
在Windows 上,所有 IDL 小部件应用程序(包括ENVI)都将遵循主题设置。
如果您更改主题,则必须重新启动 IDL 才能使更改生效。
IDL 小组件主题独立于 Windows 系统主题设置。
IDL Workbench 有自己的主题设置,与此设置无关。
直接图形窗口和对象图形窗口中的图形不受影响。
Linux和 Mac 平台将默认忽略主题首选项,并始终使用浅色模式。
球谐变换
IDL 现在具有用于执行正向和逆向球谐变换的内置函数。
restore, filepath('reanl20v3_1dec1884_512x256dbl.sav', $
subdir=['examples', 'data'])
T63 = sphere_harm_filter(A, 63)
im = image(A, rgb_table = 75, layout=[1, 2, 1], $
dim=[550, 580], min = -30, max = 30)
im = image(T63, rgb_table = 75, /current, $
layout=[1, 2, 2])
GAUSS_QUAD_LEGENDRE 功能
读取和转换 float16/binary16 半精度浮点数
a = uint([0, 1, 0x8001, 0x3ff, 0x3c00, 0xbc00, 0x7bff, 0x7c00, 0xfc00, 0x7fff])
b = float16_decode(a)
help, b
print, b
B FLOAT = Array[10]
0.00000 5.96046e-08 -5.96046e-08 6.09756e-05 1.00000 -1.00000 65504.0 Inf -Inf NaN
现在转换回来:
c = float16_encode(b)
help, c
print, c, format='(10z)'
C UINT = Array[10]
0 1 8001 3ff 3c00 bc00 7bff 7c00 fc00 7fff
命令行进度条
length = 1000 ; for example, file length in bytes
cli_progress.initialize, title = 'Download', maximum = length, /remaining
for i=0,length do begin & $
cli_progress.update, i & $
wait,0.01 & $
endfor
Download 46% [##################----------------------] 6m:27s
CLI_Progress.Initialize, ping_pong = !true, complete_char = "<IDL>"
for i = 0,114 do begin & $
CLI_Progress.Update & $
wait, 0.02 & $
endfor
[-----------------------------------<IDL>-----]
IDL_HASHVAR 功能
新的 SVG 图标
/resource/bitmaps/svg/brands
/resource/bitmaps/svg/regular
/resource/bitmaps/svg/solid
RENDER_SVG 功能
file = filepath('folder-open.svg', subdir=['resource', 'bitmaps', 'svg', 'regular'])
img = RENDER_SVG(file, width=128, height=128, background=0xCCCCCC, foreground=0xFF0000)
help, img
i = image(img)
IMG BYTE = Array[128, 128, 3]
RENDER_ICON 功能
w = widget_base(/row)
icon = RENDER_ICON("folder-open")
w1 = widget_base(w)
wb = widget_button(w1, value=icon, /bitmap)
icon = RENDER_ICON("folder-open", width=32, height=32)
w1 = widget_base(w)
wb = widget_button(w1, value=icon, /bitmap)
icon = RENDER_ICON("folder-open", width=64, height=64)
w1 = widget_base(w)
wb = widget_button(w1, value=icon, /bitmap)
widget_control, w, /realize
SVG_ICON_BROWSER 例程
VS Code 的 IDL 扩展
功能齐全的IDL 代码编辑器,具有变量类型检测、自动完成、色彩编码、问题报告和代码格式化功能。
带有断点的集成调试器,或在 VS Code 终端中运行命令行 IDL。
支持 IDL Notebook 风格的界面,带有嵌入式图形并保存为 PDF。
可定制的主题和颜色。
悬停帮助包含完整的 IDL 文档,包括代码示例。
为 SAVE 文件或 DLM 中的例程创建例程定义文档。
原生多语言支持。
HDF5 可以处理空数组
HttpRequest 进度条
IDL_String::替换新的 Count 参数
IDL> str = '.......'
IDL> print, str.replace('.', '*', 3)
***....
IDL> str = '.......'
IDL> print, str.replace('.', '*', -3)
....***
对 NaN 和 Infinity 值的 JSON 支持
LEGEND 填充颜色
p = plot(/test)
l = legend(target=p, fill_color='yellow')
MapContinents Shapefile
m0 = Map('Geographic', limit=[41, -93, 50, -83], margin=[0.1, 0.1, 0.1, 0.05])
m0.mapgrid.label_position = 0
m0.mapgrid.linestyle = "none"
m0.mapgrid.grid_longitude = 2
m0.mapgrid.grid_latitude = 2
m1 = MapContinents(/hires, fill_color="light green")
m2 = MapContinents(/lakes, /hires, fill_color='light blue', linestyle=0)
m3 = MapContinents(/islands, fill_color='green')
m4 = MapContinents(/rivers, /hires, color='blue', thick = 2)
多行工具提示
PRINT/PRINTF 新的 NEWLINE 关键字
Shapefile 增强
TS_SMOOTH新的 NAN 关键字
WIDGET_BROWSER 支持
WIDGET_LABEL 和 WIDGET_TEXT 文本和背景颜色
pro widtext_ex_change, ev
common _widtext, w1, w2
widget_control, w1, foreground_color=bytscl(randomu(s,3)), background_color=bytscl(randomu(s,3))
widget_control, w2, foreground_color=bytscl(randomu(s,3)), background_color=bytscl(randomu(s,3))
end
pro widtext_ex
common _widtext, w1, w2
w = widget_base(xsize = 200, /column)
w0 = widget_base(w, /row)
f = 'Segoe*24'
w1 = widget_label(w0, value='Label', foreground_color=[0,200,0], background_color=[255,255,0], font=f, scr_xsize=100)
w2 = widget_text(w0, value='My Text', /editable, foreground_color=[200,0,0], background_color=[0,255,255], font=f)
w0 = widget_base(w, /row)
wbutton = widget_button(w0, value='Change', event_pro = 'widtext_ex_change', font=f)
widget_control, w, /realize
xmanager,'widtext_ex', w, /no_block
end
WIDGET_PROPERTYSHEET Top Header 关键字
WIDGET_TEXT 对齐关键字
ALIGN_BOTTOM、ALIGN_CENTER、ALIGN_LEFT、ALIGN_RIGHT 和 ALIGN_TOP 关键字控制小部件在其父部件中的位置。这些关键字在所有平台上都是允许的。默认值为 ALIGN_CENTER。
新的ALIGNMENT 关键字允许您设置文本对齐方式。此关键字可用于Windows平台,但在其他平台上将被静默忽略。
WIDGET_TEXT FRAME = 0
WRITE_PNG 压缩关键字
Dataminer 安装
ArmPL 24.04 CEF 121.3.7 for Windows and Mac. To support Red Hat-based systems (Fedora, CentOS, and Rocky Linux). Linux uses CEF 99.2.14. antlr 2.7.7 curl 8.9.0 Eclipse CVS Client 1.4.2000.v20211124-1800 eclipse-egit-plugin 6.7.0.202309050840-r eclipse-platform 4.29.0.v20230903-1000 Eclipse Temurin JDK 21.0.2 Eclipse Temurin JRE 21.0.2 HDF5 1.14.3 Inno Setup 6.2.2(u) jackson-json-processor 2.15.2 ibtiff 4.6.0t Libxml2 2.13.3 microsoft-vcredist 14.40.33810 mongo-c-driver 1.27.0 mongo-cxx-driver 3.10.1 nghttp2 1.62.1 NumPy 1.24.4 NumPy 1.26.4 OpenSSL 3.3.1 P4Eclipse 2023.1.2516406 poco 1.13.3 Python 3.12.4 shapelib 1.6.0 SQLite 3.46.0 x11-dev-tools 1.0.2 X PixMap Library 3.5.17 xerces-c 3.2.5 zlib 1.3.1
Eclipse JGit 6.7.0.202309050840-r libtirpc 1.3.4 LunaSVG 2.3.9
HASP Sentinel-LDK_SDK