Class: When::Ephemeris::CelestialObject

Inherits:
BasicTypes::Object show all
Includes:
When::Ephemeris
Defined in:
lib/when_exe/ephemeris.rb

Overview

天体

天体の特性を定義する

Direct Known Subclasses

Datum, Star

Constant Summary

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, P0B, P0L, P0P, P0dB, P0dL, P1B, P1L, P1R, P2B, P2L, P2Q, P2dL, P3L, P3Q, P4B, P4L, P4Q, P4dL, P5B, P5L, P5Q, P5dL, P5l, P5n, P5r, P5t, P6B, P6L, P6Q, P6dL, P6l, P6n, P6r, P6t, P7B, P7L, P7R, P8B, P8L, P8R, P9B, P9L, P9R, PSEC, Pluto, SIN, SINL, SINLT, SINT, Saturn, Uranus, Venus

Constants included from Parts::Resource

Parts::Resource::ConstList, Parts::Resource::ConstTypes, Parts::Resource::IRIHeader, Parts::Resource::LabelProperty

Instance Attribute Summary collapse

Attributes inherited from BasicTypes::Object

#label

Attributes included from Parts::Resource

#_pool, #child, #keys, #locale, #namespace

Instance Method Summary collapse

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::Resource

#[], #^, _abbreviation_to_iri, _decode, _encode, _extract_prefix, _instance, _instantiate, _parse, _path_with_prefix, _replace_tags, _setup_, _setup_info, _simplify_path, base_uri, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #next, #parent, #prev, #registered?, root_dir

Methods included from Parts::Resource::Pool

#[], #[]=, #_pool, #_setup_, #pool_keys

Methods included from Parts::Resource::Synchronize

#synchronize

Dynamic Method Handling

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

Instance Attribute Details

#aberrationNumeric (readonly)

光行差 / 度

Returns:



754
755
756
# File 'lib/when_exe/ephemeris.rb', line 754

def aberration
  @aberration
end

#luminosityNumeric (readonly)

光度 / magnitude

Returns:



758
759
760
# File 'lib/when_exe/ephemeris.rb', line 758

def luminosity
  @luminosity
end

Instance Method Details

#coords(t, base = nil) ⇒ When::Ephemeris::Coords

天体位置 (黄道座標)

Parameters:

Returns:



768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
# File 'lib/when_exe/ephemeris.rb', line 768

def coords(t, base=nil)
  t = +t
  target_coords = self._coords(t)
  return target_coords unless base
  base_coords = base._coords(t)
  differrence = target_coords - base_coords
  delta_phi   = differrence.phi - base_coords.phi
  phi         = differrence.phi
  theta       = differrence.theta
  if @aberration && @aberration != 0
    phi -= @aberration / 360 * cosc(differrence.phi - target_coords.phi) / target_coords.radius
  end
  if base.respond_to?(:aberration)
    phi   += base.aberration / 360 / cosc(theta) * cosc(delta_phi) / base_coords.radius
    theta -= base.aberration / 360 * sinc(theta) * sinc(delta_phi) / base_coords.radius
  end
  Coords.polar(phi, theta, differrence.radius, differrence.c)
end