Display true color imagery
...
Anchor | ||||
---|---|---|---|---|
|
Anchor | ||||
---|---|---|---|---|
|
...
The grid display is used in DELFTDelft-FEWS for viewing grid time series. These grid time series can be dynamically animated against a map background (comparable to the main map display).
Files following the gridDisplay.xsd need to be placed in the DisplayConfigFiles folder and can be referenced in the explorerTask using the displayConfigFileName. If desired gridPlotGroup-specifications can be placed in separate files following the gridPlotGroups.xsd while referencing the gridPlotGroupId in the gridDisplay (available since 2019.02). Since 2020.02, GridPlots with empty locationsets are automatically hidden. Users are informed with an info message.
Figure 143 Example of a configuration of the Grid Display
...
Name of the Grid Display. When opened this will appear in the title bar of the window.
showPlotTreeHideAllToolWindows
If true, indicates that the data viewer and tool windows must be closed when spatial display is configured.
defaults
Used to specify attributes that should apply to several gridPlots. Specifying which gridPlots the defaults apply to can be done through parameterGroupId, plotGroupId or plotId. When an attribute that is specified through defaults is needed, FEWS will search for the first defaults that contains the needed attribute and applies to the current gridPlot. If no parameterGroupId, no plotGroupId and no plotId is specified, the defaults is considered to apply to all gridPlots. Note that such a general defaults may override settings made in more specific defaults if it is found first by FEWS, when this occurs try specifying the most general defaults last.
timeDisplayLabels
When specified, the external forecast time and current time are plotted on the configured position on the map. In case of multiple forecasts, only the latest forecast time is displayed. By default (i.e. when option is not configured) no time labels are displayed on the map.
gridPlotGroup
Definition of a group in the grid display. Each group may have its own set of maps and time series to display. Defining groups creates a tree view in the left of the display (see example above). Multiple instances may exist.
...
- id : Id of the grid plot- this is used in the tree view. If not unique, a warning will be logged.
- name : Optional name of the grid plot- used for reference purposes only
- contourlinescolor: required when the "contourlines button" in the griddisplay should be enabled
...
- 2D data, e.g. water level
- 3D data, e.g. a combination of uTimeSeriesSet, VTimeSeriesSet and sigmaScaleReferenceTimeSeriesSet
- 3D data, e.g. a combination of timeSeriesSet (e.g. temperature) and sigmaScaleReferenceTimeSeriesSet
Of gridded ensemble datasets, only one ensemble member can be shown per gridplot. So this requires setting the ensembleMemberIndex of the specific TimeSeriesSet. Since 2019.02 it is possible to open a thumbnail display showing all ensemblemembers ensemble members for the selected timestep. In this case, in the TimeSeriesSet the ensembleMemberIndexRange should be set.
...
- timeSeriesSet: displayed as dots (see figure)
- uTimeSeriesSet and vTimeSeriesSet: displayed as arrows
- uTimeSeriesSet and vTimeSeriesSet, as well as a timeSeriesSet for the wind velocity for the same location(s): displayed as dots and arrows combined, resembling wind vanes (see figure)
...
showArrowsOnLines
This element is available since 2018.01, in combination with a dataLayer containing a timeSeriesSet element. If this is set to true (false by default) and the locationSet in the timeSeriesSet contains (poly)-lines, the lines drawn in the spatial display will include directional arrows. If the time series has a positive value for a line, the arrow will point from the start of the line (first point found in the shape file) to the end of the line (second point found in the shape file). If the value is negative, the arrow is inverted. See the figures for examples.
...
- <dateTimeParameter> : used to specify how the time should be passed in the url when requesting (parts of) the wms layer from the server. The name attribute specifies the name of the time parameter, the format specifies the datetime format pattern used and the timeZone attribute can be used to specify in which timezone the time should be passed. For example <dateTimeParameter name="time" format="yyyy-MM-dd" timeZone="GMT"/> will result in "time=2019-05-17" being added to the request url (when that date is selected on the time slider).
- <timeStep> : the timeStep used when displaying the wms layer. You can find out the timestep supported by the WMS server for the layer you wish to animate by requesting its capabilities as described on the geoMap page.
- <relativeViewPeriod> : the view period over which the wms layer will be displayed. You can find out the period supported by the WMS server for the layer you wish to animate by requesting its capabilities as described on the geoMap page.
...
trackLayer
Use this option to show a track of a particle, ship etc.
Code Block |
---|
<trackLayer>
<dotFillColor>black</dotFillColor>
<dotSize>1</dotSize>
<onlyShowDotForCurrentTime>true</onlyShowDotForCurrentTime>
<geoDatum>WGS 1984</geoDatum>
<xTimeSeriesSet>
<moduleInstanceId>ImportDrifters</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>Longitude</parameterId>
<locationSetId>Drifters</locationSetId>
<timeSeriesType>simulated forecasting</timeSeriesType>
<timeStep unit="nonequidistant"/>
<readWriteMode>read complete forecast</readWriteMode>
</xTimeSeriesSet>
<yTimeSeriesSet>
<moduleInstanceId>ImportDrifters</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>Latitude</parameterId>
<locationSetId>Drifters</locationSetId>
<timeSeriesType>simulated forecasting</timeSeriesType>
<timeStep unit="nonequidistant"/>
<readWriteMode>read complete forecast</readWriteMode>
</yTimeSeriesSet>
<valueTimeSeriesSet>
<moduleInstanceId>ImportDrifters</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>Age</parameterId>
<locationSetId>Drifters</locationSetId>
<timeSeriesType>simulated forecasting</timeSeriesType>
<timeStep unit="nonequidistant"/>
<readWriteMode>read complete forecast</readWriteMode>
</valueTimeSeriesSet>
</trackLayer> |
showThumbnailsPanel
If this is If this is true, then the grid display shows the spatial thumbnails panel when this grid plot is selected. Otherwise the grid display will not show the spatial thumbnails panel when this grid plot is selected. Default is false. After this grid plot has been selected, the user can still switch on/off the spatial thumbnails panel manually, using the toggle button in the grid display.
...
Before 2017.02, the user settings were never used to reinstate the status of the thumbnails panel on startup, the panel was always hidden. When selecting grid plots, the panel was shown / hidden depending on the configuration, until the user manually switches the panel on or off. Once a manual change was made, the panel remained shown / hidden even when selecting different grid plots for the remainder of the session.
openEnsembleThumbnailsWindowWhenSelected
If this is true and the grid plot contains ensemble time series, then the ensemble thumbnails window will be opened directly after selecting the grid plot. Default is false.
legendStyle
The legend can be shown as table legend or as bar legend.
Default legend style is table. Bar legend shows fluent scale bar on the right.
...
- position: legend can be placed on the right, on the left, at the top or at the bottom. Default is on the right.
- width: width of the bar in pixels. Default is 40 pixels.
- length: length of the bar in pixels. The defaults are 400 pixels for legend on the right/left, and for the legend at the top/bottom the length equals the width of the window.
- labelsInside: if true, ticks and labels are displayed inside the legend bar. By default (false) labels and ticks are placed outside the color bar.
- labelsColor (since 2021.01): color of the tick label texts. If omitted, the outside labels are black and the inside labels are white.
- labelsBackgroundColor (since 2021.01): background color of the tick labels. If omitted, white color is used. Note that this option is not implemented for inside ticks and labels (i.e.: labelsInside=true).
- labelsBackgroundOpaquenessPercentage (since 2021.01): transparency/opaqueness of the background of the tick labels. 0% is completely transparent and 100% is completely opaque. If omitted then the background is not transparent. Note that this option is not implemented for inside ticks and labels (i.e.: labelsInside=true).
- logarithmic (since 2024.01, backported to 2023.01): if true the legend ticks and color breaks are spaced logarithmically.
Elements of the configuration of legend style
...
Code Block | ||||
---|---|---|---|---|
| ||||
<dataLayer> <visibleInTimeSeriesDisplay>true</visibleInTimeSeriesDisplay> <visibleInSpatialDisplay>true</visibleInSpatialDisplay> <arrowDirection>from</arrowDirection> <multipleArrowsPerValue>false</multipleArrowsPerValue> <arrowMinimumPixelDistanceBetweenTwoCellCenters>2</arrowMinimumPixelDistanceBetweenTwoCellCenters> <valueTimeSeriesSet> <moduleInstanceId>Import_Wavenet</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Wave.obs.total.height</parameterId> <locationSetId>UK_Coastal_Gauged_Wave</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep unit="nonequidistant"/> <relativeViewPeriod unit="hour" start="-48" startOverrulable="true" end="0" endOverrulable="false"/> <readWriteMode>read only</readWriteMode> </valueTimeSeriesSet> <directionTimeSeriesSet> <moduleInstanceId>Import_Wavenet</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Wave.obs.peak.dir</parameterId> <locationSetId>UK_Coastal_Gauged_Wave</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep unit="nonequidistant"/> <relativeViewPeriod unit="hour" start="-48" startOverrulable="true" end="0" endOverrulable="false"/> <readWriteMode>read only</readWriteMode> </directionTimeSeriesSet> </dataLayer> <classBreaks> <lowerColor>blue</lowerColor> <upperColor>red</upperColor> <lowerSymbolSize>20</lowerSymbolSize> <upperSymbolSize>100</upperSymbolSize> <lowerValue>0</lowerValue> <lowerValue>5</lowerValue> </classBreaks> |
...
uTimeSeriesSet / vTimeSeriesSet
...
Additional timeSerieSet to link the sigma layers in a 3D model to indexed layers. For this you also need a locationSet linking a parentLocation to all sigma layers. Each sigma layer is linked to an index in a MapLayerFile. The parentLocation needs to be defined in Location.xml, linked to a grid definition in Grids.xml. See for a full config example Sigmalayers - display D-FlowFM 3D results in GridDisplay.FlowFM 3D results in GridDisplay.
zParameterId (since 2018.01)
When configured a vertical slide is displayed to interpolate between the layers. Configure only the most important layers. The sibling layers are used automatically
Display true color imagery
...
Available since: version 2019.02, patch #93400
...
By specifying a (3 bands) red, green and blue time series sets that provide values between 0..255 you can store and show true color satellite images as a grid time series. There is no need to configure classbreaks. You can change the brightness and contrast for each color channel separately. The incrementer changes the brightness and the multiplier the contrast of the color channel. When the incrementer + multiplier * value exceeds 255 it is it set to 255, when the result is negative the color channel is set to 0. Since the 2020.02 it is possible to display a true color image and a normal grid with a legend at the same time.
...
- <movingAverageTimeSpan>: When configured a slider is displayed with the configured time spans. If a time span is selected in the slider, then the data in the grid display is aggregated (moving average) using that time span. The start of a timeSpan is exclusive and the end of a timeSpan is inclusive. Configure a very large time span (eg 100000 days) to allow the user to see the total average of the loaded time series.
- <movingAccumulationTimeSpan>: When configured an accumulation slider is displayed with the configured time spans. If a time span is selected in the slider, then the data in the grid display is aggregated (moving accumulation) using that time span. The start of a timeSpan is exclusive and the end of a timeSpan is inclusive. Configure a very large time span (eg 100000 days) to allow the user to see the total sum of the loaded time series.
- <accumulationTimeSpan>: Since 2014.02. When configured an accumulation slider is displayed with the configured time spans. When a time span is selected with the slider, the interval of the ticks in the time slider in the grid display is recalculated to the selected time step. Configure a very large time span (eg 100000 days) to allow the user to see the total sum of the loaded time series.
- <accumulationTimeStep>: Since 2016.02. When configured an accumulation slider is displayed with the configured time steps. When a time step is selected with the slider, the interval of the ticks in the time slider in the grid display is recalculated to the selected time step. Configure a very large time step (eg 100 years) to allow the user to see the total sum of the loaded time series.
- <hideLastValueCheckBox>: Since 2017.02. Default false. When set to true, the "show last value" will be hidden. Note that if an accumulation slider is configured, the checkbox will be hidden by defaulthidden. Note that if an accumulation slider is configured, the checkbox will be hidden by default.
Note: When using this functionality in the Grid Display it is important to know that when hte moving option is deactivated, the accumulation periods are relative to the Display time of the Grid Display. When you want to step with daily time steps at 00:00 hours through a rainfall series, first set the display time to 00:00 hours. Then accumulate the data to daily steps. The accumulated timeseries will calculate daily interval series form 00:00 to 00:00 next day.
Config example for configuring a moving accumulation time span slider:
Code Block | ||||
---|---|---|---|---|
| ||||
<gridPlot id="MeteoSat"> <!-- omitted the time series configuration for clarity --> <movingAccumulationTimeSpan unit="hour" multiplier="6"/> <movingAccumulationTimeSpan unit="hour" multiplier="12"/> <movingAccumulationTimeSpan unit="day" multiplier="1"/> <movingAccumulationTimeSpan unit="day" multiplier="2"/> <movingAccumulationTimeSpan unit="day" multiplier="3"/> </gridPlot> |
verticalSliderRange
...
Available since: 2017.02
...
When a sigmaScaleReferenceTimeSeriesSet is configured, a vertical slider becomes automatically visible in GridDisplay to slide through the water column, displaying the 2D model results at a arbitrary water depth. The values displayed are dynamically interpolated between the sigma layers of the model, but only for the visible time step for performance reasons. The range of the slider is automatically adjusted to all available water depths for whole period, however you can limit this range using the <verticalSliderRange> option. See for a config example Sigmalayers - display D-FlowFM 3D results in GridDisplay.but only for the visible time step for performance reasons. The range of the slider is automatically adjusted to all available water depths for whole period, however you can limit this range using the <verticalSliderRange> option. By default 100 ticks with 10 intervals each are visible at the vertical slider. Since FEWS 2021.01 you can control the tick distance with the interval attribute in the verticalSliderRange. The direction is controlled with verticalPositiveDirection in the parameters.xml of the sigmaScaleReferenceTimeSeriesSet parameter. See for a config example Sigmalayers - display D-FlowFM 3D results in GridDisplay.
Since 2022.02 ticks can be configured with irregular spacings. The following config is for 5 irregularly spaced tick marks:
Code Block | ||
---|---|---|
| ||
<verticalSliderRange start="0" end="-1000" ticks="0,-1,-10,-22,-1000"></verticalSliderRange> |
Info | ||
---|---|---|
| ||
The time slider ticks at the top of the gridDisplay are always colored are according to the top layer, even when a different depth is selected in the vertical slider. |
...
Option to set the speed (in milliseconds per frame) for an animation. Default value is 200 milliseconds. Available since 2019.02.
...
workflow
Adds a run button to the toolbar. When the user hits this button the configured is started workflow is started. The point or area selected at the map is add added to the task run properties which can be used in the workflow. The selected area can be exported by the general adapter as a shape file. A popup is displayed before the run is started to allow the user to enter additional properties. When the sketch type is configured a popup is displayed for the wrong sketch type before the workflow is started
Code Block | ||
---|---|---|
| ||
<workflow>
<workflowId>Import</workflowId>
<sketchType>point<sketchType>
<properties>
<string key="test" value="test"/>
<string key="choice" value="A|B|C"/>
</properties>
</workflow>
|
...
Definition of the maps used as a background to the dynamic grid displayed. The layout and zoom extent are also defined in this element. More information on the configuration of the geoMap element can be found here.the configuration of the geoMap element can be found here.
locationFilterAttributeId
Specify the location attributes the user can use to filter the locations/polygons/lines/grids that are visible in the plot. When specified the filter by location attribute button will be enabled. If a attribute name besides the id in the locationsSets.xml is specified this will be used in the attribute filter tree.
example
<locationFilterAttributeId>URBS_CATCHMENT</locationFilterAttributeId>
<locationFilterAttributeId>REGION</locationFilterAttributeId>
Anchor | ||||
---|---|---|---|---|
|
Anchor | ||||
---|---|---|---|---|
|
Definition of colors to use in displaying the dynamic grid. These are also shown in the legend on the left of the grid display (see example elsewhere on this page). Optional when default class breaks are available for this plot group and parameter group.
Figure 145 Elements of the configuration of class breaks
Classbreaks can also be configured in the TimeSeriesDisplayConfig.xml file . If this functionality is used, a reference to the classBreakId is required. When using the Deft-FEWS Web-OC, all classbreaks need to be configured this way otherwise no legend is shown in the WMS layer of the spatial display.
<classBreaksId>rainfall</classBreaksId>
description
Optional description. Since FEWS 2017.01 it is allowed to have multiple class breaks for a plot. The user can switch between the class breaks with a drop down list. This description is used in the drop down list.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <gridPlotGroups xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews httphttps://fewsfewsdocs.wldelftdeltares.nl/schemas/version1.0/gridPlotGroups.xsd"> <gridPlotGroup id="DFlow-FM" name="DFlow-FM"> <gridPlot id="Observed" name="Observed2"> <timeSeriesSet> <moduleInstanceId>Import_Telemetry</moduleInstanceId> <valueType>grid</valueType> <parameterId>P.obs</parameterId> <locationId>Delft3DFM_PROI1</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" start="-96" end="48"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </gridPlot> <gridPlot id="Forecast" name="Forecast"> <timeSeriesSet> <moduleInstanceId>Import_Telemetry</moduleInstanceId> <valueType>grid</valueType> <parameterId>P.obs</parameterId> <locationId>Delft3DFM_PROI1</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep unit="hour"/> <relativeViewPeriod unit="hour" start="-96" end="48"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </gridPlot> </gridPlotGroup> </gridPlotGroups> |
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <gridDisplay xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews httphttps://fewsfewsdocs.wldelftdeltares.nl/schemas/version1.0/gridDisplay.xsd"> ...... <gridPlotGroupId>DFlow-FM</gridPlotGroupId> </gridDisplay> |
...
Code Block | ||||
---|---|---|---|---|
| ||||
<gridPlot id="3D_data" name="3D data display"> <dataLayer> <arrowColor>white</arrowColor> <arrowSymbol>flow</arrowSymbol> <multipleArrowsPerValue>false</multipleArrowsPerValue> <uTimeSeriesSet> <moduleInstanceId>DFlowFM_FC</moduleInstanceId> <valueType>grid</valueType> <parameterId>C.simulated.u</parameterId> <locationSetId>DFlowFM_0_####</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="nonequidistant"/> <readWriteMode>read complete forecast</readWriteMode> </uTimeSeriesSet> <vTimeSeriesSet> <moduleInstanceId>DFlowFM_FC</moduleInstanceId> <valueType>grid</valueType> <parameterId>C.simulated.v</parameterId> <locationSetId>DFlowFM_0_####</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="nonequidistant"/> <readWriteMode>read complete forecast</readWriteMode> </vTimeSeriesSet> <uvAmplitudeParameterId>C.simulated.speed</uvAmplitudeParameterId> <uvDirectionParameterId>C.simulated.dir</uvDirectionParameterId> <sigmaScaleReferenceTimeSeriesSet> <moduleInstanceId>DFlowFM_FC</moduleInstanceId> <valueType>grid</valueType> <parameterId>WD.simulated</parameterId> <locationSetId>DFlowFM.merged</locationSetId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="nonequidistant"/> <readWriteMode>read complete forecast</readWriteMode> </sigmaScaleReferenceTimeSeriesSet> </dataLayer> <barLegend> <position>right</position> <width>50</width> <length>400</length> <labelsInside>true</labelsInside> </barLegend> <classBreaksId>Class.Currents</classBreaksId> <contourLinesColor>antique white</contourLinesColor> </gridPlot> |
...
ClassBreak labels
If label is configured in a classbreak, the legend will show the label in the table instead of the values. When a mouse is hovering over a point, the tooltip will show the configured value if there is no label, and the label plus the value if there is a label (since 2018.02.). Notice in the example below that one of the breaks has no label.
...
Showing T0 or last import time underneath plot
work in progress