Skip to content

Commit 1d099e9

Browse files
committed
update WIS2 Guide build
1 parent 5e5b638 commit 1d099e9

8 files changed

+97
-22
lines changed
134 KB
Loading
108 KB
Loading
194 KB
Loading
File renamed without changes.
111 KB
Loading

cookbook/wis2-cookbook-DRAFT.docx

471 KB
Binary file not shown.

cookbook/wis2-cookbook-DRAFT.html

Lines changed: 97 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ <h1>WIS2 Cookbook</h1>
455455
<td class="tableblock halign-left valign-top" style="background-color: #FFFFFF;"><p class="tableblock"><strong class="big">World Meteorological Organization</strong></p></td>
456456
</tr>
457457
<tr>
458-
<td class="tableblock halign-left valign-top" style="background-color: #FFFFFF;"><p class="tableblock">Date: 2025-07-30</p></td>
458+
<td class="tableblock halign-left valign-top" style="background-color: #FFFFFF;"><p class="tableblock">Date: 2025-08-02</p></td>
459459
</tr>
460460
<tr>
461461
<td class="tableblock halign-left valign-top" style="background-color: #FFFFFF;"><p class="tableblock">Version: 2024-04-16</p></td>
@@ -509,15 +509,16 @@ <h1>WIS2 Cookbook</h1>
509509
<li><a href="#_publishing_a_wis2_notification_message_with_embedded_data">3.3. Publishing a WIS2 Notification Message with embedded data</a></li>
510510
<li><a href="#_publishing_a_wis2_notification_message_for_resource_deletion">3.4. Publishing a WIS2 Notification Message for resource deletion</a></li>
511511
<li><a href="#_validating_a_wmo_core_metadata_profile_record">3.5. Validating a WMO Core Metadata Profile record</a></li>
512-
<li><a href="#_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm">3.6. Advertising client side filters for data subscriptions in WCMP2 and WNM</a>
512+
<li><a href="#_subscribing_to_gdc_reports_of_wcmp2_validation_and_quality_assessment">3.6. Subscribing to GDC reports of WCMP2 validation and quality assessment</a></li>
513+
<li><a href="#_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm">3.7. Advertising client side filters for data subscriptions in WCMP2 and WNM</a>
513514
<ul class="sectlevel3">
514-
<li><a href="#_example_surface_weather_observations">3.6.1. Example: Surface weather observations</a></li>
515-
<li><a href="#_example_numerical_weather_prediction_based_forecast">3.6.2. Example: Numerical weather prediction based forecast</a></li>
515+
<li><a href="#_example_surface_weather_observations">3.7.1. Example: Surface weather observations</a></li>
516+
<li><a href="#_example_numerical_weather_prediction_based_forecast">3.7.2. Example: Numerical weather prediction based forecast</a></li>
516517
</ul>
517518
</li>
518-
<li><a href="#_providing_a_requirements_specification_for_a_wis_2_0_node">3.7. Providing a requirements specification for a WIS 2.0 Node</a>
519+
<li><a href="#_providing_a_requirements_specification_for_a_wis_2_0_node">3.8. Providing a requirements specification for a WIS 2.0 Node</a>
519520
<ul class="sectlevel3">
520-
<li><a href="#_wis_2_0_node_user_requirements_specifications">3.7.1. WIS 2.0 Node - User requirements specifications</a></li>
521+
<li><a href="#_wis_2_0_node_user_requirements_specifications">3.8.1. WIS 2.0 Node - User requirements specifications</a></li>
521522
</ul>
522523
</li>
523524
</ul>
@@ -1034,7 +1035,7 @@ <h3 id="_validating_a_wmo_core_metadata_profile_record"><a class="anchor" href="
10341035
<p>The <a href="https://github.com/World-Meteorological-Organization/pywcmp">pywcmp</a> tool provides a test suite to validate a message against the WCMP2 specification requirements, as well as a Python API for application integration. Consult the pywcmp README on GitHub for more information/examples.</p>
10351036
</div>
10361037
<div class="listingblock">
1037-
<div class="title">Using pywcmp</div>
1038+
<div class="title">Using pywcmp for WCMP2 validation</div>
10381039
<div class="content">
10391040
<pre class="highlight"><code class="language-bash" data-lang="bash"># install pywcmp
10401041
pip3 install pywcmp
@@ -1050,12 +1051,12 @@ <h3 id="_validating_a_wmo_core_metadata_profile_record"><a class="anchor" href="
10501051
</div>
10511052
</div>
10521053
<div class="paragraph">
1053-
<p>A WCMP2 record can also be validated using pywcmp "as a service" using the Canadian WIS2 Global Discovery Catalogue, which provides an online validator:</p>
1054+
<p>A WCMP2 record can also be validated using pywcmp "as a service" using the Canadian and German WIS2 Global Discovery Catalogues, which provide an online validator:</p>
10541055
</div>
10551056
<div class="ulist">
10561057
<ul>
10571058
<li>
1058-
<p>Navigate to <a href="https://wis2-gdc.weather.gc.ca/openapi?f=html" class="bare">https://wis2-gdc.weather.gc.ca/openapi?f=html</a></p>
1059+
<p>Navigate to <a href="https://wis2-gdc.weather.gc.ca/openapi?f=html" class="bare">https://wis2-gdc.weather.gc.ca/openapi?f=html</a> or <a href="https://wis2.dwd.de/gdc/openapi?f=html" class="bare">https://wis2.dwd.de/gdc/openapi?f=html</a></p>
10591060
</li>
10601061
<li>
10611062
<p>Navigate to section <strong>pywcmp-wis2-wcmp2-ets</strong>, endpoint <code>/processes/pywcmp-wis2-wcmp2-ets/execution</code> (POST)</p>
@@ -1070,9 +1071,18 @@ <h3 id="_validating_a_wmo_core_metadata_profile_record"><a class="anchor" href="
10701071
</div>
10711072
<div class="imageblock">
10721073
<div class="content">
1073-
<img src="images/data-publishers-wcmp2-validate-request.png" alt="WIS2 GDC online validator" width="request">
1074+
<img src="images/data-publishers-wcmp2-validate-request-copy-paste.png" alt="WIS2 GDC online validator" width="request via WCMP2 copy/paste">
10741075
</div>
1075-
<div class="title">Figure 1. WIS2 GDC online validator, request</div>
1076+
<div class="title">Figure 1. WIS2 GDC online validator, request via WCMP2 copy/paste</div>
1077+
</div>
1078+
<div class="paragraph">
1079+
<p>Alternatively, the validator service also accepts a URL (if the WCMP2 record is online):</p>
1080+
</div>
1081+
<div class="imageblock">
1082+
<div class="content">
1083+
<img src="images/data-publishers-wcmp2-validate-request-url.png" alt="WIS2 GDC online validator" width="request via WCMP2 URL">
1084+
</div>
1085+
<div class="title">Figure 2. WIS2 GDC online validator, request via WCMP2 URL</div>
10761086
</div>
10771087
<div class="ulist">
10781088
<ul>
@@ -1085,14 +1095,79 @@ <h3 id="_validating_a_wmo_core_metadata_profile_record"><a class="anchor" href="
10851095
<div class="content">
10861096
<img src="images/data-publishers-wcmp2-validate-response.png" alt="WIS2 GDC online validator" width="response">
10871097
</div>
1088-
<div class="title">Figure 2. WIS2 GDC online validator, response</div>
1098+
<div class="title">Figure 3. WIS2 GDC online validator, response</div>
10891099
</div>
10901100
<div class="paragraph">
10911101
<p>A response will be provided with validation results.</p>
10921102
</div>
1103+
<div class="paragraph">
1104+
<p>The WCMP2 standard also has <a href="https://wmo-im.github.io/wcmp2/kpi/wcmp2-kpi-DRAFT.html">(draft) Key Performance Indicators</a> that provide quality assessment in support of continuous improvement of WCMP2 records. pywcmp additionally implements these KPIs using a similar workflow.</p>
1105+
</div>
1106+
<div class="listingblock">
1107+
<div class="title">Using pywcmp for WCMP2 quality assessment</div>
1108+
<div class="content">
1109+
<pre class="highlight"><code class="language-bash" data-lang="bash"># validate WCMP2 against abstract test suite (file on disk)
1110+
pywcmp kpi validate /path/to/file.json
1111+
1112+
# validate WCMP2 against abstract test suite (URL)
1113+
pywcmp kpi validate https://example.org/path/to/file.json</code></pre>
1114+
</div>
1115+
</div>
1116+
<div class="paragraph">
1117+
<p>The KPI check performs actions such as checking for healthy/working links and acronym checks, length of titles and more. Note that the KPI results do not affect WCMP2 compliance but are suggestions on how to improve your WCMP2 record for better discoverability and use.</p>
1118+
</div>
1119+
<div class="paragraph">
1120+
<p>The Canadian and German WIS2 Global Discovery Catalogues also provide this functionality online in a similar fashion as the validator.:</p>
1121+
</div>
1122+
<div class="imageblock">
1123+
<div class="content">
1124+
<img src="images/data-publishers-wcmp2-quality-assess-request-url.png" alt="WIS2 GDC quality assessment checker" width="request via WCMP2 URL">
1125+
</div>
1126+
<div class="title">Figure 4. WIS2 GDC quality assessment checker, request via WCMP2 URL</div>
1127+
</div>
1128+
<div class="imageblock">
1129+
<div class="content">
1130+
<img src="images/data-publishers-wcmp2-quality-assess-response.png" alt="WIS2 GDC online quality assessment checker" width="response">
1131+
</div>
1132+
<div class="title">Figure 5. WIS2 GDC quality assessment checker, response</div>
1133+
</div>
1134+
<div class="paragraph">
1135+
<p>A response will be provided with quality assessment results (in a similar format to the validation report).</p>
1136+
</div>
1137+
</div>
1138+
<div class="sect2">
1139+
<h3 id="_subscribing_to_gdc_reports_of_wcmp2_validation_and_quality_assessment"><a class="anchor" href="#_subscribing_to_gdc_reports_of_wcmp2_validation_and_quality_assessment"></a>3.6. Subscribing to GDC reports of WCMP2 validation and quality assessment</h3>
1140+
<div class="paragraph">
1141+
<p>When a WIS2 Node publishes a WCMP2 record, GDCs perform validaation according to the WCMP2 <a href="https://wmo-im.github.io/wcmp2/standard/wcmp2-STABLE.html#_conformance_class_abstract_test_suite_normative">Abstract Test Suite</a>). If the record is compliant, a GDC will ingest and publish the record. In addition, a GDC may provide additional quality assessment testing based on the <a href="https://wmo-im.github.io/wcmp2/kpi/wcmp2-kpi-DRAFT.html">(draft) WCMP2 Key Performance Indicators (KPIs)</a>.</p>
1142+
</div>
1143+
<div class="paragraph">
1144+
<p>GDC reports are made available as part of the <a href="https://wmo-im.github.io/wis2-monitoring-events/standard/wis2-monitoring-events-DRAFT.html">(draft) WIS2 Monitoring Events specification (WME)</a> and can be found by subscribing to a Global Broker using the topic <code>monitor/a/wis2/GDC_CENTRE_ID/WIS2NODE_CENTRE_ID</code>, where:</p>
1145+
</div>
1146+
<div class="ulist">
1147+
<ul>
1148+
<li>
1149+
<p><code>GDC_CENTRE_ID</code> is the centre identifier of a given GDC</p>
1150+
</li>
1151+
<li>
1152+
<p><code>WIS2NODE_CENTRE_ID</code> is the centre identifier of a given WIS2 Node</p>
1153+
</li>
1154+
</ul>
1155+
</div>
1156+
<div class="paragraph">
1157+
<p>For example, to subscribe to Canada GDC reports on WCMP2 records published by Japan Meteorological Agency (JMA), one would subscribe to the topic <code>monitor/a/wis2/ca-eccc-msc-global-discovery-catalogue/jp-jma</code>.</p>
1158+
</div>
1159+
<div class="paragraph">
1160+
<p>Message payloads are based on WME Message Encoding (WMEM), with a <code>data</code> payload of the WCMP2 ETS/KPI reports.</p>
1161+
</div>
1162+
<div class="imageblock">
1163+
<div class="content">
1164+
<img src="images/data-publishers-monitor-gdc-wcmp2-reports.png" alt="WIS2 subscription to GDC reports of WCMP2 validation and quality assessment">
1165+
</div>
1166+
<div class="title">Figure 6. WIS2 subscription to GDC reports of WCMP2 validation and quality assessment</div>
1167+
</div>
10931168
</div>
10941169
<div class="sect2">
1095-
<h3 id="_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm"><a class="anchor" href="#_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm"></a>3.6. Advertising client side filters for data subscriptions in WCMP2 and WNM</h3>
1170+
<h3 id="_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm"><a class="anchor" href="#_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm"></a>3.7. Advertising client side filters for data subscriptions in WCMP2 and WNM</h3>
10961171
<div class="paragraph">
10971172
<p>A key concept of a WCMP2 record is "actionable links"; this means being able to access a dataset or data granule
10981173
without any further interactions. For real-time data, a WCMP2 record provides linkages to the WIS2 Global Broker
@@ -1148,7 +1223,7 @@ <h3 id="_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm
11481223
<p>To implement this behaviour, add additional properties to both WCMP2 and WNM as follows:</p>
11491224
</div>
11501225
<div class="sect3">
1151-
<h4 id="_example_surface_weather_observations"><a class="anchor" href="#_example_surface_weather_observations"></a>3.6.1. Example: Surface weather observations</h4>
1226+
<h4 id="_example_surface_weather_observations"><a class="anchor" href="#_example_surface_weather_observations"></a>3.7.1. Example: Surface weather observations</h4>
11521227
<div class="listingblock">
11531228
<div class="title">Surface weather observations: WCMP2 MQTT link with additional properties</div>
11541229
<div class="content">
@@ -1192,7 +1267,7 @@ <h4 id="_example_surface_weather_observations"><a class="anchor" href="#_example
11921267
</div>
11931268
</div>
11941269
<div class="sect3">
1195-
<h4 id="_example_numerical_weather_prediction_based_forecast"><a class="anchor" href="#_example_numerical_weather_prediction_based_forecast"></a>3.6.2. Example: Numerical weather prediction based forecast</h4>
1270+
<h4 id="_example_numerical_weather_prediction_based_forecast"><a class="anchor" href="#_example_numerical_weather_prediction_based_forecast"></a>3.7.2. Example: Numerical weather prediction based forecast</h4>
11961271
<div class="listingblock">
11971272
<div class="title">Numerical weather prediction: WCMP2 MQTT link with additional properties</div>
11981273
<div class="content">
@@ -1327,14 +1402,14 @@ <h4 id="_example_numerical_weather_prediction_based_forecast"><a class="anchor"
13271402
</div>
13281403
</div>
13291404
<div class="sect2">
1330-
<h3 id="_providing_a_requirements_specification_for_a_wis_2_0_node"><a class="anchor" href="#_providing_a_requirements_specification_for_a_wis_2_0_node"></a>3.7. Providing a requirements specification for a WIS 2.0 Node</h3>
1405+
<h3 id="_providing_a_requirements_specification_for_a_wis_2_0_node"><a class="anchor" href="#_providing_a_requirements_specification_for_a_wis_2_0_node"></a>3.8. Providing a requirements specification for a WIS 2.0 Node</h3>
13311406
<div class="paragraph">
13321407
<p>The below recipe provides user requirements specifications for the implementation of a WIS 2.0 Node.</p>
13331408
</div>
13341409
<div class="sect3">
1335-
<h4 id="_wis_2_0_node_user_requirements_specifications"><a class="anchor" href="#_wis_2_0_node_user_requirements_specifications"></a>3.7.1. WIS 2.0 Node - User requirements specifications</h4>
1410+
<h4 id="_wis_2_0_node_user_requirements_specifications"><a class="anchor" href="#_wis_2_0_node_user_requirements_specifications"></a>3.8.1. WIS 2.0 Node - User requirements specifications</h4>
13361411
<div class="sect4">
1337-
<h5 id="_introduction_2"><a class="anchor" href="#_introduction_2"></a>3.7.1.1. Introduction</h5>
1412+
<h5 id="_introduction_2"><a class="anchor" href="#_introduction_2"></a>3.8.1.1. Introduction</h5>
13381413
<div class="sect5">
13391414
<h6 id="_applicable_documents"><a class="anchor" href="#_applicable_documents"></a>Applicable Documents</h6>
13401415
<table class="tableblock frame-all grid-all stretch">
@@ -1402,7 +1477,7 @@ <h6 id="_reference_documents"><a class="anchor" href="#_reference_documents"></a
14021477
</div>
14031478
</div>
14041479
<div class="sect4">
1405-
<h5 id="_system_overview"><a class="anchor" href="#_system_overview"></a>3.7.1.2. System overview</h5>
1480+
<h5 id="_system_overview"><a class="anchor" href="#_system_overview"></a>3.8.1.2. System overview</h5>
14061481
<div class="sect5">
14071482
<h6 id="_system_context"><a class="anchor" href="#_system_context"></a>System Context</h6>
14081483
<div class="paragraph">
@@ -1440,7 +1515,7 @@ <h6 id="_system_context"><a class="anchor" href="#_system_context"></a>System Co
14401515
<div class="content">
14411516
<img src="images/wis2node-context-diagram.jpg" alt="WIS 2.0 Node context diagram" width="800">
14421517
</div>
1443-
<div class="title">Figure 3. WIS 2.0 Node context diagram</div>
1518+
<div class="title">Figure 7. WIS 2.0 Node context diagram</div>
14441519
</div>
14451520
</div>
14461521
<div class="sect5">
@@ -1466,7 +1541,7 @@ <h6 id="_concepts_and_constraints"><a class="anchor" href="#_concepts_and_constr
14661541
</div>
14671542
</div>
14681543
<div class="sect4">
1469-
<h5 id="_user_requirements"><a class="anchor" href="#_user_requirements"></a>3.7.1.3. User requirements</h5>
1544+
<h5 id="_user_requirements"><a class="anchor" href="#_user_requirements"></a>3.8.1.3. User requirements</h5>
14701545
<div class="paragraph">
14711546
<p>The purpose of the WIS 2.0 Node (hereafter, referred to as the Node) is to be available to receive data from the production system, and to serve these data via the Internet to the WIS 2.0 environment.</p>
14721547
</div>
@@ -1903,7 +1978,7 @@ <h2 id="_recipes_for_global_service_operators"><a class="anchor" href="#_recipes
19031978
</div>
19041979
<div id="footer">
19051980
<div id="footer-text">
1906-
Last updated 2025-07-30 04:24:01 UTC
1981+
Last updated 2025-08-02 17:35:51 UTC
19071982
</div>
19081983
</div>
19091984
</body>

cookbook/wis2-cookbook-DRAFT.pdf

473 KB
Binary file not shown.

0 commit comments

Comments
 (0)