Post on 19-Dec-2015
Near Real TimeNear Real TimeOcean Ocean
Observations Observations OnlineOnline
the Escape of SEACOOSthe Escape of SEACOOS(Southeastern Atlantic Coastal Ocean (Southeastern Atlantic Coastal Ocean
Observing System) Observing System) Data Management and Visualization Data Management and Visualization
SecretsSecrets
Near Real Time Ocean Observations Online : SEACOOS
The nuts & boltsThe nuts & bolts
Data is aggregated and storedData is aggregated and stored Data is normalizedData is normalized Data is visualizedData is visualized Data is disseminatedData is disseminated
Near Real Time Ocean Observations Online : SEACOOS
Data Data aggregationaggregation & & storagestorage
Format flavorsFormat flavors netCDF: coverage may vary; netCDF: coverage may vary;
format may not varyformat may not vary
PNG: coverage may not vary; PNG: coverage may not vary; color scale may not varycolor scale may not vary
TechnoloTechnologygy PerlPerl
Near Real Time Ocean Observations Online : SEACOOS
Data aggregation & Data aggregation & storagestorage
Relational databaseRelational database One table per in-situ variable typeOne table per in-situ variable type
E.g. a wind_table, sst_tableE.g. a wind_table, sst_table Contains the real dataContains the real data
One table per raster variableOne table per raster variable E.g. a sst_raster_tableE.g. a sst_raster_table Contains pointers to PNG files + boundariesContains pointers to PNG files + boundaries
One table per model variable per hourOne table per model variable per hour E.g. a 12_00_00_current_forecast_tableE.g. a 12_00_00_current_forecast_table
Near Real Time Ocean Observations Online : SEACOOS
NormalizationNormalization
Reporting time variesReporting time varies In-situ dataIn-situ data
E.g. daily, hourly, half-hourly, every 10 E.g. daily, hourly, half-hourly, every 10 minutesminutes
Remotely-sensed dataRemotely-sensed data E.g. twice dailyE.g. twice daily
Reporting area variesReporting area varies Remotely-sensedRemotely-sensed
data passesdata passes
Near Real Time Ocean Observations Online : SEACOOS
VisualizationVisualization Main enginesMain engines
PHP, PHP-MapScriptPHP, PHP-MapScript PerlPerl MapServer, of courseMapServer, of course
Icing on the cakeIcing on the cake Dynamic shapefile Dynamic shapefile
creation for colorbarscreation for colorbars AnIS and GIFSicle for AnIS and GIFSicle for
animations animations ImageMagick for image ImageMagick for image
manipulation and raster manipulation and raster queriesqueries
MouseoversMouseovers Time-series graphs usingTime-series graphs using
GnuplotGnuplot
Near Real Time Ocean Observations Online : SEACOOS
Icing on the cake : dynamic Icing on the cake : dynamic shapefilesshapefiles
Near Real Time Ocean Observations Online : SEACOOS
Icing on the cake : Icing on the cake : animationsanimations
AnIS and GIFsicleAnIS and GIFsicle
Produce severalProduce severalimages and glue images and glue them togetherthem together
Near Real Time Ocean Observations Online : SEACOOS
Icing on the cake : raster Icing on the cake : raster queriesqueries
Let MapServer take care of projection issuesLet MapServer take care of projection issues How to get an SST, for example, from a raster How to get an SST, for example, from a raster
PNGPNG1)1) Dump the current extent view of just the raster to PNGDump the current extent view of just the raster to PNG2)2) Get (x,y) clicked pixel RGB of the dumped image with Get (x,y) clicked pixel RGB of the dumped image with
Perl::ImageMagickPerl::ImageMagick3)3) Lookup pixel RGB in database to find out SSTLookup pixel RGB in database to find out SST4)4) Return SST in the normal query data trainReturn SST in the normal query data train
Near Real Time Ocean Observations Online : SEACOOS
Icing on the cake : Icing on the cake : mouseoversmouseovers
Use MapServer 4.x Use MapServer 4.x searchmapsearchmap
Produce two images for an Produce two images for an HTML pageHTML page One is static; with the One is static; with the
querymapquerymap The other is an input The other is an input
imageimage
Use javascript to swap the Use javascript to swap the two images based on user two images based on user activityactivity
The querymap is produced The querymap is produced by making a simple by making a simple LWP::simple request for a LWP::simple request for a querymap, and then it is querymap, and then it is merged with the HTML pagemerged with the HTML page
Near Real Time Ocean Observations Online : SEACOOS
Icing on the cake : time Icing on the cake : time series graphsseries graphs
Pass a query result Pass a query result set to Gnuplot for a set to Gnuplot for a time-series graphtime-series graph
Near Real Time Ocean Observations Online : SEACOOS
DisseminationDissemination
Maps and charts, of courseMaps and charts, of course OPeNDAP (DODS) data accessOPeNDAP (DODS) data access OGC-friendly: WMS, WFSOGC-friendly: WMS, WFS
SEACOOS pushed a lot of data to the SEACOOS pushed a lot of data to the IOOS interoperability projectIOOS interoperability project
Down the pipelineDown the pipeline Ad-hoc CSV and/or netCDF data Ad-hoc CSV and/or netCDF data
extractionextraction
Near Real Time Ocean Observations Online : SEACOOS
Magic 8 ballMagic 8 ball
Everyone wants speedEveryone wants speed ‘‘Near real time’ implies constantly updated Near real time’ implies constantly updated
databasesdatabases Recently introduced round-robin-ing of Recently introduced round-robin-ing of
database requestsdatabase requests As machine A is populated with new data, send As machine A is populated with new data, send
all DB requests to machine Ball DB requests to machine B When machine A is done populating, have it When machine A is done populating, have it
resume DB handling, and go update machine Bresume DB handling, and go update machine B Want to round-robin MapServer requests, Want to round-robin MapServer requests,
too, as well as pull application server to its too, as well as pull application server to its own boxown box
Near Real Time Ocean Observations Online : SEACOOS
A friend in the businessA friend in the business Development site: Development site:
http://nautilus.baruch.sc.edu/rshttp://nautilus.baruch.sc.edu/rs Production site (new interface to be released Production site (new interface to be released
soon):soon):http://seacoos.orghttp://seacoos.org
Very active listserv dealing with mainly remote-Very active listserv dealing with mainly remote-sensing issues: remotesensing@caro-coops.orgsensing issues: remotesensing@caro-coops.org mailto: majordomo@caro-coops.orgmailto: majordomo@caro-coops.org message text: subscribe remotesensingmessage text: subscribe remotesensing
Who am I?Who am I? Charlton Purvis, University of South Carolina, Charlton Purvis, University of South Carolina,
SEACOOSSEACOOS cpurvis@sc.educpurvis@sc.edu Happy to help and share.Happy to help and share.