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,
TimeSeriesDataSpecInstances 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.