public final class DatedDataSpec extends DataSpec implements java.io.Serializable
A DatedDataSpec
specifies a set of degree days in terms of:
DatedDataSpec
code:Here's how you could specify monthly heating degree days with a base temperature of 15.5°C covering the whole of 2019:
DatedDataSpec datedDataSpec = DataSpec.dated(
Calculation.heatingDegreeDays(Temperature.celsius(15.5)),
DatedBreakdown.monthly(Period.dayRange(
Day.of(2019, 1, 1).to(2019, 12, 31))));
You could then send that DatedDataSpec
to the API as part
of a LocationDataRequest
, and get a response containing an
DatedDataSet
back:
DegreeDaysApi api = new DegreeDaysApi(new AccountKey(yourStringAccountKey),
new SecurityKey(yourStringSecurityKey));
LocationDataRequest request = new LocationDataRequest(
Location.stationId("KHYA"),
new DataSpecs(datedDataSpec));
LocationDataResponse response = api.dataApi().getLocationData(request);
DatedDataSet datedData = response.dataSets().getDated(datedDataSpec);
for (DatedDataValue v : datedData.getValues()) {
System.out.println(v.dayRange() + ": " + v.value());
}
To request multiple sets of dated data with different calculation processes
(e.g. multiple different base temperatures) and/or different breakdowns,
simply put multiple DatedDataSpec
objects into the
DataSpecs
object that you pass into your LocationDataRequest
.
AverageDataSpec
,
TimeSeriesDataSpec
Instances of this class are immutable. You can safely reuse them and call them from multiple threads at once.
Constructor and Description |
---|
DatedDataSpec(Calculation calculation,
DatedBreakdown datedBreakdown)
Constructs a
DatedDataSpec object with the specified
Calculation and DatedBreakdown . |
Modifier and Type | Method and Description |
---|---|
DatedBreakdown |
breakdown()
Returns the non-null
DatedBreakdown object that defines the
way in which the degree days should be broken down and the period in time
that they should cover. |
Calculation |
calculation()
Returns the non-null
Calculation object that defines the way
in which the degree days should be calculated in terms of their base
temperature and whether they should be heating degree days or cooling
degree days. |
java.lang.String |
toString()
Returns a non-null, non-empty string representation of this object for logging and debugging purposes.
|
public DatedDataSpec(Calculation calculation, DatedBreakdown datedBreakdown)
DatedDataSpec
object with the specified
Calculation
and DatedBreakdown
.calculation
- defines the way in which the degree days should be
calculated in terms of their base temperature and whether they
should be heating degree days or cooling degree days. Cannot be
null
.datedBreakdown
- defines the way in which the data should be broken
down and the period that it should cover. Cannot be
null
.java.lang.NullPointerException
- if calculation
or
datedBreakdown
is null
.public Calculation calculation()
Calculation
object that defines the way
in which the degree days should be calculated in terms of their base
temperature and whether they should be heating degree days or cooling
degree days.public DatedBreakdown breakdown()
DatedBreakdown
object that defines the
way in which the degree days should be broken down and the period in time
that they should cover.public java.lang.String toString()
The exact details of the representation are unspecified and subject to change.
toString
in class java.lang.Object
See www.degreedays.net/api/ for more about the Degree Days.net API.
You can sign up for a Degree Days.net API account and read the integration guide that is useful and applicable whether you are using Java or not.