Open in playproj

playproj

GuidePerspectiveCones and cylindersSight and shadeSpilhausGlobals and interruptedsPeeling the orangeDistortionEllipsoidGeoidOrthorectifications2 cellsH3 hexagonsL3 binsModel gridsIndex spaceMGRS and Sentinel-2AAT gridTiles and overviewsRectilinear chunksIcechunk and ZarrRasterizeAffineRegular in what?Convex hullCatastrophesTexture mappingPenguin datumFor exampleHomageVicGridNuyinaRhumb linesFrameTime and depthCutawayVoxels

Click the globe for every layer's value there on this date, its cell and chunk, and the profile against depth for an ocean layer.

Timing

The last date shown, per layer: how its window was got (read now, joined a read ahead already running, or from the cache), the wait for it in ms, its size, and painting its texture and contour lines in ms. Hover a row for requests, decoding and file opening; the button copies the last 50 dates as JSON.

A browser can read a chunk only if the host of the original file allows reads from other sites (CORS). The table counts reads by host as layers load; the button reads one chunk of every dataset, and links each one it reads to gridlook and to the store explorer.

How it works

Every layer is an array with a time axis and, for an ocean model, a depth axis. The clock is a date, and each layer finds its own nearest time step, so daily sea ice from 1978, daily SST from 1981 and a daily ocean model from 1993 line up on one day; a layer with nothing near that date says so.

The datasets are virtual stores: byte-reference indexes on source.coop that point into the original netCDF files where they are published. The page reads each one's flat/arrays.json for its axes and units, opens its Icechunk form with icechunk-js, and reads only the chunks it draws with zarrita.js. Where the index lives is named once, in data/fourd/stores.json.

Depth is a place, not a slider: for an ocean layer the page reads every level down to a chosen depth over a box, and draws one level as a shell below the surface, sunk by its depth times the exaggeration, and two sections through the box along a meridian and a parallel. Decoded windows are cached, and the next few dates are read ahead while one is shown, so Play only shows dates that have arrived.

The globe unfolds onto a map: equidistant from a centre (the box, or a picked point), or Spilhaus, which puts the world ocean in one square. Depth stays depth: on the map it goes down from the plane by the same exaggeration. The horizon keeps only what lies within a range of the centre, on the globe and on the map.

Each layer can be drawn as its colour fill, as contour lines, or both: lines are traced through the cell centres (marching squares) at the layer's contour step, on surfaces and on the shell and sections of an ocean layer, and a sea ice layer also gets its edge at 15 percent. The links beside a layer open the same array and date in gridlook or the store explorer.

Source and contributing