我需要计算大约106.000.000不同坐标的太阳天顶角。该坐标是指相机将图像拍摄到飞机后,从在地球表面投影的图像得到的像素的引用。
我正在使用 pvlib.solarposition.get_position()计算太阳天顶角。返回的值正在正确计算(我将一些结果与NOOA网站进行了比较),但是,我需要如何计算许多坐标的太阳天顶角,python花费了很多天(大约5天)来完成函数的执行
我是编程新手,我想知道有什么方法可以加快太阳天顶角的计算。
下面找到了实现的计算太阳天顶角的代码部分:
sol_apar_zen = []
for i in range(size3):
solar_position = np.array(pvl.solarposition.get_solarposition(Data_time_index, lat_long[i][0], lat_long[i][1]))
sol_apar_zen.append(solar_position[0][0])
print(len(sol_apar_zen))
答案 0 :(得分:0)
如果您想加快计算速度,可以使用numba内核(如果已安装)
location.get_solarposition(
datetimes,
method='nrel_numba'
)
否则,您必须基于矢量化numpy数组实现自己的计算。我知道有可能,但不允许分享。如果搜索spencer 1971 solar position
答案 1 :(得分:0)
由于您的坐标表示一个网格,所以另一个选择是为坐标的一个子集计算天顶角,然后进行2-d插值以获取余数。双向的十分之一会减少您的计算时间10000。