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
Provides a view and operations on a set of contiguous data granules as if they
were a single granule.
This file needs to implement the same signatures NetCDFFile does,
but for aggregations of consecutive granules.
- Author:
- tommyj
Field Summary |
private String |
crossTrackDimensionName
|
(package private) HashMap<Integer,ArrayList<ucar.ma2.Range>> |
granCutRanges
|
(package private) HashMap<Integer,Integer> |
granCutScans
|
private int |
granuleCount
|
private String |
inTrackDimensionName
|
private String |
inTrackGeoDimensionName
|
private boolean |
isEDR
|
private static org.slf4j.Logger |
logger
|
(package private) ArrayList<NetCDFFile> |
ncdfal
|
(package private) ArrayList<ucar.nc2.NetcdfFile> |
nclist
|
private String |
origName
|
private LinkedHashSet<String> |
products
|
(package private) HashMap<String,QualityFlag> |
qfMap
|
(package private) HashMap<String,int[]> |
varAggrDimLengths
|
(package private) ArrayList<HashMap<String,Class>> |
varDataTypeList
|
(package private) ArrayList<HashMap<String,String[]>> |
varDimNamesList
|
(package private) HashMap<String,HashMap<Integer,Integer>> |
varGranInTrackLengths
|
(package private) ArrayList<HashMap<String,ucar.nc2.Variable>> |
varMapList
|
(package private) HashMap<String,RangeProcessor> |
varToRangeProcessor
|
Constructor Summary |
GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
LinkedHashSet<String> products,
String inTrackDimensionName,
String crossTrackDimensionName)
|
GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
LinkedHashSet<String> products,
String inTrackDimensionName,
String crossTrackDimensionName,
boolean isEDR)
|
GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
LinkedHashSet<String> products,
String inTrackDimensionName,
String inTrackGeoDimensionName,
String crossTrackDimensionName)
|
GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
LinkedHashSet<String> products,
String inTrackDimensionName,
String inTrackGeoDimensionName,
String crossTrackDimensionName,
boolean isEDR)
|
Method Summary |
void |
addRangeProcessor(String arrayName,
RangeProcessor rangeProcessor)
|
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)
|
boolean |
isEDR()
|
private String |
mapNameIfQualityFlag(String array_name)
|
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)
|
void |
setEDR(boolean isEDR)
|
void |
setQfMap(HashMap<String,QualityFlag> qfMap)
|
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
varDataTypeList
ArrayList<HashMap<String,Class>> varDataTypeList
varGranInTrackLengths
HashMap<String,HashMap<Integer,Integer>> varGranInTrackLengths
varAggrDimLengths
HashMap<String,int[]> varAggrDimLengths
granCutRanges
HashMap<Integer,ArrayList<ucar.ma2.Range>> granCutRanges
granCutScans
HashMap<Integer,Integer> granCutScans
qfMap
HashMap<String,QualityFlag> qfMap
varToRangeProcessor
HashMap<String,RangeProcessor> varToRangeProcessor
granuleCount
private int granuleCount
inTrackDimensionName
private String inTrackDimensionName
inTrackGeoDimensionName
private String inTrackGeoDimensionName
crossTrackDimensionName
private String crossTrackDimensionName
products
private LinkedHashSet<String> products
origName
private String origName
isEDR
private boolean isEDR
GranuleAggregation
public GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
LinkedHashSet<String> products,
String inTrackDimensionName,
String inTrackGeoDimensionName,
String crossTrackDimensionName,
boolean isEDR)
throws Exception
- Throws:
Exception
GranuleAggregation
public GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
LinkedHashSet<String> products,
String inTrackDimensionName,
String inTrackGeoDimensionName,
String crossTrackDimensionName)
throws Exception
- Throws:
Exception
GranuleAggregation
public GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
LinkedHashSet<String> products,
String inTrackDimensionName,
String crossTrackDimensionName)
throws Exception
- Throws:
Exception
GranuleAggregation
public GranuleAggregation(ArrayList<NetCDFFile> ncdfal,
LinkedHashSet<String> products,
String inTrackDimensionName,
String crossTrackDimensionName,
boolean isEDR)
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
mapNameIfQualityFlag
private String mapNameIfQualityFlag(String array_name)
isEDR
public boolean isEDR()
- Returns:
- the isEDR
setEDR
public void setEDR(boolean isEDR)
- Parameters:
isEDR
- the isEDR to set
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
readArray
private Object readArray(String array_name,
int[] start,
int[] count,
int[] stride)
throws Exception
- Throws:
Exception
setQfMap
public void setQfMap(HashMap<String,QualityFlag> qfMap)
- Parameters:
qfMap
- the qfMap to set
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)