# HG changeset patch # User greg # Date 1543334900 18000 # Node ID 26415eac98c35d6efbb15804ce5a0cb4e3cd25a5 Uploaded diff -r 000000000000 -r 26415eac98c3 .shed.yml --- /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 diff -r 000000000000 -r 26415eac98c3 test-data/30_year_normals.csv --- /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 diff -r 000000000000 -r 26415eac98c3 test-data/30_year_normals_invalid.csv --- /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 diff -r 000000000000 -r 26415eac98c3 test-data/30_year_normals_invalid_output.txt diff -r 000000000000 -r 26415eac98c3 test-data/daily_actuals.csv --- /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 diff -r 000000000000 -r 26415eac98c3 test-data/daily_actuals_invalid.csv --- /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 diff -r 000000000000 -r 26415eac98c3 validate_temperature_data.py --- /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) diff -r 000000000000 -r 26415eac98c3 validate_temperature_data.xml --- /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 @@ + + for insect phenology model + + + + + + + + + + value is not None and value.metadata.columns==10 and value.metadata.data_lines==366 + + + + + value is not None and value.metadata.columns==6 + + + + + + + + + + + + + + + + + + + +**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 + + + +