Class: When::CalendarNote::Ephemeris
- Inherits:
-
When::CalendarNote
- Object
- BasicTypes::Object
- TM::Object
- TM::ReferenceSystem
- When::CalendarNote
- When::CalendarNote::Ephemeris
- Defined in:
- lib/when_exe/ephemeris/notes.rb
Overview
天体暦の暦注
Constant Summary collapse
- Notes =
[When::BasicTypes::M17n, [ "locale:[=en:, ja=ja:, alias=ja:]", "names:[Ephemeris]", # 年の暦注 ---------------------------- [When::BasicTypes::M17n, "names:[year]" ], # 月の暦注 ---------------------------- [When::BasicTypes::M17n, "names:[month]", [When::BasicTypes::M17n, "names:[Month]" ] ], # 日の暦注 ---------------------------- [When::BasicTypes::M17n, "names:[day]", "[Sunrise, 日の出 ]", # 日の出 "[Sunset, 日の入り ]", # 日の入り [When::Coordinates::Residue, "label:[Moon_Age=, 正午月齢=ja:%%<月齢>]", "divisor:60", "format:[%s(%4.1f)=]" ], "[Moonrise, 月の出 ]", # 月の出 "[Moonset=, 月の入り ]", # 月の入り [When::BasicTypes::M17n, "names:[Tide, 潮汐]", # 満潮干潮日時 "[High_Tide=en:Tide, 満潮=ja:%%<潮汐>]", "[Low_Tide=en:Tide, 干潮=ja:%%<潮汐>]" ] ] ]]
Constants inherited from When::CalendarNote
Bahai, CalendarDepend, Chinese, CommonWithRokuyo, CommonWithSovietFiveDay, CommonWithSovietSixDay, Default, Javanese, JulianDay, Mayan, Tibetan, Yis
Constants included from Parts::Resource
Parts::Resource::ConstList, Parts::Resource::ConstTypes, Parts::Resource::IRIHeader, Parts::Resource::LabelProperty
Instance Attribute Summary
Attributes inherited from When::CalendarNote
Attributes inherited from TM::ReferenceSystem
#domain_of_validity, #position
Attributes inherited from BasicTypes::Object
Attributes included from Parts::Resource
#_pool, #child, #keys, #locale, #namespace
Instance Method Summary collapse
-
#moon_age(date, options = {}) ⇒ Numeric
正午月齢.
-
#moonrise(date, options = {}) ⇒ When::TM::TemporalPosition
月の出.
-
#moonset(date, options = {}) ⇒ When::TM::TemporalPosition
月の入り.
-
#sunrise(date, options = {}) ⇒ When::TM::TemporalPosition
日の出.
-
#sunset(date, options = {}) ⇒ When::TM::TemporalPosition
日の入り.
-
#tide(date, options = {}) ⇒ Array<Array<Integer, When::TM::TemporalPosotion>>
干潮・満潮の日時.
Methods inherited from When::CalendarNote
#copy, #day, #duration, #enum_for, #include?, #month, #note?, #notes, #year
Methods inherited from TM::ReferenceSystem
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
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class When::Parts::Resource
Instance Method Details
#moon_age(date, options = {}) ⇒ Numeric
正午月齢
277 278 279 280 281 |
# File 'lib/when_exe/ephemeris/notes.rb', line 277 def moon_age(date, ={}) @phase ||= When.CalendarNote('LunarPhases') noon = date.floor(When::DAY,When::SYSTEM) + 0.5 @root['Moon_Age'][noon.to_f - @phase.phase(noon, [-30.0,30.0]).to_f] end |
#moonrise(date, options = {}) ⇒ When::TM::TemporalPosition
月の出
291 292 293 294 295 296 297 |
# File 'lib/when_exe/ephemeris/notes.rb', line 291 def moonrise(date, ={}) event = formula(date.location.iri).moonrise(date) event.events = [@root['Moonrise']] event rescue nil end |
#moonset(date, options = {}) ⇒ When::TM::TemporalPosition
月の入り
307 308 309 310 311 312 313 |
# File 'lib/when_exe/ephemeris/notes.rb', line 307 def moonset(date, ={}) event = formula(date.location.iri).moonset(date) event.events = [@root['Moonset']] event rescue nil end |
#sunrise(date, options = {}) ⇒ When::TM::TemporalPosition
日の出
245 246 247 248 249 250 251 |
# File 'lib/when_exe/ephemeris/notes.rb', line 245 def sunrise(date, ={}) event = formula(date.location.iri).sunrise(date) event.events = [@root['Sunrise']] event rescue nil end |
#sunset(date, options = {}) ⇒ When::TM::TemporalPosition
日の入り
261 262 263 264 265 266 267 |
# File 'lib/when_exe/ephemeris/notes.rb', line 261 def sunset(date, ={}) event = formula(date.location.iri).sunset(date) event.events = [@root['Sunset']] event rescue nil end |
#tide(date, options = {}) ⇒ Array<Array<Integer, When::TM::TemporalPosotion>>
干潮・満潮の日時
328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 |
# File 'lib/when_exe/ephemeris/notes.rb', line 328 def tide(date, ={}) return nil unless @interval @target ||= When.Resource('_ep:Moon') events = @root['Tide'] form = formula(date.location.iri) type = [:tide] =~ /\Ahorizon/i ? nil : 0 now = +date high_tides = [] 5.times do |i| high_tide = form.day_event(now + i - 2, type, @target) + @interval high_tides << high_tide if high_tides.size == 0 || high_tide > high_tides[-1] + 0.5 end tides = [] (high_tides.size-1).times do |i| tides << [0, high_tides[i]] tides << [1, 0.75*high_tides[i] + 0.25*high_tides[i+1]] tides << [0, 0.50*high_tides[i] + 0.50*high_tides[i+1]] tides << [1, 0.25*high_tides[i] + 0.75*high_tides[i+1]] end tides << [0, high_tides[-1]] today = +date.floor(When::DAY)...+date.ceil(When::DAY) seed = date._attr seed[:clock] ||= When::TM::Clock.local_time tides.select {|x| today.include?(x[1])}.map {|x| d = form._to_seed_type(x[1], seed) d.events = [events[x[0]]] d } rescue nil end |