index.rst 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. .. _community_netcdf_ghrsst:
  2. GHRSST NetCDF output
  3. =====================
  4. `GHRSST <https://www.ghrsst.org/>`_ is Group for High Resolution Sea Surface Temperature.
  5. Among its various activities it issued a `specification on how sea surface temperature data should be organized
  6. in NetCDF files <ftp://podaac.jpl.nasa.gov/OceanTemperature/ghrsst/docs/GDS20r5.pdf>`_.
  7. The NetCDF GHRSST module allows to generate complaint GHRSST files as WCS outputs, given a compliant GHRSST input.
  8. Installation
  9. ------------
  10. As a community module, the package needs to be downloaded from the `nightly builds <https://build.geoserver.org/geoserver/>`_,
  11. picking the community folder of the corresponding GeoServer series (e.g. if working on the GeoServer main development branch nightly
  12. builds, pick the zip file form ``main/community-latest``).
  13. To install the module, unpack the zip file contents into GeoServer own ``WEB-INF/lib`` directory and
  14. restart GeoServer.
  15. For the module to work, the :ref:`netcdf` and :ref:`netcdf-out` extensions must also be installed.
  16. Input preparation
  17. -----------------
  18. A GHRSST file contains multiple variables that are related with each other, and should be explored
  19. together in order to better understand the data. Thus, it is assumed that the source GHRSST file is published
  20. as a single coverage view holding all the variables as bands, retaining their native name (this is important for
  21. the plugin to work):
  22. .. figure:: images/coverageView.png
  23. :align: center
  24. *Setting up a coverage view with all variables as bands*
  25. A GHRSST output must also have a time, so the time dimension of this layer should be enabled (the output generation will fail
  26. with an error otherwise).
  27. At the time of writing a coverage view requires the source bands to be of uniform data type, and the data sources might
  28. not be. In case setting up the view is not possible with the data available, a NCML file can be used to reprocess
  29. the source NetCDF into one that has bands with uniform data type. A downloadable example has been provided to facilitate
  30. setting up the view.
  31. :download:`Download the reference NCML transformation <artifacts/ghrsst.ncml>`
  32. The GHRSST may also have to be setup in a image mosaic in order to provide a deep temporal layer that users can select
  33. data from. The image mosaic setup can be complex, so a downloadable example has been provided for it as well (will require
  34. some changes, at a minimum, fix the paths at the bottom of indexer.xml, and the database connection parameters in the
  35. two datastore properties files).
  36. :download:`Download the sample mosaic configuration files <artifacts/ghrsst_mosaic.zip>`
  37. Configuring GHRSST output
  38. -------------------------
  39. The normal WCS NetCDF output will pick the first band of a coverage and generate a single variable NetCDF output.
  40. When the GHRSST plugin is installed, a new UI element will show up that enables GHRSST output:
  41. .. figure:: images/ghrsstConfiguration.png
  42. :align: center
  43. *Enabling GHRSST output mode*
  44. Notes about the configuration UI:
  45. * Various normal configurations such as variable name, unit of measure, and data packing will be ignored (each
  46. variable in GHRSST has its own assigned data type and packing, as from specification)
  47. * For the output to be compliant, enable copy of both global and per variable attributes
  48. * The RDAC, Processing Level, SST Type and Product String have to be filled in order to generate a valid GHRSST
  49. file name in output. The user interface provides auto-complete with names picked from the specification, but others
  50. can be inputed as well.
  51. For the output to generate correctly the coverage band names have to follow exactly the expected specification variable
  52. names (which comes naturally if the input is valid GHRSST), variable will be re-packed in output according to
  53. specification, so even if the inputs are all floats, the output will follow the expected data types.
  54. Any extra coverage band not present in the specification will be copied from input to output un-modified.