如何可视化3D太阳位置(用于太阳能监控软件)?

时间:2014-11-19 06:00:38

标签: data-visualization

我正在从事小业余爱好Raspberry Pi项目。我正在测量来自太阳能电池板的功率和能量。

我正在寻找更好的太阳位置可视化方法。

到目前为止,我最好的想法很容易实现,如下所示:

enter image description here

我发现了一些非常好的东西:

enter image description here

(图片来源:link

但我觉得实施起来有点太难了。

我正在寻找这两者之间的某种妥协 - 易于用户阅读,而且实施起来并不那么难。

2 个答案:

答案 0 :(得分:1)

有点缺乏要求,但我喜欢你的第一种方法。我假设要求包括基于终端的接口,所以我认为你应该使用ASCII来呈现它。 ; - )

     *
      \
       \
    50˚(\
---------+---------
E        N        W

说真的,也许是一张X / Y轴显示高度和方位角的图表,结合第一种方法?也许是一张与this page上的其中一张相似的图表,显示了今天太阳的进展?

P.S。我标记这个社区维基,因为我认为这可能是偏离主题的。 =(虽然你赢得了我的近距离投票!

答案 1 :(得分:0)

您是否尝试过将MatPlotLib与PySolar结合使用?!使用Pysolar,您可以轻松获得Sun的Azimuth和Zenith。使用Matplotlib,您可以绘制图像。

我就是这样做的。

    latitude, longitude = 53.280223, 12.236105
    tilt_pv = 36.16 #tilt of PV panel.
    azimuth_pv = 180. #North-South alignment of your PV panel. In this case 180° depicts that panel is facing South
    baseDateTime = datetime(2015, 6, 9, 12, 0, 0) #Timestamp for 9 June 2015 12 UTC

    zenith = Pysolar.GetAltitude(latitude, longitude, baseDateTime)
    azimuth = Pysolar.GetAzimuth(latitude, longitude, baseDateTime)

那会给你太阳位置..这应该进入你的MatPlotLib配置来绘制这个:

from mpl_toolkits.axes_grid.axislines import SubplotZero
import matplotlib.pyplot as plt
import numpy as np

if 1:
    fig = plt.figure(1)
    ax = SubplotZero(fig, 111)
    fig.add_subplot(ax)

    for direction in ["xzero", "yzero"]:
        ax.axis[direction].set_axisline_style("-|>")
        ax.axis[direction].set_visible(True)

    for direction in ["left", "right", "bottom", "top"]:
        ax.axis[direction].set_visible(False)

    x = np.linspace(0., zenith, 1000) #straight line in 1000 steps
    ax.plot(x, azimuth)

    plt.show()

我们正在添加它。我编写了一个Python程序来预测GFS天气模型中的太阳能(我使用:全球辐射,风速和温度),这是免费提供的。你有兴趣运行并测试这个吗?!我想看看它是否有任何好处或者我需要在哪些方面表现出来。

相关问题