Group Abstract Group Abstract

Message Boards Message Boards

Combine TimeSeriesThread and WeatherData?

POSTED BY: Christopher Fox
4 Replies

Thank you again, Henrik. That makes it perfectly clear, and I've built an example that demonstrates if the time/date stamps match for the two time series, WeatherData works as expected:

DateListPlot[
 TimeSeriesThread[
  First[#] - Last[#] &, {WeatherData["Richmond", 
    "MaxTemperature", {{2017, 1, 1}, {2017, 12, 31}, "Day"}], 
   WeatherData["Syracuse", 
    "MaxTemperature", {{2017, 1, 1}, {2017, 12, 31}, "Day"}]}]]

Thanks again for your help.

POSTED BY: Christopher Fox
POSTED BY: Christopher Fox

Hi Christopher,

in your example above (taken from the documentation) both TimeSeries describe data belonging to the identical date range! So an operation (subtraction here) can be done "date-wise", i.e. (value1 at some date) - (value2 at the same date). In your original problem you do not have this situation, but just the opposite: Every of your data is associated with a different date. It is basically the same as if you would try to do this:

goog12 = FinancialData["GOOGL", {"Jan. 1, 2012", "Dec. 31, 2012"}];
appl13 = FinancialData["AAPL", {"Jan. 1, 2013", "Dec. 31, 2013"}];
DateListPlot[TimeSeriesThread[First[#] - Last[#] &, {goog12, appl13}]]

(This was the point I tried to make in my first reply.) And therefore - at least according to my understanding - the application of TimeSeriesThread does not make sense here.

Regards -- Henrik

POSTED BY: Henrik Schachner

Hi Christopher,

I guess TimeSeriesThread is not suitable for your problem, because the output you want cannot be assigned to a specific date but just to a month in general. So the simplest solution would probably be to extract just the temperatures (which are sorted in monthly order anyway):

wd = WeatherData["Syracuse", "MaxTemperature", {{#, 1, 1}, {#, 12, 31}, "Month"}] & /@ Range[2000, 2017];
meanTemps = Mean /@ Transpose[Map[Last, Normal@wd, {2}]];
ListLinePlot[meanTemps, AxesLabel -> {"month", Automatic}]

By they way: The number in question is 18 (i.e. Range[2000, 2017] // Length)

I hope this helps, regards -- Henrik

POSTED BY: Henrik Schachner
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard