CRDConfiguration.java

  1. /* Copyright 2002-2020 CS GROUP
  2.  * Licensed to CS GROUP (CS) under one or more
  3.  * contributor license agreements.  See the NOTICE file distributed with
  4.  * this work for additional information regarding copyright ownership.
  5.  * CS licenses this file to You under the Apache License, Version 2.0
  6.  * (the "License"); you may not use this file except in compliance with
  7.  * the License.  You may obtain a copy of the License at
  8.  *
  9.  *   http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package org.orekit.files.ilrs;

  18. /**
  19.  * Container for Consolidated laser ranging Data Format (CDR) configuration records.
  20.  * @author Bryan Cazabonne
  21.  * @since 10.3
  22.  */
  23. public class CRDConfiguration {

  24.     /** System configuration record. */
  25.     private SystemConfiguration systemRecord;

  26.     /** Laser configuration record. */
  27.     private LaserConfiguration laserRecord;

  28.     /** Detector configuration record. */
  29.     private DetectorConfiguration detectorRecord;

  30.     /** Timing system configuration record. */
  31.     private TimingSystemConfiguration timingRecord;

  32.     /** Transponder configuration record. */
  33.     private TransponderConfiguration transponderRecord;

  34.     /** Software configuration record. */
  35.     private SoftwareConfiguration softwareRecord;

  36.     /** Meteorological configuration record. */
  37.     private MeteorologicalConfiguration meteorologicalRecord;

  38.     /**
  39.      * Get the system configuration record.
  40.      * @return the system configuration record
  41.      */
  42.     public SystemConfiguration getSystemRecord() {
  43.         return systemRecord;
  44.     }

  45.     /**
  46.      * Set the system configuration record.
  47.      * @param systemRecord the record to set
  48.      */
  49.     public void setSystemRecord(final SystemConfiguration systemRecord) {
  50.         this.systemRecord = systemRecord;
  51.     }

  52.     /**
  53.      * Get the laser configuration record.
  54.      * @return the laser configuration record
  55.      */
  56.     public LaserConfiguration getLaserRecord() {
  57.         return laserRecord;
  58.     }

  59.     /**
  60.      * Set the laser configuration record.
  61.      * @param laserRecord the record to set
  62.      */
  63.     public void setLaserRecord(final LaserConfiguration laserRecord) {
  64.         this.laserRecord = laserRecord;
  65.     }

  66.     /**
  67.      * Get the detector configuration record.
  68.      * @return the detector configuration record
  69.      */
  70.     public DetectorConfiguration getDetectorRecord() {
  71.         return detectorRecord;
  72.     }

  73.     /**
  74.      * Set the detector configuration record.
  75.      * @param detectorRecord the record to set
  76.      */
  77.     public void setDetectorRecord(final DetectorConfiguration detectorRecord) {
  78.         this.detectorRecord = detectorRecord;
  79.     }

  80.     /**
  81.      * Get the timing system configuration record.
  82.      * @return the timing system configuration record
  83.      */
  84.     public TimingSystemConfiguration getTimingRecord() {
  85.         return timingRecord;
  86.     }

  87.     /**
  88.      * Set the timing system configuration record.
  89.      * @param timingRecord the record to set
  90.      */
  91.     public void setTimingRecord(final TimingSystemConfiguration timingRecord) {
  92.         this.timingRecord = timingRecord;
  93.     }

  94.     /**
  95.      * Get the transponder configuration record.
  96.      * @return the transponder configuration record
  97.      */
  98.     public TransponderConfiguration getTransponderRecord() {
  99.         return transponderRecord;
  100.     }

  101.     /**
  102.      * Set the transponder configuration record.
  103.      * @param transponderRecord the record to set
  104.      */
  105.     public void setTransponderRecord(final TransponderConfiguration transponderRecord) {
  106.         this.transponderRecord = transponderRecord;
  107.     }

  108.     /**
  109.      * Get the software configuration record.
  110.      * @return the software configuration record
  111.      */
  112.     public SoftwareConfiguration getSoftwareRecord() {
  113.         return softwareRecord;
  114.     }

  115.     /**
  116.      * Set the software configuration record.
  117.      * @param softwareRecord the record to set
  118.      */
  119.     public void setSoftwareRecord(final SoftwareConfiguration softwareRecord) {
  120.         this.softwareRecord = softwareRecord;
  121.     }

  122.     /**
  123.      * Get the meteorological record.
  124.      * @return the meteorological record
  125.      */
  126.     public MeteorologicalConfiguration getMeteorologicalRecord() {
  127.         return meteorologicalRecord;
  128.     }

  129.     /**
  130.      * Set the meteorological record.
  131.      * @param meteorologicalRecord the meteorological record to set
  132.      */
  133.     public void setMeteorologicalRecord(final MeteorologicalConfiguration meteorologicalRecord) {
  134.         this.meteorologicalRecord = meteorologicalRecord;
  135.     }

  136.     /** Container for system configuration record. */
  137.     public static class SystemConfiguration {

  138.         /** Transmit Wavelength [m]. */
  139.         private double wavelength;

  140.         /** System configuration ID. */
  141.         private String systemId;

  142.         /**
  143.          * Get the transmit wavelength.
  144.          * @return the transmit wavelength in meters
  145.          */
  146.         public double getWavelength() {
  147.             return wavelength;
  148.         }

  149.         /**
  150.          * Set the transmit wavelength.
  151.          * @param wavelength the wavelength to set
  152.          */
  153.         public void setWavelength(final double wavelength) {
  154.             this.wavelength = wavelength;
  155.         }

  156.         /**
  157.          * Get the system configuration ID.
  158.          * @return the system configuration ID
  159.          */
  160.         public String getSystemId() {
  161.             return systemId;
  162.         }

  163.         /**
  164.          * Set the system configuration ID.
  165.          * @param systemId the system configuration ID to set
  166.          */
  167.         public void setSystemId(final String systemId) {
  168.             this.systemId = systemId;
  169.         }

  170.     }

  171.     /** Container for laser configuration record. */
  172.     public static class LaserConfiguration {

  173.         /** Laser configuration ID. */
  174.         private String laserId;

  175.         /** Laser Type. */
  176.         private String laserType;

  177.         /** Primary wavelength [m]. */
  178.         private double primaryWavelength;

  179.         /** Nominal Fire Rate [Hz]. */
  180.         private double nominalFireRate;

  181.         /** Pulse Energy [mJ]. */
  182.         private double pulseEnergy;

  183.         /** Pulse Width. */
  184.         private double pulseWidth;

  185.         /** Bean divergence [arcsec]. */
  186.         private double beamDivergence;

  187.         /** Number of pulses in outgoing semi-train. */
  188.         private int pulseInOutgoingSemiTrain;


  189.         /**
  190.          * Get the laser configuration ID.
  191.          * @return the laser configuration ID
  192.          */
  193.         public String getLaserId() {
  194.             return laserId;
  195.         }

  196.         /**
  197.          * Set the laser configuration ID.
  198.          * @param laserId the laser configuration ID to set
  199.          */
  200.         public void setLaserId(final String laserId) {
  201.             this.laserId = laserId;
  202.         }

  203.         /**
  204.          * Get the laser type.
  205.          * @return the laser type
  206.          */
  207.         public String getLaserType() {
  208.             return laserType;
  209.         }

  210.         /**
  211.          * Set the laser type.
  212.          * @param laserType the laser type to set
  213.          */
  214.         public void setLaserType(final String laserType) {
  215.             this.laserType = laserType;
  216.         }

  217.         /**
  218.          * Get the primary wavelength.
  219.          * @return the primary wavelength in meters
  220.          */
  221.         public double getPrimaryWavelength() {
  222.             return primaryWavelength;
  223.         }

  224.         /**
  225.          * Set the primary wavelength.
  226.          * @param primaryWavelength the primary wavelength to set in meters
  227.          */
  228.         public void setPrimaryWavelength(final double primaryWavelength) {
  229.             this.primaryWavelength = primaryWavelength;
  230.         }

  231.         /**
  232.          * Get the nominal fire rate.
  233.          * @return the nominal fire rate in Hz.
  234.          */
  235.         public double getNominalFireRate() {
  236.             return nominalFireRate;
  237.         }

  238.         /**
  239.          * Set the nominal fire rate.
  240.          * @param nominalFireRate the nominal fire rate to set in Hz
  241.          */
  242.         public void setNominalFireRate(final double nominalFireRate) {
  243.             this.nominalFireRate = nominalFireRate;
  244.         }

  245.         /**
  246.          * Get the pulse energy.
  247.          * @return the pulse energy in mJ
  248.          */
  249.         public double getPulseEnergy() {
  250.             return pulseEnergy;
  251.         }

  252.         /**
  253.          * Set the pulse energy.
  254.          * @param pulseEnergy the pulse energy to set in mJ
  255.          */
  256.         public void setPulseEnergy(final double pulseEnergy) {
  257.             this.pulseEnergy = pulseEnergy;
  258.         }

  259.         /**
  260.          * Get the pulse width (FWHM in ps).
  261.          * @return the pulse width
  262.          */
  263.         public double getPulseWidth() {
  264.             return pulseWidth;
  265.         }

  266.         /**
  267.          * Set the pulse width.
  268.          * @param pulseWidth the pulse width to set
  269.          */
  270.         public void setPulseWidth(final double pulseWidth) {
  271.             this.pulseWidth = pulseWidth;
  272.         }

  273.         /**
  274.          * Get the beam divergence.
  275.          * @return the beam divergence in arcsec
  276.          */
  277.         public double getBeamDivergence() {
  278.             return beamDivergence;
  279.         }

  280.         /**
  281.          * Set the beam divergence.
  282.          * @param beamDivergence the beam divergence to set in arcsec
  283.          */
  284.         public void setBeamDivergence(final double beamDivergence) {
  285.             this.beamDivergence = beamDivergence;
  286.         }

  287.         /**
  288.          * Get the number of pulses in outgoing semi-train.
  289.          * @return the number of pulses in outgoing semi-train
  290.          */
  291.         public int getPulseInOutgoingSemiTrain() {
  292.             return pulseInOutgoingSemiTrain;
  293.         }

  294.         /**
  295.          * Set the number of pulses in outgoing semi-train.
  296.          * @param pulseInOutgoingSemiTrain the number of pulses in outgoing semi-train to set
  297.          */
  298.         public void setPulseInOutgoingSemiTrain(final int pulseInOutgoingSemiTrain) {
  299.             this.pulseInOutgoingSemiTrain = pulseInOutgoingSemiTrain;
  300.         }

  301.     }

  302.     /** Container for detector configuration record. */
  303.     public static class DetectorConfiguration {

  304.         /** Detector configuration ID. */
  305.         private String detectorId;

  306.         /** Detector Type. */
  307.         private String detectorType;

  308.         /** Applicable wavelength. */
  309.         private double applicableWavelength;

  310.         /** Quantum efficiency at applicable wavelength [%]. */
  311.         private double quantumEfficiency;

  312.         /** Applied voltage [V]. */
  313.         private double appliedVoltage;

  314.         /** Dark Count [Hz]. */
  315.         private double darkCount;

  316.         /** Output pulse type. */
  317.         private String outputPulseType;

  318.         /** Output pulse width [ps]. */
  319.         private double outputPulseWidth;

  320.         /** Spectral Filter [m]. */
  321.         private double spectralFilter;

  322.         /** % Transmission of Spectral Filter. */
  323.         private double transmissionOfSpectralFilter;

  324.         /** Spatial Filter [arcsec]. */
  325.         private double spatialFilter;

  326.         /** External Signal processing. */
  327.         private String externalSignalProcessing;

  328.         /** Amplifier Gain. */
  329.         private double amplifierGain;

  330.         /** Amplifier Bandwidth [Hz]. */
  331.         private double amplifierBandwidth;

  332.         /** Amplifier In Use. */
  333.         private String amplifierInUse;

  334.         /**
  335.          * Get the detector configuration ID.
  336.          * @return the detector configuration ID
  337.          */
  338.         public String getDetectorId() {
  339.             return detectorId;
  340.         }

  341.         /**
  342.          * Set the detector configuration ID.
  343.          * @param detectorId the detector configuration ID to set
  344.          */
  345.         public void setDetectorId(final String detectorId) {
  346.             this.detectorId = detectorId;
  347.         }

  348.         /**
  349.          * Get the detector type.
  350.          * @return the detector type
  351.          */
  352.         public String getDetectorType() {
  353.             return detectorType;
  354.         }

  355.         /**
  356.          * Set the detector type.
  357.          * @param detectorType the detector type to set
  358.          */
  359.         public void setDetectorType(final String detectorType) {
  360.             this.detectorType = detectorType;
  361.         }

  362.         /**
  363.          * Get the applicable wavelength.
  364.          * @return pplicable wavelength in meters
  365.          */
  366.         public double getApplicableWavelength() {
  367.             return applicableWavelength;
  368.         }

  369.         /**
  370.          * Set the applicable wavelength.
  371.          * @param applicableWavelength the applicable wavelength to set in meters
  372.          */
  373.         public void setApplicableWavelength(final double applicableWavelength) {
  374.             this.applicableWavelength = applicableWavelength;
  375.         }

  376.         /**
  377.          * Get the quantum efficiency at applicable wavelength.
  378.          * @return the quantum efficiency at applicable wavelength in percents
  379.          */
  380.         public double getQuantumEfficiency() {
  381.             return quantumEfficiency;
  382.         }

  383.         /**
  384.          * Set the quantum efficiency at applicable wavelength.
  385.          * @param quantumEfficiency the efficiency to set in percents
  386.          */
  387.         public void setQuantumEfficiency(final double quantumEfficiency) {
  388.             this.quantumEfficiency = quantumEfficiency;
  389.         }

  390.         /**
  391.          * Get the applied voltage.
  392.          * @return the applied voltage in Volts
  393.          */
  394.         public double getAppliedVoltage() {
  395.             return appliedVoltage;
  396.         }

  397.         /**
  398.          * Set the applied voltage.
  399.          * @param appliedVoltage the applied voltage to set in Volts
  400.          */
  401.         public void setAppliedVoltage(final double appliedVoltage) {
  402.             this.appliedVoltage = appliedVoltage;
  403.         }

  404.         /**
  405.          * Get the dark count.
  406.          * @return the dark count in Hz
  407.          */
  408.         public double getDarkCount() {
  409.             return darkCount;
  410.         }

  411.         /**
  412.          * Set the dark count.
  413.          * @param darkCount the dark count to set in Hz
  414.          */
  415.         public void setDarkCount(final double darkCount) {
  416.             this.darkCount = darkCount;
  417.         }

  418.         /**
  419.          * Get the output pulse type.
  420.          * @return the output pulse type
  421.          */
  422.         public String getOutputPulseType() {
  423.             return outputPulseType;
  424.         }

  425.         /**
  426.          * Set the output pulse type.
  427.          * @param outputPulseType the output pulse type to set
  428.          */
  429.         public void setOutputPulseType(final String outputPulseType) {
  430.             this.outputPulseType = outputPulseType;
  431.         }

  432.         /**
  433.          * Get the output pulse width.
  434.          * @return the output pulse width in ps
  435.          */
  436.         public double getOutputPulseWidth() {
  437.             return outputPulseWidth;
  438.         }

  439.         /**
  440.          * Set the output pulse width.
  441.          * @param outputPulseWidth the output pulse width to set in ps
  442.          */
  443.         public void setOutputPulseWidth(final double outputPulseWidth) {
  444.             this.outputPulseWidth = outputPulseWidth;
  445.         }

  446.         /**
  447.          * Get the spectral filter.
  448.          * @return the spectral filter in meters
  449.          */
  450.         public double getSpectralFilter() {
  451.             return spectralFilter;
  452.         }

  453.         /**
  454.          * Set the spectral filter.
  455.          * @param spectralFilter  the spectral filter to set in meters
  456.          */
  457.         public void setSpectralFilter(final double spectralFilter) {
  458.             this.spectralFilter = spectralFilter;
  459.         }

  460.         /**
  461.          * Get the percentage of transmission of spectral filter.
  462.          * @return the percentage of transmission of spectral filter
  463.          */
  464.         public double getTransmissionOfSpectralFilter() {
  465.             return transmissionOfSpectralFilter;
  466.         }

  467.         /**
  468.          * Set the percentage of transmission of spectral filter.
  469.          * @param transmissionOfSpectralFilter the percentage to set
  470.          */
  471.         public void setTransmissionOfSpectralFilter(final double transmissionOfSpectralFilter) {
  472.             this.transmissionOfSpectralFilter = transmissionOfSpectralFilter;
  473.         }

  474.         /**
  475.          * Get the spatial filter.
  476.          * @return the spatial filter in arcsec
  477.          */
  478.         public double getSpatialFilter() {
  479.             return spatialFilter;
  480.         }

  481.         /**
  482.          * Set the spatial filter.
  483.          * @param spatialFilter the spatial filter to set in arcsec
  484.          */
  485.         public void setSpatialFilter(final double spatialFilter) {
  486.             this.spatialFilter = spatialFilter;
  487.         }

  488.         /**
  489.          * Get the external signal processing.
  490.          * @return the external signal processing
  491.          */
  492.         public String getExternalSignalProcessing() {
  493.             return externalSignalProcessing;
  494.         }

  495.         /**
  496.          * Set the external signal processing.
  497.          * @param externalSignalProcessing the external signal processing to set
  498.          */
  499.         public void setExternalSignalProcessing(final String externalSignalProcessing) {
  500.             this.externalSignalProcessing = externalSignalProcessing;
  501.         }

  502.         /**
  503.          * Get the amplifier gain.
  504.          * @return the amplifier gain
  505.          */
  506.         public double getAmplifierGain() {
  507.             return amplifierGain;
  508.         }

  509.         /**
  510.          * Set the amplifier gain.
  511.          * @param amplifierGain the amplifier gain to set
  512.          */
  513.         public void setAmplifierGain(final double amplifierGain) {
  514.             this.amplifierGain = amplifierGain;
  515.         }

  516.         /**
  517.          * Get the amplifier bandwidth.
  518.          * @return the amplifier bandwidth in Hz
  519.          */
  520.         public double getAmplifierBandwidth() {
  521.             return amplifierBandwidth;
  522.         }

  523.         /**
  524.          * Set the amplifier bandwidth.
  525.          * @param amplifierBandwidth the amplifier bandwidth to set in Hz
  526.          */
  527.         public void setAmplifierBandwidth(final double amplifierBandwidth) {
  528.             this.amplifierBandwidth = amplifierBandwidth;
  529.         }

  530.         /**
  531.          * Get the amplifier in use.
  532.          * @return the amplifier in use
  533.          */
  534.         public String getAmplifierInUse() {
  535.             return amplifierInUse;
  536.         }

  537.         /**
  538.          * Set the amplifier in use.
  539.          * @param amplifierInUse the amplifier in use to set
  540.          */
  541.         public void setAmplifierInUse(final String amplifierInUse) {
  542.             this.amplifierInUse = amplifierInUse;
  543.         }

  544.     }

  545.     /** Container for timing system configuration record. */
  546.     public static class TimingSystemConfiguration {

  547.         /** Local timing system configuration ID. */
  548.         private String localTimingId;

  549.         /** Time Source. */
  550.         private String timeSource;

  551.         /** Frequency Source. */
  552.         private String frequencySource;

  553.         /** Timer. */
  554.         private String timer;

  555.         /** Timer Serial Number. */
  556.         private String timerSerialNumber;

  557.         /** Epoch delay correction [s]. */
  558.         private double epochDelayCorrection;

  559.         /**
  560.          * Get the time source.
  561.          * @return the time source
  562.          */
  563.         public String getTimeSource() {
  564.             return timeSource;
  565.         }

  566.         /**
  567.          * Get the local timing system configuration ID.
  568.          * @return the local timing system configuration ID
  569.          */
  570.         public String getLocalTimingId() {
  571.             return localTimingId;
  572.         }

  573.         /**
  574.          * Set the local timing system configuration ID.
  575.          * @param localTimingId the local timing system configuration ID to set
  576.          */
  577.         public void setLocalTimingId(final String localTimingId) {
  578.             this.localTimingId = localTimingId;
  579.         }

  580.         /**
  581.          * Set the time source.
  582.          * @param timeSource the time source to set
  583.          */
  584.         public void setTimeSource(final String timeSource) {
  585.             this.timeSource = timeSource;
  586.         }

  587.         /**
  588.          * Get the frequency source.
  589.          * @return the frequency source
  590.          */
  591.         public String getFrequencySource() {
  592.             return frequencySource;
  593.         }

  594.         /**
  595.          * Set the frequency source.
  596.          * @param frequencySource the frequency source to set
  597.          */
  598.         public void setFrequencySource(final String frequencySource) {
  599.             this.frequencySource = frequencySource;
  600.         }

  601.         /**
  602.          * Get the timer name.
  603.          * @return the timer name
  604.          */
  605.         public String getTimer() {
  606.             return timer;
  607.         }

  608.         /**
  609.          * Set the timer name.
  610.          * @param timer the timer name to set
  611.          */
  612.         public void setTimer(final String timer) {
  613.             this.timer = timer;
  614.         }

  615.         /**
  616.          * Get the timer serial number.
  617.          * @return the timer serial number
  618.          */
  619.         public String getTimerSerialNumber() {
  620.             return timerSerialNumber;
  621.         }

  622.         /**
  623.          * Set the timer serial number.
  624.          * @param timerSerialNumber the timer serial number to set
  625.          */
  626.         public void setTimerSerialNumber(final String timerSerialNumber) {
  627.             this.timerSerialNumber = timerSerialNumber;
  628.         }

  629.         /**
  630.          * Get the epoch delay correction.
  631.          * @return the epoch delay correction in seconds
  632.          */
  633.         public double getEpochDelayCorrection() {
  634.             return epochDelayCorrection;
  635.         }

  636.         /**
  637.          * Set the epoch delay correction.
  638.          * @param epochDelayCorrection the epoch delay correction to set in seconds
  639.          */
  640.         public void setEpochDelayCorrection(final double epochDelayCorrection) {
  641.             this.epochDelayCorrection = epochDelayCorrection;
  642.         }

  643.     }

  644.     /** Container for transponder configuration record. */
  645.     public static class TransponderConfiguration {

  646.         /** Transponder configuration ID. */
  647.         private String transponderId;

  648.         /** Estimated Station UTC offset [s]. */
  649.         private double stationUTCOffset;

  650.         /** Estimated Station Oscillator Drift in parts in 10^15. */
  651.         private double stationOscDrift;

  652.         /** Estimated Transponder UTC offset [s]. */
  653.         private double transpUTCOffset;

  654.         /** Estimated Transponder Oscillator Drift in parts in 10^15. */
  655.         private double transpOscDrift;

  656.         /** Transponder Clock Reference Time. */
  657.         private double transpClkRefTime;

  658.         /** Station clock offset and drift applied indicator. */
  659.         private int stationClockAndDriftApplied;

  660.         /** Spacecraft clock offset and drift applied indicator . */
  661.         private int spacecraftClockAndDriftApplied;

  662.         /** Spacecraft time simplified flag. */
  663.         private boolean isSpacecraftTimeSimplified;

  664.         /**
  665.          * Get the transponder configuration ID.
  666.          * @return the transponder configuration ID
  667.          */
  668.         public String getTransponderId() {
  669.             return transponderId;
  670.         }

  671.         /**
  672.          * Set the transponder configuration ID.
  673.          * @param transponderId the transponder configuration ID to set
  674.          */
  675.         public void setTransponderId(final String transponderId) {
  676.             this.transponderId = transponderId;
  677.         }

  678.         /**
  679.          * Get the estimated station UTC offset.
  680.          * @return the estimated station UTC offset in seconds
  681.          */
  682.         public double getStationUTCOffset() {
  683.             return stationUTCOffset;
  684.         }

  685.         /**
  686.          * Set the estimated station UTC offset.
  687.          * @param stationUTCOffset the estimated station UTC offset to set in seconds
  688.          */
  689.         public void setStationUTCOffset(final double stationUTCOffset) {
  690.             this.stationUTCOffset = stationUTCOffset;
  691.         }

  692.         /**
  693.          * Get the estimated station oscillator drift in parts in 10¹⁵.
  694.          * @return the station oscillator drift
  695.          */
  696.         public double getStationOscDrift() {
  697.             return stationOscDrift;
  698.         }

  699.         /**
  700.          * Set the estimated station oscillator drift in parts in 10¹⁵.
  701.          * @param stationOscDrift the station oscillator drift to set
  702.          */
  703.         public void setStationOscDrift(final double stationOscDrift) {
  704.             this.stationOscDrift = stationOscDrift;
  705.         }

  706.         /**
  707.          * Get the estimated transponder UTC offset.
  708.          * @return the estimated transponder UTC offset in seconds
  709.          */
  710.         public double getTranspUTCOffset() {
  711.             return transpUTCOffset;
  712.         }

  713.         /**
  714.          * Set the estimated transponder UTC offset.
  715.          * @param transpUTCOffset the estimated transponder UTC offset to set in seconds
  716.          */
  717.         public void setTranspUTCOffset(final double transpUTCOffset) {
  718.             this.transpUTCOffset = transpUTCOffset;
  719.         }

  720.         /**
  721.          * Get the estimated transponder oscillator drift in parts in 10¹⁵.
  722.          * @return the estimated transponder oscillator drift
  723.          */
  724.         public double getTranspOscDrift() {
  725.             return transpOscDrift;
  726.         }

  727.         /**
  728.          * Set the estimated transponder oscillator drift in parts in 10¹⁵.
  729.          * @param transpOscDrift the estimated transponder oscillator drift to set
  730.          */
  731.         public void setTranspOscDrift(final double transpOscDrift) {
  732.             this.transpOscDrift = transpOscDrift;
  733.         }

  734.         /**
  735.          * Get the transponder clock reference time.
  736.          * @return the transponder clock reference time
  737.          */
  738.         public double getTranspClkRefTime() {
  739.             return transpClkRefTime;
  740.         }

  741.         /**
  742.          * Set the transponder clock reference time.
  743.          * @param transpClkRefTime the transponder clock reference time to set
  744.          */
  745.         public void setTranspClkRefTime(final double transpClkRefTime) {
  746.             this.transpClkRefTime = transpClkRefTime;
  747.         }

  748.         /**
  749.          * Get the station clock offset and drift applied indicator.
  750.          * @return the station clock offset and drift applied indicator
  751.          */
  752.         public int getStationClockAndDriftApplied() {
  753.             return stationClockAndDriftApplied;
  754.         }

  755.         /**
  756.          * Set the station clock offset and drift applied indicator.
  757.          * @param stationClockAndDriftApplied the indicator to set
  758.          */
  759.         public void setStationClockAndDriftApplied(final int stationClockAndDriftApplied) {
  760.             this.stationClockAndDriftApplied = stationClockAndDriftApplied;
  761.         }

  762.         /**
  763.          * Get the spacecraft clock offset and drift applied indicator.
  764.          * @return the spacecraft clock offset and drift applied indicator
  765.          */
  766.         public int getSpacecraftClockAndDriftApplied() {
  767.             return spacecraftClockAndDriftApplied;
  768.         }

  769.         /**
  770.          * Set the spacecraft clock offset and drift applied indicator.
  771.          * @param spacecraftClockAndDriftApplied the indicator to set
  772.          */
  773.         public void setSpacecraftClockAndDriftApplied(final int spacecraftClockAndDriftApplied) {
  774.             this.spacecraftClockAndDriftApplied = spacecraftClockAndDriftApplied;
  775.         }

  776.         /**
  777.          * Get the spacecraft time simplified flag.
  778.          * @return true if spacecraft time is simplified
  779.          */
  780.         public boolean isSpacecraftTimeSimplified() {
  781.             return isSpacecraftTimeSimplified;
  782.         }

  783.         /**
  784.          * Set the spacecraft time simplified flag.
  785.          * @param isSpacecraftTimeSimplified true if spacecraft time is simplified
  786.          */
  787.         public void setIsSpacecraftTimeSimplified(final boolean isSpacecraftTimeSimplified) {
  788.             this.isSpacecraftTimeSimplified = isSpacecraftTimeSimplified;
  789.         }

  790.     }

  791.     /** Container for software configuration record. */
  792.     public static class SoftwareConfiguration {

  793.         /** Software configuration ID. */
  794.         private String softwareId;

  795.         /** Tracking software in measurement path. */
  796.         private String[] trackingSoftwares;

  797.         /** Tracking software version(s). */
  798.         private String[] trackingSoftwareVersions;

  799.         /** Processing software in measurement path. */
  800.         private String[] processingSoftwares;

  801.         /** Processing software version(s). */
  802.         private String[] processingSoftwareVersions;

  803.         /**
  804.          * Get the software configuration ID.
  805.          * @return the software configuration ID.
  806.          */
  807.         public String getSoftwareId() {
  808.             return softwareId;
  809.         }

  810.         /**
  811.          * Set the software configuration ID.
  812.          * @param softwareId the software configuration ID
  813.          */
  814.         public void setSoftwareId(final String softwareId) {
  815.             this.softwareId = softwareId;
  816.         }

  817.         /**
  818.          * Get the tracking softwares.
  819.          * @return the tracking softwares
  820.          */
  821.         public String[] getTrackingSoftwares() {
  822.             return trackingSoftwares.clone();
  823.         }

  824.         /**
  825.          * Set the tracking softwares.
  826.          * @param trackingSoftwares the tracking softwares to set
  827.          */
  828.         public void setTrackingSoftwares(final String[] trackingSoftwares) {
  829.             this.trackingSoftwares = trackingSoftwares.clone();
  830.         }

  831.         /**
  832.          * Get the tracking software versions.
  833.          * @return the tracking software versions
  834.          */
  835.         public String[] getTrackingSoftwareVersions() {
  836.             return trackingSoftwareVersions.clone();
  837.         }

  838.         /**
  839.          * Set the tracking software versions.
  840.          * @param trackingSoftwareVersions the tracking software versions to set
  841.          */
  842.         public void setTrackingSoftwareVersions(final String[] trackingSoftwareVersions) {
  843.             this.trackingSoftwareVersions = trackingSoftwareVersions.clone();
  844.         }

  845.         /**
  846.          * Get the processing softwares.
  847.          * @return the processing softwares
  848.          */
  849.         public String[] getProcessingSoftwares() {
  850.             return processingSoftwares.clone();
  851.         }

  852.         /**
  853.          * Set the processing softwares.
  854.          * @param processingSoftwares the processing softwares to set
  855.          */
  856.         public void setProcessingSoftwares(final String[] processingSoftwares) {
  857.             this.processingSoftwares = processingSoftwares.clone();
  858.         }

  859.         /**
  860.          * Get the processing software versions.
  861.          * @return the processing software versions
  862.          */
  863.         public String[] getProcessingSoftwareVersions() {
  864.             return processingSoftwareVersions.clone();
  865.         }

  866.         /**
  867.          * Set the processing software versions.
  868.          * @param processingSoftwareVersions the processing software versions to set
  869.          */
  870.         public void setProcessingSoftwareVersions(final String[] processingSoftwareVersions) {
  871.             this.processingSoftwareVersions = processingSoftwareVersions.clone();
  872.         }

  873.     }

  874.     /** Container for meteorological configuration record. */
  875.     public static class MeteorologicalConfiguration {

  876.         /** Meteorological configuration ID. */
  877.         private String meteorologicalId;

  878.         /** Pressure Sensor Manufacturer. */
  879.         private String pressSensorManufacturer;

  880.         /** Pressure Sensor Model. */
  881.         private String pressSensorModel;

  882.         /** Pressure Sensor Serial Number. */
  883.         private String pressSensorSerialNumber;

  884.         /** Temperature Sensor Manufacturer. */
  885.         private String tempSensorManufacturer;

  886.         /** Temperature Sensor Model. */
  887.         private String tempSensorModel;

  888.         /** Temperature Sensor Serial Number. */
  889.         private String tempSensorSerialNumber;

  890.         /** Humidity Sensor Manufacturer. */
  891.         private String humiSensorManufacturer;

  892.         /** Humidity Sensor Model. */
  893.         private String humiSensorModel;

  894.         /** Humidity Sensor Serial Number. */
  895.         private String humiSensorSerialNumber;

  896.         /**
  897.          * Get the meteorological configuration ID.
  898.          * @return the meteorological configuration ID
  899.          */
  900.         public String getMeteorologicalId() {
  901.             return meteorologicalId;
  902.         }

  903.         /**
  904.          * Set the meteorological configuration ID.
  905.          * @param meteorologicalId the meteorological configuration ID to set
  906.          */
  907.         public void setMeteorologicalId(final String meteorologicalId) {
  908.             this.meteorologicalId = meteorologicalId;
  909.         }

  910.         /**
  911.          * Get the pressure sensor manufacturer.
  912.          * @return the pressure sensor manufacturer
  913.          */
  914.         public String getPressSensorManufacturer() {
  915.             return pressSensorManufacturer;
  916.         }

  917.         /**
  918.          * Set the pressure sensor manufacturer.
  919.          * @param pressSensorManufacturer the manufacturer to set
  920.          */
  921.         public void setPressSensorManufacturer(final String pressSensorManufacturer) {
  922.             this.pressSensorManufacturer = pressSensorManufacturer;
  923.         }

  924.         /**
  925.          * Get the pressure sensor model.
  926.          * @return the pressure sensor model
  927.          */
  928.         public String getPressSensorModel() {
  929.             return pressSensorModel;
  930.         }

  931.         /**
  932.          * Set the pressure sensor model.
  933.          * @param pressSensorModel the model to set
  934.          */
  935.         public void setPressSensorModel(final String pressSensorModel) {
  936.             this.pressSensorModel = pressSensorModel;
  937.         }

  938.         /**
  939.          * Get the pressure sensor serial number.
  940.          * @return the pressure sensor serial number
  941.          */
  942.         public String getPressSensorSerialNumber() {
  943.             return pressSensorSerialNumber;
  944.         }

  945.         /**
  946.          * Set the pressure sensor serial number.
  947.          * @param pressSensorSerialNumber the serial number to set
  948.          */
  949.         public void setPressSensorSerialNumber(final String pressSensorSerialNumber) {
  950.             this.pressSensorSerialNumber = pressSensorSerialNumber;
  951.         }

  952.         /**
  953.          * Get the temperature sensor manufacturer.
  954.          * @return the temperature sensor manufacturer
  955.          */
  956.         public String getTempSensorManufacturer() {
  957.             return tempSensorManufacturer;
  958.         }

  959.         /**
  960.          * Set the temperature sensor manufacturer.
  961.          * @param tempSensorManufacturer the temperature sensor manufacturer
  962.          */
  963.         public void setTempSensorManufacturer(final String tempSensorManufacturer) {
  964.             this.tempSensorManufacturer = tempSensorManufacturer;
  965.         }

  966.         /**
  967.          * Get the temperature sensor model.
  968.          * @return the temperature sensor model
  969.          */
  970.         public String getTempSensorModel() {
  971.             return tempSensorModel;
  972.         }

  973.         /**
  974.          * Set the temperature sensor model.
  975.          * @param tempSensorModel the model to set
  976.          */
  977.         public void setTempSensorModel(final String tempSensorModel) {
  978.             this.tempSensorModel = tempSensorModel;
  979.         }

  980.         /**
  981.          * Get the temperature sensor serial number.
  982.          * @return the temperature sensor serial number
  983.          */
  984.         public String getTempSensorSerialNumber() {
  985.             return tempSensorSerialNumber;
  986.         }

  987.         /**
  988.          * Set the temperature sensor serial number.
  989.          * @param tempSensorSerialNumber the serial number to set
  990.          */
  991.         public void setTempSensorSerialNumber(final String tempSensorSerialNumber) {
  992.             this.tempSensorSerialNumber = tempSensorSerialNumber;
  993.         }

  994.         /**
  995.          * Get the humidity sensor manufacturer.
  996.          * @return the humidity sensor manufacturer
  997.          */
  998.         public String getHumiSensorManufacturer() {
  999.             return humiSensorManufacturer;
  1000.         }

  1001.         /**
  1002.          * Set the humidity sensor manufacturer.
  1003.          * @param humiSensorManufacturer the manufacturer to set
  1004.          */
  1005.         public void setHumiSensorManufacturer(final String humiSensorManufacturer) {
  1006.             this.humiSensorManufacturer = humiSensorManufacturer;
  1007.         }

  1008.         /**
  1009.          * Get the humidity sensor model.
  1010.          * @return the humidity sensor model
  1011.          */
  1012.         public String getHumiSensorModel() {
  1013.             return humiSensorModel;
  1014.         }

  1015.         /**
  1016.          * Set the humidity sensor model.
  1017.          * @param humiSensorModel the model to set
  1018.          */
  1019.         public void setHumiSensorModel(final String humiSensorModel) {
  1020.             this.humiSensorModel = humiSensorModel;
  1021.         }

  1022.         /**
  1023.          * Get the humidity sensor serial number.
  1024.          * @return the humidity sensor serial number
  1025.          */
  1026.         public String getHumiSensorSerialNumber() {
  1027.             return humiSensorSerialNumber;
  1028.         }

  1029.         /**
  1030.          * Set the humidity sensor serial number.
  1031.          * @param humiSensorSerialNumber the serial number to set
  1032.          */
  1033.         public void setHumiSensorSerialNumber(final String humiSensorSerialNumber) {
  1034.             this.humiSensorSerialNumber = humiSensorSerialNumber;
  1035.         }

  1036.     }

  1037. }