SAEON / somisana

SOMISANA-related tooling
MIT License
6 stars 2 forks source link

[Algoa Bay Forecast] Model output web-visualizations #12

Closed zachsa closed 1 year ago

zachsa commented 2 years ago

The model output includes a NetCDF file with a 'normalized' grid (lat/lng coordinates in the center of the grid box) and with a subset of the variables that are of immediate use.

Variables:

Dimensions:

Some visualization ideas:

Temperature

Salinity TODO

zachsa commented 2 years ago

@mattcarr03 - any ideas/other input is welcome!

mattcarr03 commented 2 years ago

Those sound great!

I think what would be cool as well is the current speed and direction. The speed can be added as a variable in the post processing script (calculated u and v ). The it can be added on as a layer like the temperature.

What is really cool is if we could get animated velocity vectors. I used this package for the previous site (https://github.com/onaci/leaflet-velocity). Which is a leaflet package but I'm sure there are openmaps packages as well. There is also an ERSI package (https://github.com/Esri/wind-js). Not sure how difficult it is to implement, I was creating json files from the data to do this but there is probably a better way forward

Really looking to to seeing the visualisations!

mattcarr03 commented 2 years ago

Just saw this from a quick google search https://github.com/openlayers/openlayers/issues/9947 maybe it isn't straight forward in open layers but possible

zachsa commented 2 years ago

Okay - noted on the vector layer. Here is a nice vector layer example in openlayers on that thread. https://github.com/openlayers/openlayers/issues/9947#issuecomment-577367260. could that work? Could always use both leaflet and openlayers for different visualizations

zachsa commented 2 years ago

This is the print of the current netcdf file that i will use as a the basis for all visualizations @mattcarr03

It's actually a fairly large file (2.4GB so far). so if it's possible to get the current speed (or is it velocity?) from the u / v variables, then that would be better than expanding the file size.

how can the current speed be calculated?

<xarray.Dataset>
Dimensions:      (time: 240, depth: 20, lat: 106, lon: 152)
Coordinates:
    lon_rho      (lat, lon) float32 ...
    lat_rho      (lat, lon) float32 ...
  * depth        (depth) float32 -0.975 -0.925 -0.875 ... -0.125 -0.075 -0.025
  * time         (time) datetime64[ns] 2022-06-30T01:00:00 ... 2022-07-10
Dimensions without coordinates: lat, lon
Data variables:
    temperature  (time, depth, lat, lon) float32 ...
    salt         (time, depth, lat, lon) float32 ...
    u            (time, depth, lat, lon) float64 ...
    v            (time, depth, lat, lon) float64 ...
    m_rho        (time, depth, lat, lon) float64 ...
Attributes:
    description:  CROCO output from algoa Bay model transformed lon/lat/depth...