Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Specifically a Web Coverage Service (WCS) returns a netCDF file from a structured url query.This documentation contains:

1) Data Provider Documentation

2) Sample Configuration

3) Instructions for Creating a Subset Grid, and,

4) Known issues

Table of Contents

This data import is available since Delft-FEWS 2018.02 and a patch more recent then January, 2020.

Please comment if anything further is needed or requires updating.

1) Data Provider Documentation

. Since version 2022.02 it is possible to access data that require authentication with username and password


The data can be downloaded on the same grid as DataMart is not subsetting is requested. If subsetting is requested, than a different grid will be requested.

 Instructions for Creating a Subset Grid are provided at the near the end of this documentation.

1) Data Provider Documentation

This service is hosted by the Meteorological This service is hosted by the Meteorological Service of Canada:

For an overview of the Web Coverage Service, refer to: https://eccc-msc.github.io/open-data/msc-geomet/web-services_en/#web-coverage-service-wcs

...

The two variables accessed are precipitation (PC.nwp) and temperature (TA.nwp).

...

Infocode
titleReference to NWP

Notice that the reference to the NWP is not included in the URL, as is often the case with server imports, but is included as part of the IdMapping (externalParameter)


TimeseriesImportRun (Deterministic Forecast)


Code Block
languagexml
linenumberstrue
<timeSeriesImportRun xmlns=
languagexml
linenumberstrue
<timeSeriesImportRun xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/timeSeriesImportRun.xsd">
	<import>
		<general>
			<importType>CanadaMeteoWCS</importType>
			<serverUrl>https://geo.weather.gc.ca/geomet?SERVICE=WCS&amp;VERSION=2.0.1&amp;REQUEST=GetCoverage</serverUrl>
			<relativeViewPeriod unit="hour" start="3" end="240" startOverrulable="true" endOverrulable="true"/>
			<idMapId>IdImportCanadaWCS</idMapId>
		</general>
		<relativeViewPeriod unit="hour" start="3" end="72" startOverrulable="true" endOverrulable="true"/<!--startTimeShift and above start of 3 needs as precipitation is an accumulative variable not available at the first forecast time-->
		<startTimeShift>
			<parameterId>PC.nwp</parameterId>
			<relativePeriod start="-3" end="0" unit="hour"/>
		</startTimeShift>
		<properties>
			<string key="subsettingCrs" value="EPSG:4326"></>string>
		</properties>
		<timeSeriesSet>
			<moduleInstanceId>ImportGDPS</moduleInstanceId>	<string key="interpolation" value="value"></string>
			<valueType>grid</valueType><string key="outputCrs" value="value"></string>
			<parameterId>PC.nwp</parameterId><string key="rangeSubset" value="value"></string>
			<locationId>GDPS_WCS</locationId>
			<timeSeriesType>external forecasting</timeSeriesType><bool key="useSubset" value="true"></bool>
			<timeStep<int unitkey="hourdelayInHours" multipliervalue="3"/>24"></int>
		</properties>
		<timeSeriesSet>
			<readWriteMode>add originals<<moduleInstanceId>ImportGDPS</readWriteMode>moduleInstanceId>
		<	<valueType>grid</timeSeriesSet>valueType>
		<externUnit parameterId="PC.	<parameterId>PC.nwp</parameterId>
			<locationId>GDPS</locationId>
			<timeSeriesType>external forecasting</timeSeriesType>
			<timeStep unit="hour" multiplier="3"/>
			<readWriteMode>add originals</readWriteMode>
		</timeSeriesSet>
		<externUnit parameterId="PC.nwp" unit="kg m-2" cumulativeSum="true"/>
	</import>
	<import>
		<general>
			<importType>CanadaMeteoWCS</importType>
			<serverUrl>https://geo.weather.gc.ca/geomet?SERVICE=WCS&amp;VERSION=2.0.1&amp;REQUEST=GetCoverage</serverUrl>
			<relativeViewPeriod unit="hour" start="0" end="240" startOverrulable="true" endOverrulable="true"/>
			<idMapId>IdImportCanadaWCS</idMapId>
		</general>
		<properties>
			<string key="subsettingCrs" value="EPSG:4326"/>
		</properties>
		<timeSeriesSet>
			<moduleInstanceId>ImportGDPS</moduleInstanceId>
			<valueType>grid</valueType>
			<parameterId>TA.nwp</parameterId>
			<locationId>GDPS_WCS<<locationId>GDPS</locationId>
			<timeSeriesType>external forecasting</timeSeriesType>
			<timeStep unit="hour" multiplier="3"/>
			<readWriteMode>add originals</readWriteMode>
		</timeSeriesSet>
		<externUnit parameterId="TA.nwp" unit="K"/>
	</import>
</timeSeriesImportRun>

...

Property  subsettingCrs is optional. If not configured, the "&SUBSETTINGCRS=EPSG" will not be added to the url. 

IdMapping

Property useSubset is optional. Default value is true. If set to false, no subset will be added to the url. Values will be pulled from the configured grid.

Properties interpolation, outputCrs,rangeSubset are optional. If configured, INTERPOLATION=configuredValue, OUTPUTCRS=configuredValue, RANGESUBSET=configuredValue will be added to the url, respectively.

Property delayInHours is optional. If configured DIM_REFERENCE_TIME=date will be aded to the url, where date is T0-delayInHours.


TimeseriesImportRun (Ensemble Forecast with 21 members)

The configuration code below is for the REPS Ensemble Forecast with 21 members. 

Note that the workflow should use an ensemble loop as in the first code block below:

Code Block
languagexml
linenumberstrue
	<activity>
		<runIndependent>true</runIndependent>
		<moduleInstanceId>ImportREPS</moduleInstanceId>
		<ensemble>
			<ensembleId>REPS</ensembleId>
			<runInLoop>false</runInLoop>
		</ensemble>
	</activity>


Code Block
languagexml
linenumberstrue
<timeSeriesImportRun xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/timeSeriesImportRun.xsd">
	<import>
		<general>
			<importType>CanadaMeteoWCS</importType>
			<serverUrl>https://geo.weather.gc.ca/geomet?SERVICE=WCS&amp;VERSION=2.0.1&amp;REQUEST=GetCoverage</serverUrl>
			<relativeViewPeriod unit="hour" start="3" end="72" startOverrulable="true" endOverrulable="true"/>
			<idMapId>IdImportCanadaWCS</idMapId>
		</general>
		<!--startTimeShift and above start of 3 needs as precipitation is an accumulative variable not available at the first forecast time-->
		<startTimeShift>
			<parameterId>PC.nwp</parameterId>
			<relativePeriod start="-3" end="0" unit="hour"/>
		</startTimeShift>
		<properties>
			<string key="subsettingCrs" value="EPSG:4326"/>
		</properties>
		<timeSeriesSet>
			<moduleInstanceId>ImportREPS</moduleInstanceId>
			<valueType>grid</valueType>
			<parameterId>PC.nwp</parameterId>
			<locationId>REPS</locationId>
			<timeSeriesType>external forecasting</timeSeriesType>
			<timeStep unit="hour" multiplier="3"/>
			<readWriteMode>add originals</readWriteMode>
			<ensembleMemberIndexRange start="0" end="20"/>
		</timeSeriesSet>
		<externUnit parameterId="PC.nwp" unit="kg m-2" cumulativeSum="true"/>
	</import>
	<import>
		<general>
			<importType>CanadaMeteoWCS</importType>
			<serverUrl>https://geo.weather.gc.ca/geomet?SERVICE=WCS&amp;VERSION=2.0.1&amp;REQUEST=GetCoverage</serverUrl>
			<relativeViewPeriod unit="hour" start="0" end="72" startOverrulable="true" endOverrulable="true"/>
			<idMapId>IdImportCanadaWCS</idMapId>
		</general>
		<properties>
			<string key="subsettingCrs" value="EPSG:4326"/>
		</properties>
		<timeSeriesSet>
			<moduleInstanceId>ImportREPS</moduleInstanceId>
			<valueType>grid</valueType>
			<parameterId>TA.nwp</parameterId>
			<locationId>REPS</locationId>
			<timeSeriesType>external forecasting</timeSeriesType>
			<timeStep unit="hour" multiplier="3"/>
			<readWriteMode>add originals</readWriteMode>
			<ensembleMemberIndexRange start="0" end="20"/>
		</timeSeriesSet>
		<externUnit parameterId="TA.nwp" unit="K"/>
	</import>
</timeSeriesImportRun>
</idMap>


IdMapping


Code Block
languagexml
Code Block
languagexml
linenumberstrue
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2014 rel. 2 sp1 (http://www.altova.com) by Afdeling ICT (Stichting Deltares) -->
<idMap version="1.1" xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/idMap.xsd">
	<!-- This Id Mapping is for the Import of Gridded Data Products from the Meterological Service of Canada (MSC) Geomet Services -->
	<!-- Regional Deterministic Precipitation Analysis (RDPA) -->
	<map internalLocation="RDPA" internalParameter="PC.sim" externalLocation="RDPA" externalParameter="RDPA.6F_PR"/>
	<!-- Regional Deterministic Precipitation Analysis (HRDPA)-->
	<map internalLocation="HRDPA" internalParameter="PC.sim" externalLocation="none" externalParameter="HRDPA.6F_PR"/>
	<!-- Regional Deterministic Prediction System  (RDPS) -->
	<map internalLocation="RDPS" internalParameter="PC.nwp" externalLocation="none" externalParameter="RDPS.ETA_PR"/>
	<map internalLocation="RDPS" internalParameter="TA.nwp" externalLocation="none" externalParameter="RDPS.ETA_TT"/>
	<!-- High Resolution Regional Deterministic Prediction System  (RDPS) -->
	<map internalLocation="HRDPS" internalParameter="PC.nwp" externalLocation="none" externalParameter="HRDPS.CONTINENTAL_PR"/>
	<map internalLocation="HRDPS" internalParameter="TA.nwp" externalLocation="none" externalParameter="HRDPS.CONTINENTAL_TT"/>
	<!-- Global Deterministic Prediction System (GDPS) -->
	<map internalLocation="GDPS" internalParameter="PC.nwp" externalLocation="none" externalParameter="GDPS.ETA_PR"/>
	<map internalLocation="GDPS" internalParameter="TA.nwp" externalLocation="none" externalParameter="GDPS.ETA_TT"/>
	<!-- Regional Ensemble Prediction System (REPS) - Surface Precipitation-->
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="0" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.01"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="1" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.02"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="2" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.03"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="3" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.04"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="4" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.05"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="5" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.06"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="6" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.07"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="7" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.08"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="8" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.09"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="9" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.10"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="10" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.11"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="11" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.12"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="12" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.13"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="13" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.14"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="14" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.15"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="15" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.16"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="16" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.17"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="17" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.18"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="18" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.19"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="19" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.20"/>
	<map internalLocation="REPS" internalParameter="PC.nwp" internalEnsemble="REPS" internalEnsembleMemberId="20" externalLocation="none" externalParameter="REPS.MEM.ETA_PR.21"/>
	<!-- Regional Ensemble Prediction System (REPS) - Surface Temperature-->
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="0" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.01"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="1" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.02"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="2" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.03"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="3" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.04"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="4" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.05"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="5" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.06"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="6" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.07"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="7" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.08"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="8" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.09"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="9" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.10"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="10" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.11"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="11" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.12"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="12" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.13"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="13" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.14"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="14" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.15"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="15" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.16"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="16" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.17"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="17" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.18"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="18" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.19"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="19" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.20"/>
	<map internalLocation="REPS" internalParameter="TA.nwp" internalEnsemble="REPS" internalEnsembleMemberId="20" externalLocation="none" externalParameter="REPS.MEM.ETA_TT.21"/>
</idMap>

...

1) Define the bounding box coordinates (https://boundingbox.klokantech.com/, try Dublincore below Copy and Paste for clarity)
2) Fill in the url query below:
https://geo.weather.gc.ca/geomet?SERVICE=WCS&VERSION=2.0.1&REQUEST=GetCoverage&COVERAGEID=$VARIABLE_ID$&SUBSETTINGCRS=EPSG:4326&SUBSET=x($westlimit$,$eastlimit$)&SUBSET=y($southlimit$,$northlimit$)&FORMAT=image/netcdf
where:
             $VARIABLE_ID$ is from the WCS getCapabilities, or from the externalIDs in this document.
              $westlimit$, $eastlimit$, $southlimit$ $northlimit$ are an integer bounding box
3) Paste the query in a webbrowser to download a sample file.
4) In your FEWS application, use the functionaility from the F12 menu --> Clipboard --> Copy grib geometry from file.
5) Paste the grid definition in your grids.xml file

4) Known issues

Subsetting definitions are currently required (original grids cannot be pulled). 

Copy grib geometry from file.
5) Paste the grid definition in your grids.xml file. Save and reload FEWS.

6) Run the workflow in DEBUG mode to get the url query generated by FEWS.

7) Use this FEWS generated URL query in a browser to download an additional NetCDF file, then repeat steps 4 and 5.

4) Known issues

No known outstanding issuesDelays are not configurable, meaning that on Stand Alone the T0 may need to be slightly earlier than the current time.