Class: SideTime
- Inherits:
-
Object
- Object
- SideTime
- Defined in:
- lib/side_time/version.rb,
ext/side_time/side_time.c
Overview
class file SideTime
Constant Summary collapse
- VERSION =
version 0.1.0
'0.1.0'
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#ajd(date) ⇒ Object
convert Date or DateTime object to AJD number.
-
#gmst(date) ⇒ Object
calculate Greenwhich Mean Sidereal Time.
-
#initialize ⇒ Object
constructor
Create CalcSun class Ruby object.
-
#jd(date) ⇒ Object
convert Date or DateTime object to JD number.
-
#lmst(date) ⇒ Object
calculate Local Mean Sidereal Time.
-
#date('yyyy-mm-dd') ⇒ Object
convert input string to Date object.
Constructor Details
#initialize ⇒ Object
Create CalcSun class Ruby object.
26 27 28 |
# File 'ext/side_time/side_time.c', line 26 static VALUE t_init(VALUE self){ return self; } |
Instance Attribute Details
#date ⇒ Object
Instance Method Details
#ajd(date) ⇒ Object
convert Date or DateTime object to AJD number.
59 60 61 62 |
# File 'ext/side_time/side_time.c', line 59 static VALUE func_get_ajd(VALUE self, VALUE vdate){ double ajd = NUM2DBL(rb_funcall(vdate, rb_intern("ajd"), 0)); return DBL2NUM(ajd); } |
#gmst(date) ⇒ Object
calculate Greenwhich Mean Sidereal Time.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'ext/side_time/side_time.c', line 70 static VALUE func_mean_sidetime(VALUE self, VALUE vdate){ double ajd = NUM2DBL(func_get_ajd(self, vdate)); long double sidereal; long double t; t = (ajd - 2451545.0) / 36525.0; /* calc mean angle */ sidereal = 280.46061837 + (360.98564736629 * (ajd - 2451545.0)) + (0.000387933 * t * t) - (t * t * t / 38710000.0); sidereal = fmod(sidereal, 360.0); /* change to hours */ sidereal *= 24.0 / 360.0; return DBL2NUM(roundf(sidereal * RND12) / RND12); } |
#jd(date) ⇒ Object
convert Date or DateTime object to JD number.
48 49 50 51 |
# File 'ext/side_time/side_time.c', line 48 static VALUE func_get_jd(VALUE self, VALUE vdate){ double jd = NUM2DBL(rb_funcall(vdate, rb_intern("jd"), 0)); return DBL2NUM(jd); } |
#lmst(date) ⇒ Object
calculate Local Mean Sidereal Time.
93 94 95 96 97 98 99 100 101 102 |
# File 'ext/side_time/side_time.c', line 93 static VALUE func_local_sidetime(VALUE self, VALUE vdate, VALUE vlon){ double sidereal; double ls; double lon = NUM2DBL(vlon); sidereal = NUM2DBL(func_mean_sidetime(self, vdate)); sidereal *= 15.0; ls = sidereal + lon; ls *= 24.0 / 360.0; return DBL2NUM(roundf(ls * RND12) / RND12); } |
#date('yyyy-mm-dd') ⇒ Object
convert input string to Date object.
36 37 38 39 40 |
# File 'ext/side_time/side_time.c', line 36 static VALUE func_set_datetime(VALUE self, VALUE vdate){ VALUE cDate = rb_const_get(rb_cObject, rb_intern("DateTime")); VALUE day = rb_funcall(cDate, rb_intern("parse"), 1, vdate); return day; } |