suncasa.utils.jdutil
Functions for converting dates to/from JD and MJD. Assumes dates are historical dates, including the transition from the Julian calendar to the Gregorian calendar in 1582. No support for proleptic Gregorian/Julian calendars.
- Author:
Matt Davis
- Website:
Classes
A subclass of datetime.datetime that performs math operations by first |
Functions
|
Convert Modified Julian Day to Julian Day. |
|
Convert Julian Day to Modified Julian Day |
|
Convert a date to Julian Day. |
|
Convert Julian Day to date. |
|
Convert hours, minutes, seconds, and microseconds to fractional days. |
|
Convert fractional days to hours, minutes, seconds, and microseconds. |
|
Convert a datetime.datetime object to Julian Day. |
|
Convert a Julian Day to an jdutil.datetime object. |
Convert a datetime.timedelta object to a total number of days. |
Module Contents
- suncasa.utils.jdutil.mjd_to_jd(mjd)[source]
Convert Modified Julian Day to Julian Day.
- Parameters:
mjd (float) – Modified Julian Day
- Returns:
jd – Julian Day
- Return type:
float
- suncasa.utils.jdutil.jd_to_mjd(jd)[source]
Convert Julian Day to Modified Julian Day
- Parameters:
jd (float) – Julian Day
- Returns:
mjd – Modified Julian Day
- Return type:
float
- suncasa.utils.jdutil.date_to_jd(year, month, day)[source]
Convert a date to Julian Day.
- Algorithm from ‘Practical Astronomy with your Calculator or Spreadsheet’,
4th ed., Duffet-Smith and Zwart, 2011.
- Parameters:
year (int) – Year as integer. Years preceding 1 A.D. should be 0 or negative. The year before 1 A.D. is 0, 10 B.C. is year -9.
month (int) – Month as integer, Jan = 1, Feb. = 2, etc.
day (float) – Day, may contain fractional part.
- Returns:
jd – Julian Day
- Return type:
float
Examples
Convert 6 a.m., February 17, 1985 to Julian Day
>>> date_to_jd(1985,2,17.25) 2446113.75
- suncasa.utils.jdutil.jd_to_date(jd)[source]
Convert Julian Day to date.
- Algorithm from ‘Practical Astronomy with your Calculator or Spreadsheet’,
4th ed., Duffet-Smith and Zwart, 2011.
- Parameters:
jd (float) – Julian Day
- Returns:
year (int) – Year as integer. Years preceding 1 A.D. should be 0 or negative. The year before 1 A.D. is 0, 10 B.C. is year -9.
month (int) – Month as integer, Jan = 1, Feb. = 2, etc.
day (float) – Day, may contain fractional part.
Examples
Convert Julian Day 2446113.75 to year, month, and day.
>>> jd_to_date(2446113.75) (1985, 2, 17.25)
- suncasa.utils.jdutil.hmsm_to_days(hour=0, min=0, sec=0, micro=0)[source]
Convert hours, minutes, seconds, and microseconds to fractional days.
- Parameters:
hour (int, optional) – Hour number. Defaults to 0.
min (int, optional) – Minute number. Defaults to 0.
sec (int, optional) – Second number. Defaults to 0.
micro (int, optional) – Microsecond number. Defaults to 0.
- Returns:
days – Fractional days.
- Return type:
float
Examples
>>> hmsm_to_days(hour=6) 0.25
- suncasa.utils.jdutil.days_to_hmsm(days)[source]
Convert fractional days to hours, minutes, seconds, and microseconds. Precision beyond microseconds is rounded to the nearest microsecond.
- Parameters:
days (float) – A fractional number of days. Must be less than 1.
- Returns:
hour (int) – Hour number.
min (int) – Minute number.
sec (int) – Second number.
micro (int) – Microsecond number.
- Raises:
ValueError – If days is >= 1.
Examples
>>> days_to_hmsm(0.1) (2, 24, 0, 0)
- suncasa.utils.jdutil.datetime_to_jd(date)[source]
Convert a datetime.datetime object to Julian Day.
- Parameters:
date (datetime.datetime instance)
- Returns:
jd – Julian day.
- Return type:
float
Examples
>>> d = datetime.datetime(1985,2,17,6) >>> d datetime.datetime(1985, 2, 17, 6, 0) >>> jdutil.datetime_to_jd(d) 2446113.75
- suncasa.utils.jdutil.jd_to_datetime(jd)[source]
Convert a Julian Day to an jdutil.datetime object.
- Parameters:
jd (float) – Julian day.
- Returns:
dt – jdutil.datetime equivalent of Julian day.
- Return type:
jdutil.datetime object
Examples
>>> jd_to_datetime(2446113.75) datetime(1985, 2, 17, 6, 0)
- suncasa.utils.jdutil.timedelta_to_days(td)[source]
Convert a datetime.timedelta object to a total number of days.
- Parameters:
td (datetime.timedelta instance)
- Returns:
days – Total number of days in the datetime.timedelta object.
- Return type:
float
Examples
>>> td = datetime.timedelta(4.5) >>> td datetime.timedelta(4, 43200) >>> timedelta_to_days(td) 4.5
- class suncasa.utils.jdutil.datetime[source]
Bases:
datetime.datetimeA subclass of datetime.datetime that performs math operations by first converting to Julian Day, then back to a jdutil.datetime object.
Addition works with datetime.timedelta objects, subtraction works with datetime.timedelta, datetime.datetime, and jdutil.datetime objects. Not all combinations work in all directions, e.g. timedelta - datetime is meaningless.
See also
datetime.datetimeParent class.