編輯推薦
數據可視化是進行信息提取的有效手段之一。《IDL程序設計:數據可視化與ENVI二次開發》就是一本專門針對交互式數據語言——IDL的可視化應用的編程指南。書中由淺入深地介紹瞭IDL程序設計的語法基礎,著重對比瞭直接圖形法、對象圖像法和快速可視化三種數據可視化方法,描述瞭它們的使用方法和特點,最後介紹瞭IDL與其他程序語言如C++、C#、Java等混閤編程以及ENVI功能擴展與二次開發;同時,列舉瞭豐富的示例代碼和注釋說明,並對IDL中的各種函數進行瞭歸納。隨書附贈光盤中含有書中所有示例代碼和實驗數據,方便讀者實踐。
本書內容係統全麵,可作為遙感、地理信息係統、計算機、圖形圖像處理及相關專業本科生和研究生的教學用書和實驗教程,也可作為計算機軟件開發人員的工具書。
內容簡介
《IDL程序設計:數據可視化與ENVI二次開發》根據學習編程語言的特點,首先介紹瞭IDL的編寫環境、代碼的編寫優化與調試、語法和控製基礎、輸入與輸齣等基礎內容;然後針對IDL的快速、高效可視化特點介紹瞭直接圖形法、對象圖形法、快速可視化、智能化編程、界麵程序與事件處理、圖像處理與分析等內容;對IDL中的數學與統計分析、數據庫、小波與信號處理和醫學應用等內容進行瞭描述;最後講述瞭IDL與其他語言的混閤編程調用和ENVI二次開發。
《IDL程序設計:數據可視化與ENVI二次開發》可以作為高校地理信息係統、遙感、計算機、圖形圖像處理及相關專業本科生和研究生的實驗教材,也可以作為計算機軟件開發人員的工具書。
作者簡介
董彥卿,Esri中國信息技術有限公司遙感事業部高級遙感産品谘詢師,畢業於中國礦業大學(北京)攝影測量與遙感專業並獲得碩士學位。目前主要從事ENVI/IDL軟件應用、遙感技術支持與谘詢以及軟件應用與推廣工作,具備四年ENVI/IDL遙感應用培訓主講經驗;曾負責多個IDL係統開發與ENVI二次開發項目,具有豐富的研發經驗。
內頁插圖
目錄
第1章 IDL簡介
1.1 IDL的特點
1.2 IDL學習資源
第2章 IDL工作颱
2.1 啓動工作颱
2.2 工作颱組成
2.2.1 菜單欄
2.2.2 工具欄
2.2.3 項目資源管理器
2.2.4 代碼區域
2.2.5 控製颱
2.2.6 狀態欄
2.2.7 視圖
2.3 幫助
2.3.1 啓動幫助
2.3.2 使用幫助
第3章 代碼編寫與運行
3.1 批處理模式
3.2 文件模式
3.2.1 過程
3.2.2 函數
3.3 命令行模式
3.4 工程項目模式
3.4.1 工作空間
3.4.2 新建工程
3.4.3 運行工程
3.4.4 導人工程
3.4.5 導齣工程
3.5 符號與快捷鍵
3.5.1 符號
3.5.2 快捷鍵
3.6 斷點與調試
3.6.1 斷點操作
3.6.2 調試步驟
第4章 語法基礎
4.1 數據類型
4.2 常量與變量
4.2.1 常量
4.2.2 變量
4.3 數組
4.3.1 創建數組
4.3.2 存儲數組
4.3.3 使用數組
4.3.4 數組運算
4.3.5 相關函數
4.3.6 矩陣運算
4.4 字符串
4.4.1 創建字符串
4.4.2 字符串連接
4.4.3 字符串轉換
4.4.4 處理函數
4.4.5 特殊字符
4.5 結構體
4.5.1 創建結構體
4.5.2 訪問結構體
4.5.3 結構體操作函數
4.6 指針
4.6.1 創建和訪問指針
4.6.2 空指針和非空指針
4.6.3 內存控製
4.6.4 指針有效判斷
4.7 對象
4.7.1 創建對象
4.7.2 調用對象
4.7.3 銷毀對象
4.7.4 相關函數
4.8 鏈錶
4.8.1 創建鏈錶
4.8.2 訪問鏈錶
4.8.3 鏈錶其他操作
4.8.4 銷毀鏈錶
4.9 哈希錶
4.9.1 創建哈希錶
4.9.2 訪問哈希錶
4.9.3 哈希錶添加
4.9.4 哈希錶其他操作
4.9.5 銷毀哈希錶
4.10 運算符
4.10.1 數學運算符
4.10.2 邏輯運算符
4.10.3 位運算符
4.10.4 關係運算符
4.10.5 矩陣運算符
4.10.6 其他運算符
4.10.7 運算符優先級
第5章 程序控製與優化
5.1 控製條件
5.2 循環語句
5.2.1 For
5.2.2 ForEach
5.2.3 While
5.2.4 Repeat
5.3 條件語句
5.3.1 If
5.3.2 Case
5.3.3 Switch
5.4 跳轉語句
5.4.1 Break
5.4.2 Continue
5.4.3 Goto
5.5 參數及關鍵字
5.5.1 位置參數
5.5.2 關鍵字參數
5.5.3 參數繼承
5.5.4 參數傳遞
5.5.5 相關函數
5.6 錯誤檢測與程序恢復
5.6.1 錯誤檢測
5.6.2 數學錯誤
5.6.3 程序恢復
5.7 編譯規則
5.8 高效編程
5.8.1 時間優化
5.8.2 空間優化
5.8.3 程序分析
第6章 輸入與輸齣
6.1 標準輸入與輸齣
6.1.1 輸入與輸齣函數
6.1.2 格式化輸入與輸齣
6.2 ASCII碼與二進製格式
6.2.1 打開文件
6.2.2 ASCII碼文件讀寫
6.2.3 二進製文件讀寫
6.3 圖像格式
6.3.1 圖像信息查詢
6.3.2 JPEG文件
6.3.3 BMP文件
6.3.4 TIFF文件
6.4 科學數據格式
6.4.1 CDF文件
6.4.2 HDF文件
6.4.3 HDF5文件
6.5 GRIB格式
第7章 直接圖形法
7.1 顯示設備
7.2 顔色顯示
7.2.1 索引顔色
7.2.2 彩色顯示
7.3 顯示區域
7.4 字體
7.4.1 矢量字體
7.4.2 設備字體
7.4.3 TrueType字體
7.5 顯示圖形和圖像
7.5.1 窗體控製
7.5.2 多圖形繪製
……
第8章 對象圖形法
第9章 快速可視化
第10章 智能化編程工具
第11章 界麵與事件處理
第12章 圖像處理與分析
第13章 數學與統計分析
第14章 數據庫
第15章 小波與數字信號處理
第16章 醫學應用
第17章 混閤編程
第18章 程序發布與部署
第19章 ENVI波段運算與功能擴展
第20章 ENVI二次開發
附錄 ENVI二次開發功能函數列錶
主要參考文獻
IDL程序設計:數據可視化與ENVI二次開發(附光盤1張) 內容簡介 本書是一本內容詳實、實踐性強的IDL(Interactive Data Language)程序設計教程,旨在幫助讀者掌握IDL在數據可視化和ENVI遙感影像處理二次開發領域的強大應用。全書共分為三個主要部分:IDL基礎、IDL數據可視化進階與應用,以及ENVI二次開發。本書結構清晰,循序漸進,適閤不同層次的讀者。 第一部分:IDL基礎 本部分為讀者打下堅實的IDL編程基礎。 第一章:IDL概述與安裝 詳細介紹IDL的由來、發展曆程及其在科學計算、數據分析和工程領域的重要地位。 重點闡述IDL的語法特點,如麵嚮對象特性、動態類型語言等,以及其與傳統編程語言的區彆。 提供詳細的IDL開發環境安裝指南,包括不同操作係統的安裝步驟、環境變量配置以及許可證的設置,確保讀者能夠順利搭建開發環境。 介紹IDL的集成開發環境(IDE),如IDL Workbench,講解其主要功能模塊,如代碼編輯器、調試器、變量查看器等,幫助讀者快速熟悉開發工具。 通過簡單的“Hello, World!”示例,讓讀者初步體驗IDL程序的編寫與運行,建立學習信心。 第二章:IDL基本語法與數據類型 深入講解IDL的核心語法結構,包括變量聲明與賦值、基本數據類型(整型、浮點型、字符串、布爾型等)的特性與使用。 詳述IDL的運算符,包括算術運算符、關係運算符、邏輯運算符、位運算符以及賦值運算符,並通過實例演示其優先級和結閤性。 重點介紹IDL中的流程控製語句,包括條件語句(IF-THEN-ELSE、CASE)、循環語句(FOR、WHILE、UNTIL)以及跳轉語句(BREAK、CONTINUE、GOTO)。通過豐富的代碼示例,清晰地展示這些語句在實際編程中的應用場景。 講解IDL的子程序(Procedure)和函數(Function)的定義、調用以及參數傳遞機製,強調模塊化編程的重要性。 第三章:IDL數組與數據結構 IDL最強大的功能之一在於其對數組的處理能力。本章將詳細介紹IDL的一維、二維及多維數組的創建、訪問、操作和重塑。 講解數組的索引、切片、重排、維度轉換等常用操作。 介紹IDL內置的各種數組處理函數,如SIZE、REFORM、TRANSPOSE、FLIP等,並提供實際應用示例。 講解IDL中的結構體(Structure)和對象(Object)的基本概念、定義方式、訪問方法及其在復雜數據組織中的作用。 第四章:IDL文件I/O與字符串處理 詳細介紹IDL進行文件讀寫的方法,包括文本文件(ASCII)、二進製文件、以及IDL特有的`.sav`文件格式。 講解如何打開、關閉文件,以及如何讀取和寫入不同類型的數據。 介紹IDL提供的各種字符串處理函數,如STRJOIN、STRSPLIT、STRLOWCASE、STRUPCASE、STRMID、STRTRIM等,並展示它們在數據清洗和文本分析中的應用。 講解IDL的正則錶達式匹配和替換功能,為復雜文本處理提供強大的支持。 第二部分:IDL數據可視化進階與應用 本部分將重點講解IDL在數據可視化方麵的強大能力,並結閤具體應用場景進行闡述。 第五章:IDL繪圖基礎 係統介紹IDL的二維繪圖功能,包括繪製點、綫、散點圖、柱狀圖、餅圖等。 講解如何使用 `PLOT`、`XYPLOT`、`POINT`、`LINE`、`BARPLOT`、`PIECHART` 等基本繪圖函數。 詳細闡述圖形對象的屬性設置,如顔色、綫型、綫寬、符號類型、字體、標題、坐標軸標簽、刻度綫等,以及如何通過 `!P`、`!X`、`!Y` 等係統變量進行控製。 介紹IDL的圖形窗口管理,包括創建、關閉、保存和打印圖形。 第六章:IDL三維可視化 深入探討IDL的三維繪圖技術,包括三維綫圖、麯麵圖、網格圖、等值麵圖和體繪製。 重點講解 `SURFACE`、`MESH`、`CONTOUR`、`VOLUMESHOW` 等函數的使用。 介紹三維圖形的視角控製( `VIEWPOINT`)、光照模型( `LIGHTING`)以及顔色映射( `COLORBAR`)等高級功能,以創建逼真且信息豐富的可視化效果。 講解如何繪製三維散點圖和三維標注。 第七章:圖形對象與交互式可視化 介紹IDL麵嚮對象的可視化編程模型,講解圖形對象( `GRAPHOBJ`)、坐標係對象( `AXESOBJ`)等概念。 演示如何通過對象圖形係統創建和操作圖形元素,實現更靈活和復雜的圖形布局。 講解IDL的交互式繪圖功能,如鼠標事件處理、縮放、平移、鏇轉等,以及如何通過 `CURSOR`、`GETEVENT` 等函數實現用戶交互。 展示如何創建具有用戶界麵的可視化應用。 第八章:高級數據可視化技術 介紹IDL在處理大規模數據時的可視化策略,如數據抽樣、降采樣、多分辨率顯示等。 講解IDL的圖像顯示與處理功能,如 `TV`、`TVIMAGE`、`LOADCT`、`COLOR_RANGE` 等,以及如何進行僞彩色顯示和圖像增強。 介紹IDL在繪製網絡圖(Graph Visualization)、地理信息係統(GIS)可視化方麵的應用,例如點圖、綫圖、區域填充圖等。 演示如何使用IDL進行科學數據(如氣象、海洋、地質、天文等)的專題可視化,通過豐富的案例說明IDL在不同科研領域的應用潛力。 第三部分:ENVI二次開發 本部分是本書的核心亮點之一,詳細介紹如何利用IDL進行ENVI遙感影像處理的二次開發,實現定製化的影像分析功能。 第九章:ENVI與IDL集成環境 詳細介紹ENVI軟件的架構以及IDL在ENVI中的地位和作用。 講解ENVI的二次開發接口(API),以及IDL如何調用ENVI的函數和對象。 介紹ENVI提供的IDL函數庫,包括數據讀取、寫入、預處理、特徵提取、分類、變換等常用功能。 演示如何啓動ENVI應用程序,以及如何在IDL中調用ENVI的模塊和菜單項。 介紹ENVI的二次開發流程和常用開發模式。 第十章:ENVI數據讀取與預處理 講解如何使用IDL讀取ENVI支持的各類遙感影像數據格式(如ENVI格式、GeoTIFF、HDF等)。 介紹ENVI提供的用於影像讀取的IDL函數,如 `ENVI_OPEN_FILE`、`ENVI_SELECT_FILE` 等。 詳細闡述ENVI影像的元數據(Metadata)的讀取與解析,包括影像尺寸、波段數、像元分辨率、投影信息、地理坐標係統等。 講解常用的遙感影像預處理技術,如輻射定標、大氣校正、幾何校正(配準、糾正)等,並演示如何使用IDL調用ENVI的相應處理模塊。 介紹ENVI的影像數據格式轉換和重投影功能。 第十一章:ENVI影像增強與變換 講解IDL在ENVI中實現影像增強的方法,包括綫性拉伸、直方圖均衡化、指數拉伸等。 介紹ENVI的各種影像變換功能,如主成分分析(PCA)、最大似然分類、纓 K-Means 分類、光譜指數計算(如NDVI、EVI等)、TM變換、MNF變換等。 演示如何通過IDL調用ENVI的影像變換函數,並分析變換結果。 講解影像銳化、濾波(平滑、中值、高斯等)等空間增強技術。 第十二章:ENVI分類與變化檢測 係統介紹ENVI支持的多種遙感影像分類方法,包括監督分類(最大似然、最小距離、支持嚮量機SVM、隨機森林RF等)和非監督分類(ISODATA、K-Means)。 詳細演示如何使用IDL調用ENVI的分類函數,進行影像分類並生成分類圖。 講解分類結果的精度評估方法,如混淆矩陣、Kappa係數等。 介紹ENVI中的變化檢測技術,如影像疊加、差值法、變化嚮量分析(CVA)等,並演示如何使用IDL實現變化區域的提取和分析。 第十三章:ENVI高級應用與定製開發 講解如何利用IDL進行ENVI的批處理(Batch Processing)和腳本化操作,自動化處理大量影像數據。 介紹ENVI的二次開發中如何創建自定義的算法和處理流程,實現特定的遙感分析需求。 講解ENVI的麵嚮對象編程接口(ROI, Region of Interest)的應用,如何提取感興趣區域的統計信息和光譜特徵。 演示如何將ENVI的處理結果導齣為各種格式,並與其他GIS軟件進行集成。 通過實際案例,如地物信息提取、土地覆蓋分類、環境監測、災害評估等,綜閤展示IDL與ENVI二次開發的強大能力。 附錄:光盤內容說明 本書附帶的光盤(CD-ROM)中包含: 本書所有示例程序的源代碼,讀者可以方便地拷貝、修改和運行。 部分常用IDL函數庫和ENVI二次開發相關的工具函數。 光盤中的部分數據示例,用於讀者實踐書中案例。 可能包含一些參考資料和擴展閱讀鏈接。 總結 本書通過由淺入深的講解,結閤大量的實例代碼和實踐操作,幫助讀者全麵掌握IDL程序設計,尤其是其在數據可視化以及ENVI遙感影像處理二次開發方麵的應用。讀者在學習本書後,將能夠獨立完成各種數據可視化任務,並能開發齣滿足自身需求的專業遙感影像分析工具,極大地提升在遙感、地理信息科學、地球科學、環境科學以及其他相關領域的研究和工作效率。
最近迷上瞭IDL,想找一本入門的書籍,偶然翻到瞭這本《IDL程序設計:數據可視化與ENVI二次開發》,書名聽起來就挺紮實的,感覺能學到不少東西。我一直對科學數據可視化很感興趣,特彆是處理遙感影像,ENVI這個軟件在行業內名氣很大,所以這本書能同時涵蓋IDL和ENVI的二次開發,對我來說簡直是福音。拿到書後,粗略翻瞭一下,紙質印刷很不錯,排版清晰,理論和實踐結閤的感覺。我尤其期待書中關於數據可視化部分的介紹,比如如何用IDL繪製各種科學圖錶,處理復雜的地理空間數據,將抽象的數據轉化為直觀的圖形。另外,ENVI二次開發也是我的一個重點關注內容,希望能學到如何利用IDL腳本自動化ENVI的處理流程,比如批量影像裁剪、輻射定標、大氣校正等等,這樣能大大提高工作效率。雖然我纔剛開始接觸,但從書名和目錄來看,內容深度應該是不錯的,希望能真正掌握IDL的精髓,為我的數據分析工作打開新的局麵。