Class PotentialCoefficientsReader

    • Constructor Detail

      • PotentialCoefficientsReader

        protected PotentialCoefficientsReader​(String supportedNames,
                                              boolean missingCoefficientsAllowed,
                                              TimeScale timeScale)
        Simple constructor.

        Build an uninitialized reader.

        Parameters:
        supportedNames - regular expression for supported files names
        missingCoefficientsAllowed - allow missing coefficients in the input data
        timeScale - to use when parsing dates.
        Since:
        10.1
    • Method Detail

      • getSupportedNames

        public String getSupportedNames()
        Get the regular expression for supported files names.
        Returns:
        regular expression for supported files names
      • missingCoefficientsAllowed

        public boolean missingCoefficientsAllowed()
        Check if missing coefficients are allowed in the input data.
        Returns:
        true if missing coefficients are allowed in the input data
      • setMaxParseDegree

        public void setMaxParseDegree​(int maxParseDegree)
        Set the degree limit for the next file parsing.
        Parameters:
        maxParseDegree - maximal degree to parse (may be safely set to Integer.MAX_VALUE to parse all available coefficients)
        Since:
        6.0
      • getMaxParseDegree

        public int getMaxParseDegree()
        Get the degree limit for the next file parsing.
        Returns:
        degree limit for the next file parsing
        Since:
        6.0
      • setMaxParseOrder

        public void setMaxParseOrder​(int maxParseOrder)
        Set the order limit for the next file parsing.
        Parameters:
        maxParseOrder - maximal order to parse (may be safely set to Integer.MAX_VALUE to parse all available coefficients)
        Since:
        6.0
      • getMaxParseOrder

        public int getMaxParseOrder()
        Get the order limit for the next file parsing.
        Returns:
        order limit for the next file parsing
        Since:
        6.0
      • stillAcceptsData

        public boolean stillAcceptsData()
        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
      • setReadComplete

        protected void setReadComplete​(boolean readComplete)
        Set the indicator for completed read.
        Parameters:
        readComplete - if true, a gravity field has been completely read
      • setAe

        protected void setAe​(double ae)
        Set the central body reference radius.
        Parameters:
        ae - central body reference radius
      • getAe

        protected double getAe()
        Get the central body reference radius.
        Returns:
        central body reference radius
      • setMu

        protected void setMu​(double mu)
        Set the central body attraction coefficient.
        Parameters:
        mu - central body attraction coefficient
      • getMu

        protected double getMu()
        Get the central body attraction coefficient.
        Returns:
        central body attraction coefficient
      • setTideSystem

        protected void setTideSystem​(TideSystem tideSystem)
        Set the TideSystem used in the gravity field.
        Parameters:
        tideSystem - tide system used in the gravity field
      • getTideSystem

        protected TideSystem getTideSystem()
        Get the TideSystem used in the gravity field.
        Returns:
        tide system used in the gravity field
      • setRawCoefficients

        @Deprecated
        protected void setRawCoefficients​(boolean rawNormalized,
                                          double[][] c,
                                          double[][] s,
                                          String name)
        Set the tesseral-sectorial coefficients matrix.
        Parameters:
        rawNormalized - if true, raw coefficients are normalized
        c - raw tesseral-sectorial coefficients matrix
        s - raw tesseral-sectorial coefficients matrix
        name - name of the file (or zip entry)
      • setRawCoefficients

        protected void setRawCoefficients​(boolean rawNormalized,
                                          org.orekit.forces.gravity.potential.Flattener f,
                                          double[] c,
                                          double[] s,
                                          String name)
        Set the tesseral-sectorial coefficients matrix.
        Parameters:
        rawNormalized - if true, raw coefficients are normalized
        f - converter from triangular to flat form
        c - raw tesseral-sectorial coefficients matrix
        s - raw tesseral-sectorial coefficients matrix
        name - name of the file (or zip entry)
        Since:
        11.1
      • getMaxAvailableDegree

        public int getMaxAvailableDegree()
        Get the maximal degree available in the last file parsed.
        Returns:
        maximal degree available in the last file parsed
        Since:
        6.0
      • getMaxAvailableOrder

        public int getMaxAvailableOrder()
        Get the maximal order available in the last file parsed.
        Returns:
        maximal order available in the last file parsed
        Since:
        6.0
      • getProvider

        public abstract RawSphericalHarmonicsProvider getProvider​(boolean wantNormalized,
                                                                  int degree,
                                                                  int order)
        Get a provider for read spherical harmonics coefficients.
        Parameters:
        wantNormalized - if true, the provider will provide normalized coefficients, otherwise it will provide un-normalized coefficients
        degree - maximal degree
        order - maximal order
        Returns:
        a new provider
        Since:
        6.0
        See Also:
        getConstantProvider(boolean, int, int)
      • getBaseProvider

        protected org.orekit.forces.gravity.potential.ConstantSphericalHarmonics getBaseProvider​(boolean wantNormalized,
                                                                                                 int degree,
                                                                                                 int order)
        Get a time-independent provider containing base harmonics coefficients.

        Beware that some coeefficients may be missing here, if they are managed as time-dependent piecewise models (as in ICGEM V2.0).

        Parameters:
        wantNormalized - if true, the raw provider must provide normalized coefficients, otherwise it will provide un-normalized coefficients
        degree - maximal degree
        order - maximal order
        Returns:
        a new provider, with no time-dependent parts
        Since:
        11.1
        See Also:
        getProvider(boolean, int, int)
      • getConstantProvider

        @Deprecated
        protected org.orekit.forces.gravity.potential.ConstantSphericalHarmonics getConstantProvider​(boolean wantNormalized,
                                                                                                     int degree,
                                                                                                     int order)
        Deprecated.
        as of 11.1, not used anymore
        Get a time-independent provider for read spherical harmonics coefficients.
        Parameters:
        wantNormalized - if true, the raw provider must provide normalized coefficients, otherwise it will provide un-normalized coefficients
        degree - maximal degree
        order - maximal order
        Returns:
        a new provider, with no time-dependent parts
        Since:
        6.0
        See Also:
        getProvider(boolean, int, int)
      • buildTriangularArray

        @Deprecated
        protected static double[][] buildTriangularArray​(int degree,
                                                         int order,
                                                         double value)
        Deprecated.
        as of 11.1, replaced by buildFlatArray(Flattener, double)
        Build a coefficients triangular array.
        Parameters:
        degree - array degree
        order - array order
        value - initial value to put in array elements
        Returns:
        built array
      • buildFlatArray

        protected static double[] buildFlatArray​(org.orekit.forces.gravity.potential.Flattener flattener,
                                                 double value)
        Build a coefficients array in flat form.
        Parameters:
        flattener - converter from triangular to flat form
        value - initial value to put in array elements
        Returns:
        built array
        Since:
        11.1
      • parseDouble

        protected static double parseDouble​(String string)
        Parse a double from a string. Accept the Fortran convention of using a 'D' or 'd' instead of an 'E' or 'e'.
        Parameters:
        string - to be parsed.
        Returns:
        the double value of string.
      • buildRow

        protected static double[] buildRow​(int degree,
                                           int order,
                                           double value)
        Build a coefficients row.
        Parameters:
        degree - row degree
        order - row order
        value - initial value to put in array elements
        Returns:
        built row
      • extendListOfLists

        @Deprecated
        protected void extendListOfLists​(List<List<Double>> list,
                                         int degree,
                                         int order,
                                         double value)
        Deprecated.
        as of 11.1, not used anymore
        Extend a list of lists of coefficients if needed.
        Parameters:
        list - list of lists of coefficients
        degree - degree required to be present
        order - order required to be present
        value - initial value to put in list elements
      • toArray

        @Deprecated
        protected double[][] toArray​(List<List<Double>> list)
        Deprecated.
        as of 11.1, not used anymore
        Convert a list of list into an array.
        Parameters:
        list - list of lists of coefficients
        Returns:
        a new array
      • parseCoefficient

        protected void parseCoefficient​(String field,
                                        org.orekit.forces.gravity.potential.Flattener f,
                                        double[] array,
                                        int i,
                                        int j,
                                        String cName,
                                        String name)
        Parse a coefficient.
        Parameters:
        field - text field to parse
        f - converter from triangular to flat form
        array - array where to put the coefficient
        i - first index in the list
        j - second index in the list
        cName - name of the coefficient
        name - name of the file
        Since:
        11.1
      • rescale

        @Deprecated
        protected static void rescale​(double scale,
                                      boolean normalizedOrigin,
                                      double[][] originC,
                                      double[][] originS,
                                      boolean wantNormalized,
                                      double[][] rescaledC,
                                      double[][] rescaledS)
        Rescale coefficients arrays.
        Parameters:
        scale - general scaling factor to apply to all elements
        normalizedOrigin - if true, the origin coefficients are normalized
        originC - cosine part of the original coefficients
        originS - sine part of the origin coefficients
        wantNormalized - if true, the rescaled coefficients must be normalized
        rescaledC - cosine part of the rescaled coefficients to fill in (may be the originC array)
        rescaledS - sine part of the rescaled coefficients to fill in (may be the originS array)
      • rescale

        protected double[] rescale​(double scale,
                                   boolean wantNormalized,
                                   org.orekit.forces.gravity.potential.Flattener rescaledFlattener,
                                   org.orekit.forces.gravity.potential.Flattener originalFlattener,
                                   double[] original)
        Rescale coefficients arrays.

        The normalized/unnormalized nature of original coefficients is inherited from previous parsing.

        Parameters:
        scale - general scaling factor to apply to all elements
        wantNormalized - if true, the rescaled coefficients must be normalized, otherwise they must be un-normalized
        rescaledFlattener - converter from triangular to flat form
        originalFlattener - converter from triangular to flat form
        original - original coefficients
        Returns:
        rescaled coefficients
        Since:
        11.1
      • rescale

        protected org.orekit.forces.gravity.potential.TimeDependentHarmonic[] rescale​(boolean wantNormalized,
                                                                                      org.orekit.forces.gravity.potential.Flattener rescaledFlattener,
                                                                                      org.orekit.forces.gravity.potential.Flattener originalFlattener,
                                                                                      org.orekit.forces.gravity.potential.TimeDependentHarmonic[] original)
        Rescale coefficients arrays.

        The normalized/unnormalized nature of original coefficients is inherited from previous parsing.

        Parameters:
        wantNormalized - if true, the rescaled coefficients must be normalized, otherwise they must be un-normalized
        rescaledFlattener - converter from triangular to flat form
        originalFlattener - converter from triangular to flat form
        original - original coefficients
        Returns:
        rescaled coefficients
        Since:
        11.1
      • toDate

        protected AbsoluteDate toDate​(DateComponents components)
        Create a date from components. Assumes the time part is noon.
        Parameters:
        components - year, month, day.
        Returns:
        date.