此前,我们在《美国“实体清单”影响来袭!多所大学被禁用MATLAB软件》一文中报道了美国“实体清单”导致哈尔滨工业大学、哈尔滨工程大学等一些国内的著名高校研究生无法继续使用Matlab软件这一事件,并随文向光学同仁作了一次小调查。
我们共收到202份光学同仁参与调研。根据调研显示,有82%的光学人会使用到MATLAB软件,其中79%的人表示受到了禁用影响;而在这些受影响的用户中,近三分之二的用户表示受到了很大影响。
虽然这个调查样本不足以体现整个光学界的情况,但是也从侧面反映出这次禁用对光学人的影响。同时考虑到科研和论文写作等对于版权有要求的场合,我们搜集整理了一些开源的工具给大家,希望对大家有个参考。
开源软件是指开放源代码的软件,即代码创作者在遵循相关开源协议的基础上,将自己开发的软件源代码向全世界公开,允许其他开发者进行自主学习、测试、修改、二次开发和传播等,以协同方式改善软件产品的质量和优化软件功能等。
开源软件在操作系统、数据库、中间件等都有许多流行的软件产品,如Linux电脑操作系统、安卓手机操作系统、MySQL和PostgreSQL开源数据库等。
以下是小光整理的部分可用于光学研究的开源软件,供大家参考。
1
Python
Python是一门完全免费的通用编程语言,以开源的方式提供了大量各类用途的库与包,如numpy(数值计算)、scipy(数学、科学和工程计算)、matplotlib(类似Matlab中plot的绘图工具)等等。
Python是一门更易学更严谨的面向对象的程序设计语言。作为通用程序设计语言的Python,有更为严格清晰的语法,可以轻易完成界面、文件、封装等高阶需求,可移植性更好,也非常适合AI、网络等相关应用。
2
Octave
如果已经对Matlab语言非常熟悉,暂时不想学习一门新的语言,那么可以尝试一下Octave。Octave是GNU项目成员之一,提供了与Matlab语法兼容的开放源代码科学计算及数值分析的工具。
3
General Mission Analysis Tool (GMAT)
对于航天器轨道计算、任务分析等,可以尝试General Mission Analysis Tool (GMAT)。GMAT提供了图像化界面或脚本两种接口,相比于STK,GMAT的深空探测相关功能更加强大,可配置的资源也更多。
4
GNU Radio
对于软件无线电、信号处理等应用,可以尝试GNU Radio。GNU Radio是一个对学习,构建和部署软件定义无线电系统的免费软件工具包,可通过Python或类似于Simulink/Labview的图形化界面调用。紫丁香、龙江等卫星的业余无线电接收解调软件就是在GNU Radio基础上开发并开源发布的。
5
Robot Operating System (ROS)
对于机器人相关应用,可以尝试Robot Operating System (ROS)。ROS是一种针对于满足不同机器人软件协同工作的灵活软件框架。目的在于提高软件模块化能力和复用能力,并实现不同任务间的数据/信号量的有效共享,方便多种机器人平台之间创建复杂和鲁棒的机器人行为,同时它也是一种工具库的约定与集合。
6
Satellite Tool Kit(STK)
STK是Satellite Tool Kit的简称,即卫星工具包。STK是由美国Analytical Graphics公司开发的一款在航天领域处于领先地位的商业分析软件。STK支持航天任务的全过程,包括设计、测试、发射、运行和任务应用。
STK提供分析引擎用于计算数据、并可显示多种形式的二维地图,显示卫星和其它对象。STK的核心能力是产生位置和姿态数据、获取时间、遥感器覆盖分析。对于特定的分析任务,STK提供了附加分析模块,可以解决通信分析、雷达分析、覆盖分析、轨道机动、精确定轨、实时操作等问题。另外,STK还有三维可视化模块,为STK和其它附加模块提供领先的三维显示环境。
7
Scilab
Scilab是一款由法国国家信息、自动化研究院的科学家们开发的“开放源码”软件,与Matlab类似,可以实现Matlab上所有基本的功能,如科学计算、数学建模、信号处理、决策优化、线性、非线性控制等各个方面。
由于Scilab的语法与Matlab非常接近,熟悉Matlab编程的人很快就会掌握Scilab的使用。有意思的是,Scilab提供的语言转换函数可以自动将用Matlab语言编写的程序翻译为Scilab语言。目前,Scilab可在Linux、Windows和Mac OS全PC平台运行。
作为开放源码的软件,Scilab的源代码、用户手册及二进制的可执行文件都是免费的。
8
Fiview
Fiview是一款可在Windows,Linux和Mac OSX运行的免费软件,由GNU GPL发布,可用于设计、查看和比较数字滤波器。通过使用数字键,可在不同的滤波器之间进行切换,从而易于将各个滤波器进行对比。
Fiview还可以生成直接在应用程序中使用的有效且可读的公共领域示例代码。
该工具支持对数比例视图,包括通过滤波器反馈测试信号的功能,以便更好地了解它在现实信号中的表现。
9
R语言(R)
R语言是一款免费开源软件,其提供了超过12000个R包,几乎所有类型的数据分析任务都可以在R中完成。
R语言支持从多种数据源导入数据,可以用相同的代码处理不同规模的数据集。此外,R语言社区还能提供多种高质量的科研绘图R包,ggplot2是其中的代表。
10
Spyder
Spyder不是一门编程语言,Spyder是Python(x,y)的作者为它开发的一个简单的集成开发环境。和其他的Python开发环境相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值。
Spyder的界面由许多窗格构成,用户可以根据自己的喜好调整它们的位置和大小。当多个窗格出现在一个区域时,将使用标签页的形式显示。例如在图1中,可以看到“Editor”、“Object inspector”、“Variable explorer”、“File explorer”、“Console”、“History log”以及两个显示图像的窗格。在View菜单中可以设置是否显示这些窗格。
Spyder 的界面与 MATLAB 非常类似,其作者早年也承认模仿了 MATLAB 的设计。如果对于 MATLAB 的仿真建模需求不高的话,Spyder 足以取而代之。
11
See Fiber Laser
See Fiber Laser(http://www.seefiber.net/)是国防科技大学和中国科学院软件研究所联合开发的我国首款光纤激光仿真软件,基于相干激光耦合波方程,可以对高功率掺镱连续光纤激光器和脉冲光纤激光器进行仿真,包括放大自发辐射(ASE)、受激拉曼散射(SRS)、受激布里渊散射(SBS)、四波混频(FWM)等非线性效应;仿真结束后,可根据需要给出功率、光谱、时域、温度等数据并进行作图,为光纤激光理论学习、工程设计以及科学研究提供帮助。
该软件采用拖拽连线方式搭建激光器、对话框形式进行参数设置,无须输入繁琐的代码,降低了使用难度。其免费版软件包括连续激光振荡器和连续激光放大器,内置8个元器件,6个仿真示例工程。
资讯来源:紫丁香卫星、EETOP、募格学术、Fiview、See Fiber Laser
☆ END ☆扫码关注我们
关注以后,只要加上星标,就能固定找到我们啦!
↓↓↓
免责声明 本文注明来源为其他媒体或网站的文/图等稿件均为转载,如涉及版权等问题,请作者在20个工作日之内联系我们,我们将协调给予处理。最终解释权归光电汇所有。 本文版权所有,公众号如需转载商务合作,请联系
季先生 18018304797
觉得有用,请点这里↓↓↓