New community module: PNG-WIND output format

Hi GeoServer community.

I would like to propose a new community module to introduce a new PNG-WIND output format:slight_smile:

The module will provide a compact PNG encoding of wind vector fields for use in web visualization clients to produce browser-based wind particle animations and other vector field visualizations.

It supports WIND raster layers containing either U/V components or speed and direction, converting them internally to an RGB byte-scaled representation (R=U, G=V, B=mask) suitable for transport and client-side reconstruction.

Moreover PNG tEXt metadata chunks (currently already supported by the GeoServer’s PNG writers) are included containing context details and parameters needed to re-compute the wind values.

The format it’s only supported for GetMaps against a single raster layer (no multi-layer, no layergroups, no vector layers) with exactly 2 bands (either u,v or speed/direction) with some configurable heuristics to recognize other cases where the nomenclature is not the above.

i.e. eastward_wind, u_wind_above_surface,hourly_wind_u_component and the like. (supporting a mix of exact matches and key-words containment checks).

Cheers,

Daniele

+1

What an amusing approach! Is it a standard or convention, or something you came up with?

1 Like

Hi Jody,

It’s not an existing standard, but the general approach is already used in other visualization libraries.

For example:
https://blog.mapbox.com/how-i-built-a-wind-map-with-webgl-b63022b5537f

In that case, wind vector components are encoded into image channels and used as textures for client-side rendering.

The idea for PNG-WIND emerged from internal discussions on how to transmit wind vector fields in a compact, web-friendly way. PNG was chosen because it is a widely supported binary container in web environments, and the necessary scaling information can be stored in PNG text chunks.

Future versions could potentially support additional binary formats as well