Newer
Older
The viewing interface is implemented following the `Web Map Tile Service (WMTS)
<https://www.ogc.org/standards/wmts>`_ as well as the `Web Map Service (WMS)
<https://www.ogc.org/standards/wms>`_ standards. Both services are implemented
by a wide range of client software which makes it as simple as possible to
integrate the viewing service as needed.
Service endpoints optimized for performance as well as for flexibility are
provided alongside each other. Concrete example URLs demonstrating the
capabilities of the various endpoints are provided in the chapter
:ref:`sample_requests`.
Performance optimized service
-----------------------------
The performance optimized service variant is provided under the path
``/cache/ows?``.
This endpoint offers access to predefined visualizations via WMTS and WMS. The
GetTile as well as GetMap requests are answered from image tiles cached on
object storage when possible. :numref:`fig_wmts_tiles` below shows the three
predefined visualizations, true color, false color, and NDVI of the same image
tile and :numref:`fig_wmts_masked` the unmasked and masked versions using the
validity mask of one tile.
.. _fig_wmts_tiles:
.. figure:: images/wmts_tiles.*
:alt: WMTS Tiles - True color, false color, and NDVI
*WMTS Tiles - True color, false color, and NDVI*
.. _fig_wmts_masked:
.. figure:: images/wmts_masked.*
:alt: WMTS Tiles - Unmasked and masked
*WMTS Tiles - Unmasked and masked*
The operator might configure additional layers besides the default ones. These
layers can offer a specific customization described below as performance
optimized variant.
For example for the VHR Image 2018 dataset not only the three default layers for
True Color, False Color, and NDVI are configured but also the Masked Validity
one as shown in the figures above.
In addition the VHR Image 2018 dataset contains level 1 and 3 products. Thus
individual layers aggregating each level individually are added making the total
of offered layers twelve.
Finally two layers are configured offering a quick true color visualization of
the entire level 3 datasets without support of the time dimension both unmasked
as well as masked. The masked layer is shown in
:numref:`fig_webclient_fulllayer` below.
.. _fig_webclient_fulllayer:
.. figure:: images/webclient_start.*
:alt: Web Client - Full coverage layer
*Web Client - Full coverage layer*
Image tiles not yet present in the cache are stored upon first hit for
consecutive requests. This is the so-called on-demand caching. The operator
might decide for optimal performance, even for the first request, to pre-seed
the cache. Also a mixed variant with a partly pre-seeded cache for example up to
a certain zoom level is possible.
However, this is done fully transparent to the users and the only impact is that
they might need to wait slightly longer when they are the first to visualize a
certain product.
This service offers access on collection level only. Individual products can be
addressed using the ``time`` parameter given that they do not cover one another
on the time axis.
The best performance is offered at the WMTS interface which serves images tiles
as they are cached without the need of any reprocessing. WMS responses are
generated on-the-fly from image tiles and might thus need some reprocessing to
stitch together and scale image tiles.
More sophisticated reprocessing like reprojection or custom color adjustments
are not offered at this endpoint.
Flexible service
----------------
The other service variant offered is optimized for the best possible flexibility
and can be accessed at the path ``/ows?``.
This endpoint offers the following customizations via WMS:
* Access to individual products via ID (``cql=identifier='ID'``)
* Access to entire collections/datasets supporting ``time`` parameter
* Various layers as defined by the `Earth Observation Application Profile of WMS
(EO-WMS) <https://portal.opengeospatial.org/files/?artifact_id=30912>`_ like
one showing outlines of products (``__outlines``)
* Additional useful layers like one showing both, products and outlines,
correctly rendering topology of outlines (``__outlined``) or one showing a
validity mask (``__validity``) or applied validity mask
(``___masked_validity``)
* Numerous styles for layer where feasible like outlines or NDVI
(``layers=ID__NDVI&STYLES=coolwarm``)
* Reprojection to operator configured coordinate reference systems
* Color adjustment via custom linear stretch ``dim_range=<low-red-or-grey>
<high-red-or-grey>[,<low-green> <high-green>,<low-blue> <high-blue>]``
* Filtering of products to render into collection/dataset visualizations via
Common Query Language (CQL) for example ``&cql=cloudCover<1``
* All other standard WMS parameters like ``transparent``, ``format``, etc.
All these customization parameters can of course be combined as needed.
Please see the chapter :ref:`sample_requests` for detailed examples of all
supported parameters.
Loading in QGIS
---------------
Any of the above described layers can be loaded in client software supporting
either the WMTS or WMS standard like for example `QGIS <https://qgis.org>`_.
Open the Data Source Manager as shown in :numref:`fig_wms_qgis1` and create a
new WMS/WMTS Connection using the URL to the layer of interest.
When using parameters like for example ``cql=identifier='ID'`` to view one
individual product make sure to tick the "Ignore GetMap/GetTile URI reported in
capabilities" as these parameters are overwritten otherwise.
.. _fig_wms_qgis1:
.. figure:: images/wms_qgis1.*
:alt: QGIS - Create WMS/WMTS Connection
*QGIS - Create WMS/WMTS Connection*
The next step is to retrieve the capabilities of the created WMS/WMTS Connection
using the Connect button. Selected layers from the list are added using the Add
button as shown in :numref:`fig_wms_qgis2`.
.. _fig_wms_qgis2:
.. figure:: images/wms_qgis2.*
:alt: WMS loading in QGIS
*WMS loading in QGIS*
Important parameter to consider while viewing the layers is the requested time interval,
allowing for example to observe changes over years. One option is to manually add a custom **time=** parameter to the url after checking the `Ignore GetMap URI` checkbox.
For QGIS versions lower than 3.14, the only way how to use WMS layers with time support (WMS-T) was through a maintained plugin called `TimeManager <https://github.com/anitagraser/TimeManager>`_. It offers a convenient way to navigate through the time for raster and vector layers with custom defined steps as shown in :numref:`fig_wms_qgis3`.
.. _fig_wms_qgis3:
.. figure:: images/wms_qgis3.*
:alt: WMS loading in QGIS with TimeManager
*WMS loading in QGIS with TimeManager*
.. only:: builder_html
The plugin needs to be installed first and then set up with the desired layer. The raster layer to be added to TimeManager must be first added to the workspace as shown in :ref:`loading_qgis`. By clicking `Settings` button and following up with `Add raster` button as can be seen in :numref:`fig_wms_qgis4` it can be then chosen from list of layers. It is also suggested to add Start time and End time constrains to narrow down the interval which TimeManager will consider.
.. _fig_wms_qgis4:
.. figure:: images/wms_qgis4.*
:alt: Setup of TimeManager
*Setup of TimeManager*
.. only:: builder_html
After setting the layer up, it is possible to change the time interval length (for example 1 month) and view all products in that interval. After clicking the `play` button, it displays the layer iteratively from defined Start time to End time, always displaying each frame for a set number of milliseconds.
It even allows exporting an animation as shown in :numref:`fig_wms_qgis5` below.
.. _fig_wms_qgis5:
.. figure:: images/wmts_animation.gif
:alt: WMS loading in QGIS
*WMS loading in QGIS*
New support for time aware layers was added in QGIS Version 3.14 called **Temporal Controller**. In detail video guide directly from the author of the feature can be seen on `video link. <https://www.youtube.com/watch?v=vgDg5cRwPRw>`_ However due to the way that Capabilities of layers are provided by the View Server both Cache and Renderer, it is not yet able to parse the time dimension metadata correctly.
For performance reasons View Server lists only start and end of the time interval, in which the collection contains some products. It would not be suitable to list all individual time entries, as there can be easily hundreds of thousands of them. Both QGIS 3.14 and ArcMap 10.4 expect individual time entries listing and then determine its own time related behavior while handling these layers based on them. QGIS 3.14 does not recognize capabilities time interval as time aware layer and does not add the `TIME=` parameter to the WMS/WMTS query.
Any of the above described layers can be loaded in ArcMap 10, but inbuilt time support does run into same issues as in the case of QGIS. Custom `TIME` parameter has to be added manually in Layer settings.
To add a WMS/WMTS layer, Click on `Add Layer` symbol. Select Add GIS Server option and follow up with either add WMS or WMTS Server, as can be seen on :numref:`fig_wms_arcgis0`, :numref:`fig_wms_arcgis1`, :numref:`fig_wms_arcgis2`
.. _fig_wms_arcgis0:
.. figure:: images/arcgis_0.*
:alt: ArcMap Add Data Buttton
*ArcMap Add Data Buttton*
.. _fig_wms_arcgis1:
.. figure:: images/arcgis_1.*
:alt: ArcMap Choose GIS Servers
*Choose GIS Servers*
.. _fig_wms_arcgis2:
.. figure:: images/arcgis_2.*
:alt: ArcMap WMS/WMTS loading in ArcMap 2
*WMS/WMTS loading in ArcMap*
Continue reading to learn about the provided :ref:`searching` services.