.. _viewing: Viewing ======= The viewing interface is implemented following the `Web Map Tile Service (WMTS) `_ as well as the `Web Map Service (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:`samplerequests`. 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) `_ 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= [, , ]`` * 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:`samplerequests` for detailed examples of all supported parameters. .. _loading_qgis: 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 `_. 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* A login window may appear to access the data. The basic authentication credentials should be entered here. .. _fig_wms_qgis6: .. figure:: images/wms_qgis6.png :alt: Login window *Login window* 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* Some layers offer styles. In :numref:`fig_wms_qgis7` the jet colorbar is selected. Additionally you can specify Tile size to 256x256 for partial loading. .. _fig_wms_qgis7: .. figure:: images/wms_qgis7.png :alt: Styles and parameters *Styles and parameters* An 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) is through a maintained plugin called `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* The plugin needs to be installed first and then set up with the desired layer. The raster layer to be added to the TimeManager must be first added to the workspace as shown in :ref:`loading_qgis`. By clicking the `Settings` button and following up with the `Add raster` button as can be seen in :numref:`fig_wms_qgis4` it can be then chosen from the list of layers. It is also suggested to add Start 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* After setting the layer up, it is possible to change the time interval length (for example one month) and view all products in that interval. After clicking the `play` button, it displays the layer iteratively from the defined Start time to the defined End time, always displaying each frame for a set number of milliseconds. .. only:: builder_html It even allows exporting an animation as shown in :numref:`fig_wms_qgis5` below. .. _fig_wms_qgis5: .. figure:: images/wmts_animation.gif :alt: GIF animation from TimeManager *GIF animation created from TimeManager* New support for time aware layers was added in QGIS Version 3.14 called **Temporal Controller**. `This video `_ directly from the author of the feature shows the usage. However, due to the way that Capabilities of layers are provided by both View Server components Cache and Renderer, the QGIS Temporal Controller can not parse the time dimension metadata correctly. When a layer with a temporal dimension is loaded it will have temporal options available via the properties, and can be manipulated with the Temporal Controller. The Temporal Controller can be initialized with Right Click on the Panels > Temporal Controller. In the Temporal Controller the time range can be set and the temporal bar can be moved to the desired date and the data loaded corresponds to the date selected. .. _fig_wms_qgis8: .. figure:: images/wms_qgis8.* :alt: Time Controller panel *Time Controller panel* .. _fig_wms_qgis9: .. figure:: images/wms_qgis9.png :alt: Temporal properties *Temporal properties* For performance reasons the 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. 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. New versions of QGIS can use the Temporal Controller native functionality and older versions should use the TimeManager plugin to view data from the View Server .. _loading_arcmap: Loading in ArcMap 10 -------------------- Any of the above described layers can be loaded in ArcMap 10, but the inbuilt time support does have the same issues as in the case of QGIS 3.14 Time Controller. Therefore a custom `TIME` parameter has to be added manually in the Layer settings. To add a WMS/WMTS layer, click on the `Add Layer` symbol. Select the `Add GIS Server` option and follow up with either `Add WMS Server` or `Add WMTS Server`, as can be seen on :numref:`fig_wms_arcgis0`, :numref:`fig_wms_arcgis1`, and :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 *WMS/WMTS loading in ArcMap* Then user is required to insert the service `URL` and click `Get Layers`. If the service is secured with some sort of authentication, the user must provide a valid `username` and `password` on the login attempt. After they are supplied, the list of available layers appears, as seen on :numref:`fig_wms_arcgis3`, and :numref:`fig_wms_arcgis4`. .. _fig_wms_arcgis3: .. figure:: images/arcgis_3.* :alt: ArcMap add WMS Server panel *ArcMap add WMS Server panel* .. _fig_wms_arcgis4: .. figure:: images/arcgis_4.* :alt: ArcMap add WMS Server panel *ArcMap add WMS Server panel* This layer then gets added into the list of layers to choose from for adding into the workspace, as seen on :numref:`fig_wms_arcgis5`. A user than follows into the nested structure of sublayers to select the one to explore, as seen on :numref:`fig_wms_arcgis6`, :numref:`fig_wms_arcgis7`, and :numref:`fig_wms_arcgis8`. .. _fig_wms_arcgis5: .. figure:: images/arcgis_5.* :alt: Select layers *Select layers* .. _fig_wms_arcgis6: .. figure:: images/arcgis_6.* :alt: Select layers *Select layers* .. _fig_wms_arcgis7: .. figure:: images/arcgis_7.* :alt: Select layers *Select layers* .. _fig_wms_arcgis8: .. figure:: images/arcgis_8.* :alt: Select sublayers *Select sublayers* In order to limit the displayed time interval, a user needs to add the `TIME` parameter to the requests by accessing `Layer Properties`, expand the Tab **Parameters** and enter the time interval as can be seen on :numref:`fig_wms_arcgis9`. If the TIME parameter was already added in the previous step of adding a WMS Server, it can not be added for the request twice and needs to be changed for the whole Data Source. .. _fig_wms_arcgis9: .. figure:: images/arcgis_9.* :alt: Set custom TIME parameter *Set custom TIME parameter* Continue reading to learn about the provided :ref:`searching` services.