edu.wisc.ssec.mcidasv.data.hydra
Class GranuleAggregation
java.lang.Object
edu.wisc.ssec.mcidasv.data.hydra.GranuleAggregation
- All Implemented Interfaces:
- MultiDimensionReader
public class GranuleAggregation
- extends Object
- implements MultiDimensionReader
This file should be renamed - think about that Tommy.
This file needs to implement the same signatures NetCDFFile does,
but for aggregations of consecutive granules.
- Author:
- tommyj
Method Summary |
void |
addRangeProcessor(String arrayName,
RangeProcessor rangeProcessor)
|
(package private) void |
analyzeStructure(ucar.nc2.Structure var,
HashMap<String,ucar.nc2.Variable> varMap,
HashMap<String,String[]> varDimNames,
HashMap<String,int[]> varDimLengths,
HashMap<String,Class> varDataType)
|
void |
close()
|
Object |
getArray(String array_name,
int[] start,
int[] count,
int[] stride)
|
HDFArray |
getArrayAttribute(String array_name,
String attr_name)
|
Class |
getArrayType(String array_name)
|
byte[] |
getByteArray(String array_name,
int[] start,
int[] count,
int[] stride)
|
int[] |
getDimensionLengths(String array_name)
|
String[] |
getDimensionNames(String array_name)
|
double[] |
getDoubleArray(String array_name,
int[] start,
int[] count,
int[] stride)
|
float[] |
getFloatArray(String array_name,
int[] start,
int[] count,
int[] stride)
|
HDFArray |
getGlobalAttribute(String attr_name)
|
int[] |
getIntArray(String array_name,
int[] start,
int[] count,
int[] stride)
|
private int |
getInTrackIndex(ucar.nc2.Variable v)
Based on the names of the variable dimensions, determine the in-track index |
ArrayList<NetCDFFile> |
getReaders()
|
short[] |
getShortArray(String array_name,
int[] start,
int[] count,
int[] stride)
|
HashMap |
getVarMap()
|
private void |
init(ArrayList<NetCDFFile> ncdfal)
|
private Object |
processArray(String array_name,
Class arrayType,
int granIdx,
Object values,
RangeProcessor rngProcessor,
int[] start,
int[] count)
|
private Object |
readArray(String array_name,
int[] start,
int[] count,
int[] stride)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
logger
private static final org.slf4j.Logger logger
nclist
ArrayList<ucar.nc2.NetcdfFile> nclist
ncdfal
ArrayList<NetCDFFile> ncdfal
varMapList
ArrayList<HashMap<String,ucar.nc2.Variable>> varMapList
varDimNamesList
ArrayList<HashMap<String,String[]>> varDimNamesList
varDimLengthsList
ArrayList<HashMap<String,int[]>> varDimLengthsList
varDataTypeList
ArrayList<HashMap<String,Class>> varDataTypeList
varGranuleRatiosList
ArrayList<HashMap<String,Integer>> varGranuleRatiosList
varToRangeProcessor
HashMap<String,RangeProcessor> varToRangeProcessor
granuleCount
private int granuleCount
granuleLength
private int granuleLength
inTrackDimensionName
private String inTrackDimensionName
crossTrackDimensionName
private String crossTrackDimensionName
GranuleAggregation
public GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
int granuleLength,
String inTrackDimensionName,
String crossTrackDimensionName)
throws Exception
- Throws:
Exception
getArrayType
public Class getArrayType(String array_name)
- Specified by:
getArrayType
in interface MultiDimensionReader
getDimensionNames
public String[] getDimensionNames(String array_name)
- Specified by:
getDimensionNames
in interface MultiDimensionReader
getDimensionLengths
public int[] getDimensionLengths(String array_name)
- Specified by:
getDimensionLengths
in interface MultiDimensionReader
getFloatArray
public float[] getFloatArray(String array_name,
int[] start,
int[] count,
int[] stride)
throws Exception
- Specified by:
getFloatArray
in interface MultiDimensionReader
- Throws:
Exception
getIntArray
public int[] getIntArray(String array_name,
int[] start,
int[] count,
int[] stride)
throws Exception
- Specified by:
getIntArray
in interface MultiDimensionReader
- Throws:
Exception
getDoubleArray
public double[] getDoubleArray(String array_name,
int[] start,
int[] count,
int[] stride)
throws Exception
- Specified by:
getDoubleArray
in interface MultiDimensionReader
- Throws:
Exception
getShortArray
public short[] getShortArray(String array_name,
int[] start,
int[] count,
int[] stride)
throws Exception
- Specified by:
getShortArray
in interface MultiDimensionReader
- Throws:
Exception
getByteArray
public byte[] getByteArray(String array_name,
int[] start,
int[] count,
int[] stride)
throws Exception
- Specified by:
getByteArray
in interface MultiDimensionReader
- Throws:
Exception
getArray
public Object getArray(String array_name,
int[] start,
int[] count,
int[] stride)
throws Exception
- Specified by:
getArray
in interface MultiDimensionReader
- Throws:
Exception
getGlobalAttribute
public HDFArray getGlobalAttribute(String attr_name)
throws Exception
- Specified by:
getGlobalAttribute
in interface MultiDimensionReader
- Throws:
Exception
getArrayAttribute
public HDFArray getArrayAttribute(String array_name,
String attr_name)
throws Exception
- Specified by:
getArrayAttribute
in interface MultiDimensionReader
- Throws:
Exception
close
public void close()
throws Exception
- Specified by:
close
in interface MultiDimensionReader
- Throws:
Exception
init
private void init(ArrayList<NetCDFFile> ncdfal)
throws Exception
- Throws:
Exception
getInTrackIndex
private int getInTrackIndex(ucar.nc2.Variable v)
- Based on the names of the variable dimensions, determine the in-track index
- Parameters:
dimNames
- names of dimensions - should match static strings in relevant classes
- Returns:
- correct index (0 or greater), or -1 if error
analyzeStructure
void analyzeStructure(ucar.nc2.Structure var,
HashMap<String,ucar.nc2.Variable> varMap,
HashMap<String,String[]> varDimNames,
HashMap<String,int[]> varDimLengths,
HashMap<String,Class> varDataType)
throws Exception
- Throws:
Exception
readArray
private Object readArray(String array_name,
int[] start,
int[] count,
int[] stride)
throws Exception
- Throws:
Exception
getVarMap
public HashMap getVarMap()
getReaders
public ArrayList<NetCDFFile> getReaders()
processArray
private Object processArray(String array_name,
Class arrayType,
int granIdx,
Object values,
RangeProcessor rngProcessor,
int[] start,
int[] count)
addRangeProcessor
public void addRangeProcessor(String arrayName,
RangeProcessor rangeProcessor)