1.1 Igor概述

1.1.1 特色定位

Igor通过提供大量的函数和命令来完成数据处理,这些函数和命令可以在程序中使用,也可以直接在命令行窗口中使用。命令行窗口是Igor的一个功能窗口(按Ctrl+J键调出该窗口),用于执行函数和命令及显示执行的结果。其菜单系统及大量的功能对话框根本上也是对这些函数和命令行的使用。几乎所有的对话框操作都能转化为对应的命令行并醒目显示,使用者在熟练以后可以直接使用命令行完成与对话框相同的操作。

除了数据处理和分析,图表的绘制和显示、显示样式和风格,窗口的创建及其外观内容,也能转化为相应的命令行(详见本书第6章),Igor能自动把这些命令行封装为一个生成脚本(macro),只需重新执行该脚本就能重建图表。Igor无须保存绘制好的图表或者设计好的程序界面,而仅仅保存对应的生成脚本,必要时执行该脚本即可。这些程序代码由纯文本文件组成,占用的内存空间很小。

程序设计在程序窗口中完成(按Ctrl+M键打开内置程序窗口)。可编程性是Igor的功能特色定位所在,因此在Igor环境中进行程序设计是非常方便和自然的。Igor的语法环境系统而完整,功能强大,使用简单。在程序窗口中,可使用所有的内置函数和命令,并能自由访问Igor的数据对象,如wave、变量、表格和窗口等。Igor编程环境支持命令行程序和窗口程序的设计,前者没有人机交互界面,可以在命令行窗口或者程序窗口直接调用执行,后者具有人机交互界面(即有一个面板),基于事件驱动,通过鼠标、键盘等完成数据操作。利用这些特性使用者可以根据自己数据的特点开发出高效且有针对性的数据处理程序。为了方便程序的开放,Igor提供了方便的在线帮助系统:在相应的关键字处右击即可查询在线帮助,通过帮助中心(【Help】|【Igor Help Browser】)可快速定位命令或者函数。

虽然编程是主要的数据处理方法,但是不编写程序,同样可以利用Igor完成绝大多数数据处理(当然效率可能会差一些),这些数据处理操作以菜单和对话框的形式提供。几乎所有的菜单及对话框操作都能转化为对应的命令行,因此利用菜单系统,一方面可完成常见的数据处理任务,另一方面也可将之作为快速了解和掌握命令行的途径。

不同版本之间的兼容性也是Igor的优秀特色之一。Igor版本更新非常快,一般每年都会有一到两次的版本更新。用户甚至能够下载使用每日的最新版本(nightly builds)(当然正式发布的版本稳定性会好很多)。对于大多数脚本类编程工具,老版本下写的程序,在新版本下很可能无法通过编译,需要重写。Igor在不同版本之间也存在差异,通常新版本会引入一些新的特性,但是一般都能兼容运行老版本下的程序,或者只需要很小的改动。这是一个非常大的优点。本书写作时使用的Igor版本为6.37,但是所有的内容几乎完全适用于Igor7。这正是Igor不同版本之间兼容性良好的体现。

除了Igor之外,常见且功能优秀并被广泛采用的科学实验处理软件还有Origin、MATLAB、Excel等。其中,Origin和Igor功能定位最为类似,也是很多人在选择时会存在困惑的地方。

Origin和Igor最为相似,目标定位也相同,即都用于实验数据分析处理。但是Origin的设计理念和Igor迥异,首先在界面上就和Igor完全不同:Origin有菜单、工具条按钮、快捷工具按钮、文件区、数据区等,符合Windows下标准IDE程序的风格,因此熟悉Windows的使用者在学习使用Origin时较容易,学习曲线较为平缓。即使没有经过任何学习,也能较为顺利地上手,完成一些基本数据分析处理。Origin提供了一个内置的编程环境,但是由于设计的原因,在最初设计时并没有把通过编程以扩展数据处理的功能考虑进去,直到后来的版本才加进去(附带编程功能是目前数据处理工具的主流),与Igor原生支持程序设计相比,编程不是非常方便。一般认为,如果数据量不是很大,处理目标明确,编程要求较小,用Origin是合适的;如果数据量很大,处理过程复杂,需要编写程序成批处理,则Igor是首选。Origin之于Igor相当于Windows之于Linux,前者易用性高,但牺牲了自由,后者则相反。当然这种比较是相对的。

MATLAB是业界顶尖的数学软件,界面简洁,功能强大,几乎无所不能。但MATLAB的长处在数值计算、仿真等领域,而不是实验数据处理及科学绘图。在绘图过程中,MATLAB响应较慢,在对图的设置中,如曲线外观、坐标轴等的设置,MATLAB并不是非常方便。此外,MATLAB在实验数据的管理、保存、恢复等方面也不是很方便、直观,因此虽然也有人用MATLAB进行实验数据处理,但是并不推荐。可以用MATLAB进行较大规模的计算和分析工作,而将一般的数据处理交给专门的数据处理软件完成,如Igor。

Excel是微软Office办公软件套件的一个组件,俗称电子表格,用来处理电子表格型数据。Excel更适合于财会、统计或者数据处理分析不是太复杂的应用领域,用于实验数据处理则显得灵活性不足,也不够专业。

近年来,脚本程序设计语言如Python、R等语言也越来越多地被用于数据处理。毋庸置疑,从编程的角度来说,Python、R等语言的优点是非常突出的。如果同时考虑编程特性、数据可视化、数据管理、易操作性等方面,那么Igor的优势就显而易见了,而这些方面正是实验数据处理需要的。Igor更适合具体的实验数据处理,而Python等则多用于更为宽泛的数据分析领域。Igor兼具Python的可编程性和Origin的易操作性,可谓集众家之长。

另外,Octave、Scilab等软件也用于实验数据处理,感兴趣的读者可以自行查阅相关资料。