edu.wisc.ssec.mcidasv.data.hydra
Class RangeProcessor

java.lang.Object
  extended by edu.wisc.ssec.mcidasv.data.hydra.RangeProcessor
Direct Known Subclasses:
AggregationRangeProcessor, CloudSat_2B_GEOPROF_RangeProcessor, CrIS_RangeProcessor, IASI_RangeProcessor

public class RangeProcessor
extends Object


Field Summary
(package private)  boolean hasMultiDimensionScale
           
(package private)  float[] high
           
private static org.slf4j.Logger logger
           
(package private)  float[] low
           
(package private)  HashMap metadata
           
(package private)  float[] missing
           
(package private)  int multiScaleDimensionIndex
           
(package private)  String multiScaleDimName
           
(package private)  float[] offset
           
(package private)  boolean rangeCheckBeforeScaling
           
(package private)  MultiDimensionReader reader
           
(package private)  float[] scale
           
(package private)  int scaleOffsetLen
           
(package private)  int soIndex
           
(package private)  boolean unpack
           
(package private)  boolean unsigned
           
(package private)  float valid_high
           
(package private)  float valid_low
           
(package private)  float[] valid_range
           
 
Constructor Summary
RangeProcessor()
           
RangeProcessor(float scale, float offset, float valid_low, float valid_high, float missing)
           
RangeProcessor(MultiDimensionReader reader, HashMap metadata)
           
RangeProcessor(MultiDimensionReader reader, HashMap metadata, String multiScaleDimName)
           
 
Method Summary
(package private) static RangeProcessor createRangeProcessor(MultiDimensionReader reader, HashMap metadata)
           
 float[] getAttributeAsFloatArray(String arrayName, String attrName)
           
 int getMultiScaleDimensionIndex()
           
 boolean hasMultiDimensionScale()
           
 float[] processAlongMultiScaleDim(byte[] values)
          Process a range of data from a byte array
 float[] processAlongMultiScaleDim(short[] values)
          Process a range of data from a short array
 float[] processRange(byte[] values, HashMap subset)
          Process a range of data from a byte array
 double[] processRange(double[] values, HashMap subset)
          Process a range of data from a double array
 float[] processRange(float[] values, HashMap subset)
          Process a range of data from a float array
 float[] processRange(short[] values, HashMap subset)
          Process a range of data from a short array
 float[] processRangeQualityFlag(byte[] values, HashMap subset, QualityFlag qf)
          Process a range of data from a byte array where bytes are packed bit or multi-bit fields of quality flags.
 void setHasMultiDimensionScale(boolean yesno)
           
 void setMultiScaleDimName(String multiScaleDimName)
           
 void setMultiScaleIndex(int idx)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final org.slf4j.Logger logger

reader

MultiDimensionReader reader

metadata

HashMap metadata

scale

float[] scale

offset

float[] offset

missing

float[] missing

valid_range

float[] valid_range

valid_low

float valid_low

valid_high

float valid_high

low

float[] low

high

float[] high

unpack

boolean unpack

unsigned

boolean unsigned

rangeCheckBeforeScaling

boolean rangeCheckBeforeScaling

scaleOffsetLen

int scaleOffsetLen

multiScaleDimName

String multiScaleDimName

hasMultiDimensionScale

boolean hasMultiDimensionScale

multiScaleDimensionIndex

int multiScaleDimensionIndex

soIndex

int soIndex
Constructor Detail

RangeProcessor

public RangeProcessor()

RangeProcessor

public RangeProcessor(float scale,
                      float offset,
                      float valid_low,
                      float valid_high,
                      float missing)

RangeProcessor

public RangeProcessor(MultiDimensionReader reader,
                      HashMap metadata,
                      String multiScaleDimName)
               throws Exception
Throws:
Exception

RangeProcessor

public RangeProcessor(MultiDimensionReader reader,
                      HashMap metadata)
               throws Exception
Throws:
Exception
Method Detail

createRangeProcessor

static RangeProcessor createRangeProcessor(MultiDimensionReader reader,
                                           HashMap metadata)
                                    throws Exception
Throws:
Exception

getAttributeAsFloatArray

public float[] getAttributeAsFloatArray(String arrayName,
                                        String attrName)
                                 throws Exception
Throws:
Exception

processRangeQualityFlag

public float[] processRangeQualityFlag(byte[] values,
                                       HashMap subset,
                                       QualityFlag qf)
Process a range of data from a byte array where bytes are packed bit or multi-bit fields of quality flags. Based on info in a QualityFlag object passed in, we extract and return values for that flag.

Parameters:
values - input values
subset - optional subset
qf - quality flag
Returns:
processed range

processRange

public float[] processRange(byte[] values,
                            HashMap subset)
Process a range of data from a byte array

Parameters:
values -
subset -
Returns:

processRange

public float[] processRange(short[] values,
                            HashMap subset)
Process a range of data from a short array

Parameters:
values -
subset -
Returns:

processRange

public float[] processRange(float[] values,
                            HashMap subset)
Process a range of data from a float array

Parameters:
values -
subset -
Returns:

processRange

public double[] processRange(double[] values,
                             HashMap subset)
Process a range of data from a double array

Parameters:
values -
subset -
Returns:

processAlongMultiScaleDim

public float[] processAlongMultiScaleDim(byte[] values)
Process a range of data from a byte array

Parameters:
values -
Returns:

processAlongMultiScaleDim

public float[] processAlongMultiScaleDim(short[] values)
Process a range of data from a short array

Parameters:
values -
Returns:

setMultiScaleDimName

public void setMultiScaleDimName(String multiScaleDimName)

getMultiScaleDimensionIndex

public int getMultiScaleDimensionIndex()

hasMultiDimensionScale

public boolean hasMultiDimensionScale()

setHasMultiDimensionScale

public void setHasMultiDimensionScale(boolean yesno)

setMultiScaleIndex

public void setMultiScaleIndex(int idx)