Overview

The BroGldAdditionServer import function (<importType>BroGldAdditionServer</importType>) imports XML files in the BroGldAddation format from the BRO API.

The BroGldAdditionServer import supports importing multiple GldAddition documents. For more information about the format, please see the Basis Registratie Ondergrond standard: https://schema.broservices.nl/xsd/isgld/1.0/isgld-messages.xsd.

BroGldAddationServer Import Configuration

The configuration of the BroGldAdditionServer import module is shown in the following example. It retrieves the data from the BRO GLD REST API. For documentation see: URL's publieke REST services (bro-productomgeving.nl). To switch to different BRO environment, replace the front part of the URL with https://int-publiek for demo and https://acc-publiek for acceptance.

For each imported XML file a BRO ID is required. This can either be the same as the interal locationId or (preferably) should be configured as a location attribute. The location attribute that holds the BRO ID should be mapped, using a location id function. For example:

idImportBro.xml
<?xml version="1.0" encoding="UTF-8"?>
<idMap 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" version="1.1">
	<locationIdFunction internalLocationSet="Peilbuizen_BRO" externalLocationFunction="@BRO_GLD_ID@"/>
	<enableOneToOneMapping/>
</idMap>

The BroGldAdditionServer can import multiple XML files by specifying time series sets and a relativeViewPeriod. However, the BRO GLD doesn't have multiple parameters (in the FEWS sense) only the heads in reference to NAP (for details see Basisregistratie Ondergrond Catalogus Grondwaterstandonderzoek (geostandaarden.nl)), so the external BRO parameter will always be mapped to the specified internal parameterId. This also means that the timeSeriesSets should only hold 1 parameterId.

<?xml version="1.0" encoding="UTF-8"?>
<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>BroGldAdditionServer</importType>
			<serverUrl>https://publiek.broservices.nl/gm/gld/v1/</serverUrl>
			<relativeViewPeriod unit="day" start="-365" end="0"></relativeViewPeriod>
			<idMapId>IdImportBro</idMapId>
			<flagConversionsId>FlagConversionBro</flagConversionsId>
            <dataFeedId>BRO.GLD.Addition.server</dataFeedId>
			<expiryTime unit="day" multiplier="356"/>
		</general>
        <properties>
            <string key="flag" value="StatusQualityControl" />
        </properties>
        <timeSeriesSet>
			<moduleInstanceId>ImportBROServer</moduleInstanceId>	
			<valueType>scalar</valueType>
			<parameterId>GW.m</parameterId>
			<locationSetId>Peilbuizen_BRO</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="nonequidistant"/>
			<readWriteMode>read complete forecast</readWriteMode>
		</timeSeriesSet>
		<externUnit parameterId="GW.m" unit="cm+NAP"/>
	</import>
</timeSeriesImportRun>  

The above example includes the optional property "flag", which triggers a flag conversion from attributes found in the XML, supported values are:

statusQualityControl : Qualifier for individual measurements, "afgekeurd", "goedgekeurd", "nogNietBeoordeeld", "onbeslist", "onbekend"
observationType : Qualifier for a series of measurements, "reguliereMeting", "controleMeting"
statusCode : Qualifier for a series of measurements, "reguliereMeting", "controleMeting"

A simple flag conversion configuration for the statusQualityControl qualifier can be configured as follows:

<?xml version="1.0" encoding="UTF-8"?>
<flagConversions 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/flagConversions.xsd">
	<flagConversion>
		<inputFlag>
			<value>goedgekeurd</value>
		</inputFlag>
		<outputFlag>
			<name>Original/Reliable</name>
			<value>0</value>
		</outputFlag>
	</flagConversion>
	<defaultOuputFlag>
		<name>Original/Doubtful</name>
		<value>3</value>
	</defaultOuputFlag>
	<missingValueFlag>
		<name>Original/Missing</name>
		<value>9</value>
	</missingValueFlag>
</flagConversions>


The following code shows a sample BRO Gld_Addition document that can be imported:

<?xml version="1.0" encoding="UTF-8"?>
<registrationRequest xmlns="http://www.broservices.nl/xsd/isgld/1.0" xmlns:wml2="http://www.opengis.net/waterml/2.0" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:om="http://www.opengis.net/om/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:brocom="http://www.broservices.nl/xsd/brocommon/3.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.broservices.nl/xsd/isgld/1.0 https://schema.broservices.nl/xsd/isgld/1.0/isgld-messages.xsd">
    <brocom:requestReference>GLD_Addition_sensorisch_id_fb7b8963-e880-4dc6-a15a-bf7945d0c6ed</brocom:requestReference>
    <brocom:deliveryAccountableParty>27376655</brocom:deliveryAccountableParty>
    <brocom:broId>GLD000000041620</brocom:broId>
    <brocom:qualityRegime>IMBRO/A</brocom:qualityRegime>
    <sourceDocument>
        <GLD_Addition gml:id="id_7a5d7c57-3c2a-4597-a499-cd4e234557e3">
            <observation>
                <om:OM_Observation gml:id="id_29b995ca-c627-4823-a28a-1d079537e874">
                    <om:type xlink:href="http://www.opengis.net/def/observationType/waterml/2.0/MeasurementTimeseriesTVPObservation"></om:type>
                    <om:metadata>
                        <wml2:ObservationMetadata>
                            <gmd:contact>
                                <gmd:CI_ResponsibleParty>
                                    <gmd:organisationName>
                                        <gco:CharacterString/>
                                    </gmd:organisationName>
                                    <gmd:role>
                                        <gmd:CI_RoleCode codeList="urn:ISO:19115:CI_RoleCode" codeListValue="principalInvestigator">principalInvestigator</gmd:CI_RoleCode>
                                    </gmd:role>
                                </gmd:CI_ResponsibleParty>
                            </gmd:contact>
                            <gmd:dateStamp gco:nilReason="unknown"/>
                            <gmd:identificationInfo gco:nilReason="unknown"/>
                            <wml2:status xlink:href="urn:bro:gld:StatusCode:voorlopig"/>
                            <wml2:parameter>
                                <om:NamedValue>
                                    <om:name xlink:href="urn:bro:gld:ObservationMetadata:principalInvestigator"/>
                                    <om:value xsi:type="brocom:OrganizationType">
                                        <brocom:chamberOfCommerceNumber>kvkNumber</brocom:chamberOfCommerceNumber>
                                    </om:value>
                                </om:NamedValue>
                            </wml2:parameter>
                            <wml2:parameter>
                                <om:NamedValue>
                                    <om:name xlink:href="urn:bro:gld:ObservationMetadata:observationType"/>
                                    <om:value xsi:type="gml:CodeWithAuthorityType" codeSpace="urn:bro:gld:ObservationType">reguliereMeting</om:value>
                                </om:NamedValue>
                            </wml2:parameter>
                        </wml2:ObservationMetadata>
                    </om:metadata>
                    <om:phenomenonTime>
                        <gml:TimePeriod gml:id="id_8852b8a7-66c8-43a2-b4e5-49bb468f2691">
                            <gml:beginPosition>2020-11-01T13:00:00Z</gml:beginPosition>
                            <gml:endPosition>2021-11-01T13:00:00Z</gml:endPosition>
                        </gml:TimePeriod>
                    </om:phenomenonTime>
                    <om:resultTime>
                        <gml:TimeInstant gml:id="id_552c694e-8938-427c-ac8d-b69eb7c4d7b8">
                            <gml:timePosition>2021-11-01T13:00:00Z</gml:timePosition>
                        </gml:TimeInstant>
                    </om:resultTime>
                    <om:procedure>
                        <wml2:ObservationProcess gml:id="id_47c053aa-4aa3-4b6c-a4ab-ba0c666a7c5c">
                            <wml2:processType xlink:href="http://www.opengis.net/def/waterml/2.0/processType/Algorithm"/>
                            <wml2:processReference xlink:href="urn:bro:gld:ProcessReference:NEN_EN_ISO22475v2006_C11v2010"/>
                            <wml2:parameter>
                                <om:NamedValue>
                                    <om:name xlink:href="urn:bro:gld:ObservationProcess:airPressureCompensationType"/>
                                    <om:value xsi:type="gml:CodeWithAuthorityType" codeSpace="urn:bro:gld:AirPressureCompensationType">monitoringnetmeting</om:value>
                                </om:NamedValue>
                            </wml2:parameter>
                            <wml2:parameter>
                                <om:NamedValue>
                                    <om:name xlink:href="urn:bro:gld:ObservationProcess:evaluationProcedure"/>
                                    <om:value xsi:type="gml:CodeWithAuthorityType" codeSpace="urn:bro:gld:EvaluationProcedure">oordeelDeskundige</om:value>
                                </om:NamedValue>
                            </wml2:parameter>
                            <wml2:parameter>
                                <om:NamedValue>
                                    <om:name xlink:href="urn:bro:gld:ObservationProcess:measurementInstrumentType"/>
                                    <om:value xsi:type="gml:CodeWithAuthorityType" codeSpace="urn:bro:gld:MeasurementInstrumentType">druksensor</om:value>
                                </om:NamedValue>
                            </wml2:parameter>
                        </wml2:ObservationProcess>
                    </om:procedure>
                    <om:observedProperty/>
                    <om:featureOfInterest/>
                    <om:result>
                        <wml2:MeasurementTimeseries gml:id="id_3ac2b742-1520-4031-a7e5-39b429bd0ef9">
                            <wml2:point>
                                <wml2:MeasurementTVP>
                                    <wml2:time>2020-11-01T13:00:00Z</wml2:time>
                                    <wml2:value uom="m+NAP">-0.881</wml2:value>
                                    <wml2:metadata>
                                        <wml2:TVPMeasurementMetadata>
                                            <wml2:qualifier>
                                                <swe:Category>
                                                    <swe:codeSpace xlink:href="urn:bro:gld:StatusQualityControl"/>
                                                    <swe:value>goedgekeurd</swe:value>
                                                </swe:Category>
                                            </wml2:qualifier>
                                        </wml2:TVPMeasurementMetadata>
                                    </wml2:metadata>
                                </wml2:MeasurementTVP>
                            </wml2:point>
                            <wml2:point>
                                <wml2:MeasurementTVP>
                                    <wml2:time>2020-11-01T14:00:00Z</wml2:time>
                                    <wml2:value uom="m+NAP">-0.881</wml2:value>
                                    <wml2:metadata>
                                        <wml2:TVPMeasurementMetadata>
                                            <wml2:qualifier>
                                                <swe:Category>
                                                    <swe:codeSpace xlink:href="urn:bro:gld:StatusQualityControl"/>
                                                    <swe:value>goedgekeurd</swe:value>
                                                </swe:Category>
                                            </wml2:qualifier>
                                        </wml2:TVPMeasurementMetadata>
                                    </wml2:metadata>
                                </wml2:MeasurementTVP>
                            </wml2:point>
                            <wml2:point>
                                <wml2:MeasurementTVP>
                                    <wml2:time>2020-11-01T15:00:00Z</wml2:time>
                                    <wml2:value uom="m+NAP">-0.881</wml2:value>
                                    <wml2:metadata>
                                        <wml2:TVPMeasurementMetadata>
                                            <wml2:qualifier>
                                                <swe:Category>
                                                    <swe:codeSpace xlink:href="urn:bro:gld:StatusQualityControl"/>
                                                    <swe:value>goedgekeurd</swe:value>
                                                </swe:Category>
                                            </wml2:qualifier>
                                        </wml2:TVPMeasurementMetadata>
                                    </wml2:metadata>
                                </wml2:MeasurementTVP>
                            </wml2:point>                                            
                        </wml2:MeasurementTimeseries>
                    </om:result>
                </om:OM_Observation>
            </observation>
        </GLD_Addition>
    </sourceDocument>
</registrationRequest>
  • No labels