changeset 0:26415eac98c3 draft default tip

Uploaded
author greg
date Tue, 27 Nov 2018 11:08:20 -0500
parents
children
files .shed.yml test-data/30_year_normals.csv test-data/30_year_normals_invalid.csv test-data/30_year_normals_invalid_output.txt test-data/daily_actuals.csv test-data/daily_actuals_invalid.csv validate_temperature_data.py validate_temperature_data.xml
diffstat 7 files changed, 1360 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.shed.yml	Tue Nov 27 11:08:20 2018 -0500
@@ -0,0 +1,11 @@
+name: validate_temperature_data
+owner: greg
+description: |
+  Contains a tool that validates both 30 year normals and daily temperature data for the insect_phenology_model tool.
+homepage_url: https://github.com/gregvonkuster/galaxy_tools/tree/master/tools/entomology/validate_temperature_data
+long_description: |
+  Contains a tool that validates both 30 year normals and daily temperature data for the insect_phenology_model tool
+remote_repository_url: https://github.com/gregvonkuster/galaxy_tools/tree/master/tools/entomology/validate_temperature_data
+type: unrestricted
+categories:
+  - Entomology
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/30_year_normals.csv	Tue Nov 27 11:08:20 2018 -0500
@@ -0,0 +1,367 @@
+stationid,latitude,longitude,elev_m,name,st,mmdd,doy,tmin,tmax
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-01, 001,-9.9,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-02, 002,-10.0,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-03, 003,-10.1,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-04, 004,-10.1,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-05, 005,-10.2,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-06, 006,-10.2,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-07, 007,-10.3,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-08, 008,-10.3,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-09, 009,-10.3,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-10, 010,-10.4,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-11, 011,-10.4,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-12, 012,-10.4,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-13, 013,-10.5,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-14, 014,-10.5,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-15, 015,-10.6,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-16, 016,-10.6,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-17, 017,-10.6,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-18, 018,-10.6,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-19, 019,-10.6,1.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-20, 020,-10.6,1.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-21, 021,-10.6,1.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-22, 022,-10.6,1.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-23, 023,-10.6,1.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-24, 024,-10.6,1.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-25, 025,-10.5,1.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-26, 026,-10.5,1.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-27, 027,-10.4,1.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-28, 028,-10.4,1.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-29, 029,-10.3,1.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-30, 030,-10.3,1.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-31, 031,-10.2,1.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-01, 032,-10.1,1.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-02, 033,-10.0,2.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-03, 034,-9.9,2.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-04, 035,-9.8,2.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-05, 036,-9.7,2.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-06, 037,-9.6,2.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-07, 038,-9.4,2.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-08, 039,-9.3,2.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-09, 040,-9.1,2.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-10, 041,-8.9,3.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-11, 042,-8.8,3.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-12, 043,-8.6,3.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-13, 044,-8.4,3.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-14, 045,-8.2,3.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-15, 046,-8.1,3.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-16, 047,-7.8,4.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-17, 048,-7.6,4.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-18, 049,-7.4,4.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-19, 050,-7.2,4.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-20, 051,-7.0,4.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-21, 052,-6.8,4.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-22, 053,-6.6,5.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-23, 054,-6.3,5.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-24, 055,-6.1,5.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-25, 056,-5.8,5.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-26, 057,-5.6,6.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-27, 058,-5.4,6.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-28, 059,-5.2,6.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-29, 060,-5.1,6.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-01, 061,-4.9,6.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-02, 062,-4.7,7.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-03, 063,-4.5,7.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-04, 064,-4.3,7.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-05, 065,-4.1,7.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-06, 066,-3.8,8.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-07, 067,-3.6,8.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-08, 068,-3.4,8.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-09, 069,-3.2,8.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-10, 070,-2.9,9.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-11, 071,-2.7,9.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-12, 072,-2.6,9.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-13, 073,-2.3,9.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-14, 074,-2.1,10.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-15, 075,-1.9,10.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-16, 076,-1.7,10.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-17, 077,-1.6,10.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-18, 078,-1.4,11.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-19, 079,-1.2,11.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-20, 080,-1.0,11.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-21, 081,-0.8,11.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-22, 082,-0.6,12.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-23, 083,-0.4,12.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-24, 084,-0.3,12.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-25, 085,-0.1,12.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-26, 086,0.1,13.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-27, 087,0.3,13.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-28, 088,0.4,13.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-29, 089,0.6,13.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-30, 090,0.8,14.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-31, 091,1.0,14.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-01, 092,1.2,14.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-02, 093,1.4,14.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-03, 094,1.6,15.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-04, 095,1.8,15.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-05, 096,1.9,15.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-06, 097,2.2,15.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-07, 098,2.3,15.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-08, 099,2.6,16.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-09, 100,2.7,16.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-10, 101,2.9,16.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-11, 102,3.2,16.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-12, 103,3.4,17.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-13, 104,3.6,17.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-14, 105,3.8,17.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-15, 106,4.1,17.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-16, 107,4.3,17.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-17, 108,4.5,18.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-18, 109,4.7,18.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-19, 110,4.9,18.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-20, 111,5.2,18.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-21, 112,5.4,18.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-22, 113,5.6,19.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-23, 114,5.9,19.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-24, 115,6.1,19.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-25, 116,6.3,19.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-26, 117,6.6,19.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-27, 118,6.8,19.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-28, 119,7.1,20.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-29, 120,7.3,20.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-30, 121,7.6,20.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-01, 122,7.8,20.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-02, 123,8.0,20.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-03, 124,8.2,21.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-04, 125,8.5,21.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-05, 126,8.7,21.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-06, 127,8.9,21.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-07, 128,9.2,21.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-08, 129,9.4,21.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-09, 130,9.6,22.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-10, 131,9.8,22.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-11, 132,10.1,22.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-12, 133,10.3,22.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-13, 134,10.5,22.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-14, 135,10.7,22.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-15, 136,10.9,23.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-16, 137,11.1,23.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-17, 138,11.3,23.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-18, 139,11.6,23.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-19, 140,11.8,23.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-20, 141,11.9,23.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-21, 142,12.2,24.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-22, 143,12.3,24.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-23, 144,12.6,24.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-24, 145,12.7,24.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-25, 146,12.9,24.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-26, 147,13.1,25.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-27, 148,13.3,25.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-28, 149,13.5,25.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-29, 150,13.7,25.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-30, 151,13.9,25.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-31, 152,14.1,25.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-01, 153,14.2,26.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-02, 154,14.4,26.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-03, 155,14.6,26.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-04, 156,14.8,26.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-05, 157,14.9,26.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-06, 158,15.1,27.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-07, 159,15.3,27.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-08, 160,15.5,27.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-09, 161,15.7,27.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-10, 162,15.8,27.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-11, 163,16.0,27.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-12, 164,16.2,28.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-13, 165,16.3,28.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-14, 166,16.4,28.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-15, 167,16.6,28.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-16, 168,16.8,28.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-17, 169,16.9,28.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-18, 170,17.1,28.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-19, 171,17.2,29.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-20, 172,17.3,29.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-21, 173,17.4,29.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-22, 174,17.6,29.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-23, 175,17.7,29.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-24, 176,17.8,29.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-25, 177,17.9,29.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-26, 178,18.1,29.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-27, 179,18.1,30.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-28, 180,18.2,30.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-29, 181,18.3,30.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-30, 182,18.4,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-01, 183,18.5,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-02, 184,18.6,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-03, 185,18.6,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-04, 186,18.7,30.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-05, 187,18.7,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-06, 188,18.8,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-07, 189,18.8,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-08, 190,18.9,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-09, 191,18.9,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-10, 192,18.9,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-11, 193,18.9,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-12, 194,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-13, 195,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-14, 196,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-15, 197,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-16, 198,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-17, 199,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-18, 200,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-19, 201,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-20, 202,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-21, 203,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-22, 204,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-23, 205,19.0,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-24, 206,18.9,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-25, 207,18.9,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-26, 208,18.9,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-27, 209,18.9,30.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-28, 210,18.8,30.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-29, 211,18.8,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-30, 212,18.8,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-31, 213,18.8,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-01, 214,18.7,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-02, 215,18.7,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-03, 216,18.7,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-04, 217,18.6,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-05, 218,18.6,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-06, 219,18.5,30.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-07, 220,18.4,30.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-08, 221,18.4,30.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-09, 222,18.3,30.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-10, 223,18.3,30.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-11, 224,18.2,30.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-12, 225,18.2,30.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-13, 226,18.1,30.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-14, 227,18.0,29.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-15, 228,17.9,29.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-16, 229,17.8,29.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-17, 230,17.7,29.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-18, 231,17.6,29.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-19, 232,17.6,29.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-20, 233,17.4,29.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-21, 234,17.3,29.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-22, 235,17.2,29.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-23, 236,17.1,29.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-24, 237,16.9,29.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-25, 238,16.8,29.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-26, 239,16.6,29.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-27, 240,16.4,29.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-28, 241,16.3,28.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-29, 242,16.1,28.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-30, 243,15.9,28.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-31, 244,15.7,28.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-01, 245,15.5,28.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-02, 246,15.3,28.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-03, 247,15.1,28.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-04, 248,14.9,28.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-05, 249,14.6,27.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-06, 250,14.4,27.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-07, 251,14.2,27.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-08, 252,13.9,27.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-09, 253,13.7,27.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-10, 254,13.4,27.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-11, 255,13.2,26.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-12, 256,12.9,26.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-13, 257,12.7,26.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-14, 258,12.4,26.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-15, 259,12.1,26.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-16, 260,11.8,25.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-17, 261,11.6,25.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-18, 262,11.3,25.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-19, 263,11.1,25.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-20, 264,10.8,25.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-21, 265,10.5,24.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-22, 266,10.2,24.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-23, 267,10.0,24.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-24, 268,9.7,24.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-25, 269,9.4,23.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-26, 270,9.2,23.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-27, 271,8.9,23.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-28, 272,8.7,23.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-29, 273,8.5,22.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-30, 274,8.3,22.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-01, 275,8.0,22.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-02, 276,7.8,22.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-03, 277,7.6,21.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-04, 278,7.3,21.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-05, 279,7.2,21.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-06, 280,6.9,21.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-07, 281,6.7,21.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-08, 282,6.6,20.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-09, 283,6.3,20.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-10, 284,6.2,20.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-11, 285,6.0,20.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-12, 286,5.8,19.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-13, 287,5.6,19.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-14, 288,5.4,19.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-15, 289,5.3,19.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-16, 290,5.1,18.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-17, 291,4.9,18.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-18, 292,4.7,18.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-19, 293,4.6,18.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-20, 294,4.4,18.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-21, 295,4.2,17.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-22, 296,4.1,17.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-23, 297,3.8,17.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-24, 298,3.7,17.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-25, 299,3.5,16.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-26, 300,3.3,16.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-27, 301,3.1,16.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-28, 302,2.9,15.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-29, 303,2.7,15.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-30, 304,2.5,15.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-31, 305,2.3,15.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-01, 306,2.1,14.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-02, 307,1.9,14.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-03, 308,1.6,14.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-04, 309,1.4,13.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-05, 310,1.2,13.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-06, 311,0.9,13.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-07, 312,0.7,13.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-08, 313,0.4,12.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-09, 314,0.2,12.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-10, 315,-0.1,12.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-11, 316,-0.3,11.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-12, 317,-0.6,11.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-13, 318,-0.9,11.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-14, 319,-1.2,10.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-15, 320,-1.4,10.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-16, 321,-1.7,10.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-17, 322,-2.0,9.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-18, 323,-2.3,9.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-19, 324,-2.6,9.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-20, 325,-2.8,8.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-21, 326,-3.1,8.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-22, 327,-3.4,8.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-23, 328,-3.7,7.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-24, 329,-3.9,7.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-25, 330,-4.2,7.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-26, 331,-4.4,6.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-27, 332,-4.7,6.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-28, 333,-4.9,6.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-29, 334,-5.2,5.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-30, 335,-5.4,5.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-01, 336,-5.7,5.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-02, 337,-5.9,4.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-03, 338,-6.2,4.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-04, 339,-6.4,4.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-05, 340,-6.6,4.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-06, 341,-6.8,3.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-07, 342,-7.0,3.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-08, 343,-7.2,3.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-09, 344,-7.4,3.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-10, 345,-7.6,3.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-11, 346,-7.7,2.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-12, 347,-7.9,2.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-13, 348,-8.1,2.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-14, 349,-8.2,2.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-15, 350,-8.3,2.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-16, 351,-8.5,1.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-17, 352,-8.6,1.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-18, 353,-8.7,1.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-19, 354,-8.8,1.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-20, 355,-8.9,1.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-21, 356,-9.1,1.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-22, 357,-9.2,1.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-23, 358,-9.2,1.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-24, 359,-9.3,1.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-25, 360,-9.4,1.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-26, 361,-9.5,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-27, 362,-9.6,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-28, 363,-9.7,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-29, 364,-9.7,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-30, 365,-9.8,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-31, 366,-9.9,0.7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/30_year_normals_invalid.csv	Tue Nov 27 11:08:20 2018 -0500
@@ -0,0 +1,367 @@
+stationid,latitude,longitude,elev_m,name,st,mmdd,doy,tmin,tmax
+,40.7672,-95.38,297.2,SHENANDOAH,IA,01-01, 001,-9.9,0.7
+USC00137613,error2,-95.38,297.2,SHENANDOAH,IA,01-02, 002,-10.0,0.7
+USC00137613,40.7672,error3,297.2,SHENANDOAH,IA,01-03, 003,-10.1,0.7
+USC00137613,40.7672,-95.38,error4,SHENANDOAH,IA,01-04, 004,-10.1,0.7
+USC00137613,40.7672,-95.38,297.2,,IA,01-05, 005,-10.2,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,,01-06, 006,-10.2,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,error7, 007,-10.3,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-08, 008,error8,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-09, 009,-10.3,error9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-10, 010,-10.4,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-11, 011,-10.4,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-12, 012,-10.4,0.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-13, 013,-10.5,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-14, 014,-10.5,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-15, 015,-10.6,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-16, 016,-10.6,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-17, 017,-10.6,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-18, 018,-10.6,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-19, 019,-10.6,1.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-20, 020,-10.6,1.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-21, 021,-10.6,1.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-22, 022,-10.6,1.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-23, 023,-10.6,1.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-24, 024,-10.6,1.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-25, 025,-10.5,1.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-26, 026,-10.5,1.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-27, 027,-10.4,1.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-28, 028,-10.4,1.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-29, 029,-10.3,1.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-30, 030,-10.3,1.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,01-31, 031,-10.2,1.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-01, 032,-10.1,1.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-02, 033,-10.0,2.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-03, 034,-9.9,2.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-04, 035,-9.8,2.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-05, 036,-9.7,2.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-06, 037,-9.6,2.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-07, 038,-9.4,2.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-08, 039,-9.3,2.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-09, 040,-9.1,2.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-10, 041,-8.9,3.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-11, 042,-8.8,3.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-12, 043,-8.6,3.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-13, 044,-8.4,3.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-14, 045,-8.2,3.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-15, 046,-8.1,3.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-16, 047,-7.8,4.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-17, 048,-7.6,4.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-18, 049,-7.4,4.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-19, 050,-7.2,4.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-20, 051,-7.0,4.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-21, 052,-6.8,4.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-22, 053,-6.6,5.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-23, 054,-6.3,5.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-24, 055,-6.1,5.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-25, 056,-5.8,5.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-26, 057,-5.6,6.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-27, 058,-5.4,6.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-28, 059,-5.2,6.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,02-29, 060,-5.1,6.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-01, 061,-4.9,6.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-02, 062,-4.7,7.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-03, 063,-4.5,7.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-04, 064,-4.3,7.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-05, 065,-4.1,7.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-06, 066,-3.8,8.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-07, 067,-3.6,8.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-08, 068,-3.4,8.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-09, 069,-3.2,8.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-10, 070,-2.9,9.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-11, 071,-2.7,9.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-12, 072,-2.6,9.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-13, 073,-2.3,9.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-14, 074,-2.1,10.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-15, 075,-1.9,10.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-16, 076,-1.7,10.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-17, 077,-1.6,10.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-18, 078,-1.4,11.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-19, 079,-1.2,11.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-20, 080,-1.0,11.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-21, 081,-0.8,11.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-22, 082,-0.6,12.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-23, 083,-0.4,12.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-24, 084,-0.3,12.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-25, 085,-0.1,12.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-26, 086,0.1,13.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-27, 087,0.3,13.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-28, 088,0.4,13.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-29, 089,0.6,13.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-30, 090,0.8,14.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,03-31, 091,1.0,14.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-01, 092,1.2,14.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-02, 093,1.4,14.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-03, 094,1.6,15.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-04, 095,1.8,15.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-05, 096,1.9,15.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-06, 097,2.2,15.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-07, 098,2.3,15.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-08, 099,2.6,16.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-09, 100,2.7,16.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-10, 101,2.9,16.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-11, 102,3.2,16.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-12, 103,3.4,17.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-13, 104,3.6,17.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-14, 105,3.8,17.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-15, 106,4.1,17.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-16, 107,4.3,17.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-17, 108,4.5,18.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-18, 109,4.7,18.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-19, 110,4.9,18.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-20, 111,5.2,18.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-21, 112,5.4,18.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-22, 113,5.6,19.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-23, 114,5.9,19.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-24, 115,6.1,19.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-25, 116,6.3,19.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-26, 117,6.6,19.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-27, 118,6.8,19.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-28, 119,7.1,20.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-29, 120,7.3,20.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,04-30, 121,7.6,20.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-01, 122,7.8,20.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-02, 123,8.0,20.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-03, 124,8.2,21.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-04, 125,8.5,21.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-05, 126,8.7,21.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-06, 127,8.9,21.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-07, 128,9.2,21.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-08, 129,9.4,21.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-09, 130,9.6,22.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-10, 131,9.8,22.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-11, 132,10.1,22.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-12, 133,10.3,22.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-13, 134,10.5,22.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-14, 135,10.7,22.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-15, 136,10.9,23.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-16, 137,11.1,23.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-17, 138,11.3,23.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-18, 139,11.6,23.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-19, 140,11.8,23.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-20, 141,11.9,23.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-21, 142,12.2,24.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-22, 143,12.3,24.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-23, 144,12.6,24.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-24, 145,12.7,24.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-25, 146,12.9,24.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-26, 147,13.1,25.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-27, 148,13.3,25.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-28, 149,13.5,25.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-29, 150,13.7,25.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-30, 151,13.9,25.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,05-31, 152,14.1,25.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-01, 153,14.2,26.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-02, 154,14.4,26.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-03, 155,14.6,26.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-04, 156,14.8,26.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-05, 157,14.9,26.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-06, 158,15.1,27.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-07, 159,15.3,27.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-08, 160,15.5,27.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-09, 161,15.7,27.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-10, 162,15.8,27.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-11, 163,16.0,27.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-12, 164,16.2,28.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-13, 165,16.3,28.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-14, 166,16.4,28.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-15, 167,16.6,28.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-16, 168,16.8,28.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-17, 169,16.9,28.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-18, 170,17.1,28.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-19, 171,17.2,29.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-20, 172,17.3,29.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-21, 173,17.4,29.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-22, 174,17.6,29.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-23, 175,17.7,29.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-24, 176,17.8,29.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-25, 177,17.9,29.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-26, 178,18.1,29.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-27, 179,18.1,30.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-28, 180,18.2,30.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-29, 181,18.3,30.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,06-30, 182,18.4,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-01, 183,18.5,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-02, 184,18.6,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-03, 185,18.6,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-04, 186,18.7,30.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-05, 187,18.7,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-06, 188,18.8,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-07, 189,18.8,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-08, 190,18.9,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-09, 191,18.9,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-10, 192,18.9,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-11, 193,18.9,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-12, 194,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-13, 195,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-14, 196,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-15, 197,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-16, 198,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-17, 199,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-18, 200,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-19, 201,19.1,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-20, 202,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-21, 203,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-22, 204,19.0,30.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-23, 205,19.0,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-24, 206,18.9,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-25, 207,18.9,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-26, 208,18.9,30.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-27, 209,18.9,30.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-28, 210,18.8,30.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-29, 211,18.8,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-30, 212,18.8,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,07-31, 213,18.8,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-01, 214,18.7,30.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-02, 215,18.7,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-03, 216,18.7,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-04, 217,18.6,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-05, 218,18.6,30.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-06, 219,18.5,30.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-07, 220,18.4,30.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-08, 221,18.4,30.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-09, 222,18.3,30.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-10, 223,18.3,30.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-11, 224,18.2,30.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-12, 225,18.2,30.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-13, 226,18.1,30.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-14, 227,18.0,29.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-15, 228,17.9,29.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-16, 229,17.8,29.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-17, 230,17.7,29.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-18, 231,17.6,29.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-19, 232,17.6,29.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-20, 233,17.4,29.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-21, 234,17.3,29.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-22, 235,17.2,29.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-23, 236,17.1,29.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-24, 237,16.9,29.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-25, 238,16.8,29.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-26, 239,16.6,29.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-27, 240,16.4,29.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-28, 241,16.3,28.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-29, 242,16.1,28.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-30, 243,15.9,28.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,08-31, 244,15.7,28.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-01, 245,15.5,28.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-02, 246,15.3,28.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-03, 247,15.1,28.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-04, 248,14.9,28.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-05, 249,14.6,27.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-06, 250,14.4,27.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-07, 251,14.2,27.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-08, 252,13.9,27.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-09, 253,13.7,27.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-10, 254,13.4,27.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-11, 255,13.2,26.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-12, 256,12.9,26.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-13, 257,12.7,26.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-14, 258,12.4,26.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-15, 259,12.1,26.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-16, 260,11.8,25.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-17, 261,11.6,25.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-18, 262,11.3,25.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-19, 263,11.1,25.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-20, 264,10.8,25.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-21, 265,10.5,24.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-22, 266,10.2,24.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-23, 267,10.0,24.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-24, 268,9.7,24.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-25, 269,9.4,23.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-26, 270,9.2,23.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-27, 271,8.9,23.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-28, 272,8.7,23.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-29, 273,8.5,22.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,09-30, 274,8.3,22.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-01, 275,8.0,22.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-02, 276,7.8,22.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-03, 277,7.6,21.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-04, 278,7.3,21.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-05, 279,7.2,21.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-06, 280,6.9,21.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-07, 281,6.7,21.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-08, 282,6.6,20.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-09, 283,6.3,20.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-10, 284,6.2,20.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-11, 285,6.0,20.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-12, 286,5.8,19.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-13, 287,5.6,19.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-14, 288,5.4,19.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-15, 289,5.3,19.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-16, 290,5.1,18.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-17, 291,4.9,18.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-18, 292,4.7,18.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-19, 293,4.6,18.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-20, 294,4.4,18.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-21, 295,4.2,17.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-22, 296,4.1,17.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-23, 297,3.8,17.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-24, 298,3.7,17.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-25, 299,3.5,16.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-26, 300,3.3,16.5
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-27, 301,3.1,16.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-28, 302,2.9,15.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-29, 303,2.7,15.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-30, 304,2.5,15.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,10-31, 305,2.3,15.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-01, 306,2.1,14.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-02, 307,1.9,14.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-03, 308,1.6,14.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-04, 309,1.4,13.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-05, 310,1.2,13.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-06, 311,0.9,13.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-07, 312,0.7,13.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-08, 313,0.4,12.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-09, 314,0.2,12.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-10, 315,-0.1,12.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-11, 316,-0.3,11.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-12, 317,-0.6,11.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-13, 318,-0.9,11.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-14, 319,-1.2,10.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-15, 320,-1.4,10.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-16, 321,-1.7,10.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-17, 322,-2.0,9.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-18, 323,-2.3,9.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-19, 324,-2.6,9.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-20, 325,-2.8,8.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-21, 326,-3.1,8.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-22, 327,-3.4,8.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-23, 328,-3.7,7.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-24, 329,-3.9,7.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-25, 330,-4.2,7.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-26, 331,-4.4,6.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-27, 332,-4.7,6.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-28, 333,-4.9,6.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-29, 334,-5.2,5.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,11-30, 335,-5.4,5.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-01, 336,-5.7,5.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-02, 337,-5.9,4.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-03, 338,-6.2,4.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-04, 339,-6.4,4.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-05, 340,-6.6,4.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-06, 341,-6.8,3.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-07, 342,-7.0,3.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-08, 343,-7.2,3.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-09, 344,-7.4,3.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-10, 345,-7.6,3.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-11, 346,-7.7,2.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-12, 347,-7.9,2.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-13, 348,-8.1,2.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-14, 349,-8.2,2.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-15, 350,-8.3,2.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-16, 351,-8.5,1.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-17, 352,-8.6,1.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-18, 353,-8.7,1.7
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-19, 354,-8.8,1.6
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-20, 355,-8.9,1.4
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-21, 356,-9.1,1.3
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-22, 357,-9.2,1.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-23, 358,-9.2,1.2
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-24, 359,-9.3,1.1
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-25, 360,-9.4,1.0
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-26, 361,-9.5,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-27, 362,-9.6,0.9
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-28, 363,-9.7,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-29, 364,-9.7,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-29, 366,-9.7,0.8
+USC00137613,40.7672,-95.38,297.2,SHENANDOAH,IA,12-31, 367,-9.9,0.7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/daily_actuals.csv	Tue Nov 27 11:08:20 2018 -0500
@@ -0,0 +1,184 @@
+LATITUDE,LONGITUDE,DATE,DOY,TMIN,TMAX
+ 40.81849,-77.84637,2017-04-01,091,3.30,7.66
+ 40.81849,-77.84637,2017-04-02,092,1.69,15.19
+ 40.81849,-77.84637,2017-04-03,093,3.48,18.81
+ 40.81849,-77.84637,2017-04-04,094,9.28,18.75
+ 40.81849,-77.84637,2017-04-05,095,8.14,19.01
+ 40.81849,-77.84637,2017-04-06,096,4.59,12.02
+ 40.81849,-77.84637,2017-04-07,097,1.19,3.66
+ 40.81849,-77.84637,2017-04-08,098,-0.56,13.85
+ 40.81849,-77.84637,2017-04-09,099,-2.32,21.96
+ 40.81849,-77.84637,2017-04-10,100,7.90,26.25
+ 40.81849,-77.84637,2017-04-11,101,9.25,26.48
+ 40.81849,-77.84637,2017-04-12,102,8.95,19.78
+ 40.81849,-77.84637,2017-04-13,103,4.00,15.47
+ 40.81849,-77.84637,2017-04-14,104,5.09,20.10
+ 40.81849,-77.84637,2017-04-15,105,8.44,25.02
+ 40.81849,-77.84637,2017-04-16,106,14.13,26.54
+ 40.81849,-77.84637,2017-04-17,107,8.23,20.59
+ 40.81849,-77.84637,2017-04-18,108,3.27,20.96
+ 40.81849,-77.84637,2017-04-19,109,9.76,13.40
+ 40.81849,-77.84637,2017-04-20,110,10.70,25.45
+ 40.81849,-77.84637,2017-04-21,111,11.74,22.34
+ 40.81849,-77.84637,2017-04-22,112,4.90,13.43
+ 40.81849,-77.84637,2017-04-23,113,0.43,20.16
+ 40.81849,-77.84637,2017-04-24,114,1.21,17.18
+ 40.81849,-77.84637,2017-04-25,115,9.93,14.30
+ 40.81849,-77.84637,2017-04-26,116,11.38,23.36
+ 40.81849,-77.84637,2017-04-27,117,12.42,23.94
+ 40.81849,-77.84637,2017-04-28,118,11.79,25.11
+ 40.81849,-77.84637,2017-04-29,119,11.14,24.38
+ 40.81849,-77.84637,2017-04-30,120,12.08,25.29
+ 40.81849,-77.84637,2017-05-01,121,13.37,25.43
+ 40.81849,-77.84637,2017-05-02,122,10.78,15.74
+ 40.81849,-77.84637,2017-05-03,123,5.09,16.41
+ 40.81849,-77.84637,2017-05-04,124,4.07,14.99
+ 40.81849,-77.84637,2017-05-05,125,8.04,17.02
+ 40.81849,-77.84637,2017-05-06,126,5.92,12.78
+ 40.81849,-77.84637,2017-05-07,127,2.90,12.05
+ 40.81849,-77.84637,2017-05-08,128,1.22,13.07
+ 40.81849,-77.84637,2017-05-09,129,-1.45,17.87
+ 40.81849,-77.84637,2017-05-10,130,5.94,19.31
+ 40.81849,-77.84637,2017-05-11,131,7.90,11.11
+ 40.81849,-77.84637,2017-05-12,132,8.75,12.95
+ 40.81849,-77.84637,2017-05-13,133,5.68,14.39
+ 40.81849,-77.84637,2017-05-14,134,5.94,19.81
+ 40.81849,-77.84637,2017-05-15,135,7.37,22.14
+ 40.81849,-77.84637,2017-05-16,136,5.18,26.96
+ 40.81849,-77.84637,2017-05-17,137,11.12,31.63
+ 40.81849,-77.84637,2017-05-18,138,15.39,32.05
+ 40.81849,-77.84637,2017-05-19,139,13.92,29.51
+ 40.81849,-77.84637,2017-05-20,140,9.38,13.55
+ 40.81849,-77.84637,2017-05-21,141,12.60,17.19
+ 40.81849,-77.84637,2017-05-22,142,10.93,23.45
+ 40.81849,-77.84637,2017-05-23,143,6.24,21.30
+ 40.81849,-77.84637,2017-05-24,144,10.97,21.61
+ 40.81849,-77.84637,2017-05-25,145,11.91,18.55
+ 40.81849,-77.84637,2017-05-26,146,13.00,19.09
+ 40.81849,-77.84637,2017-05-27,147,9.28,22.35
+ 40.81849,-77.84637,2017-05-28,148,13.02,19.25
+ 40.81849,-77.84637,2017-05-29,149,15.61,25.52
+ 40.81849,-77.84637,2017-05-30,150,14.89,20.32
+ 40.81849,-77.84637,2017-05-31,151,12.29,24.32
+ 40.81849,-77.84637,2017-06-01,152,9.02,22.91
+ 40.81849,-77.84637,2017-06-02,153,10.83,22.70
+ 40.81849,-77.84637,2017-06-03,154,10.01,25.36
+ 40.81849,-77.84637,2017-06-04,155,8.05,16.85
+ 40.81849,-77.84637,2017-06-05,156,14.04,23.52
+ 40.81849,-77.84637,2017-06-06,157,13.20,21.63
+ 40.81849,-77.84637,2017-06-07,158,9.99,17.12
+ 40.81849,-77.84637,2017-06-08,159,9.42,23.51
+ 40.81849,-77.84637,2017-06-09,160,10.71,25.54
+ 40.81849,-77.84637,2017-06-10,161,15.90,29.01
+ 40.81849,-77.84637,2017-06-11,162,15.11,31.46
+ 40.81849,-77.84637,2017-06-12,163,15.59,31.82
+ 40.81849,-77.84637,2017-06-13,164,18.19,34.21
+ 40.81849,-77.84637,2017-06-14,165,19.55,29.87
+ 40.81849,-77.84637,2017-06-15,166,17.02,27.22
+ 40.81849,-77.84637,2017-06-16,167,17.59,26.76
+ 40.81849,-77.84637,2017-06-17,168,17.43,29.03
+ 40.81849,-77.84637,2017-06-18,169,20.91,31.44
+ 40.81849,-77.84637,2017-06-19,170,17.51,24.38
+ 40.81849,-77.84637,2017-06-20,171,14.80,25.74
+ 40.81849,-77.84637,2017-06-21,172,13.97,26.99
+ 40.81849,-77.84637,2017-06-22,173,12.72,29.78
+ 40.81849,-77.84637,2017-06-23,174,19.03,25.44
+ 40.81849,-77.84637,2017-06-24,175,15.76,27.33
+ 40.81849,-77.84637,2017-06-25,176,12.89,24.84
+ 40.81849,-77.84637,2017-06-26,177,9.91,23.03
+ 40.81849,-77.84637,2017-06-27,178,10.84,20.57
+ 40.81849,-77.84637,2017-06-28,179,8.10,25.23
+ 40.81849,-77.84637,2017-06-29,180,14.48,29.26
+ 40.81849,-77.84637,2017-06-30,181,19.94,30.59
+ 40.81849,-77.84637,2017-07-01,182,20.79,29.10
+ 40.81849,-77.84637,2017-07-02,183,17.01,29.60
+ 40.81849,-77.84637,2017-07-03,184,17.01,29.60
+ 40.81849,-77.84637,2017-07-04,185,20.43,23.44
+ 40.81849,-77.84637,2017-07-05,186,20.43,23.44
+ 40.81849,-77.84637,2017-07-06,187,19.56,22.32
+ 40.81849,-77.84637,2017-07-07,188,19.35,28.04
+ 40.81849,-77.84637,2017-07-08,189,15.93,25.53
+ 40.81849,-77.84637,2017-07-09,190,11.83,26.33
+ 40.81849,-77.84637,2017-07-10,191,12.38,27.23
+ 40.81849,-77.84637,2017-07-11,192,17.98,28.99
+ 40.81849,-77.84637,2017-07-12,193,21.06,29.84
+ 40.81849,-77.84637,2017-07-13,194,21.07,28.19
+ 40.81849,-77.84637,2017-07-14,195,19.22,28.46
+ 40.81849,-77.84637,2017-07-15,196,16.50,24.54
+ 40.81849,-77.84637,2017-07-16,197,14.44,28.05
+ 40.81849,-77.84637,2017-07-17,198,17.26,30.80
+ 40.81849,-77.84637,2017-07-18,199,17.44,31.69
+ 40.81849,-77.84637,2017-07-19,200,16.67,32.40
+ 40.81849,-77.84637,2017-07-20,201,19.12,32.13
+ 40.81849,-77.84637,2017-07-21,202,20.94,31.43
+ 40.81849,-77.84637,2017-07-22,203,19.30,28.36
+ 40.81849,-77.84637,2017-07-23,204,20.25,30.59
+ 40.81849,-77.84637,2017-07-24,205,18.56,28.17
+ 40.81849,-77.84637,2017-07-25,206,15.18,22.72
+ 40.81849,-77.84637,2017-07-26,207,12.03,26.34
+ 40.81849,-77.84637,2017-07-27,208,16.35,29.74
+ 40.81849,-77.84637,2017-07-28,209,16.35,26.24
+ 40.81849,-77.84637,2017-07-29,210,11.05,23.78
+ 40.81849,-77.84637,2017-07-30,211,7.73,28.01
+ 40.81849,-77.84637,2017-07-31,212,13.66,30.13
+ 40.81849,-77.84637,2017-08-01,213,15.11,30.81
+ 40.81849,-77.84637,2017-08-02,214,16.56,30.22
+ 40.81849,-77.84637,2017-08-03,215,15.69,28.57
+ 40.81849,-77.84637,2017-08-04,216,16.07,30.48
+ 40.81849,-77.84637,2017-08-05,217,12.30,23.46
+ 40.81849,-77.84637,2017-08-06,218,11.46,23.44
+ 40.81849,-77.84637,2017-08-07,219,15.40,18.35
+ 40.81849,-77.84637,2017-08-08,220,12.19,25.48
+ 40.81849,-77.84637,2017-08-09,221,9.23,26.69
+ 40.81849,-77.84637,2017-08-10,222,9.53,25.78
+ 40.81849,-77.84637,2017-08-11,223,16.54,26.25
+ 40.81849,-77.84637,2017-08-12,224,16.29,26.87
+ 40.81849,-77.84637,2017-08-13,225,14.17,26.51
+ 40.81849,-77.84637,2017-08-14,226,13.98,22.43
+ 40.81849,-77.84637,2017-08-15,227,17.69,28.88
+ 40.81849,-77.84637,2017-08-16,228,14.84,29.43
+ 40.81849,-77.84637,2017-08-17,229,13.40,29.96
+ 40.81849,-77.84637,2017-08-18,230,19.42,29.00
+ 40.81849,-77.84637,2017-08-19,231,14.40,28.28
+ 40.81849,-77.84637,2017-08-20,232,12.31,27.77
+ 40.81849,-77.84637,2017-08-21,233,14.27,30.25
+ 40.81849,-77.84637,2017-08-22,234,18.44,31.05
+ 40.81849,-77.84637,2017-08-23,235,14.22,24.64
+ 40.81849,-77.84637,2017-08-24,236,10.30,23.00
+ 40.81849,-77.84637,2017-08-25,237,12.57,21.39
+ 40.81849,-77.84637,2017-08-26,238,10.93,23.29
+ 40.81849,-77.84637,2017-08-27,239,9.96,23.45
+ 40.81849,-77.84637,2017-08-28,240,9.26,22.38
+ 40.81849,-77.84637,2017-08-29,241,13.80,19.09
+ 40.81849,-77.84637,2017-08-30,242,10.88,24.45
+ 40.81849,-77.84637,2017-08-31,243,13.15,24.42
+ 40.81849,-77.84637,2017-09-01,244,7.82,17.91
+ 40.81849,-77.84637,2017-09-02,245,6.20,13.16
+ 40.81849,-77.84637,2017-09-03,246,12.37,19.35
+ 40.81849,-77.84637,2017-09-04,247,10.67,26.97
+ 40.81849,-77.84637,2017-09-05,248,15.39,21.54
+ 40.81849,-77.84637,2017-09-06,249,13.80,18.10
+ 40.81849,-77.84637,2017-09-07,250,9.30,18.45
+ 40.81849,-77.84637,2017-09-08,251,8.86,18.11
+ 40.81849,-77.84637,2017-09-09,252,8.44,18.21
+ 40.81849,-77.84637,2017-09-10,253,3.93,9.19
+ 40.81849,-77.84637,2017-09-11,254,4.98,22.12
+ 40.81849,-77.84637,2017-09-12,255,8.70,24.06
+ 40.81849,-77.84637,2017-09-13,256,12.75,23.14
+ 40.81849,-77.84637,2017-09-14,257,16.60,19.18
+ 40.81849,-77.84637,2017-09-15,258,14.89,25.28
+ 40.81849,-77.84637,2017-09-16,259,14.73,25.42
+ 40.81849,-77.84637,2017-09-17,260,14.85,27.42
+ 40.81849,-77.84637,2017-09-18,261,16.12,26.18
+ 40.81849,-77.84637,2017-09-19,262,13.36,25.46
+ 40.81849,-77.84637,2017-09-20,263,10.90,28.76
+ 40.81849,-77.84637,2017-09-21,264,11.68,28.44
+ 40.81849,-77.84637,2017-09-22,265,13.10,29.03
+ 40.81849,-77.84637,2017-09-23,266,10.11,30.51
+ 40.81849,-77.84637,2017-09-24,267,12.33,31.11
+ 40.81849,-77.84637,2017-09-25,268,15.03,31.81
+ 40.81849,-77.84637,2017-09-26,269,16.01,30.96
+ 40.81849,-77.84637,2017-09-27,270,15.03,31.27
+ 40.81849,-77.84637,2017-09-28,271,9.61,21.39
+ 40.81849,-77.84637,2017-09-29,272,6.03,20.71
+ 40.81849,-77.84637,2017-09-30,273,2.85,15.23
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/daily_actuals_invalid.csv	Tue Nov 27 11:08:20 2018 -0500
@@ -0,0 +1,183 @@
+LATITUDE,LONGITUDE,DATE,DOY,TMIN,TMAX
+,-77.84637,2017-04-01,091,3.30,7.66
+ error2,-77.84637,2017-04-02,092,1.69,15.19
+ 40.81849,error3,2017-04-03,093,3.48,18.81
+ 40.81849,-77.84637,error4,094,9.28,18.75
+ 40.81849,-77.84637,2017-04-05,095,error5,19.01
+ 40.81849,-77.84637,2017-04-06,096,4.59,error6
+ 40.81849,-77.84637,2017-04-07,097,1.19,3.66
+ 40.81849,-77.84637,2017-04-08,098,-0.56,13.85
+ 40.81849,-77.84637,2017-04-09,099,-2.32,21.96
+ 40.81849,-77.84637,2017-04-10,100,7.90,26.25
+ 40.81849,-77.84637,2017-04-11,101,9.25,26.48
+ 40.81849,-77.84637,2017-04-12,102,8.95,19.78
+ 40.81849,-77.84637,2017-04-13,103,4.00,15.47
+ 40.81849,-77.84637,2017-04-14,104,5.09,20.10
+ 40.81849,-77.84637,2017-04-15,105,8.44,25.02
+ 40.81849,-77.84637,2017-04-16,106,14.13,26.54
+ 40.81849,-77.84637,2017-04-17,107,8.23,20.59
+ 40.81849,-77.84637,2017-04-18,108,3.27,20.96
+ 40.81849,-77.84637,2017-04-19,109,9.76,13.40
+ 40.81849,-77.84637,2017-04-20,110,10.70,25.45
+ 40.81849,-77.84637,2017-04-21,111,11.74,22.34
+ 40.81849,-77.84637,2017-04-22,112,4.90,13.43
+ 40.81849,-77.84637,2017-04-23,113,0.43,20.16
+ 40.81849,-77.84637,2017-04-24,114,1.21,17.18
+ 40.81849,-77.84637,2017-04-25,115,9.93,14.30
+ 40.81849,-77.84637,2017-04-26,116,11.38,23.36
+ 40.81849,-77.84637,2017-04-27,117,12.42,23.94
+ 40.81849,-77.84637,2017-04-28,118,11.79,25.11
+ 40.81849,-77.84637,2017-04-29,119,11.14,24.38
+ 40.81849,-77.84637,2017-04-30,120,12.08,25.29
+ 40.81849,-77.84637,2017-05-01,121,13.37,25.43
+ 40.81849,-77.84637,2017-05-02,122,10.78,15.74
+ 40.81849,-77.84637,2017-05-03,123,5.09,16.41
+ 40.81849,-77.84637,2017-05-04,124,4.07,14.99
+ 40.81849,-77.84637,2017-05-05,125,8.04,17.02
+ 40.81849,-77.84637,2017-05-06,126,5.92,12.78
+ 40.81849,-77.84637,2017-05-07,127,2.90,12.05
+ 40.81849,-77.84637,2017-05-08,128,1.22,13.07
+ 40.81849,-77.84637,2017-05-09,129,-1.45,17.87
+ 40.81849,-77.84637,2017-05-10,130,5.94,19.31
+ 40.81849,-77.84637,2017-05-11,131,7.90,11.11
+ 40.81849,-77.84637,2017-05-12,132,8.75,12.95
+ 40.81849,-77.84637,2017-05-13,133,5.68,14.39
+ 40.81849,-77.84637,2017-05-14,134,5.94,19.81
+ 40.81849,-77.84637,2017-05-15,135,7.37,22.14
+ 40.81849,-77.84637,2017-05-16,136,5.18,26.96
+ 40.81849,-77.84637,2017-05-17,137,11.12,31.63
+ 40.81849,-77.84637,2017-05-18,138,15.39,32.05
+ 40.81849,-77.84637,2017-05-19,139,13.92,29.51
+ 40.81849,-77.84637,2017-05-20,140,9.38,13.55
+ 40.81849,-77.84637,2017-05-21,141,12.60,17.19
+ 40.81849,-77.84637,2017-05-22,142,10.93,23.45
+ 40.81849,-77.84637,2017-05-23,143,6.24,21.30
+ 40.81849,-77.84637,2017-05-24,144,10.97,21.61
+ 40.81849,-77.84637,2017-05-25,145,11.91,18.55
+ 40.81849,-77.84637,2017-05-26,146,13.00,19.09
+ 40.81849,-77.84637,2017-05-27,147,9.28,22.35
+ 40.81849,-77.84637,2017-05-28,148,13.02,19.25
+ 40.81849,-77.84637,2017-05-29,149,15.61,25.52
+ 40.81849,-77.84637,2017-05-30,150,14.89,20.32
+ 40.81849,-77.84637,2017-05-31,151,12.29,24.32
+ 40.81849,-77.84637,2017-06-01,152,9.02,22.91
+ 40.81849,-77.84637,2017-06-02,153,10.83,22.70
+ 40.81849,-77.84637,2017-06-03,154,10.01,25.36
+ 40.81849,-77.84637,2017-06-04,155,8.05,16.85
+ 40.81849,-77.84637,2017-06-05,156,14.04,23.52
+ 40.81849,-77.84637,2017-06-06,157,13.20,21.63
+ 40.81849,-77.84637,2017-06-07,158,9.99,17.12
+ 40.81849,-77.84637,2017-06-08,159,9.42,23.51
+ 40.81849,-77.84637,2017-06-09,160,10.71,25.54
+ 40.81849,-77.84637,2017-06-10,161,15.90,29.01
+ 40.81849,-77.84637,2017-06-11,162,15.11,31.46
+ 40.81849,-77.84637,2017-06-12,163,15.59,31.82
+ 40.81849,-77.84637,2017-06-13,164,18.19,34.21
+ 40.81849,-77.84637,2017-06-14,165,19.55,29.87
+ 40.81849,-77.84637,2017-06-15,166,17.02,27.22
+ 40.81849,-77.84637,2017-06-16,167,17.59,26.76
+ 40.81849,-77.84637,2017-06-17,168,17.43,29.03
+ 40.81849,-77.84637,2017-06-18,169,20.91,31.44
+ 40.81849,-77.84637,2017-06-19,170,17.51,24.38
+ 40.81849,-77.84637,2017-06-20,171,14.80,25.74
+ 40.81849,-77.84637,2017-06-21,172,13.97,26.99
+ 40.81849,-77.84637,2017-06-22,173,12.72,29.78
+ 40.81849,-77.84637,2017-06-23,174,19.03,25.44
+ 40.81849,-77.84637,2017-06-24,175,15.76,27.33
+ 40.81849,-77.84637,2017-06-25,176,12.89,24.84
+ 40.81849,-77.84637,2017-06-26,177,9.91,23.03
+ 40.81849,-77.84637,2017-06-27,178,10.84,20.57
+ 40.81849,-77.84637,2017-06-28,179,8.10,25.23
+ 40.81849,-77.84637,2017-06-29,180,14.48,29.26
+ 40.81849,-77.84637,2017-06-30,181,19.94,30.59
+ 40.81849,-77.84637,2017-07-01,182,20.79,29.10
+ 40.81849,-77.84637,2017-07-02,183,17.01,29.60
+ 40.81849,-77.84637,2017-07-03,184,17.01,29.60
+ 40.81849,-77.84637,2017-07-04,185,20.43,23.44
+ 40.81849,-77.84637,2017-07-05,186,20.43,23.44
+ 40.81849,-77.84637,2017-07-06,187,19.56,22.32
+ 40.81849,-77.84637,2017-07-07,188,19.35,28.04
+ 40.81849,-77.84637,2017-07-08,189,15.93,25.53
+ 40.81849,-77.84637,2017-07-09,190,11.83,26.33
+ 40.81849,-77.84637,2017-07-10,191,12.38,27.23
+ 40.81849,-77.84637,2017-07-11,192,17.98,28.99
+ 40.81849,-77.84637,2017-07-12,193,21.06,29.84
+ 40.81849,-77.84637,2017-07-13,194,21.07,28.19
+ 40.81849,-77.84637,2017-07-14,195,19.22,28.46
+ 40.81849,-77.84637,2017-07-15,196,16.50,24.54
+ 40.81849,-77.84637,2017-07-16,197,14.44,28.05
+ 40.81849,-77.84637,2017-07-17,198,17.26,30.80
+ 40.81849,-77.84637,2017-07-18,199,17.44,31.69
+ 40.81849,-77.84637,2017-07-19,200,16.67,32.40
+ 40.81849,-77.84637,2017-07-20,201,19.12,32.13
+ 40.81849,-77.84637,2017-07-21,202,20.94,31.43
+ 40.81849,-77.84637,2017-07-22,203,19.30,28.36
+ 40.81849,-77.84637,2017-07-23,204,20.25,30.59
+ 40.81849,-77.84637,2017-07-24,205,18.56,28.17
+ 40.81849,-77.84637,2017-07-25,206,15.18,22.72
+ 40.81849,-77.84637,2017-07-26,207,12.03,26.34
+ 40.81849,-77.84637,2017-07-27,208,16.35,29.74
+ 40.81849,-77.84637,2017-07-28,209,16.35,26.24
+ 40.81849,-77.84637,2017-07-29,210,11.05,23.78
+ 40.81849,-77.84637,2017-07-30,211,7.73,28.01
+ 40.81849,-77.84637,2017-07-31,212,13.66,30.13
+ 40.81849,-77.84637,2017-08-01,213,15.11,30.81
+ 40.81849,-77.84637,2017-08-02,214,16.56,30.22
+ 40.81849,-77.84637,2017-08-03,215,15.69,28.57
+ 40.81849,-77.84637,2017-08-04,216,16.07,30.48
+ 40.81849,-77.84637,2017-08-05,217,12.30,23.46
+ 40.81849,-77.84637,2017-08-06,218,11.46,23.44
+ 40.81849,-77.84637,2017-08-07,219,15.40,18.35
+ 40.81849,-77.84637,2017-08-08,220,12.19,25.48
+ 40.81849,-77.84637,2017-08-09,221,9.23,26.69
+ 40.81849,-77.84637,2017-08-10,222,9.53,25.78
+ 40.81849,-77.84637,2017-08-11,223,16.54,26.25
+ 40.81849,-77.84637,2017-08-12,224,16.29,26.87
+ 40.81849,-77.84637,2017-08-13,225,14.17,26.51
+ 40.81849,-77.84637,2017-08-14,226,13.98,22.43
+ 40.81849,-77.84637,2017-08-15,227,17.69,28.88
+ 40.81849,-77.84637,2017-08-16,228,14.84,29.43
+ 40.81849,-77.84637,2017-08-17,229,13.40,29.96
+ 40.81849,-77.84637,2017-08-18,230,19.42,29.00
+ 40.81849,-77.84637,2017-08-19,231,14.40,28.28
+ 40.81849,-77.84637,2017-08-20,232,12.31,27.77
+ 40.81849,-77.84637,2017-08-21,233,14.27,30.25
+ 40.81849,-77.84637,2017-08-22,234,18.44,31.05
+ 40.81849,-77.84637,2017-08-23,235,14.22,24.64
+ 40.81849,-77.84637,2017-08-24,236,10.30,23.00
+ 40.81849,-77.84637,2017-08-25,237,12.57,21.39
+ 40.81849,-77.84637,2017-08-26,238,10.93,23.29
+ 40.81849,-77.84637,2017-08-27,239,9.96,23.45
+ 40.81849,-77.84637,2017-08-28,240,9.26,22.38
+ 40.81849,-77.84637,2017-08-29,241,13.80,19.09
+ 40.81849,-77.84637,2017-08-30,242,10.88,24.45
+ 40.81849,-77.84637,2017-08-31,243,13.15,24.42
+ 40.81849,-77.84637,2017-09-01,244,7.82,17.91
+ 40.81849,-77.84637,2017-09-02,245,6.20,13.16
+ 40.81849,-77.84637,2017-09-03,246,12.37,19.35
+ 40.81849,-77.84637,2017-09-04,247,10.67,26.97
+ 40.81849,-77.84637,2017-09-05,248,15.39,21.54
+ 40.81849,-77.84637,2017-09-06,249,13.80,18.10
+ 40.81849,-77.84637,2017-09-07,250,9.30,18.45
+ 40.81849,-77.84637,2017-09-08,251,8.86,18.11
+ 40.81849,-77.84637,2017-09-09,252,8.44,18.21
+ 40.81849,-77.84637,2017-09-10,253,3.93,9.19
+ 40.81849,-77.84637,2017-09-11,254,4.98,22.12
+ 40.81849,-77.84637,2017-09-12,255,8.70,24.06
+ 40.81849,-77.84637,2017-09-13,256,12.75,23.14
+ 40.81849,-77.84637,2017-09-14,257,16.60,19.18
+ 40.81849,-77.84637,2017-09-15,258,14.89,25.28
+ 40.81849,-77.84637,2017-09-16,259,14.73,25.42
+ 40.81849,-77.84637,2017-09-17,260,14.85,27.42
+ 40.81849,-77.84637,2017-09-18,261,16.12,26.18
+ 40.81849,-77.84637,2017-09-19,262,13.36,25.46
+ 40.81849,-77.84637,2017-09-20,263,10.90,28.76
+ 40.81849,-77.84637,2017-09-21,264,11.68,28.44
+ 40.81849,-77.84637,2017-09-22,265,13.10,29.03
+ 40.81849,-77.84637,2017-09-23,266,10.11,30.51
+ 40.81849,-77.84637,2017-09-24,267,12.33,31.11
+ 40.81849,-77.84637,2017-09-25,268,15.03,31.81
+ 40.81849,-77.84637,2017-09-26,269,16.01,30.96
+ 40.81849,-77.84637,2017-09-27,270,15.03,31.27
+ 40.81849,-77.84637,2017-09-29,272,6.03,20.71
+ 40.81849,-77.84637,2017-09-30,273,2.85,15.23
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/validate_temperature_data.py	Tue Nov 27 11:08:20 2018 -0500
@@ -0,0 +1,171 @@
+#!/usr/bin/env python
+import argparse
+import datetime
+import decimal
+import re
+import shutil
+import sys
+
+parser = argparse.ArgumentParser()
+parser.add_argument('--data_type', dest='data_type', default=None, help='Temperature data type, normals or actuals')
+parser.add_argument('--input_actuals', dest='input_actuals', default=None, help='Daily actuals temperature data')
+parser.add_argument('--input_normals', dest='input_normals', default=None, help='30 year normals temperature data')
+parser.add_argument('--output', dest='output', help='Output dataset'),
+args = parser.parse_args()
+
+ACTUALS_HEADER = "LATITUDE,LONGITUDE,DATE,DOY,TMIN,TMAX"
+NORMALS_HEADER = "stationid,latitude,longitude,elev_m,name,st,mmdd,doy,tmin,tmax"
+
+def add_error_msg(accumulated_msgs, msg):
+    return "%s\n%s" % (accumulated_msgs, msg)
+
+
+def empty_value(line_no, label, accumulated_msgs):
+    return add_error_msg(accumulated_msgs, "The required %s value is missing on line %d." % (label, line_no))
+
+
+def stop_error(msg):
+    sys.exit(msg)
+
+
+def validate_date_string(line_no, date_string, accumulated_msgs):
+    try:
+        datetime.datetime.strptime(date_string, '%Y-%m-%d')
+        return accumulated_msgs
+    except ValueError:
+        return add_error_msg(accumulated_msgs, "Line %d contains an incorrect date format (%s must be YYYY-MM-DD)." % (line_no, date_string))
+
+
+def validate_decimal(line_no, decimal_string, accumulated_msgs, label):
+    try:
+        decimal.Decimal(decimal_string)
+        return accumulated_msgs
+    except Exception:
+        return add_error_msg(accumulated_msgs, "Line %d contains an incorrect %s decimal value (%s)." % (line_no, label, decimal_string))
+
+
+def validate_integer(line_no, integer_string, accumulated_msgs, label):
+    if integer_string.isdigit():
+        return accumulated_msgs
+    return add_error_msg(accumulated_msgs, "Line %d contains an incorrect %s integer value (%s)." % (line_no, label, integer_string))
+
+
+def validate_mmdd(line_no, mmdd, accumulated_msgs):
+    try:
+        datetime.datetime.strptime(mmdd, '%m-%d')
+        return accumulated_msgs
+    except ValueError:
+        # Handle Feb 29.
+        items = mmdd.split("-")
+        try:
+            month = int(items[0])
+            day = int(items[1])
+            if month == 2 and day == 29:
+                return accumulated_msgs
+        except Exception:
+            # Error message accumulated below.
+            pass
+        return add_error_msg(accumulated_msgs, "Line %d contains an incorrect date format (%s must be mm-dd)." % (line_no, mmdd))
+
+
+accumulated_msgs = ""
+last_doy = 0
+# Parse the input file, skipping the header, and validating
+# that each data line consists of 31 comma-separated items.
+if args.data_type == "normals":
+    input_file = args.input_normals
+    num_normals_rows = 0
+else:
+    input_file = args.input_actuals
+with open(input_file, "r") as ih:
+    for i, line in enumerate(ih):
+        line = line.rstrip("\r\n")
+        items = line.split(",")
+        if args.data_type == "normals":
+            num_normals_rows += 1
+            if i == 0:
+                if line != NORMALS_HEADER:
+                    accumulated_msgs = add_error_msg(accumulated_msgs, "The header is invalid, must be %s" % NORMALS_HEADER)
+                continue
+            if i > 367:
+                accumulated_msgs = add_error_msg(accumulated_msgs, "The input file contains more than 367 lines (must be 1 header line and 366 data lines).")
+                stop_error(accumulated_msgs)
+            if len(items) != 10:
+                accumulated_msgs = add_error_msg(accumulated_msgs, "Line %d contains %s columns, (must be 10)." % (i, len(items)))
+                stop_error(accumulated_msgs)
+            stationid = items[0].strip()
+            if len(stationid) == 0:
+                accumulated_msgs = empty_value(i, "stationid", accumulated_msgs)
+            latitude = items[1].strip()
+            accumulated_msgs = validate_decimal(i, latitude, accumulated_msgs, "latitude")
+            longitude = items[2].strip()
+            accumulated_msgs = validate_decimal(i, longitude, accumulated_msgs, "longitude")
+            elev_m = items[3].strip()
+            accumulated_msgs = validate_decimal(i, elev_m, accumulated_msgs, "elev_m")
+            name = items[4].strip()
+            if len(name) == 0:
+                accumulated_msgs = empty_value(i, "name", accumulated_msgs)
+            st = items[5].strip()
+            if len(st) == 0:
+                accumulated_msgs = empty_value(i, "st", accumulated_msgs)
+            mmdd = items[6].strip()
+            accumulated_msgs = validate_mmdd(i, mmdd, accumulated_msgs)
+            doy = items[7].strip()
+            accumulated_msgs = validate_integer(i, doy, accumulated_msgs, "doy")
+            # Make sure the DOY values are consecutive.
+            try:
+                if int(doy) != (last_doy + 1):
+                    accumulated_msgs = add_error_msg(accumulated_msgs, "Line %d contains a DOY (%s) that is not conexcutive (previous DOY is %d)." % (i, doy, last_doy))
+                    stop_error(accumulated_msgs)
+                else:
+                    last_doy += 1
+            except Exception:
+                # The error for an invalid integer was captured above.
+                pass
+            tmin = items[8].strip()
+            accumulated_msgs = validate_decimal(i, tmin, accumulated_msgs, "tmin")
+            tmax = items[9].strip()
+            accumulated_msgs = validate_decimal(i, tmax, accumulated_msgs, "tmax")
+        else:
+            if i == 0:
+                if line != ACTUALS_HEADER:
+                    accumulated_msgs = add_error_msg(accumulated_msgs, "The header is invalid, must be %s" % ACTUALS_HEADER)
+                continue
+            if i > 367:
+                accumulated_msgs = add_error_msg(accumulated_msgs, "The input file contains more than 367 lines (must be 1 header line and no more than 366 data lines).")
+                stop_error(accumulated_msgs)
+            if len(items) != 6:
+                accumulated_msgs = add_error_msg(accumulated_msgs, "Line %d contains %s columns, (must be 6)." % (i, len(items)))
+                stop_error(accumulated_msgs)
+            latitude = items[0].strip()
+            accumulated_msgs = validate_decimal(i, latitude, accumulated_msgs, "LATITUDE")
+            longitude = items[1].strip()
+            accumulated_msgs = validate_decimal(i, longitude, accumulated_msgs, "LONGITUDE")
+            date_string = items[2].strip()
+            accumulated_msgs = validate_date_string(i, date_string, accumulated_msgs)
+            doy = items[3].strip()
+            accumulated_msgs = validate_integer(i, doy, accumulated_msgs, "doy")
+            # Make sure the DOY values are consecutive.
+            if i == 1:
+                last_doy = int(doy)
+            else:
+                try:
+                    if int(doy) != (last_doy + 1):
+                        accumulated_msgs = add_error_msg(accumulated_msgs, "Line %d contains a DOY (%s) that is not conexcutive (previous DOY is %d)." % (i, doy, last_doy))
+                        stop_error(accumulated_msgs)
+                    else:
+                        last_doy += 1
+                except Exception:
+                    # The error for an invalid integer was captured above.
+                    pass
+            tmin = items[4].strip()
+            accumulated_msgs = validate_decimal(i, tmin, accumulated_msgs, "tmin")
+            tmax = items[5].strip()
+            accumulated_msgs = validate_decimal(i, tmax, accumulated_msgs, "tmax")
+    if args.data_type == "normals" and num_normals_rows != 367:
+        accumulated_msgs = add_error_msg(accumulated_msgs, "The input file contains %d rows, (must be 367)." % num_normals_rows)
+
+if len(accumulated_msgs) > 0:
+    stop_error(accumulated_msgs)
+
+shutil.copyfile(input_file, args.output)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/validate_temperature_data.xml	Tue Nov 27 11:08:20 2018 -0500
@@ -0,0 +1,77 @@
+<tool id="validate_temperature_data" name="Validate temperature data" version="1.0.0">
+    <description>for insect phenology model</description>
+    <command detect_errors="exit_code"><![CDATA[
+#set temperature_data_type = $temperature_data_type_cond.temperature_data_type
+python '$__tool_directory__/validate_temperature_data.py'
+--data_type $temperature_data_type
+#if str($temperature_data_type) == "normals":
+    --input_normals '$temperature_data_type_cond.input_normals'
+#else:
+    --input_actuals '$temperature_data_type_cond.input_actuals'
+#end if
+--output '$output']]></command>
+    <inputs>
+        <conditional name="temperature_data_type_cond">
+            <param name="temperature_data_type" type="select" label="Validate 30 year normals or daily actuals temperature data?">
+                <option value="normals" selected="true">30 year normals</option>
+                <option value="actuals">daily actuals</option>
+            </param>
+            <when value="normals">
+                <param name="input_normals" type="data" format="csv" label="30 year normals CSV file">
+                    <validator type="expression" message="30 year normals temperature data must have 10 columns and 366 rows">value is not None and value.metadata.columns==10 and value.metadata.data_lines==366</validator>
+                </param>
+            </when>
+            <when value="actuals">
+                <param name="input_actuals" type="data" format="csv" label="Daily actuals CSV file">
+                     <validator type="expression" message="Daily actuals temperature data must have 6 columns">value is not None and value.metadata.columns==6</validator>
+                </param>
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="output" format="csv"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="input_normals" value="30_year_normals.csv" ftype="csv"/>
+            <output name="output" file="30_year_normals.csv" ftype="csv"/>
+        </test>
+        <test>
+            <param name="temperature_data_type" value="actuals"/>
+            <param name="input_actuals" value="daily_actuals.csv" ftype="csv"/>
+            <output name="output" file="daily_actuals.csv" ftype="csv"/>
+        </test>
+    </tests>
+    <help>
+**What it does**
+
+Validates either a 30 year normals temeprature dataset or a daily actuals temperature dataset which are used
+as input to the insect phenology model tool.  The tool will output the input file if it is valid.
+
+-----
+
+**30 year normals columns**
+
+ * stationid
+ * latitude
+ * longitude
+ * elev_m
+ * name
+ * st
+ * mmdd
+ * doy
+ * tmin
+ * tmax
+
+**Daily actuals columns**
+
+ * LATITUDE
+ * LONGITUDE
+ * DATE
+ * DOY
+ * TMIN
+ * TMAX
+    </help>
+    <citations>
+    </citations>
+</tool>