Module: IERS::EopLookup Private
- Defined in:
- lib/iers/eop_lookup.rb
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Class Method Summary collapse
-
.bracket(entries, mjd) ⇒ Array
private
Two-element array bracketing the query point.
-
.range(entries, start_mjd, end_mjd) ⇒ Array
private
Entries within the MJD range (inclusive).
- .window(entries, mjd, order: 4) ⇒ Array private
Class Method Details
.bracket(entries, mjd) ⇒ Array
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns two-element array bracketing the query point.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/iers/eop_lookup.rb', line 40 def bracket(entries, mjd) validate_range!(entries, mjd) index = entries.bsearch_index { |e| e.mjd > mjd } if index.nil? || index == 0 raise OutOfRangeError.new( "No bracket available for MJD #{mjd}", requested_mjd: mjd, available_range: entries.first.mjd..entries.last.mjd ) end [entries[index - 1], entries[index]] end |
.range(entries, start_mjd, end_mjd) ⇒ Array
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns entries within the MJD range (inclusive).
30 31 32 33 34 |
# File 'lib/iers/eop_lookup.rb', line 30 def range(entries, start_mjd, end_mjd) first = entries.bsearch_index { |e| e.mjd >= start_mjd } || entries.size last = entries.bsearch_index { |e| e.mjd > end_mjd } || entries.size entries[first...last] end |
.window(entries, mjd, order: 4) ⇒ Array
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/iers/eop_lookup.rb', line 13 def window(entries, mjd, order: 4) validate_range!(entries, mjd) index = entries.bsearch_index { |e| e.mjd > mjd } || entries.size center = index - 1 half = order / 2 start = center - half + 1 start = start.clamp(0, entries.size - order) entries[start, order] end |