복붙노트

[PYTHON] PyEphem을 사용하여 새벽과 일몰 시간 계산하기

PYTHON

PyEphem을 사용하여 새벽과 일몰 시간 계산하기

PyEphem을 사용하여 Dawn, Dusk, 일몰 시간을 계산할 수 있습니까? 나는 PyEphem을 사용하여 낮과 밤 시간을 만들었지 만 일몰 / 황혼 / 새벽에는 아무것도 찾지 못했습니다.

해결법

  1. ==============================

    1.새벽 amd 황혼의 경우, 황혼에 관한 pyephem 문서를 참조하십시오. 간단히 말해서, 새벽과 황혼은 태양의 중심이 수평선 아래의 특정 각도에있는 시간을 표현합니다. 이 계산에 사용 된 각도는 각각 6도, 12도 및 18도를 사용하는 "민간인", 항해 (항해) 및 천문학의 황혼의 정의에 따라 다릅니다.

    새벽 amd 황혼의 경우, 황혼에 관한 pyephem 문서를 참조하십시오. 간단히 말해서, 새벽과 황혼은 태양의 중심이 수평선 아래의 특정 각도에있는 시간을 표현합니다. 이 계산에 사용 된 각도는 각각 6도, 12도 및 18도를 사용하는 "민간인", 항해 (항해) 및 천문학의 황혼의 정의에 따라 다릅니다.

    야당에서 일출은 태양의 가장자리가 수평선 바로 위 / 아래 (0도)에 나타나거나 해가 지날 때 사라집니다. 그러므로 모두, 민간인, 선원 및 천문학 애호가 모두 똑같은 상승 / 정각을 얻습니다. (pyephem 문서의 Naval Observatory 상승 및 설정 참조).

    요약하면, 한 번 pyephem.Observer (lat, long, date, time, pressure (고도에 대한?) 등), 다양한 황혼의 시간 (새벽, 황혼)과 일출과 일몰 시간을 적절히 매개 변수화했다 에서 얻은 Observer.previous_rising () 및 Observer.next_setting () 메소드는,   이로써   첫 번째 인수는 ephem.Sun ()이고   황혼 계산에 use_center = 인수를 True로 설정해야합니다.   수평선은 0 (또는 대기의 굴절을 고려하면 0:34) 또는 -6, -12 또는 -18입니다.

  2. ==============================

    2.다음 스크립트는 PyEphem을 사용하여 일출, 일몰 및 황혼 시간을 계산합니다. 의견은 각 부분의 역할을 설명하기에 충분해야합니다.

    다음 스크립트는 PyEphem을 사용하여 일출, 일몰 및 황혼 시간을 계산합니다. 의견은 각 부분의 역할을 설명하기에 충분해야합니다.

    import ephem
    
    #Make an observer
    fred      = ephem.Observer()
    
    #PyEphem takes and returns only UTC times. 15:00 is noon in Fredericton
    fred.date = "2013-09-04 15:00:00"
    
    #Location of Fredericton, Canada
    fred.lon  = str(-66.666667) #Note that lon should be in string format
    fred.lat  = str(45.95)      #Note that lat should be in string format
    
    #Elevation of Fredericton, Canada, in metres
    fred.elev = 20
    
    #To get U.S. Naval Astronomical Almanac values, use these settings
    fred.pressure= 0
    fred.horizon = '-0:34'
    
    sunrise=fred.previous_rising(ephem.Sun()) #Sunrise
    noon   =fred.next_transit   (ephem.Sun(), start=sunrise) #Solar noon
    sunset =fred.next_setting   (ephem.Sun()) #Sunset
    
    #We relocate the horizon to get twilight times
    fred.horizon = '-6' #-6=civil twilight, -12=nautical, -18=astronomical
    beg_twilight=fred.previous_rising(ephem.Sun(), use_center=True) #Begin civil twilight
    end_twilight=fred.next_setting   (ephem.Sun(), use_center=True) #End civil twilight
    

    지평선을 재배치하면 지구의 곡률을 중심으로 빛의 굴절이 일어난다. 파이 헴 (PyEhem)은 온도와 압력을 가하면 더 정확히 계산할 수 있지만, 해군 천문력 연대는 대기를 무시하고 단순히 수평선을 재배치하기를 선호합니다. 나는이 종류의 계산을 검사 할 수있는 권위있는 자료이기 때문에 여기 USNAA를 언급합니다. NOAA 웹 사이트에서 답변을 확인할 수도 있습니다.

    PyEphem은 UTC 시간으로 값을 취하고 반환합니다. 즉, 현지 시간을 UTC로 변환 한 다음 UTC를 로컬 시간으로 변환하여 찾고있는 해답을 찾아야합니다. 나는이 대답을 쓴 날짜에 ADT 시간대 인 캐나다의 Fredericton을 UTC보다 3 시간 늦 춥니 다.

    킥을 위해서, 나는 또한 태양 정오의 계산에 던져 넣었다. 이것은 예상보다 시간이 더 많이 소요됩니다. 이는 일광 절약 시간제 사용의 부작용입니다.

    이 모든 것이 반환됩니다.

    begin civil twilight: 2013/9/4 09:20:46
    sunrise:              2013/9/4 09:51:25
    noon:                 2013/9/4 16:25:33
    sunset:               2013/9/4 22:58:49
    end civil twilight:   2013/9/4 23:29:22
    

    ADT 시간대로 변환하려면 3 시간을 빼야합니다.

    이 PyEhem 문서 페이지에는 위의 내용이 많이 포함되어 있습니다. 비록 내가 혼란스럽고 StackOverflow에서 그 링크의 중요한 부분을 포함하고있는 점을 분명히하려고 노력했습니다.

  3. ==============================

    3.황혼 / 새벽의 다른 정의에 따라 수평선 아래에 수평선 매개 변수를 설정하려고 할 수 있습니다.

    황혼 / 새벽의 다른 정의에 따라 수평선 아래에 수평선 매개 변수를 설정하려고 할 수 있습니다.

  4. from https://stackoverflow.com/questions/2637293/calculating-dawn-and-sunset-times-using-pyephem by cc-by-sa and MIT license