Class ViennaModelCoefficientsLoader

java.lang.Object
org.orekit.data.AbstractSelfFeedingLoader
org.orekit.models.earth.troposphere.ViennaModelCoefficientsLoader
All Implemented Interfaces:
DataLoader

public class ViennaModelCoefficientsLoader extends AbstractSelfFeedingLoader implements DataLoader
Loads Vienna tropospheric coefficients a given input stream. A stream contains, for a given day and a given hour, the hydrostatic and wet zenith delays and the ah and aw coefficients used for the computation of the mapping function. The coefficients are given with a time interval of 6 hours.

A bilinear interpolation is performed the case of the user initialize the latitude and the longitude with values that are not contained in the stream.

The coefficients are obtained from Vienna Mapping Functions Open Access Data. Find more on the files at the VMF Model Documentation.

The files have to be extracted to UTF-8 text files before being read by this loader.

After extraction, it is assumed they are named VMFG_YYYYMMDD.Hhh for ViennaOne and VMF3_YYYYMMDD.Hhh ViennaThree. Where YYYY is the 4-digits year, MM the month, DD the day and hh the 2-digits hour.

The format is always the same, with and example shown below for VMF1 model.

Example:

 ! Version:            1.0
 ! Source:             J. Boehm, TU Vienna (created: 2018-11-20)
 ! Data_types:         VMF1 (lat lon ah aw zhd zwd)
 ! Epoch:              2018 11 19 18 00  0.0
 ! Scale_factor:       1.e+00
 ! Range/resolution:   -90 90 0 360 2 2.5
 ! Comment:            https://vmf.geo.tuwien.ac.at/trop_products/GRID/2.5x2/VMF1/VMF1_OP/
  90.0   0.0 0.00116059  0.00055318  2.3043  0.0096
  90.0   2.5 0.00116059  0.00055318  2.3043  0.0096
  90.0   5.0 0.00116059  0.00055318  2.3043  0.0096
  90.0   7.5 0.00116059  0.00055318  2.3043  0.0096
  90.0  10.0 0.00116059  0.00055318  2.3043  0.0096
  90.0  12.5 0.00116059  0.00055318  2.3043  0.0096
  90.0  15.0 0.00116059  0.00055318  2.3043  0.0096
  90.0  17.5 0.00116059  0.00055318  2.3043  0.0096
  90.0  20.0 0.00116059  0.00055318  2.3043  0.0096
  90.0  22.5 0.00116059  0.00055318  2.3043  0.0096
  90.0  25.0 0.00116059  0.00055318  2.3043  0.0096
  90.0  27.5 0.00116059  0.00055318  2.3043  0.0096
 

It is not safe for multiple threads to share a single instance of this class.

Author:
Bryan Cazabonne
  • Field Details

    • DEFAULT_SUPPORTED_NAMES

      public static final String DEFAULT_SUPPORTED_NAMES
      Default supported files name pattern.
      See Also:
  • Constructor Details

  • Method Details

    • getA

      public double[] getA()
      Returns the a coefficients array.
      • double[0] = ah
      • double[1] = aw
      Returns:
      the a coefficients array
    • getZenithDelay

      public double[] getZenithDelay()
      Returns the zenith delay array.
      • double[0] = Dhz → zenith hydrostatic delay
      • double[1] = Dwz → zenith wet delay
      Returns:
      the zenith delay array
    • getSupportedNames

      public String getSupportedNames()
      Description copied from class: AbstractSelfFeedingLoader
      Get the supported names regular expression.
      Overrides:
      getSupportedNames in class AbstractSelfFeedingLoader
      Returns:
      the supported names.
      See Also:
    • loadViennaCoefficients

      public void loadViennaCoefficients()
      Load the data using supported names .
    • loadViennaCoefficients

      public void loadViennaCoefficients(DateTimeComponents dateTimeComponents)
      Load the data for a given day.
      Parameters:
      dateTimeComponents - date and time component.
    • stillAcceptsData

      public boolean stillAcceptsData()
      Description copied from interface: DataLoader
      Check if the loader still accepts new data.

      This method is used to speed up data loading by interrupting crawling the data sets as soon as a loader has found the data it was waiting for. For loaders that can merge data from any number of sources (for example JPL ephemerides or Earth Orientation Parameters that are split among several files), this method should always return true to make sure no data is left over.

      Specified by:
      stillAcceptsData in interface DataLoader
      Returns:
      true while the loader still accepts new data
    • loadData

      public void loadData(InputStream input, String name) throws IOException, ParseException
      Description copied from interface: DataLoader
      Load data from a stream.
      Specified by:
      loadData in interface DataLoader
      Parameters:
      input - data input stream
      name - name of the file (or zip entry)
      Throws:
      IOException - if data can't be read
      ParseException - if data can't be parsed or if some loader specific error occurs