You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<li><ahref="#_publishing_a_wis2_notification_message_with_embedded_data">3.3. Publishing a WIS2 Notification Message with embedded data</a></li>
510
510
<li><ahref="#_publishing_a_wis2_notification_message_for_resource_deletion">3.4. Publishing a WIS2 Notification Message for resource deletion</a></li>
511
511
<li><ahref="#_validating_a_wmo_core_metadata_profile_record">3.5. Validating a WMO Core Metadata Profile record</a></li>
512
-
<li><ahref="#_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><ahref="#_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><ahref="#_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>
<p>The <ahref="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>
1035
1036
</div>
1036
1037
<divclass="listingblock">
1037
-
<divclass="title">Using pywcmp</div>
1038
+
<divclass="title">Using pywcmp for WCMP2 validation</div>
<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>
1054
1055
</div>
1055
1056
<divclass="ulist">
1056
1057
<ul>
1057
1058
<li>
1058
-
<p>Navigate to <ahref="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 <ahref="https://wis2-gdc.weather.gc.ca/openapi?f=html" class="bare">https://wis2-gdc.weather.gc.ca/openapi?f=html</a> or <ahref="https://wis2.dwd.de/gdc/openapi?f=html" class="bare">https://wis2.dwd.de/gdc/openapi?f=html</a></p>
1059
1060
</li>
1060
1061
<li>
1061
1062
<p>Navigate to section <strong>pywcmp-wis2-wcmp2-ets</strong>, endpoint <code>/processes/pywcmp-wis2-wcmp2-ets/execution</code> (POST)</p>
<p>A response will be provided with validation results.</p>
1092
1102
</div>
1103
+
<divclass="paragraph">
1104
+
<p>The WCMP2 standard also has <ahref="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
+
<divclass="listingblock">
1107
+
<divclass="title">Using pywcmp for WCMP2 quality assessment</div>
1108
+
<divclass="content">
1109
+
<preclass="highlight"><codeclass="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)
<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
+
<divclass="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
+
<divclass="imageblock">
1123
+
<divclass="content">
1124
+
<imgsrc="images/data-publishers-wcmp2-quality-assess-request-url.png" alt="WIS2 GDC quality assessment checker" width="request via WCMP2 URL">
<p>A response will be provided with quality assessment results (in a similar format to the validation report).</p>
1136
+
</div>
1137
+
</div>
1138
+
<divclass="sect2">
1139
+
<h3id="_subscribing_to_gdc_reports_of_wcmp2_validation_and_quality_assessment"><aclass="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
+
<divclass="paragraph">
1141
+
<p>When a WIS2 Node publishes a WCMP2 record, GDCs perform validaation according to the WCMP2 <ahref="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 <ahref="https://wmo-im.github.io/wcmp2/kpi/wcmp2-kpi-DRAFT.html">(draft) WCMP2 Key Performance Indicators (KPIs)</a>.</p>
1142
+
</div>
1143
+
<divclass="paragraph">
1144
+
<p>GDC reports are made available as part of the <ahref="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
+
<divclass="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
+
<divclass="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
+
<divclass="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
+
<divclass="imageblock">
1163
+
<divclass="content">
1164
+
<imgsrc="images/data-publishers-monitor-gdc-wcmp2-reports.png" alt="WIS2 subscription to GDC reports of WCMP2 validation and quality assessment">
1165
+
</div>
1166
+
<divclass="title">Figure 6. WIS2 subscription to GDC reports of WCMP2 validation and quality assessment</div>
1167
+
</div>
1093
1168
</div>
1094
1169
<divclass="sect2">
1095
-
<h3id="_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm"><aclass="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
+
<h3id="_advertising_client_side_filters_for_data_subscriptions_in_wcmp2_and_wnm"><aclass="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>
1096
1171
<divclass="paragraph">
1097
1172
<p>A key concept of a WCMP2 record is "actionable links"; this means being able to access a dataset or data granule
1098
1173
without any further interactions. For real-time data, a WCMP2 record provides linkages to the WIS2 Global Broker
<h3id="_providing_a_requirements_specification_for_a_wis_2_0_node"><aclass="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
+
<h3id="_providing_a_requirements_specification_for_a_wis_2_0_node"><aclass="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>
1331
1406
<divclass="paragraph">
1332
1407
<p>The below recipe provides user requirements specifications for the implementation of a WIS 2.0 Node.</p>
1333
1408
</div>
1334
1409
<divclass="sect3">
1335
-
<h4id="_wis_2_0_node_user_requirements_specifications"><aclass="anchor" href="#_wis_2_0_node_user_requirements_specifications"></a>3.7.1. WIS 2.0 Node - User requirements specifications</h4>
1410
+
<h4id="_wis_2_0_node_user_requirements_specifications"><aclass="anchor" href="#_wis_2_0_node_user_requirements_specifications"></a>3.8.1. WIS 2.0 Node - User requirements specifications</h4>
<h5id="_user_requirements"><aclass="anchor" href="#_user_requirements"></a>3.7.1.3. User requirements</h5>
1544
+
<h5id="_user_requirements"><aclass="anchor" href="#_user_requirements"></a>3.8.1.3. User requirements</h5>
1470
1545
<divclass="paragraph">
1471
1546
<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>
0 commit comments