A Development and Parallelization of an air temperature Spatial Interpolation and Prediction Program Student: Erik LaBerge Advisor: Munihiro Fukuda
Overview of Project Goal: Protect crops from frost damage How: Fans, sprinklers My part: Find out when to use fans/sprinklers – Monitor current temperatures – Predict future temperatures
Definition of Work Code Algorithms: – Air Temperature Spatial Interpolation Algorithms Inverse Distance Weighting Polynomial Regression – Air Temperature Prediction Algorithms Polynomial Prediction Artificial Neural Network Verify results with historical and mock-up data Improve accuracy by altering algorithms Compare performance between algorithms
Process of Data from Interpolation to Prediction Receive data from sensors – Latitude, longitude, elevation, temperature Interpolate data from known to unknown points and output a grid encompassing all of the sensor points Predict temperature from the interpolated data for an overnight period, to determine the minimum expected temperature
Inverse Distance Weighting Input data – From dispersed points Create a grid encompassing all data points Estimate all points in the grid based on the known data
Inverse Distance Weighting Cont. Red: High Temperature Blue: Low Temperature Red: High Temperature Blue: Low Temperature
Inverse Distance Weighting Cont. Red: High Temperature Blue: Low Temperature Red: High Temperature Blue: Low Temperature
Polynomial Regression Y = (Latitude)*x_1 + (Longitude)*x_2 + (Elevation)*x_3 Y = (Latitude)*x_1 + (Longitude)*x_2 + (Elevation)*x_3
Polynomial Regression Cont. Red: High Temperature Blue: Low Temperature Red: High Temperature Blue: Low Temperature
Polynomial Prediction
Artificial Neural Network To get prediction: Temperature * weight ->signal -> a() -> signal signal -> b() -> signal signal -> c() -> signal * weight -> signal +_________ signal -> activate() -> prediction | st feed forward | | th feed forward | | rd feed forward -----| |--2 nd feed forward--|
Artificial Neural Network Cont. To initialize: Temperature -> Target -> Learn Rate -> test() -> Error -> > Learn Rate -> backPropegate() -> returns errors and changes weights based on the derivative of the presignal, error value, and learn rate
Artificial Neural Network Cont. 7pm 9pm 11pm 1am 3am 5am8am Actual temperature Predicted temperature 7am
Inverse Distance WeightingPolynomial Regression Calculating a 600 by 1100 space from 191 data points 40 seconds7 seconds Calculating a 600 by 1100 space from 1200 data points Temperature Interpolation Performance Since we will use not only (longitude, latitude, altitude) but also wind, etc., we should use inverse distance weighting for temperature interpolation
Polynomial PredictionArtificial Neural Network (ANN) Calculating predictions from 191 sensors Initialization: none Single prediction: sec Initialization: ~ 1.6 sec Single prediction: ~ sec Calculating predictions from 1200 sensors sec * 1200 = sec(0.25 sec * 1200) = sec Temperature Prediction Performance ANN will be used for the first 4-5 hours and Polynomial Prediction will be used for the rest of the prediction duration. So we need = sec for prediction every 10 minutes.
Performance Cont. The total processing time every 10 minutes is: = sec -> 9.21 min Factors that could make it slower are: – More sensors(900MHz + WiFi combination). Increasing the amount of time interpolating data – Factoring in more variables such as wind, bodies of water, neighboring sensors’ data
Conclusion Interpolation and prediction can be done within a reasonable degree of accuracy when combining different methods Lessons learned: – Object orientation – Verify results incrementally – Reuse code