IDL新特性
新增功能
自動(dòng)檢查更新
IDL支持在啟動(dòng)時(shí)自動(dòng)檢查更新。如果有新版本,IDL將在控制臺(tái)輸出提示。此配置項(xiàng)可以在“窗口”>“首選項(xiàng)”中進(jìn)行開(kāi)關(guān),或使用 IDL_UPDATE_CHECK 配置。

IDL Tasks
IDL Tasks是面向?qū)ο蟮?,可以封裝IDL程序。
對(duì)于用戶來(lái)說(shuō),IDL Tasks 提供了如下技術(shù)優(yōu)勢(shì):
IDLTask對(duì)象包含了所有輸入輸出參數(shù),能夠方便訪問(wèn)
通過(guò)IDLQueryTaskCatalogTask可以查詢可用的IDLTask;
能夠方便了解輸入?yún)?shù)及其格式要求;
支持驗(yàn)證輸入?yún)?shù)的合理性,包含數(shù)據(jù)類型、可選項(xiàng)、范圍以及其他附加約束。
對(duì)于開(kāi)發(fā)者來(lái)說(shuō),IDL Tasks提供了如下技術(shù)優(yōu)勢(shì):
編寫(xiě)新的程序,允許IDLTask驗(yàn)證輸入?yún)?shù),而不需要自己編寫(xiě)額外代碼;
可以方便地將現(xiàn)有的程序轉(zhuǎn)換為IDLTask,只需要?jiǎng)?chuàng)建一個(gè)task文件來(lái)配置程序;
提供每個(gè)參數(shù)的信息,如方向(輸入或輸出)、數(shù)據(jù)類型、可選項(xiàng)、有效范圍等;
IDL Tasks可以被其他編程語(yǔ)言調(diào)用。
如果有程序在使用IDL Task Engine,并且希望獲取task信息,可以使用IDLQueryTaskTask和IDLQueryAllTasksTask。
IDL Task Engine
除了引入IDLTask,同時(shí)提供了一個(gè)IDLTask Engine,支持在命令行模式中運(yùn)行IDLTasks。可以將IDL功能嵌入到其他語(yǔ)言開(kāi)發(fā)的程序或環(huán)境中。這些環(huán)境必須能夠處理standard streams (stdin, stdout, and stderr)。

NCDF_PARSE
現(xiàn)在提供了一個(gè)新的函數(shù)NCDF_PARSE,能夠解析NetCDF-3 或 NetCDF-4文件,并返回一個(gè)HASH結(jié)構(gòu),包含了文件的所有信息和數(shù)據(jù)。

NCDF_IS_NCDF
現(xiàn)在提供了一個(gè)新的函數(shù)NCDF_IS_NCDF,能夠識(shí)別文件是否為NetCDF-3格式。

全新許可方式
從ENVI5.4/IDL8.6開(kāi)始,將采用Flexera許可管理技術(shù),用戶可以方便的進(jìn)行許可授權(quán)和管理,可根據(jù)需要選擇使用單機(jī)版或者浮動(dòng)版本,這種許可管理機(jī)制比之前的靈活便捷。

更新內(nèi)容
C Printf-Style Format Strings
當(dāng)調(diào)用IDL的輸入輸出程序時(shí)使用了C printf-style format string,現(xiàn)在可以直接指定字符串,而不需要%符號(hào)。例如:
PRINT, INDGEN(3), FORMAT = '(%"The values are: %d %d %d")'
現(xiàn)在可以這樣使用:
PRINT, INDGEN(3), FORMAT = 'The values are: %d %d %d'
為了更好地兼容性,新版本仍然可以使用舊的方式。
圖形字體改進(jìn)
新版本中可視化函數(shù)中的字體默認(rèn)為DejaVuSans。使得繪制曲線和其他可視化圖形時(shí)的字體更加漂亮。如果需要,可以使用FONT_NAME屬性修改為其他字體,之前的默認(rèn)字體為Helvetic。可以查看PLOT、TEXT或其他可視化函數(shù)中的說(shuō)明。

新的TrueType字體
IDL提供了全新的4個(gè)字體:DejaVuSans Italic、DejaVuSans Bold、DejaVuSans Bold Italic和一個(gè)自定義的DejaVuSymbol字體。DejaVuSymbol字體包含了很多有用的數(shù)學(xué)符號(hào)。這些字體可以被用在直接圖形法、對(duì)象圖形法和新的可視化函數(shù)中,同時(shí)可以被Embedded Formatting Commands使用。查看IDL幫助中的 "Using TrueType Fonts" 專題查看新的DejaVuSymbol 字體。
改進(jìn)的TeX-like數(shù)學(xué)符號(hào)
TEXT函數(shù)使用新的DejaVuSymbol 字體來(lái)顯示數(shù)學(xué)符號(hào)。
Python-to-IDL Bridge錯(cuò)誤處理
使用Python-to-IDL bridge,當(dāng)在IDL命令行中遇到格式錯(cuò)誤或程序錯(cuò)誤時(shí),新版本將拋出一個(gè)IDLError異常,并停止執(zhí)行python腳本。可以使用標(biāo)準(zhǔn)的 Python try/except block 來(lái)獲取這些錯(cuò)誤。查看IDL幫助中的 "Python to IDL Bridge" 獲取詳細(xì)信息。
注:為了使用新的錯(cuò)誤處理功能,在導(dǎo)入idlpy到Python時(shí),需要導(dǎo)入所有的module,而不僅僅是IDL class:

IDL IPython Notebook 支持 Magic Commands
IDL IPython (Jupyter) Notebook支持magic commands,控制notebook行為。可用的命令支持我們嵌入HTML,執(zhí)行任意的Python代碼,從inline切換到windowed graphics。

編譯和恢復(fù)代碼時(shí)支持忽略已存在程序
正常情況下,當(dāng)我們編譯pro代碼或restore save文件時(shí),已存在程序?qū)⒈惶鎿Q為新加載的程序。這個(gè)特性在一些情況下會(huì)造成異常錯(cuò)誤,比如當(dāng)ENVI在運(yùn)行時(shí),而restore進(jìn)來(lái)的程序里包含了舊版代碼。現(xiàn)在可以通過(guò)使用SKIP_EXISTING關(guān)鍵字來(lái)避免覆蓋已存在程序。RESTORE、RESOLVE_ROUTINE和RESOLVE_ALL均支持SKIP_EXISTING關(guān)鍵字。

SYSTIME新增關(guān)鍵字
SYSTIME函數(shù)新增ELAPSED關(guān)鍵字,代替了原有的Elapsed Seconds參數(shù)。SecondsFlag 和 ElapsedSeconds 參數(shù)被廢棄,但是舊版本程序依然可用。新編寫(xiě)代碼中建議使用SECONDS和ELAPSED關(guān)鍵字。
高精度可重復(fù)Timer
現(xiàn)在可以創(chuàng)建定時(shí)器(timer),并按照精確的循環(huán)時(shí)間進(jìn)行重復(fù)響應(yīng),而不必?fù)?dān)心IDL花費(fèi)在處理timer回調(diào)函數(shù)的時(shí)間。查看Timer.Set中的REPEAT關(guān)鍵字獲取詳細(xì)信息。
庫(kù)更新
cURL庫(kù)更新到7.49.1版本;
cURL中的OpenSSL庫(kù)版本更新到1.0.2h;
Python Bridge已支持Python 3.5版本。

京ICP備09015132號(hào)-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號(hào)豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫(huà)