网站seo推广,网站开发 参考文献,跨站攻击 wordpress,免费工程项目分包平台传输光度测定
在天文学中#xff0c;当相对较小的天体直接经过较大天体的圆盘和观察者之间时#xff0c;就会发生凌日。 当小物体移过较大物体的表面时#xff0c;较大物体会稍微变暗。 最著名的凌日是水星和金星对太阳的凌日。
借助当今的技术#xff0c;天文学家可以在…传输光度测定
在天文学中当相对较小的天体直接经过较大天体的圆盘和观察者之间时就会发生凌日。 当小物体移过较大物体的表面时较大物体会稍微变暗。 最著名的凌日是水星和金星对太阳的凌日。
借助当今的技术天文学家可以在凌日事件期间探测到遥远恒星光线的微妙变暗。这项技术称为凌日光度测定法可输出恒星亮度随时间变化的图。
在上图中光曲线图上的蓝点代表恒星发出的光的测量值。 当行星没有位于恒星上方时图中位置1测量到的亮度最大。 当系外行星经历其阶段时我们将忽略从系外行星反射的光这会略微增加恒星的表观亮度。
当行星的前缘移动到圆盘上位置 2时发出的光逐渐变暗在光曲线中形成斜坡。 当整个行星在圆盘上可见时位置 3光变曲线变平并保持平坦直到行星开始退出圆盘的远端。 这会产生另一个斜坡位置 4该斜坡不断上升直到行星完全脱离圆盘位置 5。 此时光变曲线在其最大值处变平因为恒星不再被遮挡。
由于凌日期间阻挡的光量与行星圆盘的大小成正比因此可以使用以下公式计算行星的半径 R p R s 深度 R_{\mathrm{p}}R_{\mathrm{s}} \sqrt{\text { 深度 }} RpRs 深度 其中 R p Rp Rp 是行星的半径 R s Rs Rs 是恒星的半径。 天文学家利用恒星的距离、亮度和颜色来确定恒星的半径这与恒星的温度有关。 深度是指传输过程中亮度的总变化如下图所示。
代码实现
以下 Python 程序使用 OpenCV 生成系外行星凌日的视觉模拟使用 Matplotlib 绘制所得的光曲线并将两者一起显示在仪表板中。
为了生成光曲线我们需要能够测量亮度的变化。我们可以使用 OpenCV 通过对像素执行数学运算来做到这一点。
导入库并分配常量
import tkinter as tk
import matplotlib.pyplot as plt
import cv2 as cvIMG_HT, IMG_WIDTH 400, 500
BLACK_IMG cv.imread(limb_darkening.png)
EXO_RADIUS 7
EXO_DX 3
EXO_START_X 40
EXO_START_Y 230
NUM_FRAMES 145定义创建仪表板的函数
def create_dashb(root):fig, (ax1, ax2) plt.subplots(2, 1, figsize(8, 6))canvas FigureCanvasTkAgg(fig, masterroot)canvas_widget canvas.get_tk_widget()canvas_widget.pack(sidetk.TOP, filltk.BOTH, expand1)intensity_samples []exo_start_x EXO_START_Xfor _ in range(NUM_FRAMES):temp_img BLACK_IMG.copy()cv.circle(temp_img, (exo_start_x, EXO_START_Y), EXO_RADIUS, 0, -1)intensity temp_img.mean()intensity_samples.append(intensity)relative_brightness calc_rel_brightness(intensity_samples)canvas.draw()root.update()root.after(3)
源代码
参阅一 - 亚图跨际
参阅二 - 亚图跨际