【问题标题】:How to calculate the light reflection angle on tridimensional space如何计算立体空间上的光反射角
【发布时间】:2019-09-10 14:26:59
【问题描述】:

我有以下情况:

一个位于地球表面的点,具有 3D 坐标(X、Y、Z)和一架飞机内的相机,从地表拍摄照片。对于相机,我也有拍摄图像时的 3D 坐标(X、Y、Z)。

对于这种情况,我需要计算地球表面上的点与飞机内的相机之间的光反射角。

我想要计算这个角度的建议或想法。我知道可能的解决方案将使用解析几何。

我已经使用 PVLIB 库计算了太阳入射角到表面上的点,但我在 pvlib 上找不到确定光反射角的函数。

谢谢你的帮助!!

【问题讨论】:

    标签: python angle pvlib


    【解决方案1】:

    我假设您使用太阳仰角和方位角通过某些公式计算太阳入射矢量,例如(假设方位角为 [N=0 / E=90 / S=180 / W=270]):

    Vx_s = sin(sun_azim) * cos(sun_elev)
    Vy_s = cos(sun_azim) * cos(sun_elev)
    Vz_s = sin(sun_elev)
    

    考虑到平面上的光反射(与天顶的法线矢量水平),反射光的矢量(前向光,不考虑散射/色散光线,例如镜面)将是

    Vx_r = sin(sun_azim + 180) * cos(sun_elev)
    Vy_r = cos(sun_azim + 180) * cos(sun_elev)
    Vz_r = sin(sun_elev)
    

    平面相机的向量为:

    Vx_p = X_plane - X_surface
    Vy_p = Y_plane - Y_surface
    Vz_p = Z_plane - Z_surface
    

    那么,反射光线与飞机相机的夹角为(考虑本例中平面点矢量不是单位矢量):

    alpha = arccos( (Vx_p*Vx_r + Vy_p*Vy_r + Vz_p*Vz_r) / sqrt(Vx_p**2 + Vy_p**2 + Vz_p**2) )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-19
      • 2011-07-17
      • 2015-02-05
      • 1970-01-01
      • 2010-10-08
      • 2020-05-22
      • 2013-01-04
      • 2012-05-12
      相关资源
      最近更新 更多