# Message Boards

Posted 7 months ago
800 Views
|
4 Replies
|
2 Total Likes
|
 Hello,I'm exploring WeatherData and was interested in using TimeSeriesThread with it, but running into trouble with syntax.As an example, suppose I wanted to calculate the arithmetic mean maximum temperature each month across a number of years. I'd first generate my data using WeatherData: WeatherData["Syracuse", "MaxTemperature", {{#, 1, 1}, {#, 12, 31}, "Month"}] & /@ Range[2000, 2017] If I understand this correctly, that should get me a list of 17 TimeSeries, each of which contains 12 data points: the maximum temperature for each month during the year.The next step would be to add all 17 entries for each month (e.g. sum all the January max temps), then divide by the number of years in my range, in this case 17. The final result would be a new TimeSeries with 12 data points, each of which is the mean maximum temperature each month across that range of 17 years. Reading the documentation and looking at the examples, it seems TimeSeriesThread would fit the need, but the syntax eludes me.Thanks for any assistance.Christopher
4 Replies
Sort By:
Posted 7 months ago
 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 7 months ago
 Thank you, Henrik.I realized my "off by one" error on my drive in to work this morning as I was thinking about this problem further.There's an example of TimeSeriesThread that is based on calendar dates from FinancialData: goog = FinancialData["GOOGL", "2012"]; appl = FinancialData["AAPL", "2012"]; DateListPlot[TimeSeriesThread[First[#] - Last[#] &, {goog, appl}]] Any thoughts as to why this works, but not a WeatherData?Thanks again for your help.