Wednesday, January 23, 2013

A collection of HiRes SST on WebGL globe

I posted recently about WebGL plot of high resolution AVHRR SST data from NOAA/NCDC. It is 1/4° (about 25 km). I noted that representation of coasts should be improved (it has been). The data is daily, and I showed 21 Dec 2012.

I've now put up a page which I hope to maintain regularly by script. I've uploaded data for many days, going back to at least 1996. I'll continue filling it out. There are selection boxes to let you select the date and resolution, and a button to press to download and display. At top resolution downloading 700 Kb for each plot takes a few seconds.

For the last three years year data is daily, then reverting to weekly and eventually monthly. This will improve.

The globe you will see is a trackball - you can rotate with a mouse and zoom with the right button (vertically). The colors represent anomalies in °C.

Here are some examples of the things that can be seen. Some have noted recently that the seas around Svalbard are fairly ice-free for the time of year. Here is a section from the plot of 7 January 2013, slightly zoomed:



And here is an ENSO study. Here is the cold plume currently in the Equatorial East Pacific, again on 7 Jan 2013:


While here is the long warm El Nino jet from 9 March, 2010:
.

It's interesting to contrast the Gulf of Mexico temperatures too.

Here is a super El Nino plume from 24 February, 1998:
.

10 comments:

  1. Very nice, Nick!

    A couple of hopefully easy suggestions:

    1) a button to download current image.
    2) add an optional title with date, e.g. 2013-01-03 and include the source of the image http://moyhu.blogspot.com (personally I'd just have it on there all the time, but a checkbox to enable it works too).

    That way if I generate movies or use images somewhere else, the timestamp & source is already there.

    ReplyDelete
    Replies
    1. Carrick,
      Thanks. Javascript is very strict about not allowing you to interact with file systems, so I can't offer downloads. But yes, I could and will put a title on the actual picture (though it will be overwritten in a zoom). There is the date information just to the right of the pic.

      Movies are actually the next step - maybe tonight. Once the data is downloaded, I can replay a sequence at movie speed, with the benefit that it's kind of 3D; you can rotate the globe while it's replaying.

      I currently have a URL link scheme that works intermittently - I have to fix it whenever I change something. I'm hoping to expand it so that it could initiate movies.

      Delete
  2. Thanks Nick.

    Isn't there a way to generate a temporary file on your computer system, then link it via a url?

    ReplyDelete
    Replies
    1. Carrick,
      I think here's a way ahead. The movie version will have a fixed frame interval. I'll try to find a way that the user can do screen captures, ideally triggered from the frame updates. Then ImageMagick can automatically crop, and if necessary make an animated GLF.

      Delete
  3. Carrick,
    Yes, but the thing about JS is that it's a transaction between you and a file repository. Everything active sits and runs on your machine, and I'm not allowed to know what's on your screen. In fact, I have no active control of any server involved.

    Javascript actually has no i/o commands at all. XMLHTTPRequest is a recent small chink in the armour.

    ReplyDelete
    Replies
    1. "no i/o commands" - no file i/o commands.

      Delete
  4. Got it. Didn't realize the images ran solely inside of Javascript. That's pretty impressive.

    I've mostly used C-code CGIs when I've done things like this (in conjunction with libgd when "gd" meant "gif draw"... that dates me), but these rely on access to a remote server. I had experimented with JAVA (embedded in a webpage) a number of years ago and encountered a similar issue with not being able to save graphic files.

    Anyway, I can of course embed that CGI command into an IMG tag, or put it in a shell script and execute it via wget to create a series of images that I can then animate using "convert" (from ImageMagick).

    Anyway, it'll be interesting to see what you come up with. The ENSO dynamics apparent with these hires images are really amazing.

    ReplyDelete
    Replies
    1. Carrick,
      I've figured out a way. After messing around with Java and C++, I found a very neat freeware program NirCmd. It's just a 43Kb .exe, but it does all sorts of useful things, and one is that you can set it to dump .png screenshots at prescribed intervals. So with my movie version, I set up a movie with Seq, set up the one-line NirCmd command in a DOS window, set it running with the same interval as the Cyc button (and a few frames to spare), then hit the Cyc button. Then it's just a matter of cropping th .png files with ImageMagick. I'll blog with some examples.

      Delete
    2. There was more to it than I thought. The png files are large, and my first try took too long to load. I've learnt lots now about making and embedding videos, and I'm hoping to post Flash tonight.

      Delete