相关疑难解决方法(0)

太阳的位置给定时间,经度和纬度

这个问题在三年多前就被提出了.给出了答案,但是我发现解决方案存在问题.

下面的代码在R.我已经将它移植到另一种语言,但是直接在R中测试了原始代码,以确保问题不在于我的移植.

sunPosition <- function(year, month, day, hour=12, min=0, sec=0,
                    lat=46.5, long=6.5) {


  twopi <- 2 * pi
  deg2rad <- pi / 180

  # Get day of the year, e.g. Feb 1 = 32, Mar 1 = 61 on leap years
  month.days <- c(0,31,28,31,30,31,30,31,31,30,31,30)
  day <- day + cumsum(month.days)[month]
  leapdays <- year %% 4 == 0 & (year %% 400 == 0 | year %% 100 != 0) & day >= 60
  day[leapdays] <- day[leapdays] + 1

  # …
Run Code Online (Sandbox Code Playgroud)

math geometry r azimuth astronomy

82
推荐指数
5
解决办法
2万
查看次数

使用PyEphem计算阴影长度

我正在使用PyEphem并且想要计算阴影的长度(假设一个单位长度的棍子被种植在地上).长度将由cot(phi)给出,其中phi是太阳高度角(如果我错了,请纠正我).我不确定在太阳上使用哪个字段?在下面的示例中,我使用角度alt:

import ephem, math
o = ephem.Observer()
o.lat, o.long = '37.0625', '-95.677068'
sun = ephem.Sun()
sunrise = o.previous_rising(sun, start=ephem.now())
noon = o.next_transit(sun, start=sunrise)
shadow = 1 / math.tan(sun.alt)
Run Code Online (Sandbox Code Playgroud)

请检查我的解释如下:

  1. 如果切线是无限的,则表示太阳直接在头顶,没有阴影.
  2. 如果切线为零,则表示太阳位于地平线上且阴影无限长.
  3. 我不知道如何解释cot(phi)的负面结果.有人能帮我吗?

最后,考虑到ephem.Observer(),我很困惑如何使用PyEphem从阴影长度向下工作到下一次太阳将投射该长度的阴影.

我很感激这方面的帮助.

python shadow astronomy pyephem

8
推荐指数
1
解决办法
1871
查看次数

标签 统计

astronomy ×2

azimuth ×1

geometry ×1

math ×1

pyephem ×1

python ×1

r ×1

shadow ×1