This repository was archived by the owner on Apr 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
jswank/streamfeed
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
2023-04-22: Archiving this code. Background ---------- This is an entry in the Ducksboard Hackathon. See the live dashboard at: https://public.ducksboard.com/4p2wevyDlQBlTFeui_Q5/ UPDATE: and it won! Thanks guys! http://blog.ducksboard.com/2011/11/announcing-the-hackathon-results/ Streamfeed sends information about streams- the physical, wet kind- to the Ducksboard API. Its primary data source is the USGS Water Services API (http://waterservices.usgs.gov/), which provides a flexible API to various data from thousands of deployed sensors. But, hydrologists (probably?) are already able to analyze this data in a more sophisticated way than using Ducksboard, right? Right. But this information- realtime and recent- is also of interest to other people. Whitewater kayakers need to know what streams and rivers are runnable (able to be be navigated at an acceptable/desired level of risk) in enough time to get to a launch site with a boat. Preferably with some other people, and a couple of vehicles. Knowing what the river is doing now- combined with a weather forecast and some social networking- makes this an easier task. Technical Details ----------------- Here's a application written in Go (http://golang.org) that updates Ducksboard widgets with images and USGS gauge information. It can be configured via a JSON configuration file to query / update other USGS sensors as required. To compile: cd ducksboard gomake cd .. gomake To run: edit config.json, inserting your Ducksboard API key ./streamfeeder -f config.json A couple of notes: * The app runs in the foreground, sleeping for the number of seconds defined by the "refresh" configuration setting then re-querying sources. If this parameter is less than 60 then the app will exit after a single run- allowing it to be run from cron or similar if desired. * A single HTTP call is made to the USGS API, and the response includes information for all the sensors / types of data (discharge, depth, etc) defined in the configuration file. * Calls to the Ducksboard API are handled by a small pool of HTTP connections. The pool size is a constant, MAX_PUSH_CONNECTIONS, defined in config.go, currently set to 4. And since Ducksboard supports HTTP keep- alives only 4 TCP connections will be used. * I used the Go release weekly.2011-11-02 for development. A change with error handling just occurred ("os.Error" is now "error"), so if you want to compile this with an older version of Go, you'll have to address that.
About
Push USGS water data to Ducksboard
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published