Class: Atmospheric::Export::AltitudeTable

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Defined in:
lib/atmospheric/export/altitude_table.rb

Instance Method Summary collapse

Instance Method Details

#add_to_geometric(item) ⇒ Object



17
18
19
# File 'lib/atmospheric/export/altitude_table.rb', line 17

def add_to_geometric(item)
  by_geometric_altitude << item
end

#add_to_geopotential(item) ⇒ Object



21
22
23
# File 'lib/atmospheric/export/altitude_table.rb', line 21

def add_to_geopotential(item)
  by_geopotential_altitude << item
end

#initialize_attrsObject



25
26
27
28
# File 'lib/atmospheric/export/altitude_table.rb', line 25

def initialize_attrs
  self.by_geometric_altitude = []
  self.by_geopotential_altitude = []
end

#set_attrs(klass:, unit: steps_unit, precision: :normal) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/atmospheric/export/altitude_table.rb', line 30

def set_attrs(klass:, unit: steps_unit, precision: :normal)
  initialize_attrs

  steps.each do |h|
    add_to_geometric(
      klass.new.set_altitude(
        type: :geometric, unit: unit, value: h, precision: precision
      )
    )
    add_to_geopotential(
      klass.new.set_altitude(
        type: :geopotential, unit: unit, value: h, precision: precision
      )
    )
  end
  self
end

#stepsObject

Step 50 from -2k to 40k, step 100 above 32k, 200 above 51k to 80k



7
8
9
10
11
# File 'lib/atmospheric/export/altitude_table.rb', line 7

def steps
  ((-2000..31_950).step(50) +
   (32_000..50_900).step(100) +
   (51_000..80_000).step(200))
end

#steps_unitObject



13
14
15
# File 'lib/atmospheric/export/altitude_table.rb', line 13

def steps_unit
  :meters
end