16
Near Real Time Near Real Time Ocean Observations Ocean Observations Online Online the Escape of SEACOOS the Escape of SEACOOS (Southeastern Atlantic Coastal Ocean (Southeastern Atlantic Coastal Ocean Observing System) Observing System) Data Management and Visualization Data Management and Visualization Secrets Secrets

Near Real Time Ocean Observations Online the Escape of SEACOOS (Southeastern Atlantic Coastal Ocean Observing System) Data Management and Visualization

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

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 (tiny) big pictureThe (tiny) big picture

Near Real Time Ocean Observations Online : SEACOOS

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: [email protected] issues: [email protected] mailto: [email protected]: [email protected] 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 [email protected]@sc.edu Happy to help and share.Happy to help and share.