-
춘분, 하지, 추분, 동지과학적이거나 기술적인 2022. 11. 9. 17:53
춘분을 흔히 봄에 낮과 밤의 길이가 같은 날이라고 하지만, 엄밀히 말해 태양이 황경(黃經) 0도를 지날 때, 또는 황도를 지나 북쪽으로 올라가기 시작하는 때를 말한다. 이를 구하는 공식이 너무 복잡하여 이해할 수 없지만, pymeeus라는 파이선 라이브러리를 이용하여 춘분과 동지를 구할 수 있다.
해다마 대략 여섯 시간씩 늦춰지는데, 윤년이 있어서 그 변동 폭이 하루 이내로 제한된다고 한다.
import argparse from datetime import date from pymeeus.Sun import Sun import math import arrow def celestial_longitude(year, season, title): epoch = Sun.get_equinox_solstice(year, target=season) epochUTC = epoch.get_full_date(utc=True) frac, integer = math.modf(epochUTC[5]) # timepoint = arrow.get(*epochutc[:5]) GMT = arrow.get(*epochUTC[:5], int(integer), round(frac*1e6)) Korea = GMT.shift(hours=9) GMT = GMT.format('YYYY-MM-DD HH:mm:ss') Korea = Korea.format('YYYY-MM-DD HH:mm:ss') print('\t{}\tGMT: {} Korea: {}'.format(title, GMT, Korea)) season={ 'spring': 'Spring equinox', 'summer': 'Summer solstice', 'autumn': 'Autumn equinox', 'winter': 'Winter solstice' } parser = argparse.ArgumentParser( description = 'Get equinox and solstice dates.' ) parser.add_argument( 'years', nargs='*', help='Enter a year.' ) args = parser.parse_args() if len(args.years) == 0: args.years.append(date.today().year) for year in args.years: print(year, end='') for i in season.items(): celestial_longitude(int(year), i[0], i[1])
'과학적이거나 기술적인' 카테고리의 다른 글
맥스웰 방정식 (Maxwell's equations) (0) 2023.03.08 ChatGPT (0) 2023.01.25 연골 (0) 2022.09.26 코사인 법칙 (0) 2022.07.01 나선형 (0) 2022.06.15