太阳升起/使用PyEphem中的Observer点为Equinox / Solstice设置方位角

时间:2013-04-19 19:04:22

标签: pyephem

基本上我要做的是:

  • 采取观察点(使用纬度/经度)
  • 计算给定开始日期的下一个春分和冬至的日期
  • 查找每个
  • 的日落方位角
  • 找到每个
  • 的日出方位角

*请注意,我在ArcGIS中工作,所以我的一些价值观来自外部表格

以下是我所拥有的一切:

sun = ephem.Sun()
final = ephem.Observer()
final.lon = row[1]
final.lat = row[2]
final.elevation = row[3]

equinoxDate = ephem.next_equinox('0001/01/01')
equinoxSetDate = final.next_setting(ephem.Sun(), start=equinoxDate, use_center=True)
final.date = equinoxSetDate
sun.compute(final)

print sun.az

我一直挂在“next_setting”部分。我得到NeverUpError ...如果我把它切换到previous_setting,next_rising,previous_rising ......这没关系。我总是得到NeverUpError或AlwaysUpError。

如果有人可以帮助我找到Equinox Sunset的方位角(在任何日期),那么我可以找出其余的我确定。

如果不清楚,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:0)

我明白了。我得到错误是因为:final.lon,final.lat被pyephem视为字符串。所以我通过说final.lon = str(row [1])切换它并从那里开始。现在很棒!布兰登,你的价值观正确。

sun = ephem.Sun()
final = ephem.Observer()
final.lon = str(row[1])
final.lat = str(row[2])
final.elevation = row[3]

equinoxDate = ephem.next_equinox('0001/01/01')
equinoxSetDate = final.next_setting(ephem.Sun(), start=equinoxDate, use_center=True)
final.date = equinoxSetDate
sun.compute(final)

print sun.az