Package ucar.nc2

Class ParsedSectionSpec


  • public class ParsedSectionSpec
    extends Object
    A String expression for denoting a section of a Variable to be read. Allows nesting for subsetting of Structure member variables.
    Since:
    May 8, 2008
    See Also:
    SectionSpecification
    • Constructor Detail

      • ParsedSectionSpec

        public ParsedSectionSpec​(Variable v,
                                 Section section)
      • ParsedSectionSpec

        public ParsedSectionSpec()
        Public simple constructor
    • Method Detail

      • parseVariableSection

        public static ParsedSectionSpec parseVariableSection​(NetcdfFile ncfile,
                                                             String variableSection)
                                                      throws InvalidRangeException
        Parse a section specification String. These have the form:
          section specification := selector | selector '.' selector
          selector := varName ['(' dims ')']
          varName := ESCAPED_STRING
         

        dims := dim | dim, dims dim := ':' | slice | start ':' end | start ':' end ':' stride slice := INTEGER start := INTEGER stride := INTEGER end := INTEGER ESCAPED_STRING : must escape characters = ".("

        Nonterminals are in lower case, terminals are in upper case, literals are in single quotes. Optional components are enclosed between square braces '[' and ']'.

        Parameters:
        ncfile - look for variable in here
        variableSection - the string to parse, eg "record(12).wind(1:20,:,3)"
        Returns:
        return ParsedSectionSpec, parsed representation of the variableSection String
        Throws:
        IllegalArgumentException - when token is misformed, or variable name doesnt exist in ncfile
        InvalidRangeException - if section does not match variable shape
      • makeSectionSpecString

        public static String makeSectionSpecString​(Variable v,
                                                   List<Range> ranges)
        Make section specification String from a range list for a Variable.
        Parameters:
        v - for this Variable.
        ranges - list of Range. Must includes all parent structures. The list be null, meaning use all. Individual ranges may be null, meaning all for that dimension.
        Returns:
        section specification String.
      • getVariable

        public Variable getVariable()
      • getArraySection

        public Section getArraySection()
      • makeSectionSpecString

        public String makeSectionSpecString()