本文介绍基于AvaSpec-ULS2048x64光纤光谱仪测定植被、土壤等地物高光谱曲线的方法。

  AvaSpec是由荷兰著名的光纤光谱仪器与系统开发公司Avantes制造的系列高性能光谱仪,广泛应用于各类光谱测定场景。本文就以AvaSpec系列产品中的AvaSpec-ULS2048x64这一款便携式地物高光谱仪为例,介绍基于这一类便携式地物光谱仪进行地物高光谱曲线的测定方法。

1 软件安装

  首先,AvaSpec系列产品多数都需要与电脑连接使用,因此需要提前在电脑中安装AvaSoft软件。AvaSoft软件依据适配的仪器种类不同,主要分为USB1版本与USB2版本两种;大家可以依据下图,结合自己手中的光谱仪实际型号,确定需要下载哪一个版本的软件。

  因为本文是用AvaSpec-ULS2048x64这一款仪器来做介绍,因此就需要下载USB2版本的AvaSoft软件。

  接下来,就介绍一下AvaSoft软件的下载方法。软件可以从Avantes公司官网直接下载;对于含有光盘驱动的电脑,也可以将AvaSpec系列产品自带的光盘放入电脑中进行软件下载与安装。这里就介绍一下第二种下载方法。

  首先,将光盘放入电脑并将其打开。

  选择“Software”。

  接下来,选择需要安装的AvaSoft软件版本。本文就选择USB2版本的软件。

  接下来,即可弹出AvaSoft软件安装界面。这里我们就依据软件安装界面的提示,逐步进行安装即可,这里就不再赘述。

  AvaSoft软件安装完毕后,我们找到其快捷方式,双击打开软件。

  即可出现如下图所示的界面。

  此时,我们需要将AvaSpec-ULS2048x64设备通过其自带的数据线与电脑连接。在仪器中,将数据线插入写有“USB”字样的接口即可,数据线另一端与电脑连接。

  随后,在上图中选择“Retry to establish communication through USB”选项。此时,如果仪器是刚刚与电脑连接,软件暂时还没有收到仪器的连接信号,则可能会出现如下所示的提示。

  我们重新试一下,一般就可以连接上了。随后,软件出现如下图所示的界面。

2 文件准备

  接下来,我们新建一个实验项目;这里的“实验”其实是一个.kon格式的文件,与接下来我们所要进行的各项操作(定标、地波谱测量等)相呼应。在左上角菜单栏中,选择“Start New Experiment”选项。

  随后,在弹出的窗口中,配置实验文件存放的路径与实验文件的名称。

  随后,即可点击软件左上角的“Start”按钮,仪器将自动开始测定光谱数据;如下图所示,软件界面中将显示仪器所探测到的地物的光谱曲线。这里大家需要确保仪器已经和光谱测定的光纤探头相连接,否则会没有数据的。

3 白板定标

  随后,需要进行白板定标。水平放置白板,并将光纤探头用来探测的那一端垂直朝下,距离白板10 cm左右的高度即可。随后,观察软件中的光谱曲线,待曲线稳定后,此时即为白板的光谱曲线。测量时需要保证白板与探头均处于阳光下,不要有阴影或其他地物遮挡。

  需要注意的是,如果大家在白板定标时发现如下图所示的情况,即各个波段对应的光谱数值普遍接近或达到了软件所能显示的最大值,且软件最下方状态栏中出现红色的“Saturated”提示,说明此时外界的光线较强,已经达到甚至超出了软件在当前参数情况下所能探测的光线最大值;这种情况肯定是无法进行后期进一步光谱的测定的。

  针对这一情况,我们需要点击软件菜单栏中的“Autoconfigure Integrationtime”选项;如下图所示。这一选项将自动依据外界的光线强度,调整仪器中与接收光线有关的两个参数“Integration time”与“Average”。其中,前者可以改变高光谱相机在成像时,曝光或整合成像的时间长短,时间越长受到的光照就越强;后者则表示软件界面中每显示的一个光谱曲线,是需要测定多少次后并求取平均值得到的曲线。

  可以看到,通过“Autoconfigure Integrationtime”选项,“Integration time”与“Average”的数值已经发生改变;即其可以使得软件自动调整这两个参数,从而缓解外界较强光线所带来的干扰。当然,我们也可以直接在下图的框中手动修改这两个参数。

  还有一点需要注意的是,“Integration time”这一参数的最小值为2.40 ms;如果开启“Autoconfigure Integrationtime”选项后,达到这一最小值而还没有完全解决光线较强的问题,就会出现如下所示的提示。

  针对这一情况,如果我们还希望进一步将外界光线较强的影响降至最低,“Autoconfigure Integrationtime”选项就无能为力,只能从其他角度入手了。

  当我们在测定任意物体的光谱曲线时,可以通过下图右侧方框中的“Autoscale Y-Axis”选项,将曲线图的Y轴数值移动到曲线附近,方便我们查看曲线。

  当白板的曲线较为稳定后,点击上图左侧方框中的“Save Reference”选项,保存白板的光谱曲线,从而完成白板定标。

4 黑暗定标

  随后,进行黑暗定标。将光纤探头用来探测的那一端盖上保护帽,从而使得其处于黑暗状态。待光谱曲线稳定后,即为黑暗定标时的状态。这一状态在理论上,光谱曲线将全部处于Y轴值为0的横线处;而实际测量时并不一定满足这一要求,只要此时光谱曲线大致在Y轴值为0处的附近即可。

  同样,点击“Save Dark”选项,从而保存黑暗情况下的光谱数值。

  从而完成黑暗定标。

5 光谱测定

  接下来,取下光纤探头用来探测的那一端的保护帽,我们就可以开始对地物进行光谱曲线的测定了。测定方法与之前的白板定标类似,我们将探头垂直对准待测地物,稍等片刻待曲线稳定后即可完成测定。测量时同样需要保证在阳光下,不要有阴影或其他地物遮挡。

  测定过程中,我们可以修改软件界面所显示光谱曲线的含义。例如,下图的S形状按钮“Scope Mode”表示Y轴为光谱仪的原始读数(可以理解为DN值),A形状按钮“Absorbance Mode”表示Y轴为经过计算后获得的吸光度,R形状按钮“Reflectance Mode”表示Y轴为经过计算后获得的反射率,I形状按钮“Irradiance Mode”则表示Y轴为经过计算后获得的辐照度。

  如果大家的软件界面中没有R形状按钮“Reflectance Mode”,而是有一个T形状按钮“Transmittance Mode”(这一按钮应表示的是透射率,但按照软件帮助手册中的介绍,这里的透射率与前面的反射率的计算公式是一样的,只是名称不一样),则可以通过“Setup”→“Options”→“View Reflectance instead of Transmittance”选项,调出R形状按钮“Reflectance Mode”。

  得到地物合适、稳定的光谱曲线后,点击“Save Experiment”选项,即可保存当前地物的光谱曲线。

  需要对这一光谱曲线进行命名。这里的命名尽可能能够描述所测定地物的实际情况即可;例如,我们对草地的光谱曲线进行测定,就可以将其命名为Grass1。这里需要注意,我们在这里的命名并不是这个光谱曲线文件的文件名,而是这个光谱曲线文件在软件中打开后,软件所显示的图名;具体我们稍后再细讲。

  每次保存会生成两个文件,第一个文件存储了光谱曲线的具体走势,第二个文件则保存了光谱曲线图的文字说明(包括上面所说的图名,还有一些其他的光谱曲线信息)。保存数据时需要注意,前面提到软件界面中可以显示四种不同的曲线类型;我们在不同类型下保存光谱曲线,会得到不同的文件类型。对于第一个文件,其具体拓展名与曲线类型的对照关系如下:

  对于第二个文件,其具体拓展名与曲线类型的对照关系如下:

  如果在同一研究区域有多个需要测定的点位,我们可以多次测量,并多次保存。同时,考虑到阳光的变化,即使我们在同一研究区域进行测定,最好也定期进行一下白板定标与黑暗定标操作。

  对某一研究区域完成测定后,点击“Stop”按钮,仪器将自动停止探测,从而完成测定。

6 数据查看与导出

  如果此时我们想浏览刚刚保存的光谱曲线,可以通过“File”→“Display Saved Graph”选项来实现。

  选择上述选项后,将弹出文件选择窗口,我们选择需要查看的光谱曲线即可。

  这里有两点需要注意。首先,文件选择时,软件将自动搜索与当前软件界面所显示光谱曲线类型相同的文件类型。如上图,软件此时的光谱曲线类型为R形状按钮“Reflectance Mode”,那么默认从资源管理器中搜索后缀名为.TRM的文件;再看下图,软件此时的光谱曲线类型为S形状按钮“Scope Mode”,那么就默认从资源管理器中搜索后缀名为.ROH的文件,如果这个文件夹下没有后缀名为.ROH的文件,那么就会提示文件夹为空。

  对于这种情况,我们可以在“对象类型”中手动指定需要搜索的文件类型。

  第二点需要注意的是,前面我们也提到了,软件在保存光谱曲线时,我们输入的名称并不是光谱曲线保存后的文件名。如上图所示,每一个光谱曲线文件的命名都是我们在一开始所建立的实验的名字(例如上图中的NEW和NEW2都是我建立的实验的名字)加上四位数的自动编号。而当我们打开每一个具体的光谱曲线文件后,在软件中会显示其曲线走势与图名,这个图名才是当初我们保存光谱曲线时输入的名称(例如下图中的grass1)。

  如上图所示,粉色框中就是我们将刚刚保存好的光谱曲线导入到软件中的样子。此外,我们还可以一次导入多个光谱曲线,但最多只能同时显示12条光谱曲线。

  此外,如果我们想将光谱曲线保存为其他形式,可以通过“File”→“Convert Graph”来实现。通过这一方法,可以将光谱曲线导出为文本、表格等多种类型。

  至此,完成了对地物高光谱曲线的测量、保存与导出。

基于AvaSpe 2048测定物体的光谱曲线的更多相关文章

  1. 4. 绘制光谱曲线QGraphicsView类

    一.前言 Qt的QGraphicsView类具有强大的视图功能,与其一起使用的还有QGraphicsScene类和QGraphicsItem类.大体思路就是通过构建场景类,然后向场景对象中增加各种图元 ...

  2. 基于粒子滤波的物体跟踪 Particle Filter Object Tracking

    Video来源地址 一直都觉得粒子滤波是个挺牛的东西,每次试图看文献都被复杂的数学符号搞得看不下去.一个偶然的机会发现了Rob Hess(http://web.engr.oregonstate.edu ...

  3. 基于CAShapeLayer和贝塞尔曲线的圆形进度条动画

    通过CAShapeLayer和贝塞尔曲线搭配的方法,创建的简单的圆形进度条的教程先简单的介绍下CAShapeLayer1,CAShapeLayer继承自CALayer,可使用CALayer的所有属性2 ...

  4. 基于CAShapeLayer和贝塞尔曲线的圆形进度条动画【装载】

    初次接触CAShapeLayer和贝塞尔曲线,看了下极客学院的视频.对初学者来说感觉还不错.今天来说一个通过CAShapeLayer和贝塞尔曲线搭配的方法,创建的简单的圆形进度条的教程先简单的介绍下C ...

  5. IDL绘制黑体辐射曲线

    普朗克定律是热红外遥感中常常使用的三大定律之一,描述了黑体辐射能量的情况.绝对黑体的辐射光谱对于研究一切物体的辐射规律具有根本的意义.1900年普朗克引进量子概念,将辐射当做不连续的量子发射,成功地从 ...

  6. (转)基于形状匹配的Halcon算子create_shape_model

    HDevelop开发环境中提供的匹配的方法主要有三种,即Component-Based.Gray-Value-Based.Shape-Based,分别是基于组件(或成分.元素)的匹配,基于灰度值的匹配 ...

  7. 基于HALCON的模板匹配方法总结 (转)

    很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间.去年有过一段时间的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配算法的参数优化进行了研究,写了一篇& ...

  8. 基于变分自编码器(VAE)利用重建概率的异常检测

    本文为博主翻译自:Jinwon的Variational Autoencoder based Anomaly Detection using Reconstruction Probability,如侵立 ...

  9. CAShapeLayer 与贝塞尔曲线

    一 CAShapeLayer 简介 1,CAShapeLayer继承至CALayer,可以使用CALayer的所有属性 2,CAShapeLayer需要与贝塞尔曲线配合使用才有意义:单独使用毫无意义 ...

  10. 基于HALCON的模板匹配方法总结

    注:很抱歉,忘记从转载链接了,作者莫怪.... 基于HALCON的模板匹配方法总结 很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间.去年有过一段时间的集中学习,做了许多 ...

随机推荐

  1. 【RS】ENVI5.6.3 图像融合

            图像融合是将低空间分辨率的多光谱图像或高光谱数据与高空间分辨率的单波段图像重采样生成一幅高分辨率多光谱图像的遥感图像处理技术,使得处理后的图像既有较高的空间分辨率,又具有多光谱特征.一 ...

  2. bulkWrite探秘

    MongoDB有很多有趣的内置方法,其中为了批量处理一些写入操作,并且可以按照一定顺序执行,自从3.2版本之后提供了该批量方法:bulkWrite. 它的语法很简单: db.collection.bu ...

  3. 用 Python + turtle 模块绘制五星红旗

    用 Python 绘制五星红旗 在这个代码示例中,我将介绍如何使用 Python 的 turtle 模块绘制五星红旗.turtle 模块是一个图形库,可以轻松地在 Python 中实现简单的绘图功能. ...

  4. 前端:Uncaught TypeError: Cannot set property 'value' of null;

    1.在写JS代码中的绑定事件时(将JS与HTML标签分开时),发现会有如下错误提示: Uncaught TypeError: Cannot set property 'onclick' of null ...

  5. 【WebRtc】获取媒体设备信息

    加载设备信息页面 加载完设备信息页面 Code /** * 加载当前设备的音视频信息 */ initInnerLocalDevice() { let that = this; // 判断是否支持 if ...

  6. 如何将Maven项目快速改造成一个java web项目(方式一)

    因为实际需要,需要将一个maven项目改造成原生的java-web项目,写这边博客 来记录整个改造的过程.原始的maven项目,使用IDEA打开后,目录结构如下所示 直接通过文件夹查看项目结果如下 首 ...

  7. Mybatis(配置解析解读(核心))

    核心配置文件 mybaits-confing.xml *properties(属性) *settring(设置) *typeAliases(类型别名) *typeHandlers(类型处理器) *ob ...

  8. 【WebGL系列-03】获取shader变量地址及赋值

    获取shader变量地址及赋值 上一节创建了WebGL程序对象,创建好program对象后,对象中包含顶点着色器和片元着色器,着色器中含有变量,我们需要对其进行赋值后才能够进行绘制. 着色器代码如下: ...

  9. 图技术在 LLM 下的应用:知识图谱驱动的大语言模型 Llama Index

    LLM 如火如荼地发展了大半年,各类大模型和相关框架也逐步成型,可被大家应用到业务实际中.在这个过程中,我们可能会遇到一类问题是:现有的哪些数据,如何更好地与 LLM 对接上.像是大家都在用的知识图谱 ...

  10. golang技术降本增效的手段

    最近一年各大中小厂都在搞"优化",说到优化,目的还是"降本增效",降低成本,增加效益(效率). 技术层面,也有一些降本增效的常规操作. 比如池化.io缓冲区技术 ...