net.agmodel.weatherData
Class WetDryImpl

java.lang.Object
  |
  +--net.agmodel.physical.GeneralSequenceImpl
        |
        +--net.agmodel.weatherData.GeneralMetSequenceImpl
              |
              +--net.agmodel.weatherData.WetDryImpl
All Implemented Interfaces:
Cloneable, CompoundSequence, Humidity, MetSequence, ScalarQuantity, Sequence, Serializable

public class WetDryImpl
extends GeneralMetSequenceImpl
implements Humidity

Represents humidity using a pair of wet and dry bulb temperature sequences Note that only point measurements of wet and dry bulb temperatures should be used hence there is no "putxxxBulbTempOverInterval()" method. However, it is OK to extract average values of the point measurements using getxxxBulbTempOverInterval()

See Also:
Serialized Form

Field Summary
 
Fields inherited from class net.agmodel.weatherData.GeneralMetSequenceImpl
rb
 
Fields inherited from class net.agmodel.physical.GeneralSequenceImpl
dateRange, maximumTemporalInterpolation, summaryHistory
 
Constructor Summary
WetDryImpl(Interval dateRange, SummaryHistory composition)
          Creates a wet and dry bulb sequence.
 
Method Summary
 RHImpl average(Duration newResolution)
          Creates a new sequence containing calculated humidities averaged to a lower resolution.
 Object clone()
           
 JigsawQuantity getAverage(Interval interval)
          Returns the average humidity over the interval.
 JigsawQuantity getAverageDewpoint(Interval interval)
          Returns the average dewpoint temperature over the interval.
 JigsawQuantity getAverageDryBulbTemp(Interval interval)
          Returns the average dry bulb temperature over the interval.
 JigsawQuantity getAverageVPD(Interval interval)
          Returns the average vapour pressure deficit over the interval.
 JigsawQuantity getAverageWetBulbTemp(Interval interval)
          Returns the average wet bulb temperature over the interval.
 String getContentsAsString(Date time, String delimiter)
          Returns the measurement associated with a particular time as a string.
 float[] getCoverage(int index)
          Indicates which array elements returned by getData(int) are missing.
 double[] getData(int index)
          Creates a one-dimensional array containing one subcomponent of the data.
static double getDewpoint(double drybulb, double wetbulb)
          Estimates the dew point temperature from wet and dry bulb temperatures assuming pressure is 1013 mb,and From Weather Algorithms Index
 JigsawQuantity getInstant(Date time)
          Returns the instantaneous humidity at a particular point in time.
 JigsawQuantity getInstantDewpoint(Date time)
          Returns the instantaneous dewpoint temperature at a particular point in time.
 JigsawQuantity getInstantDryBulbTemp(Date time)
          Returns the instantaneous dry bulb temperature at a particular point in time.
 JigsawQuantity getInstantVPD(Date time)
          Returns the instantaneous vapour pressure deficit at a particular point in time.
 JigsawQuantity getInstantWetBulbTemp(Date time)
          Returns the instantaneous wet bulb temperature at a particular point in time.
 JigsawQuantity getMaximum(Interval interval)
          Returns the maximum humidity over the interval.
 JigsawQuantity getMinimum(Interval interval)
          Returns the minimum humidity over the interval.
 int getNumberOfSubComponents()
          Get the number of sub-components in the sequence.
 String getSubHeading(int index)
          Gets a brief description of the data stored in a Sequence subcomponent in the language of the default locale.
 void putInstantDryBulbTemp(Date time, float value)
          Records the instantaneous temperature at a particular time
 void putInstantWetBulbTemp(Date time, float value)
          Records the instantaneous temperature at a particular time
static double relHumFromWetDry(double tdry, double twet)
           
 void setSubHeading(int index, String aHeading)
          Does nothing
 MetSequence summarize(Duration longerResolution)
          Creates a lower resolution sequence which summarizes this sequence
 
Methods inherited from class net.agmodel.weatherData.GeneralMetSequenceImpl
getColumnHeading, getName, getSequenceElement, getSequenceHeading, getUnitsHeading, setColumnHeading, setName, setSequenceHeading, setUnitsHeading
 
Methods inherited from class net.agmodel.physical.GeneralSequenceImpl
cancelTemporalInterpolation, dumpSequence, getAllCoverage, getAllData, getCurrentResolution, getDateRange, getMaximumTemporalInterpolation, getResolution, getSubHeading, getSummaryHistory, getSummaryKind, getTemporalInterpolation, getUnitsHeading, setTemporalInterpolation
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.agmodel.weatherData.MetSequence
getSequenceElement
 
Methods inherited from interface net.agmodel.physical.CompoundSequence
cancelTemporalInterpolation, getAllCoverage, getAllData, getMaximumTemporalInterpolation, getTemporalInterpolation, getUnitsHeading, setSequenceHeading, setTemporalInterpolation, setUnitsHeading
 
Methods inherited from interface net.agmodel.physical.Sequence
dumpSequence, getColumnHeading, getCurrentResolution, getDateRange, getName, getResolution, getSequenceHeading, getSubHeading, getSummaryKind, getUnitsHeading, setColumnHeading, setName
 

Constructor Detail

WetDryImpl

public WetDryImpl(Interval dateRange,
                  SummaryHistory composition)
Creates a wet and dry bulb sequence.

Parameters:
dateRange - the interval over which wet and dry bulb temperatures can be stored
composition - a record of how raw temperature data has been summarised to make the sequence.
Method Detail

getDewpoint

public static double getDewpoint(double drybulb,
                                 double wetbulb)
Estimates the dew point temperature from wet and dry bulb temperatures assuming pressure is 1013 mb,and From Weather Algorithms Index

Parameters:
drybulb - the temperature in Celsius
wetbulb - the wetbulbu temperature in Celsius
Returns:
the corresponding dewpoint temperature in Celsius ,or -999 if temperature is too low

relHumFromWetDry

public static double relHumFromWetDry(double tdry,
                                      double twet)

getAverage

public JigsawQuantity getAverage(Interval interval)
Description copied from interface: Humidity
Returns the average humidity over the interval. Humidity readings at either end of the interval are included by weighting their values according to the proportion of their duration that lies in the period of interest.

Specified by:
getAverage in interface Humidity
Returns:
the average value

getInstant

public JigsawQuantity getInstant(Date time)
Description copied from interface: Humidity
Returns the instantaneous humidity at a particular point in time. If interpolation is requested, the value may be spatially and/or temporally interpolated from other data.

Specified by:
getInstant in interface Humidity
Returns:
the instantaneous value

getAverageVPD

public JigsawQuantity getAverageVPD(Interval interval)
Returns the average vapour pressure deficit over the interval. Humidity readings at either end of the interval are included by weighting their values according to the proportion of their duration that lies in the period of interest.

Returns:
the average value

getInstantVPD

public JigsawQuantity getInstantVPD(Date time)
Returns the instantaneous vapour pressure deficit at a particular point in time. If interpolation is requested, the value may be spatially and/or temporally interpolated from other data.

Returns:
the instantaneous value

getAverageDewpoint

public JigsawQuantity getAverageDewpoint(Interval interval)
Description copied from interface: Humidity
Returns the average dewpoint temperature over the interval. calculated dewpoints at either end of the interval are included by weighting their values according to the proportion of their duration that lies in the period of interest.

Specified by:
getAverageDewpoint in interface Humidity
Returns:
the average value

getInstantDewpoint

public JigsawQuantity getInstantDewpoint(Date time)
Description copied from interface: Humidity
Returns the instantaneous dewpoint temperature at a particular point in time. If interpolation is requested, the value may be spatially and/or temporally interpolated from other data.

Specified by:
getInstantDewpoint in interface Humidity
Returns:
the instantaneous value in degrees C

putInstantDryBulbTemp

public void putInstantDryBulbTemp(Date time,
                                  float value)
Records the instantaneous temperature at a particular time

Parameters:
time - the point in time
value - the dry bulb temperature at that time
Throws:
IllegalArgumentException - if the time is outside the interval that the period is intended to store

getInstantDryBulbTemp

public JigsawQuantity getInstantDryBulbTemp(Date time)
Returns the instantaneous dry bulb temperature at a particular point in time. If interpolation is requested, the value may be spatially and/or temporally interpolated from other data.

Returns:
the instantaneous dry bulb temperature

getAverageDryBulbTemp

public JigsawQuantity getAverageDryBulbTemp(Interval interval)
Returns the average dry bulb temperature over the interval. Temperatures at either end of the interval are included by weighting their values according to the proportion of their duration that lies in the period of interest.

Returns:
the average dry bulb temperature

putInstantWetBulbTemp

public void putInstantWetBulbTemp(Date time,
                                  float value)
Records the instantaneous temperature at a particular time

Parameters:
time - the point in time
value - the wet bulb temperature at that time
Throws:
IllegalArgumentException - if the time is outside the interval that the period is intended to store

getInstantWetBulbTemp

public JigsawQuantity getInstantWetBulbTemp(Date time)
Returns the instantaneous wet bulb temperature at a particular point in time. If interpolation is requested, the value may be spatially and/or temporally interpolated from other data.

Returns:
the instantaneous wet bulb temperature

getAverageWetBulbTemp

public JigsawQuantity getAverageWetBulbTemp(Interval interval)
Returns the average wet bulb temperature over the interval. Temperatures at either end of the interval are included by weighting their values according to the proportion of their duration that lies in the period of interest.

Returns:
the average wet bulb temperature

getMinimum

public JigsawQuantity getMinimum(Interval interval)
Description copied from interface: Humidity
Returns the minimum humidity over the interval. Humidity readings at either end of the interval are included in the comparison if more than 50% of their duration lies within the interval of interest.

Specified by:
getMinimum in interface Humidity
Returns:
the minimum value

getMaximum

public JigsawQuantity getMaximum(Interval interval)
Description copied from interface: Humidity
Returns the maximum humidity over the interval. Humidity readings at either end of the interval are included in the comparison if more than 50% of their duration lies within the interval of interest.

Specified by:
getMaximum in interface Humidity
Returns:
the maximum value

getContentsAsString

public String getContentsAsString(Date time,
                                  String delimiter)
Description copied from interface: Sequence
Returns the measurement associated with a particular time as a string. Used by dumpSequence.

Specified by:
getContentsAsString in interface Sequence
Specified by:
getContentsAsString in class GeneralSequenceImpl
Parameters:
time - the time of interest.
delimiter - a string to use between values if required.

average

public RHImpl average(Duration newResolution)
Creates a new sequence containing calculated humidities averaged to a lower resolution.

Parameters:
newResolution - the target resolution required.
Returns:
a new RH sequence

summarize

public MetSequence summarize(Duration longerResolution)
Description copied from interface: MetSequence
Creates a lower resolution sequence which summarizes this sequence

Specified by:
summarize in interface MetSequence
Parameters:
longerResolution - the new resolution to summarize to
Returns:
a summarized sequence.

getNumberOfSubComponents

public int getNumberOfSubComponents()
Description copied from interface: Sequence
Get the number of sub-components in the sequence. This indicates how many "columns" the sequence output will occupy.

Specified by:
getNumberOfSubComponents in interface Sequence
Specified by:
getNumberOfSubComponents in class GeneralMetSequenceImpl
Returns:
the number of sub-components
See Also:
Sequence.getSequenceHeading(String)

getSubHeading

public String getSubHeading(int index)
Description copied from interface: CompoundSequence
Gets a brief description of the data stored in a Sequence subcomponent in the language of the default locale. This value can be used as a column sub heading if the sequence is listed. It is assumed to be in the context of an overall column heading.

Specified by:
getSubHeading in interface CompoundSequence
Specified by:
getSubHeading in class GeneralMetSequenceImpl
See Also:
Sequence.getNumberOfSubComponents(), Sequence.getSequenceHeading(String)

setSubHeading

public void setSubHeading(int index,
                          String aHeading)
Does nothing

Specified by:
setSubHeading in interface CompoundSequence
Specified by:
setSubHeading in class GeneralMetSequenceImpl
Parameters:
aHeading - the new heading
index - the zero-based index of the heading
See Also:
Sequence.getNumberOfSubComponents(), Sequence.getSequenceHeading(String)

getData

public double[] getData(int index)
Description copied from interface: CompoundSequence
Creates a one-dimensional array containing one subcomponent of the data. Use CompoundSequence.getCoverage(int) to test for missing values (at present these are returned as Double.NaN but don't rely on this).
Note that the first element of the array corresponds to getStart() and is therefore empty in most cases.

Specified by:
getData in interface CompoundSequence
Specified by:
getData in class GeneralSequenceImpl
Parameters:
index - the zero-based index of the subcomponent
Returns:
the subcomponent as a timeseries array.
See Also:
Sequence.getNumberOfSubComponents()

getCoverage

public float[] getCoverage(int index)
Description copied from interface: CompoundSequence
Indicates which array elements returned by CompoundSequence.getData(int) are missing. Coverage values are in the range JigsawQuantity.DEVOID to JigsawQuantity.COMPLETE.
Note that the first element of the array corresponds to getStart() and is therefore empty in most cases.

Specified by:
getCoverage in interface CompoundSequence
Specified by:
getCoverage in class GeneralSequenceImpl
Parameters:
index - the zero-based index of the subcomponent
Returns:
a array of the same length as that returned by getData()

clone

public Object clone()
Specified by:
clone in interface Sequence
Overrides:
clone in class GeneralSequenceImpl