Bioacoustic Whale Buoys
Cornell Lab of Ornithology's Bioacoustic Whale Buoys.
Cornell's Lab of Ornithology maintains an array of buoys which listen for whale's around Cape Cod. Their project, Right Whale Listening Network detects the presence of Right Whale's by their acoustic signatures and issues alerts for their presence. As part of a continuing effort to provide comprehensive sensor information for the North East Region NERACOOS asked the Ocean Data Products Team at GMRI to add this data to their regional map of assets.
Cornell makes their data available as HTML, JSON or XML through a web service. The data for this project, alert date range and detect counts, did not fit into any of the NERACOOS back end data models. We had 3 possible alternatives.
- Use the data directly from the web service.
- Create a new data system and harvest the data from the web service into that system.
- Insert the data into the Exchange Network node and utilize it's inherent data management capabilities.
Customers of the NERACOOS site expect to have historical data available. That made option 1 look less than optimal. In comparing options 2 & 3 it became apparent that option 2 would involve...
- More work up front creating a new data stream and back end support.
- Additional (unfunded) future maintenance associated with a distinct new data system.
- A less comprehensive data set than the Exchange Network ODPX Flow offered.
So we elected to use the Exchange Network's ODPX schema, protocols and existing infrastructure for our implementation. The task was straight forward, mostly involving eXtensible Style Sheets or XSL.
First we created an ODPX XML document to set up Cornell's organization and project record in the node.
Second we created 2 style sheets to create ODPX XML documents for Monitoring Locations and Activities.
Third we create a style sheet to transform Cornell's XML feed into ODPX XML results for hourly insertion into the node. The insertions are done using PHP and run hourly as a cron job. Node software automatically replaces duplicate readings.
On last style sheet transforms ODPX XML from the node into NERACOOS Buoy XML providing an integrated view of the Cornell buoy data.
The final step was creating a web service for the data in the NERACOOS buoy XML format. This service asks for the previous 2 days of results for each Activity of Cornell's from the node, transforms that XML using the XSL file and returns the results.

























