当前位置: 首页 > news >正文

Python光学玻璃库opticalglass

文章目录

    • opticalglass
    • 函数调用

opticalglass

【opticalglass】,顾名思义,是Python的一个光学玻璃库,可以帮助方便地获取各种光学玻璃的折射率、色散、阿贝数等参数,支持主流玻璃厂商(如Schott、Ohara、Hoya等)的玻璃数据库。可通过pip或conda安装

pip install opticalglass
conda install opticalglass --channel conda-forge

在安装成功之后,只需在命令行中输入glassmap,即可弹出光学玻璃窗口,如下图所示。由于需要加载大量数据,所以打开速度稍慢。

在这里插入图片描述

上图提供了六家厂商或品牌的产品对比图,分别是CDGM、Hikari、Hoya、Ohara、Schott和Sumita。提供四种对比类型,分别是折射率(Refractive Index)、部分色散(Partial Dispersion)、色散曲线(Dispersion Curve)以及阿贝数(Abbe Number)。

点击图中的点,可以在右下角显示其对应的参数。

函数调用

作为Python库,自然可以进入Python环境后调用,例如,想要画出上面的图,只需下列代码即可

import matplotlib.pyplot as plt
import opticalglass.glassmap as gmgmf = plt.figure(FigureClass=gm.GlassMapFigure,glass_db=gm.GlassMapDB()).plot()
plt.show()

【create_glass】函数,可以创建光学玻璃对象,当其输入参数为型号和厂商时,即可对当前数据库进行查询,例如肖特公司的N-BK7玻璃,即可用下面的代码创建

from opticalglass.glassfactory import create_glass
bk7 = create_glass('N-BK7', 'Schott')
print(bk7)
# Schott N-BK7: 517.642

【rindex】可以计算特定波长下该玻璃的折射率,其输入既可以是波长(nm),也可以是光谱线字符串

bk7.rindex(400)
# np.float64(1.5308485382492993)
bk7.rindex('d')
# np.float64(1.5168000345005885)

其中,d表示氦黄线,波长在587.56nm附近。常用光谱线及其波长如下表

线名波长
汞紫外线iHg365.01nm
汞紫线hHg404.66nm
汞蓝线gHg435.84nm
镉蓝线F′Cd479.99nm
氢蓝线FH486.13nm
汞绿线eHg546.07nm
氦黄线dHe587.56nm
钠黄线DNa589.29nm
氦氖激光线He-Ne632.80nm
镉红线C′Cd
氢红线CH656.27nm
氦红线rHe706.52nm
铯红线sCs852.11nm
汞红线tHg1013.98nm

【glass_data】函数可以获取该玻璃的数据表格,其返回值支持字典索引,通过refractive indices即可返回这些线型的折射率

gd = bk7.glass_data()
gd['refractive indices']
'''
data item
2325.4    1.48921
1970.1    1.49495
1529.6    1.50091
1060.0    1.50669
t         1.50731
s          1.5098
r         1.51289
C         1.51432
C'        1.51472
632.8     1.51509
D         1.51673
d          1.5168
e         1.51872
F         1.52238
F'        1.52283
g         1.52668
h         1.53024
i         1.53627
334.1     1.54272
312.6     1.54862
296.7         NaN
280.4         NaN
248.3        <NA>
Name: N-BK7, dtype: object
'''

相关文章:

  • 财政网站平台建设不足建站公司哪家好
  • 民宿网站开发dfd图友情链接官网
  • 网页设计网站怎么放到域名里百度识图在线使用
  • 公司手机网站建设路由优化大师
  • 网站建设合同交印花税国内seo公司排名
  • 网站建设价目windows系统优化软件
  • IP证书在网络安全中的作用
  • Windows驱动开发最新教程笔记2025(一)名词解释
  • Label Studio安装和使用
  • ABP VNext + BFF(Backend for Frontend)模式:Angular/React 专用聚合层
  • 总结设置缓存的时机
  • 七天学会SpringCloud分布式微服务——01
  • 基于C#实现(WinForm)P2P聊天小程序
  • 操作系统---内存管理之虚拟内存
  • React性能优化:父组件如何导致子组件重新渲染及避免策略
  • 【JavaScript-Day 48】告别 Ajax,拥抱现代网络请求:Fetch API 完全指南
  • HarmonyOS开发基础 --面向鸿蒙的TypeScript基础语法一文入门
  • 深度解析!MySQL 与 Oracle 执行计划的硬核对比与实战攻略
  • 从iOS到Flutter:我的转型之路与技术成长启示
  • 死锁_(上)
  • BI财务分析 – 反映盈利水平利润占比的指标如何分析(下)
  • 用 Python 打造立体数据世界:3D 堆叠条形图绘制全解析
  • 中科米堆3D扫描逆向建模方案:汽车轮毂三维扫描抄数建模
  • 国产化条码类库Spire.Barcode教程:如何使用 C# 读取 PDF 中的条码(两种方法轻松实现)
  • Modbus 扫描 从站号、波特率
  • 02-Linux内核源码编译