Last active
August 29, 2015 13:56
-
-
Save knu2xs/9050209 to your computer and use it in GitHub Desktop.
Trying to download and get gauge data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // create site object instance for watauga | |
| var watauga = new Site('03479000'); | |
| // download the data from the USGS | |
| watauga.downloadData(); | |
| // get the cfs output as JSON (this currently is not working) | |
| watauga.getCfs(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // create site object | |
| function Site(siteCode) { | |
| this.timeSeriesList = []; | |
| this.siteCode = siteCode; | |
| this.downloadData = downloadData; | |
| this.getCfs = getCfs; | |
| // create reference to the local object for use inside the jquery ajax function below | |
| var self = this; | |
| // create timeSeries object | |
| function TimeSeries(siteCode, variableCode) { | |
| this.variableCode = variableCode; | |
| this.observations = []; | |
| } | |
| // create observation object | |
| function TimeSeriesObservation(stage, timeDate) { | |
| this.stage = stage; | |
| this.timeDate = timeDate; | |
| } | |
| // include the capability to download data automatically | |
| function downloadData() { | |
| // construct the url to get data | |
| // TODO: include the capability to change the date range, currently one week (P1W) | |
| var url = "http://waterservices.usgs.gov/nwis/iv/?format=json&sites=" + this.siteCode + "&period=P1W¶meterCd=00060,00065" | |
| // use jquery getJSON to download the data | |
| $.getJSON(url, function (data) { | |
| // timeSeries is a two item list, one for cfs and the other for feet | |
| // iterate these and create an object for each | |
| $(data.value.timeSeries).each(function () { | |
| // create a timeSeries object | |
| var thisTimeSeries = new TimeSeries( | |
| self.siteCode, | |
| // get the variable code, 65 for ft and 60 for cfs | |
| this.variable.variableCode[0].value | |
| ); | |
| // for every observation of the type at this site | |
| $(this.values[0].value).each(function () { | |
| // add the observation to the list | |
| thisTimeSeries.observations.push(new TimeSeriesObservation( | |
| // observation stage or level | |
| this.value, | |
| // observation time | |
| this.dateTime | |
| )); | |
| }); | |
| // add the timeSeries instance to the object list | |
| self.timeSeriesList.push(thisTimeSeries); | |
| }); | |
| }); | |
| } | |
| // return serialized array of cfs stage values | |
| function getCfs() { | |
| // iterate timeseries objects | |
| $(self.timeSeriesList).each(function () { | |
| // if the variable code is 00060 - cfs | |
| if (this.variableCode === '00060') { | |
| // return serialized array of stages | |
| return JSON.stringify(this.observations); | |
| } | |
| }); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment