This example shows how to visualize the variation of wind speed as a function of ambient air temperature and pressure using Curve Fitting Toolbox™. You read ThingSpeak™ data from a weather station and then use a 3D plot to visualize the data and the fit.
ThingSpeak channel 12397 contains data from the MathWorks weather station, located in Natick, Massachusetts. The data is collected once a minute. Fields 2, 4, and 6 contain wind speed, temperature, and air pressure data, respectively.
% Read the data using the |thingSpeakRead| function from channel 12397 on a particular week. For example, the week of May 1, 2018.
startDate = datetime('May 1, 2018 0:0:0'); endDate = datetime('May 8, 2018 0:0:0'); data = thingSpeakRead(12397,'daterange',[startDate endDate],'Fields',[2 4 6],'outputFormat','table');
Changes in both air pressure and temperature affect wind speed. Assume that the variation in wind speed is explained by a second degree polynomial in ambient temperature and pressure. Use the fit
function to fit a quadratic surface.
fitObject = fit([data.TemperatureF,data.PressureHg],data.WindSpeedmph,'poly22');
You can plot the fitted data to see if a quadratic surface fit captures the variation in wind speed.
plot(fitObject,[data.TemperatureF,data.PressureHg],data.WindSpeedmph); xlabel('Ambient Temperature [^{\circ}F]'); ylabel('Ambient Air Pressure [inHg]'); zlabel('Wind Speed [mph]'); title('Wind Speed as a Function of Ambient Temperature and Pressure','FontSize',10);
The quadratic fit appears to provide a good average for the fluctuating wind speed data. For this spring day, the wind speed is parabolic with rising pressure, but increses at larger temperatures.
thingSpeakRead
| fit
(Curve Fitting Toolbox)