View
215
Download
0
Tags:
Embed Size (px)
Citation preview
A Development and Parallelization of
an air temperature Spatial Interpolation and Prediction Program
Student: Erik LaBergeAdvisor: 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 TemperatureBlue: Low Temperature
Inverse Distance Weighting Cont.
Red: High TemperatureBlue: Low Temperature
Polynomial Regression
Y = (Latitude)*x_1 +(Longitude)*x_2 + (Elevation)*x_3
Polynomial Regression Cont.
Red: High TemperatureBlue: Low Temperature
Polynomial Prediction
Artificial Neural Network
• To get prediction:
Temperature * weight -> signal -> a() -> signalsignal -> a() -> signalsignal -> b() -> signalsignal -> b() -> signalsignal -> c() -> signalsignal -> c() -> signal
* weight -> signal* weight -> signal* weight -> signal* weight -> signal* weight -> signal* weight -> signal
+_________ signal -> activate() -> prediction
|-------- 1st feed forward --------|
|--------------4th feed forward--------------|
|---- 3rd feed forward -----|
|--2nd 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• 5am • 8am
• Actual temperature
• Predicted temperature
• 7am
Inverse Distance Weighting Polynomial Regression
Calculating a 600 by 1100 space from 191 data points
40 seconds 7 seconds
Calculating a 600 by 1100 space from 1200 data points
Temperature Interpolation Performance
sec31.251
191)1100600(
sec401200)1100600(
sec98.431911100600
sec712001100600
Since we will use not only (longitude, latitude, altitude) but also wind, etc., we should use inverse distance weighting for temperature interpolation
Polynomial Prediction Artificial Neural Network (ANN)
Calculating predictions from 191 sensors
Initialization: noneSingle prediction: 0.000188 sec
Initialization: 1.253 ~ 1.6 secSingle prediction: 0.204 ~ 0.305 sec
Calculating predictions from 1200 sensors
0.000188 sec * 1200 = 0.2256 sec (0.25 sec * 1200) + 1.255 = 301.255 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 301.26 + 0.23 = 301.49sec for prediction every 10 minutes.
Performance Cont.
• The total processing time every 10 minutes is:251.31 + 301.26 + 0.23 = 552.8 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