Class: When::Ephemeris::Hindu

Inherits:
Formula show all
Defined in:
lib/when_exe/region/indian.rb

Overview

Hindu Luni-Solar Calendar Formula

Defined Under Namespace

Classes: ClassicGraha, ConcentricGraha, Graha, InferiorPlanet, ModernGraha, Moon, Planet, RealGraha, Sun, SuperiorPlanet, VirtualGraha

Constant Summary collapse

Tz =

Basic Astronomical Constants for Surya-Siddhanta

0.5+75.8/360
E =

time difference between JulianDayNumber and Ujjain

588_466 - Tz
P =

Yuga Epoch -3101-02-18T00:00:00

180
Ep =

Precession cycles in yuga

1_903_318 - Tz
Ob =

Precession Epoch 499-01-01

24.0 / 360.0
Grahas =

Obliquity of the ecliptic

{
  'SS' => {                         #     Previous  /  Newest
    :Star      => 1_582_237_800.0,  # 1_582_237_500 / 1_582_237_800
    :Sun       =>     4_320_000.0,
    :Moon      =>    57_753_336.0,
    :Mercury   =>    17_937_000.0,
    :Venus     =>     7_022_388.0,
    :Mars      =>     2_296_824.0,
    :Jupiter   =>       364_220.0,
    :Saturn    =>       146_564.0,
    :Candrocca =>       488_219.0,  #       488_203 /       488_219
    :Rahu      =>      -232_226.0
  },
  'SB' => {
    :Star      => 1_582_237_828.0,
    :Sun       =>     4_320_000.0,
    :Moon      =>    57_753_336.0,
    :Mercury   =>    17_937_060.0,
    :Venus     =>     7_022_376.0,
    :Mars      =>     2_296_832.0,
    :Jupiter   =>       364_220.0,
    :Saturn    =>       146_568.0,
    :Candrocca =>       488_203.0,   #      488_199 /       488_203
    :Rahu      =>      -232_238.0
  }
}

Constants inherited from Formula

Formula::Bs, Formula::Sgn

Constants included from When::Ephemeris

AU, AcS, BCENT, C0, CIRCLE, COS, COSL, COSLT, COST, DAY, DEG, EPOCH1800, EPOCH1900, EPOCH1975, EPOCH2000, FARAWAY, JCENT, JYEAR, Jupiter, LIN, Mars, Mercury, Neptune, PSEC, Pluto, SIN, SINL, SINLT, SINT, Saturn, Uranus, Venus

Constants included from Namespace

Namespace::DC, Namespace::DCQ, Namespace::DCT, Namespace::FOAF, Namespace::OWL, Namespace::RDF, Namespace::RDFC, Namespace::RDFS, Namespace::RSS, Namespace::XSD

Instance Attribute Summary collapse

Attributes inherited from Formula

#alt, #formula, #graha, #is_dynamical, #lat, #location, #long, #time_standard

Attributes inherited from BasicTypes::Object

#label

Attributes included from Parts::Resource

#child, #keys, #locale, #namespace

Instance Method Summary collapse

Methods inherited from Formula

#_coords, #_to_seed_type, #cn_to_time_, #day_event, #lunar_eclipse, #meridian_passage_of_moon, #meridian_passage_of_sun, #moon_noon, #moon_visibility, #moonrise, #moonset, #nearest_past, #phase_range, #solar_eclipse, #time_to_cn, #year_event

Methods included from When::Ephemeris

_adjust, _rot, _to_p2, _to_p3, _to_r3, acos, asin, cosc, cosd, delta_e, delta_p, julian_century_from_2000, julian_year_from_1975, obl, polynomial, root, sinc, sind, tanc, tand, trigonometric

Methods included from Parts::MethodCash

_setup_, _setup_info, escape, #method_missing, #method_missing_

Methods included from Parts::Resource

#[], #^, _instance, _setup_, _setup_info, base_uri, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #parent, #registered?, root_dir

Methods included from Parts::Resource::Pool

#[], #[]=, #_setup_

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class When::Parts::MethodCash

Instance Attribute Details

#civil_daysNumeric (readonly)

ユガの太陽日数

Returns:



479
480
481
# File 'lib/when_exe/region/indian.rb', line 479

def civil_days
  @civil_days
end

Instance Method Details

#sun_noon(sdn) ⇒ Integer, When::TM::DateAndTime

太陽の南中の日時

Parameters:

Returns:



516
517
518
# File 'lib/when_exe/region/indian.rb', line 516

def sun_noon(sdn)
  _to_seed_type(sdn.to_i - @long / 360.0, sdn)
end

#sunrise(sdn, height = nil) ⇒ Integer, When::TM::DateAndTime

日の出の日時

Parameters:

Returns:



489
490
491
492
493
# File 'lib/when_exe/region/indian.rb', line 489

def sunrise(sdn, height=nil)
  t   = sdn.to_i - @long / 360.0 - 0.25
  p   = _mean_sun(t) +  P * (t - Ep) / @civil_days
  _to_seed_type(t - asin(tand(@lat)*tan(asin(sinc(p)*sinc(Ob)))) / CIRCLE, sdn)
end

#sunset(sdn, height = nil) ⇒ Integer, When::TM::DateAndTime

日の入りの日時

Parameters:

Returns:



503
504
505
506
507
# File 'lib/when_exe/region/indian.rb', line 503

def sunset(sdn, height=nil)
  t   = sdn.to_i - @long / 360.0 + 0.25
  p   = _mean_sun(t) +  P * (t - Ep) / @civil_days
  _to_seed_type(t + asin(tand(@lat)*tan(asin(sinc(p)*sinc(Ob)))) / CIRCLE, sdn)
end