Mercurial > repos > greg > validate_temperature_data
changeset 0:4290854f3af5 draft
Uploaded
author | greg |
---|---|
date | Tue, 27 Nov 2018 09:47:31 -0500 |
parents | |
children | cfe1ce427aa7 |
files | .shed.yml test-data/30_year_normals.csv test-data/daily_actuals.csv validate_temperature_data.py validate_temperature_data.xml |
diffstat | 5 files changed, 800 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.shed.yml Tue Nov 27 09:47:31 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 09:47:31 2018 -0500 @@ -0,0 +1,367 @@ +stationid,latitude,longitude,elev_m,name,st,mmdd,doy,tmin,tmax +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-01, 001,-6.8,2.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-02, 002,-6.8,2.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-03, 003,-6.9,2.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-04, 004,-7.0,2.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-05, 005,-7.1,2.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-06, 006,-7.1,2.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-07, 007,-7.2,2.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-08, 008,-7.2,2.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-09, 009,-7.3,2.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-10, 010,-7.3,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-11, 011,-7.4,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-12, 012,-7.4,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-13, 013,-7.4,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-14, 014,-7.5,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-15, 015,-7.5,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-16, 016,-7.5,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-17, 017,-7.6,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-18, 018,-7.6,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-19, 019,-7.6,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-20, 020,-7.6,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-21, 021,-7.6,2.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-22, 022,-7.6,2.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-23, 023,-7.6,2.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-24, 024,-7.6,2.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-25, 025,-7.6,2.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-26, 026,-7.6,2.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-27, 027,-7.6,2.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-28, 028,-7.6,2.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-29, 029,-7.6,2.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-30, 030,-7.5,2.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,01-31, 031,-7.5,2.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-01, 032,-7.4,2.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-02, 033,-7.4,2.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-03, 034,-7.4,2.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-04, 035,-7.3,3.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-05, 036,-7.3,3.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-06, 037,-7.2,3.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-07, 038,-7.2,3.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-08, 039,-7.1,3.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-09, 040,-7.1,3.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-10, 041,-7.0,3.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-11, 042,-6.9,3.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-12, 043,-6.8,3.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-13, 044,-6.7,3.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-14, 045,-6.7,3.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-15, 046,-6.6,4.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-16, 047,-6.4,4.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-17, 048,-6.3,4.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-18, 049,-6.2,4.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-19, 050,-6.1,4.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-20, 051,-6.0,4.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-21, 052,-5.9,4.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-22, 053,-5.7,4.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-23, 054,-5.6,5.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-24, 055,-5.5,5.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-25, 056,-5.3,5.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-26, 057,-5.2,5.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-27, 058,-5.1,5.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-28, 059,-4.9,5.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,02-29, 060,-4.8,5.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-01, 061,-4.8,6.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-02, 062,-4.6,6.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-03, 063,-4.4,6.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-04, 064,-4.3,6.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-05, 065,-4.1,6.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-06, 066,-3.9,6.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-07, 067,-3.8,7.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-08, 068,-3.6,7.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-09, 069,-3.4,7.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-10, 070,-3.3,7.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-11, 071,-3.1,7.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-12, 072,-2.9,8.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-13, 073,-2.7,8.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-14, 074,-2.6,8.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-15, 075,-2.4,8.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-16, 076,-2.2,8.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-17, 077,-2.0,9.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-18, 078,-1.8,9.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-19, 079,-1.7,9.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-20, 080,-1.4,9.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-21, 081,-1.3,10.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-22, 082,-1.1,10.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-23, 083,-0.9,10.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-24, 084,-0.7,10.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-25, 085,-0.6,11.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-26, 086,-0.4,11.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-27, 087,-0.2,11.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-28, 088,0.0,11.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-29, 089,0.2,11.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-30, 090,0.3,12.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,03-31, 091,0.6,12.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-01, 092,0.7,12.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-02, 093,0.9,12.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-03, 094,1.1,13.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-04, 095,1.3,13.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-05, 096,1.4,13.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-06, 097,1.6,13.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-07, 098,1.8,14.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-08, 099,2.0,14.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-09, 100,2.2,14.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-10, 101,2.3,14.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-11, 102,2.5,15.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-12, 103,2.7,15.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-13, 104,2.9,15.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-14, 105,3.1,15.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-15, 106,3.2,15.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-16, 107,3.4,16.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-17, 108,3.6,16.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-18, 109,3.8,16.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-19, 110,3.9,16.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-20, 111,4.2,17.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-21, 112,4.3,17.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-22, 113,4.5,17.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-23, 114,4.7,17.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-24, 115,4.9,17.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-25, 116,5.1,18.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-26, 117,5.2,18.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-27, 118,5.4,18.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-28, 119,5.6,18.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-29, 120,5.8,18.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,04-30, 121,5.9,19.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-01, 122,6.1,19.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-02, 123,6.3,19.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-03, 124,6.5,19.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-04, 125,6.7,19.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-05, 126,6.9,19.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-06, 127,7.1,20.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-07, 128,7.2,20.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-08, 129,7.4,20.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-09, 130,7.6,20.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-10, 131,7.8,20.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-11, 132,7.9,20.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-12, 133,8.2,21.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-13, 134,8.3,21.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-14, 135,8.5,21.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-15, 136,8.7,21.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-16, 137,8.9,21.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-17, 138,9.1,21.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-18, 139,9.3,22.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-19, 140,9.4,22.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-20, 141,9.6,22.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-21, 142,9.8,22.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-22, 143,10.0,22.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-23, 144,10.2,22.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-24, 145,10.4,23.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-25, 146,10.6,23.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-26, 147,10.7,23.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-27, 148,10.9,23.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-28, 149,11.1,23.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-29, 150,11.3,23.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-30, 151,11.5,24.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,05-31, 152,11.7,24.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-01, 153,11.8,24.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-02, 154,12.1,24.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-03, 155,12.2,24.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-04, 156,12.4,24.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-05, 157,12.6,25.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-06, 158,12.8,25.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-07, 159,12.9,25.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-08, 160,13.1,25.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-09, 161,13.3,25.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-10, 162,13.4,25.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-11, 163,13.6,26.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-12, 164,13.8,26.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-13, 165,13.9,26.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-14, 166,14.1,26.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-15, 167,14.3,26.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-16, 168,14.4,26.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-17, 169,14.6,27.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-18, 170,14.7,27.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-19, 171,14.9,27.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-20, 172,15.0,27.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-21, 173,15.2,27.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-22, 174,15.3,27.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-23, 175,15.4,27.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-24, 176,15.5,28.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-25, 177,15.7,28.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-26, 178,15.8,28.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-27, 179,15.9,28.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-28, 180,15.9,28.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-29, 181,16.1,28.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,06-30, 182,16.2,28.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-01, 183,16.2,28.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-02, 184,16.3,28.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-03, 185,16.4,28.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-04, 186,16.4,29.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-05, 187,16.6,29.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-06, 188,16.6,29.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-07, 189,16.7,29.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-08, 190,16.7,29.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-09, 191,16.7,29.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-10, 192,16.8,29.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-11, 193,16.8,29.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-12, 194,16.8,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-13, 195,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-14, 196,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-15, 197,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-16, 198,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-17, 199,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-18, 200,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-19, 201,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-20, 202,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-21, 203,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-22, 204,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-23, 205,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-24, 206,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-25, 207,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-26, 208,16.9,29.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-27, 209,16.8,29.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-28, 210,16.8,29.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-29, 211,16.8,29.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-30, 212,16.8,29.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,07-31, 213,16.8,29.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-01, 214,16.7,29.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-02, 215,16.7,29.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-03, 216,16.7,29.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-04, 217,16.6,29.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-05, 218,16.6,29.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-06, 219,16.6,29.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-07, 220,16.5,29.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-08, 221,16.5,28.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-09, 222,16.4,28.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-10, 223,16.4,28.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-11, 224,16.3,28.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-12, 225,16.3,28.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-13, 226,16.2,28.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-14, 227,16.2,28.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-15, 228,16.1,28.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-16, 229,16.1,28.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-17, 230,16.0,28.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-18, 231,15.9,28.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-19, 232,15.8,28.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-20, 233,15.7,28.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-21, 234,15.7,28.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-22, 235,15.6,28.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-23, 236,15.4,28.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-24, 237,15.4,27.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-25, 238,15.3,27.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-26, 239,15.2,27.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-27, 240,15.0,27.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-28, 241,14.9,27.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-29, 242,14.8,27.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-30, 243,14.6,27.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,08-31, 244,14.5,27.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-01, 245,14.3,27.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-02, 246,14.2,26.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-03, 247,14.0,26.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-04, 248,13.8,26.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-05, 249,13.7,26.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-06, 250,13.4,26.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-07, 251,13.3,26.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-08, 252,13.1,25.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-09, 253,12.9,25.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-10, 254,12.7,25.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-11, 255,12.4,25.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-12, 256,12.2,25.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-13, 257,12.0,24.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-14, 258,11.8,24.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-15, 259,11.5,24.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-16, 260,11.3,24.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-17, 261,11.1,24.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-18, 262,10.8,23.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-19, 263,10.6,23.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-20, 264,10.3,23.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-21, 265,10.1,23.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-22, 266,9.8,22.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-23, 267,9.6,22.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-24, 268,9.3,22.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-25, 269,9.1,22.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-26, 270,8.8,22.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-27, 271,8.6,21.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-28, 272,8.3,21.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-29, 273,8.1,21.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,09-30, 274,7.8,21.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-01, 275,7.6,20.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-02, 276,7.3,20.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-03, 277,7.1,20.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-04, 278,6.9,20.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-05, 279,6.7,19.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-06, 280,6.4,19.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-07, 281,6.2,19.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-08, 282,6.0,19.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-09, 283,5.8,19.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-10, 284,5.6,18.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-11, 285,5.4,18.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-12, 286,5.2,18.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-13, 287,5.1,18.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-14, 288,4.9,18.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-15, 289,4.7,17.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-16, 290,4.6,17.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-17, 291,4.4,17.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-18, 292,4.2,17.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-19, 293,4.1,17.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-20, 294,3.9,16.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-21, 295,3.8,16.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-22, 296,3.7,16.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-23, 297,3.5,16.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-24, 298,3.4,16.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-25, 299,3.3,15.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-26, 300,3.1,15.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-27, 301,3.0,15.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-28, 302,2.9,15.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-29, 303,2.8,15.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-30, 304,2.7,14.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,10-31, 305,2.6,14.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-01, 306,2.4,14.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-02, 307,2.3,14.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-03, 308,2.2,14.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-04, 309,2.1,13.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-05, 310,1.9,13.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-06, 311,1.8,13.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-07, 312,1.7,13.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-08, 313,1.6,13.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-09, 314,1.4,12.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-10, 315,1.3,12.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-11, 316,1.2,12.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-12, 317,1.0,12.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-13, 318,0.9,11.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-14, 319,0.7,11.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-15, 320,0.6,11.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-16, 321,0.4,11.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-17, 322,0.3,11.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-18, 323,0.1,10.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-19, 324,-0.1,10.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-20, 325,-0.2,10.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-21, 326,-0.4,10.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-22, 327,-0.6,9.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-23, 328,-0.7,9.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-24, 329,-0.9,9.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-25, 330,-1.1,9.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-26, 331,-1.3,8.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-27, 332,-1.4,8.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-28, 333,-1.7,8.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-29, 334,-1.8,8.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,11-30, 335,-2.0,7.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-01, 336,-2.2,7.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-02, 337,-2.4,7.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-03, 338,-2.6,7.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-04, 339,-2.8,7.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-05, 340,-2.9,6.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-06, 341,-3.2,6.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-07, 342,-3.3,6.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-08, 343,-3.5,6.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-09, 344,-3.7,6.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-10, 345,-3.9,5.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-11, 346,-4.1,5.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-12, 347,-4.2,5.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-13, 348,-4.4,5.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-14, 349,-4.6,5.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-15, 350,-4.7,4.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-16, 351,-4.9,4.7 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-17, 352,-5.1,4.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-18, 353,-5.2,4.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-19, 354,-5.3,4.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-20, 355,-5.4,4.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-21, 356,-5.6,3.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-22, 357,-5.7,3.8 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-23, 358,-5.8,3.6 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-24, 359,-6.0,3.5 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-25, 360,-6.1,3.4 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-26, 361,-6.2,3.3 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-27, 362,-6.3,3.2 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-28, 363,-6.4,3.1 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-29, 364,-6.5,3.0 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-30, 365,-6.6,2.9 +USC00360785,40.3844,-76.0339,106.7,BLUE MARSH LAKE,PA,12-31, 366,-6.7,2.8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/daily_actuals.csv Tue Nov 27 09:47:31 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/validate_temperature_data.py Tue Nov 27 09:47:31 2018 -0500 @@ -0,0 +1,162 @@ +#!/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, decimal_string)) + + +def validate_mmdd(line_no, mmdd, accumulated_msgs): + try: + datetime.datetime.strptime(date_string, '%m-%d') + return accumulated_msgs + except ValueError: + return add_error_msg(accumulated_msgs, "Line %d contains an incorrect date format (%s must be mm-dd)." % (line_no, date_string)) + + +accumulated_msgs = "" +# 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 + header = NORMALS_HEADER + last_doy = 0 + num_normals_rows = 0 +else: + input_file = args.input_actuals + header = ACTUALS_HEADER +with open(input_file, "r") as ih: + for i, line in enumerate(ih): + line = line.rstrip("\r\n") + if i == 0: + if line != header: + accumulated_msgs = add_error_msg(accumulated_msgs, "The header is invalid, must be %s" % header) + items = line.split(",") + if args.data_type == "normals": + 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] + if len(station_id) == 0: + accumulated_msgs = empty_value(i, "stationid", accumulated_msgs) + latitude = items[1] + accumulated_msgs = validate_decimal(i, latitude, accumulated_msgs, "latitude") + longitude = items[2] + accumulated_msgs = validate_decimal(i, longitude, accumulated_msgs, "longitude") + elev_m = items[3] + accumulated_msgs = validate_decimal(i, elev_m, accumulated_msgs, "elev_m") + name = items[4] + if len(name) == 0: + accumulated_msgs = empty_value(i, "name", accumulated_msgs) + st = items[5] + if len(st) == 0: + accumulated_msgs = empty_value(i, "st", accumulated_msgs) + mmdd = items[6] + accumulated_msgs = validate_mmdd(i, mmdd, accumulated_msgs) + doy = items[7] + 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." % (i, doy)) + stop_error(accumulated_msgs) + else: + last_doy += 1 + except Exception: + # The error for an invalid integer was captured above. + pass + tmin = items[8] + accumulated_msgs = validate_decimal(i, tmin, accumulated_msgs, "tmin") + tmax = items[9] + accumulated_msgs = validate_decimal(i, tmax, accumulated_msgs, "tmax") + num_normals_rows += 1 + else: + 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] + accumulated_msgs = validate_decimal(i, latitude, accumulated_msgs, "LATITUDE") + longitude = items[1] + accumulated_msgs = validate_decimal(i, longitude, accumulated_msgs, "LONGITUDE") + date_string = items[2] + accumulated_msgs = validate_date_string(line_no, date_string, accumulated_msgs) + doy = items[3] + accumulated_msgs = validate_integer(i, doy, accumulated_msgs, "doy") + # Make sure the DOY values are consecutive. + if i==0: + try: + last_doy = int(doy) + except Exception: + # The error for an invalid integer was captured above. + pass + 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." % (i, doy)) + stop_error(accumulated_msgs) + else: + last_doy += 1 + except Exception: + # The error for an invalid integer was captured above. + pass + tmin = items[8] + accumulated_msgs = validate_decimal(i, tmin, accumulated_msgs, "tmin") + tmax = items[9] + 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 09:47:31 2018 -0500 @@ -0,0 +1,76 @@ +<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" value="30_year_normals.csv" ftype="csv"/> + <output name="output" file="30_year_normals.csv" ftype="csv"/> + </test> + <test> + <param name="input" 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>