1//load the template solution�//production���iWeatherNet.loadScript("/js/common/mustache.js");�iWeatherNet.loadScript("/js/common/jquery.csv.min.js");�iWeatherNet.loadScript("/js/tools/angulargauge.js");�iWeatherNet.loadScript("/js/common/deferreds.js");����//dev��/*�iWeatherNet.loadScript("../common/js/mustache.js");�iWeatherNet.loadScript("../common/js/jquery.csv.min.js");�iWeatherNet.loadScript("js/angulargauge.js");�iWeatherNet.loadScript("../common/js/deferreds.js");�debugenabled=true;�*/��var devkey='client_id=dBSN9JcljtWikpEDm597f&client_secret=ZIsGKXgBUbd9EiNyZcEx1OtiyuWQPujaGv1v4h3G';�var prodkey='client_id=dBSN9JcljtWikpEDm597f&client_secret=ZIsGKXgBUbd9EiNyZcEx1OtiyuWQPujaGv1v4h3G';��if (window.location.host.toLowerCase().indexOf("iweathernet.com")>-1){� iWeatherNet.aerisKey=prodkey;�}�else�{� iWeatherNet.aerisKey=devkey;�}���iWeatherNet.getAerisData=function(station){� � // STATION REQUIRES THE K� var thisDeferred=new iWeatherNet.deferred("getAerisData",15);� if (iWeatherNet.aerisDataBatch){thisDeferred.resolve();return thisDeferred;}� var dt=iWeatherNet.ISOdateTime((new Date()).toISOString());� � var params={� key:iWeatherNet.aerisKey,� station:station,� sort:"",� /*limit:config.limit.toString(),*/� r:parseInt(Math.random()*10000),� dt:dt.thisTZ.prettyDate� };� � � � /*var query1=Mustache.render("?p={{{station}}}&limit=20&plimit=2&from=-2hours",params);� var query2=Mustache.render("?p={{{station}}}&limit=20&plimit=3&from=-24hours&to=2hours",params);� */� � var query3=Mustache.render("?p={{{station}}}&from={{{dt}}}",params); //normals from getAlamanac� var query4=Mustache.render("?p={{{station}}}&from={{{dt}}}",params); //obs archive from getToday� var query5=Mustache.render("?p={{{station}}}&from={{{dt}}}&plimit=50",params); //getTodayMinMax� � var url="https://api.aerisapi.com/batch/?" + iWeatherNet.aerisKey + "&requests=";� url+="/normals" + encodeURIComponent(query3);� url+=",/observations/archive" + encodeURIComponent(query4);� url+=",/observations/recent" + encodeURIComponent(query5);� � � //console.log(url);� � jQuery.ajax({� url: url,� dataType: "json",� success: function(json) {� condir(json);� iWeatherNet.aerisDataBatch=json.response.responses;� thisDeferred.resolve();� � }� });�� return thisDeferred;� � �}������iWeatherNet.getAlmanac=function(config){� conlog("getalmanac");� //var thisDeferred=jQuery.Deferred();� var thisDeferred=new iWeatherNet.deferred("getAlmanac",15);� iWeatherNet.almanac={};� //var wuURL="https://api.wunderground.com/api/11c52d3d4744bfd1/almanac/q/{{{station}}}.json";� var dt=iWeatherNet.ISOdateTime((new Date()).toISOString());� var params={� key:iWeatherNet.aerisKey,� station:config.location.station.toLowerCase(),� sort:"",� dt:dt.thisTZ.prettyDate� };� � //this will get the normals� var query2=Mustache.render("k{{{station}}}?{{{key}}}&from={{{dt}}}",params);� var url="https://api.aerisapi.com/normals/" + query2;� � //getAlmanac is 0� � � � jQuery.when(iWeatherNet.getAerisData("k" + params.station)).done(� function(){� condir(data);� var data=iWeatherNet.aerisDataBatch[0];� � iWeatherNet.almanac.location="k" + params.station;� //iWeatherNet.almanac.recordHigh=responsedata.almanac.temp_high.record.F;� //iWeatherNet.almanac.recordHighYear=responsedata.almanac.temp_high.recordyear;� //iWeatherNet.almanac.recordLow=responsedata.almanac.temp_low.record.F;� //iWeatherNet.almanac.recordLowYear=responsedata.almanac.temp_low.recordyear;� iWeatherNet.almanac.normalHigh=data.response.periods[0].temp.maxF;� iWeatherNet.almanac.normalLow=data.response.periods[0].temp.minF;
1� jQuery("#" + config.spanNormalHigh).html(roundto(iWeatherNet.almanac.normalHigh,0) + "°F");� jQuery("#" + config.spanNormalLow).html(roundto(iWeatherNet.almanac.normalLow,0) + "°F");� jQuery("#" + config.spanLocation).html(iWeatherNet.almanac.location);� thisDeferred.resolve();� � });� � � //find how to get the records.� � � �� return thisDeferred;� ��}�����iWeatherNet.getTableData=function(config){�/*� {� tablediv:"preciptable",� attribute:"precip_in",� location:{network:"TX_ASOS",� station:"DFW"� },� totals:{showTotal:true,column:1 },� precip:true� }�*/�� //var thisDeferred=jQuery.Deferred();� var thisDeferred=new iWeatherNet.deferred("getTableData",15);� if (!config.totals){� config.totals={showTotal:false}� }�� //config.attribute is the item we're putting in the table� var today=new Date();� � var iowaURL="https://mesonet.agron.iastate.edu/cgi-bin/request/daily.py?network={{{network}}}&stations={{{station}}}&year1={{{yearfrom}}}&month1={{{monthfrom}}}&day1={{{dayfrom}}}&year2={{{yearto}}}&month2={{{monthto}}}&day2={{{dayto}}}";�� var urlParameters={� network:config.location.network,� station:config.location.station,� yearfrom:(today.getFullYear()-1).toString(),� monthfrom:(today.getMonth()+1).toString(),� dayfrom:"1",� yearto:today.getFullYear().toString(),� monthto:(today.getMonth()+1).toString(),� dayto:today.getDate().toString()�� };�� if (!leapYear(urlParameters.yearfrom)&&urlParameters.monthfrom==2&&urlParameters.dayfrom==29){urlParameters.dayfrom=28}� � jQuery.ajax({� url:Mustache.render(iowaURL,urlParameters),� contentType:"text/plain",� crossDomain:true,� dataType:"text",� success:function(responsedata,textstatus){� var alldata=jQuery.csv.toObjects(responsedata);� //condir(alldata);� var th="<thead><tr><th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th><th>11</th><th>12</th><th>13</th><th>14</th><th>15</th><th>16</th><th>17</th><th>18</th><th>19</th><th>20</th><th>21</th><th>22</th><th>23</th><th>24</th><th>25</th><th>26</th><th>27</th><th>28</th><th>29</th><th>30</th><th>31</th></tr></thead>";� //var allrows="<tr>";� var allrows="";� var rowdata="<td class={{{formatting}}}>{{{value}}}</td>";� var lookbacktotal=[];� var monthlyNormal=[];� var month1=0;� var daycounter=1;� jQuery.each(alldata,function(x,oneDay){� //use config.attribute to make the table� � var currentDataDate=new Date(oneDay.day.substr(0,4),oneDay.day.substr(5,2)-1,oneDay.day.substr(8,2));� � var thevalue=0;� if (!isNaN(oneDay[config.attribute])&&parseFloat(oneDay[config.attribute])>0){� thevalue=parseFloat(oneDay[config.attribute])� }� � var values={value:thevalue.toFixed(2)}� if (values.value!="0.00"){values.formatting="valNonZero";}else{values.formatting="valZero";}� � if (month1==currentDataDate.getMonth()+1){� allrows+=Mustache.render(rowdata,values);� lookbacktotal[currentDataDate.getMonth()]+=thevalue;� if (config.precip){� //need to total up only the first month, not the last month!� � //this is skipping one of the days!� if (!monthlyNormal[currentDataDate.getMonth()+1]){monthlyNormal[currentDataDate.getMonth()+1]=0;}� monthlyNormal[currentDataDate.getMonth()+1]+=parseFloat(oneDay.climo_precip_in);� }� daycounter++;� }� else� {� //conlog("daycounter=",daycounter);� if (daycounter<31&&daycounter>1){� for (var z=0;z<(31-daycounter);z++){� allrows+="<td class='nodata'></td>";� }� }� daycounter=1;� allrows+="</tr><tr><td class='monthyearcell'>" + iWeatherNet.dateNames[currentDataDate.getMonth()] + "-" + (currentDataDate.getFullYear()-2000).toString() + "</td>";� allrows+=Mustache.render(rowdata,values) + "";� lookbacktotal[currentDataDate.getMonth()]=thevalue;� }� month1=currentDataDate.getMonth()+1;� � });� � if (daycounter<31&&daycounter>0){� for (var z=0;z<(31-daycounter);z++){� allrows+="<td class='nodata'></td>";� }� }� � allrows+="</tr>";� /*conlog(allrows);� condir(lookbacktotal);*/� � jQuery("#" + config.tablediv).html("<table>" + th + "<tbody>" + allrows + "</tbody></table>");� � if (config.totals.showTotal){� var rowTotalArray=[];� var tablerows=jQuery("#" + config.tablediv).find("table>tbody>tr");� //start at row 1, cell 1� jQuery(tablerows).each(function(x,e){� //if (x<1){return} //skip the header row and the blank row that is after it� var rowtotal=0;� jQuery(e).children("TD").each(function(x,e1){� //conlog(e1.innerHTML);� if (!isNaN(e1.innerHTML)&&e1.innerHTML!=""){� rowtotal+=parseFloat(e1.innerHTML);� }� });� //conlog(rowtotal);� rowTotalArray[x]=rowtotal;� });� //condir(rowTotalArray);� � //do the inserting as we have all the totals� var titlerow=jQuery("#" + config.tablediv).find("table>thead>tr>th:eq(" + config.totals.column.toString() + ")").before("<th>Total</th>"); //Insert the total column � jQuery.each(rowTotalArray,function(x,item){� if (item){� var rounded=Math.round(item*100)/100;� var row=jQuery("#" + config.tablediv).find("table>tbody>tr:eq(" + x + ")>td:eq(" + config.totals.column.toString() + ")").before("<td class='totalcell'>" + rounded.toFixed(2) + "</td>");� }� � });� � }� � //condir(monthlyNormal);� thisDeferred.resolve();� }//success:� }); //ajax�� return thisDeferred;�}��iWeatherNet.dateNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];��iWeatherNet.getSummaryData=function(config){� //var thisDeferred=jQuery.Deferred();� var thisDeferred=new iWeatherNet.deferred("getSummaryData",15);� var today=new Date();� � var iowaURL="https://mesonet.agron.iastate.edu/cgi-bin/request/daily.py?network={{{network}}}&stations={{{station}}}&year1={{{yearfrom}}}&month1={{{monthfrom}}}&day1={{{dayfrom}}}&year2={{{yearto}}}&month2={{{monthto}}}&day2={{{dayto}}}";�� var urlParameters={� network:config.location.network,� station:config.location.station,� yearfrom:(today.getFullYear()-1).toString(),� monthfrom:(today.getMonth()+1).toString(),� dayfrom:today.getDate().toString(),� yearto:today.getFullYear().toString(),� monthto:(today.getMonth()+1).toString(),� dayto:today.getDate().toString()�� };� � if (!leapYear(urlParameters.yearfrom)&&urlParameters.monthfrom==2&&urlParameters.dayfrom==29){urlParameters.dayfrom=28}� � � //conlog(Mustache.render(iowaURL,urlParameters));� var returnData={precipToday:0,precipThisMonth:0,precipThisYear:0,precip12Month:0,precipYesterday:0,tempMaxYear:-999,tempMaxYearDt:"",tempMinYear:999,tempMinYearDt:"",tempMinYesterday:-999,tempMaxYesterday:999};� jQuery.ajax({� url:Mustache.render(iowaURL,urlParameters),� contentType:"text/plain",� crossDomain:true,� dataType:"text",� success:function(responsedata,textstatus){� try{� var alldata=jQuery.csv.toObjects(responsedata);� jQuery.each(alldata,function(x,oneDay){� var currentDataDate=new Date(oneDay.day.substr(0,4),oneDay.day.substr(5,2)-1,oneDay.day.substr(8,2));� /*� Precipitation� */� if (!isNaN(oneDay.precip_in)&&oneDay.precip_in>0){� returnData.precip12Month+=parseFloat(oneDay.precip_in);� if (currentDataDate.getFullYear()==today.getFullYear()){� returnData.precipThisYear+=parseFloat(oneDay.precip_in);//annual total� }� if (currentDataDate.getFullYear()==today.getFullYear()&¤tDataDate.getMonth()==today.getMonth()){ //this month� returnData.precipThisMonth+=parseFloat(oneDay.precip_in);� }� � if (currentDataDate.getMonth()==today.getMonth()&¤tDataDate.getFullYear()==today.getFullYear()&¤tDataDate.getDate()==today.getDate()-1){ //yesterday� returnData.precipYesterday+=parseFloat(oneDay.precip_in);� }� }� /*� Temperature� */� � //max� if(!isNaN(oneDay.max_temp_f)&&returnData.tempMaxYear<oneDay.max_temp_f&¤tDataDate.getFullYear()==today.getFullYear()){� returnData.tempMaxYear=parseFloat(oneDay.max_temp_f);returnData.tempMaxYearDt=currentDataDate� }� //min� if(!isNaN(oneDay.min_temp_f)&&returnData.tempMinYear>oneDay.min_temp_f&¤tDataDate.getFullYear()==today.getFullYear()){� returnData.tempMinYear=parseFloat(oneDay.min_temp_f);returnData.tempMinYearDt=currentDataDate� }� //var yesterday=new Date(new Date(today.getFullYear(),today.getMonth(),today.getDate())-1000*60*60*24);� var yesterday=new Date(new Date(today.getFullYear(),today.getMonth(),today.getDate()-1));� /*conlog(yesterday.valueOf());� conlog(currentDataDate.valueOf());*/� if(yesterday.valueOf()==currentDataDate.valueOf()){� //conlog("date=yesterday");� returnData.tempMaxYesterday=oneDay.max_temp_f;� returnData.tempMinYesterday=oneDay.min_temp_f;� }� � � });� � iWeatherNet.minMaxData=returnData;� � /*thisDeferred.done(function(){iWeatherNet.getToday(config)});� thisDeferred.resolve();*/� � jQuery.when(iWeatherNet.getToday(config)).done(function(){thisDeferred.resolve();});� condir(returnData);� }catch(E){� console.dir(E);� }� }//success� }//ajax� );� return thisDeferred;�}�//convert this to Aeris!!!�iWeatherNet.getToday=function(config){� //var thisDeferred=jQuery.Deferred();� var thisDeferred=new iWeatherNet.deferred("getToday",15);� � � � var dt=iWeatherNet.ISOdateTime((new Date()).toISOString());� var params={� key:iWeatherNet.aerisKey,� station:config.location.station.toLowerCase(),� sort:"",� /*dt:"8/19/2016"*/� dt:dt.thisTZ.prettyD
1ate� };� � //this will get the normals� var query2=Mustache.render("k{{{station}}}?{{{key}}}&from={{{dt}}}",params);� var url="https://api.aerisapi.com/observations/archive/" + query2;� � //jQuery.getJSON(url,function(data){� � jQuery.when(iWeatherNet.getAerisData("k" + params.station)).done(� function(){� var data=iWeatherNet.aerisDataBatch[1];� conlog("Aeris Archive");� condir(data);� //get precip today by adding them all up but only the observations at the 52nd or 53rd minute� iWeatherNet.minMaxData.precipToday=0;� jQuery.each(data.response.periods,function(x,item){� var isoDateTime=iWeatherNet.ISOdateTime(item.ob.dateTimeISO);� if (item.ob.precipIN>0&&isoDateTime.localTZ.minutes>=52&&isoDateTime.localTZ.minutes<=53){� conlog(isoDateTime.localTZ.prettyTime);� iWeatherNet.minMaxData.precipToday+=item.ob.precipIN;� }� });�� � iWeatherNet.minMaxData.precipThisMonth+=iWeatherNet.minMaxData.precipToday;� iWeatherNet.minMaxData.precipThisYear+=iWeatherNet.minMaxData.precipToday;� iWeatherNet.minMaxData.precip12Month+=iWeatherNet.minMaxData.precipToday;� � conlog(iWeatherNet.minMaxData.precipToday);� � � iWeatherNet.minMaxData.currentPressure=data.response.periods[data.response.periods.length-1].ob.pressureMB.toString() + "mb / " + data.response.periods[data.response.periods.length-1].ob.pressureIN.toString() + "in";� � //data.response.periods[data.response.periods.length-1].ob.pressureMB.toString()� //data.response.periods[data.response.periods.length-1].ob.pressureIN.toString()� � jQuery.when(� iWeatherNet.getTodayMinMax(config),� iWeatherNet.getRecords(config)� ).done(function(){� conlog("resolving getTodayMinMax");� thisDeferred.resolve();� });� � � });� � return thisDeferred;�}��iWeatherNet.getTodayMinMax=function(config){� //var thisDeferred=jQuery.Deferred();� var thisDeferred=new iWeatherNet.deferred("getTodayMinMax",15);� var url="https://api.aerisapi.com/observations/recent/K{{{station}}}?{{{key}}}&from=today&plimit=50";� var test="hello";� urlParameters={key:iWeatherNet.aerisKey,station:config.location.station};� /*jQuery.ajax({� url:Mustache.render(url,urlParameters),� contentType:"text/plain",� crossDomain:true,� dataType:"json",� success:*/� � jQuery.when(iWeatherNet.getAerisData("k" + config.location.station)).done(� function(){� var responsedata=iWeatherNet.aerisDataBatch[2];� //condir(responsedata);� try{� var maxT=-9999;� var minT=9999;� iWeatherNet.gaugeData.tempF=responsedata.response.periods[0].ob.tempF;� jQuery.each(responsedata.response.periods,function(x,obs){� if (obs.ob.tempF>maxT){maxT=obs.ob.tempF;}� if (obs.ob.tempF<minT){minT=obs.ob.tempF;}� var d=iWeatherNet.ISOdateTime(obs.ob.dateTimeISO);� //console.dir(d);� if (obs.ob.tempMax6hrF&&(d.thisTZ.hours-6>=0)&&obs.ob.tempMax6hrF>maxT){maxT=obs.ob.tempMax6hrF}� if (obs.ob.tempMin6hrF&&(d.thisTZ.hours-6>=0)&&obs.ob.tempMin6hrF<minT){minT=obs.ob.tempMin6hrF}� � });� iWeatherNet.minMaxData.tempMaxToday=maxT;� iWeatherNet.minMaxData.tempMinToday=minT;� condir(iWeatherNet.minMaxData);� � }� catch(E){condir(E);}� //iWeatherNet.writeData(config);� thisDeferred.resolve();� }� );� return thisDeferred;� �}��iWeatherNet.getTodayMinMaxWU=function(config){� var thisDeferred=jQuery.Deferred();� var url="https://api.aerisapi.com/observations/recent/K{{{station}}}?{{{key}}}&from=today&plimit=50";� var url="https://api.wunderground.com/api/11c52d3d4744bfd1/history/pws:0/q/K{{{station}}}.json";� � urlParameters={station:config.location.station};� jQuery.ajax({� url:Mustache.render(url,urlParameters),� contentType:"text/plain",� crossDomain:true,� dataType:"json",� success:function(responsedata,textstatus){� //condir(responsedata);� try{� var maxT=responsedata.history.dailysummary[0].maxtempi;� var minT=responsedata.history.dailysummary[0].mintempi;� � iWeatherNet.minMaxData.tempMaxToday=maxT;� iWeatherNet.minMaxData.tempMinToday=minT;� condir(iWeatherNet.minMaxData);� }� catch(E){condir(E);}� //iWeatherNet.writeData(config);� thisDeferred.resolve();� }� }� );� return thisDeferred;� �}�����iWeatherNet.getPrecip=function(config){� //two periods: YTD and past 12 months� condir(config);� //var thisDeferred=jQuery.Deferred();� var thisDeferred=new iWeatherNet.deferred("getPrecip",15);� var url="https://data.rcc-acis.org/StnData";� var postParameters={station:config.location.station,� month:(new Date().getMonth()+1),� day:(new Date().getDate()),� year:(new Date().getFullYear()),� yesterday:new Date(((new Date())-86400000))� � };� � � var postdata={� sid:(config.location.station + 'thr'),� sdate: (postParameters.year-1).toString() + "-" + postParameters.month.toString() + "-" + postParameters.day.toString(),� edate: postParameters.year.toString() + "-" + postParameters.month.toString() + "-" + postParameters.day.toString(),� elems: [{�� name: "snow",� interval:"dly",� duration: "dly",� reduce:{reduce:"sum"},� prec:3,� smry:{reduce:"sum"},� smry_only:1� },� {�� name: "pcpn",� interval:"dly",� duration: "dly",� reduce:{reduce:"sum"},� prec:3,� smry:{reduce:"sum"},� smry_only:1� }� � ],� meta: ['name', 'state','sids','valid_daterange']� };� � if (!leapYear(postParameters.year-1)&&postParameters.month==2&&postParameters.day==29){� postdata.sdate=(postParameters.year-1).toString() + "-" + postParameters.month.toString() + "-28";� }� � var postdata2=jQuery.extend({}, postdata);� var postdatamonth=jQuery.extend({}, postdata);� var postdatayesterday=jQuery.extend({}, postdata);� postdata2.sdate=(postParameters.year).toString() + "-01-01";� � postdatamonth.sdate=(postParameters.year).toString() + "-" + (postParameters.month).toString() + "-01";� postdatayesterday.sdate=(postParameters.yesterday.getFullYear()).toString() + "-" + (postParameters.yesterday.getMonth()+1).toString() + "-" + postParameters.yesterday.getDate().toString();� postdatayesterday.edate=(postParameters.yesterday.getFullYear()).toString() + "-" + (postParameters.yesterday.getMonth()+1).toString() + "-" + postParameters.yesterday.getDate().toString();
1� conlog(postdatayesterday.edate);� � jQuery.when(� jQuery.ajax({� url:url,� data:{params: JSON.stringify(postdata)},� contentType:"application/x-www-form-urlencoded",� crossDomain:true,� dataType:"json",� method:"POST",� success:function(responsedata,textstatus){� condir(responsedata);� //last 12 months� iWeatherNet.minMaxData.snow12Month=responsedata.smry[0];� //iWeatherNet.minMaxData.precip12Month=0;� },� error:function(xhr,status,errorthrown){� conlog(status);� conlog(errorthrown);� }� � }),� jQuery.ajax({�� url:url,� data:{params: JSON.stringify(postdata2)},� contentType:"application/x-www-form-urlencoded",� crossDomain:true,� dataType:"json",� method:"POST",� success:function(responsedata,textstatus){� condir(responsedata);� //current calender year� iWeatherNet.minMaxData.snowThisYear=responsedata.smry[0];� //iWeatherNet.minMaxData.precipThisYear=0;�� � � },� error:function(xhr,status,errorthrown){� conlog(status);� conlog(errorthrown);�� }� � }),� jQuery.ajax({� url:url,� data:{params: JSON.stringify(postdatamonth)},� contentType:"application/x-www-form-urlencoded",� crossDomain:true,� dataType:"json",� method:"POST",� success:function(responsedata,textstatus){� condir(responsedata);� //last 12 months� iWeatherNet.minMaxData.snowThisMonth=responsedata.smry[0];� //iWeatherNet.minMaxData.precip12Month=0;� },� error:function(xhr,status,errorthrown){� conlog(status);� conlog(errorthrown);� }� � }),� jQuery.ajax({� url:url,� data:{params: JSON.stringify(postdatayesterday)},� contentType:"application/x-www-form-urlencoded",� crossDomain:true,� dataType:"json",� method:"POST",� success:function(responsedata,textstatus){� condir(responsedata);� //last 12 months� iWeatherNet.minMaxData.snowYesterday=responsedata.smry[0];� //iWeatherNet.minMaxData.precip12Month=0;� },� error:function(xhr,status,errorthrown){� conlog(status);� conlog(errorthrown);� }� � })� ).done(function(){� conlog("precip deferred resolved");� thisDeferred.resolve();� � }� );������ return thisDeferred;������ �}����iWeatherNet.getRecords=function(config){� //var thisDeferred=jQuery.Deferred();� var thisDeferred=new iWeatherNet.deferred("getRecords",15);� //var url="https://api.aerisapi.com/records/K{{{station}}}?{{{key}}}&from=1800/01/01&filter=prcp&radius=1mile&limit=100&query=mon:{{{month}}}:{{{month}}},day:{{{day}}}:{{{day}}}";� var url="https://data.rcc-acis.org/StnData";� � var postParameters={station:config.location.station,� month:(new Date().getMonth()+1),� day:(new Date().getDate())� };� � if (postParameters.month==2&&postParameters.day==29){postParameters.day=28}� � var postdata={� sid:(config.location.station + 'thr'),� sdate:'por',� edate:'por',� meta: ['name', 'state','sids','valid_daterange'],� elems: [{� name: 'maxt',� interval: 'dly',� duration: 'dly',� smry: {reduce: 'max',add: 'date'},� smry_only: 1,� groupby: ['year',postParameters.month.toString() + "-" + postParameters.day.toString(),postParameters.month.toString() + "-" + postParameters.day.toString()]� },� {� name: 'mint',� interval: 'dly',� duration: 'dly',� smry: {reduce: 'min',add: 'date'},� smry_only: 1,� groupby: ['year',postParameters.month.toString() + "-" + postParameters.day.toString(),postParameters.month.toString() + "-" + postParameters.day.toString()]� },� {� name: 'pcpn',� interval: 'dly',� duration: 'dly',� smry: {reduce: 'max',add: 'date'},� smry_only: 1,� groupby: ['year',postParameters.month.toString() + "-" + postParameters.day.toString(),postParameters.month.toString() + "-" + postParameters.day.toString()]� },� {� name: 'snow',� interval: 'dly',� duration: 'dly',� smry: {reduce: 'max',add: 'date'},� smry_only: 1,� groupby: ['year',postParameters.month.toString() + "-" + postParameters.day.toString(),postParameters.month.toString() + "-" + postParameters.day.toString()]� }� ]� };� � /*� � � {�� name: "snow",� interval:"dly",� duration: "dly",� reduce:{reduce:"sum"},� prec:3,� smry:{reduce:"sum"},� smry_only:1� }� � � */� � jQuery.when(� � jQuery.ajax({� /*url:Mustache.render(url,urlParameters),*/� url:url,� data:{params: JSON.stringify(postdata)},� contentType:"application/x-www-form-urlencoded",� /*contentType:"text/plain",*/� crossDomain:true,� dataType:"json",� method:"POST",� success:function(responsedata,textstatus){� condir(responsedata);� iWeatherNet.minMaxData.precipRecord=responsedata.smry[2][0][0] + "" " + "(" + responsedata.smry[2][0][1].substring(0,4) + ")";� iWeatherNet.minMaxData.snowRecord=responsedata.smry[3][0][0] + "" " + "(" + responsedata.smry[3][0][1].substring(0,4) + ")";� � � iWeatherNet.almanac.recordHigh=parseInt(responsedata.smry[0][0][0]);� iWeatherNet.almanac.recordHighYear=responsedata.smry[0][0][1].substr(0,4);� iWeatherNet.almanac.recordLow=parseInt(responsedata.smry[1][0][0]);� iWeatherNet.almanac.recordLowYear=responsedata.smry[1][0][1].substr(0,4);� conlog(roundto(iWeatherNet.almanac.recordHigh,0) + "°F (" + iWeatherNet.almanac.recordHighYear.toString() + ")");� � condir(iWeatherNet.almanac);� � //thisDeferred.resolve();� },� error:function(xhr,status,errorthrown){� conlog(status);� conlog(errorthrown);� //thisDeferred.resolve();� }� � }),� iWeatherNet.getPrecip(config)� ).done(function(){thisDeferred.resolve()});� � � return thisDeferred;��}
1����iWeatherNet.writeData=function(config){� conlog("writeData");� condir(config);�� jQuery("#" + config.spanPrecipToday).html(roundto(iWeatherNet.minMaxData.precipToday,2));� jQuery("#" + config.spanPrecipThisMonth).html(roundto(iWeatherNet.minMaxData.precipThisMonth,2));� jQuery("#" + config.spanPrecipThisYear).html(roundto(iWeatherNet.minMaxData.precipThisYear,2));� jQuery("#" + config.spanPrecip12Month).html(roundto(iWeatherNet.minMaxData.precip12Month,2));� jQuery("#" + config.spanPrecipYesterday).html(roundto(iWeatherNet.minMaxData.precipYesterday,2));� jQuery("#" + config.spanTempMaxYear).html(iWeatherNet.minMaxData.tempMaxYear + "°F (" + iWeatherNet.minMaxData.tempMaxYearDt.toLocaleDateString() + ")" );� jQuery("#" + config.spanTempMinYear).html(iWeatherNet.minMaxData.tempMinYear + "°F (" + iWeatherNet.minMaxData.tempMinYearDt.toLocaleDateString() + ")" );� � jQuery("#" + config.spanLocation).html(config.location.station);� jQuery("#" + config.spanTempYesterdayMin).html(iWeatherNet.minMaxData.tempMinYesterday + "°F");� jQuery("#" + config.spanTempYesterdayMax).html(iWeatherNet.minMaxData.tempMaxYesterday + "°F");� � jQuery("#" + config.spanTempTodayMin).html(iWeatherNet.minMaxData.tempMinToday + "°F");� jQuery("#" + config.spanTempTodayMax).html(iWeatherNet.minMaxData.tempMaxToday + "°F");� jQuery("#" + config.spanPressure).html(iWeatherNet.minMaxData.currentPressure);� jQuery("#" + config.spanPrecipRecord).html(iWeatherNet.minMaxData.precipRecord);� jQuery("#" + config.spanSnowRecord).html(iWeatherNet.minMaxData.snowRecord);� � jQuery("#" + config.spanSnowThisYear).html(roundto(iWeatherNet.minMaxData.snowThisYear,2) + " in.");
1� jQuery("#" + config.spanSnow12Month).html(roundto(iWeatherNet.minMaxData.snow12Month,2)+ " in.");� jQuery("#" + config.spanSnowThisMonth).html(roundto(iWeatherNet.minMaxData.snowThisMonth,2) + " in.");� jQuery("#" + config.spanSnowYesterday).html(roundto(iWeatherNet.minMaxData.snowYesterday,2)+ " in.");� � jQuery("#" + config.spanRecordHigh).html(roundto(iWeatherNet.almanac.recordHigh,0) + "°F (" + iWeatherNet.almanac.recordHighYear.toString() + ")");� jQuery("#" + config.spanRecordLow).html(roundto(iWeatherNet.almanac.recordLow,0) + "°F (" + iWeatherNet.almanac.recordLowYear.toString() + ")");�� � try{� if (rendergauge){iWeatherNet.initializeGauge();}� }� catch(E){� //do nothing� }� �}�function leapYear(year)�{� return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);�}����function roundto(n,p){� if(isNaN(n)){return "0"}� var t=n*Math.pow(10,p);� t=Math.round(t)/Math.pow(10,p);� return t.toString();�}��
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.