Class GridServiceProvider

    • Field Detail

      • addLatLon

        protected static boolean addLatLon
      • forceNewIndex

        protected static boolean forceNewIndex
      • alwaysInCache

        protected static boolean alwaysInCache
      • debugOpen

        public static boolean debugOpen
        debug flags
      • debugMissing

        public static boolean debugMissing
        debug flags
      • debugMissingDetails

        public static boolean debugMissingDetails
        debug flags
      • debugProj

        public static boolean debugProj
        debug flags
      • debugTiming

        public static boolean debugTiming
        debug flags
      • debugVert

        public static boolean debugVert
        debug flags
    • Constructor Detail

      • GridServiceProvider

        public GridServiceProvider()
    • Method Detail

      • forceNewIndex

        public static void forceNewIndex​(boolean b)
        Set whether to force new index or not
        Parameters:
        b - true to use
      • setDebugFlags

        public static void setDebugFlags​(DebugFlags debugFlag)
        Set the debug flags
        Parameters:
        debugFlag - debug flags
      • setIndexFileModeOnOpen

        public static void setIndexFileModeOnOpen​(GridServiceProvider.IndexExtendMode mode)
        This controls what happens when a GRIB file is opened, and the data file has changed since the index was written.
        1. IndexExtendMode.extendwrite: when GRIB file length increases, extend the index. This is the case when the file is being appended to, as new data arrives.
        2. IndexExtendMode.rewrite: when GRIB file length changes, rewrite the index. This is the safest thing to do, at the expense of performance.
        3. IndexExtendMode.readonly: never modify an existing index, just use it. However, if there is no index, created one
        Parameters:
        mode - IndexExtendMode when file is opened
      • setIndexFileModeOnSync

        public static void setIndexFileModeOnSync​(GridServiceProvider.IndexExtendMode mode)
        This controls what happens when a GRIB file is synced (usually from FileCache), and the data or index file has changed since the file was placed in the cache.
        1. IndexExtendMode.extendwrite: when GRIB file or index length increases, extend the index. If file or index length decreases, rewrite it.
        2. IndexExtendMode.rewrite: when GRIB file length changes, rewrite the index.
        3. IndexExtendMode.readonly: never modify an existing index, just use it. However, if there is no index, created one
        Parameters:
        mode - IndexExtendMode when file is opened
      • setExtendIndex

        public static void setExtendIndex​(boolean b)
        Deprecated.
        use setIndexFileModeOnSync and setIndexFileModeOnOpen
        Set how indexes are used for both open and sync
        Parameters:
        b - if true, set modes to IndexExtendMode.extendwrite, else IndexExtendMode.readonly
      • setIndexAlwaysInCache

        public static void setIndexAlwaysInCache​(boolean b)
        Set disk cache policy for index files. Default = false, meaning try to write index files in same directory as grib file. True means always use the DiskCache area. TDS sets this to true, so it wont interfere with external indexer.
        Parameters:
        b - set to this value
      • open

        protected abstract void open​(GridIndex index,
                                     CancelTask cancelTask)
                              throws IOException
        Use the given index to fill the NetcdfFile object with attributes and variables.
        Parameters:
        index - GridIndex to use
        cancelTask - cancel task
        Throws:
        IOException - problem reading the file
      • isMissingXY

        public boolean isMissingXY​(Variable v2,
                                   int timeIdx,
                                   int ensIdx,
                                   int levIdx)
                            throws InvalidRangeException
        Is this XY level missing?
        Parameters:
        v2 - Variable
        timeIdx - time index
        ensIdx - ensemble index
        levIdx - level index
        Returns:
        true if missing
        Throws:
        InvalidRangeException - invalid range
      • _readData

        protected abstract float[] _readData​(GridRecord gr)
                                      throws IOException
        Read the data for this GridRecord
        Parameters:
        gr - grid identifier
        Returns:
        the data (or null)
        Throws:
        IOException - problem reading the data