net.agmodel.weatherData
Class SunshineImpl

java.lang.Object
  extended bynet.agmodel.physical.GeneralSequenceImpl
      extended bynet.agmodel.weatherData.GeneralMetSequenceImpl
          extended bynet.agmodel.weatherData.SunshineImpl
All Implemented Interfaces:
Cloneable, CompoundSequence, MetSequence, Sequence, Serializable, Sunshine

public class SunshineImpl
extends GeneralMetSequenceImpl
implements Sunshine

Stores a sequence of sunshine totals.

Author:
Matthew Laurenson
See Also:
Serialized Form

Constructor Summary
SunshineImpl(Interval dateRange, SummaryHistory composition)
          Creates a data sequence for an element.
 
Method Summary
 JigsawQuantity getAverage(Interval interval)
          Returns the average hours of sunshine 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.
 JigsawQuantity getMaximum(Interval interval)
          Returns the maximum sunshine hours over the interval.
 JigsawQuantity getMinimum(Interval interval)
          Returns the minimum hours of sunlight over the interval.
 int getNumberOfSubComponents()
          Get the number of sub-components in the sequence.
 String getSubHeading(int index)
          Returns the subheading by looking up the corresponding key in WeatherDataResources
 JigsawQuantity getTotal(Date time)
          Returns the sunshine over the period preceding and including the time specified.
 JigsawQuantity getTotal(Interval interval)
          Returns the total sunshine hours over the interval.
 void putSunshineHoursOverInterval(Interval interval, float value)
          Records the sunshine hours over some subinterval.
 void setSubHeading(int index, String aHeading)
          Does nothing
 MetSequence summarize(Duration longerResolution)
          Creates a lower resolution sequence which summarizes this sequence
 SunshineImpl total(Duration newResolution)
          Creates a new sunshine hours sequence, totalling sunshine hours to a lower resolution.
 
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, clone, dumpSequence, getAllCoverage, getAllData, getCurrentResolution, getDateRange, getMaximumTemporalInterpolation, getResolution, getSubHeading, getSummaryHistory, getSummaryKind, getTemporalInterpolation, getUnitsHeading, setTemporalInterpolation
 
Methods inherited from class java.lang.Object
equals, 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
clone, dumpSequence, getColumnHeading, getCurrentResolution, getDateRange, getName, getResolution, getSequenceHeading, getSubHeading, getSummaryKind, getUnitsHeading, setColumnHeading, setName
 

Constructor Detail

SunshineImpl

public SunshineImpl(Interval dateRange,
                    SummaryHistory composition)
Creates a data sequence for an element.

Parameters:
dateRange - the interval for which sunshine hours are stored
composition - a record of how raw sunshine hours data has been summarised to make the sequence.
Method Detail

putSunshineHoursOverInterval

public void putSunshineHoursOverInterval(Interval interval,
                                         float value)
Records the sunshine hours over some subinterval.

Parameters:
interval - the period of time over which the measurement was taken.
value - the sunshine hours over that interval
Throws:
IllegalArgumentException - if the subinterval is outside the interval that the sequence was constructed to store

getMinimum

public JigsawQuantity getMinimum(Interval interval)
Description copied from interface: Sunshine
Returns the minimum hours of sunlight over the interval. Sunshine 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 Sunshine
Returns:
the minimum hours of sunshine

getMaximum

public JigsawQuantity getMaximum(Interval interval)
Description copied from interface: Sunshine
Returns the maximum sunshine hours over the interval. Sunshine 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 Sunshine
Returns:
the maximum sunshine

getAverage

public JigsawQuantity getAverage(Interval interval)
Description copied from interface: Sunshine
Returns the average hours of sunshine over the interval. Sunshine 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 Sunshine
Returns:
the average value

getTotal

public JigsawQuantity getTotal(Interval interval)
Description copied from interface: Sunshine
Returns the total sunshine hours over the interval. Sunshine 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:
getTotal in interface Sunshine
Returns:
the total value

getTotal

public JigsawQuantity getTotal(Date time)
Description copied from interface: Sunshine
Returns the sunshine over the period preceding and including the time specified.

Specified by:
getTotal in interface Sunshine
Returns:
the total value

total

public SunshineImpl total(Duration newResolution)
Creates a new sunshine hours sequence, totalling sunshine hours to a lower resolution.

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

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

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

getSubHeading

public String getSubHeading(int index)
Returns the subheading by looking up the corresponding key in WeatherDataResources

Specified by:
getSubHeading in interface CompoundSequence
Specified by:
getSubHeading in class GeneralMetSequenceImpl

setSubHeading

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

Specified by:
setSubHeading in interface CompoundSequence
Specified by:
setSubHeading in class GeneralMetSequenceImpl

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

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


Copyright (C) NARC 2001 All Rights Reserved.