diff --git a/CHANGES.md b/CHANGES.md index 0ef5658d..7a83ee33 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,11 @@ # Changelog for BROStar API +## 0.51 (unreleased) + + +- Nothing changed yet. + + ## 0.50 (2024-10-18) @@ -8,6 +14,14 @@ - Minor bugfixes. +## 0.50 (2024-10-18) + + +- Added all GMW-Event templates. +- Improved GLD and GMN templates. +- Minor bugfixes. + + ## 0.49 (2024-09-24) diff --git a/api/bro_upload/templates/delete_GLD_Addition.html b/api/bro_upload/templates/delete_GLD_Addition.html index ac0023a6..2438ea57 100644 --- a/api/bro_upload/templates/delete_GLD_Addition.html +++ b/api/bro_upload/templates/delete_GLD_Addition.html @@ -1,74 +1,82 @@ <deleteRequest 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:gldcom="http://www.broservices.nl/xsd/gldcommon/1.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>{{ metadata.requestReference }}</brocom:requestReference> - <brocom:deliveryAccountableParty>{{ metadata.deliveryAccountableParty }}</brocom:deliveryAccountableParty> - <brocom:broId>{{ metadata.broId }}</brocom:broId> - <brocom:qualityRegime>{{ metadata.qualityRegime }}</brocom:qualityRegime> - <correctionReason codeSpace="urn:bro:gmn:CorrectionReason">{{ metadata.correctionReason }}</correctionReason> - <sourceDocument> - <GLD_Addition gml:id="id_0001"> - <observation> - <om:OM_Observation gml:id="{{ sourcedocs_data.observationId }}"> - <om:type xlink:href="http://www.opengis.net/def/observationType/waterml/2.0/MeasurementTimeseriesTVPObservation"/> - <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:Date>{{ sourcedocs_data.date }}</gco:Date> - </gmd:dateStamp> - <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="gldcom:OrganizationType"> - <gldcom:chamberOfCommerceNumber>{{ sourcedocs_data.investigatorKvk }}</gldcom: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">{{ sourcedocs_data.observationType }}</om:value> - </om:NamedValue> - </wml2:parameter> - </wml2:ObservationMetadata> - </om:metadata> - <om:phenomenonTime> - <gml:TimePeriod gml:id="id_0005"> - <gml:beginPosition>{{ sourcedocs_data.beginPosition }}</gml:beginPosition> - <gml:endPosition>{{ sourcedocs_data.endPosition }}</gml:endPosition> - </gml:TimePeriod> - </om:phenomenonTime> - <om:resultTime> - <gml:TimeInstant gml:id="id_0006"> - <gml:timePosition>{{ sourcedocs_data.resultTime }}</gml:timePosition> - </gml:TimeInstant> - </om:resultTime> - <om:procedure> - <wml2:ObservationProcess gml:id="{{ sourcedocs_data.observationProcessId }}"> - <wml2:processType xlink:href="http://www.opengis.net/def/waterml/2.0/processType/Algorithm"/> - <wml2:processReference xlink:href="urn:bro:gld:ProcessReference:NEN5120v1991"/> - <wml2:parameter> + 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:gldcom="http://www.broservices.nl/xsd/gldcommon/1.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>{{ metadata.requestReference }}</brocom:requestReference> + <brocom:deliveryAccountableParty>{{ metadata.deliveryAccountableParty }}</brocom:deliveryAccountableParty> + <brocom:broId>{{ metadata.broId }}</brocom:broId> + <brocom:qualityRegime>{{ metadata.qualityRegime }}</brocom:qualityRegime> + <correctionReason codeSpace="urn:bro:gmn:CorrectionReason">{{ metadata.correctionReason }}</correctionReason> + <sourceDocument> + <GLD_Addition gml:id="id_0001"> + <observation> + <om:OM_Observation gml:id="{{ sourcedocs_data.observationId }}"> + <om:type xlink:href="http://www.opengis.net/def/observationType/waterml/2.0/MeasurementTimeseriesTVPObservation"/> + <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:Date>{{ sourcedocs_data.date }}</gco:Date> + </gmd:dateStamp> + <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="gldcom:OrganizationType"> + <gldcom:chamberOfCommerceNumber>{{ sourcedocs_data.investigatorKvk }}</gldcom: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">{{ sourcedocs_data.observationType }}</om:value> + </om:NamedValue> + </wml2:parameter> + </wml2:ObservationMetadata> + </om:metadata> + <om:phenomenonTime> + <gml:TimePeriod gml:id="id_0005"> + <gml:beginPosition>{{ sourcedocs_data.beginPosition }}</gml:beginPosition> + <gml:endPosition>{{ sourcedocs_data.endPosition }}</gml:endPosition> + </gml:TimePeriod> + </om:phenomenonTime> + <om:resultTime> + <gml:TimeInstant gml:id="id_0006"> + <gml:timePosition>{{ sourcedocs_data.resultTime }}</gml:timePosition> + </gml:TimeInstant> + </om:resultTime> + <om:procedure> + <wml2:ObservationProcess gml:id="{{ sourcedocs_data.observationProcessId }}"> + <wml2:processType xlink:href="http://www.opengis.net/def/waterml/2.0/processType/Algorithm"/> + <wml2:processReference xlink:href="urn:bro:gld:ProcessReference:{{ sourcedocs_data.processReference }}"/> + {% if sourcedocs_data.airPressureCompensationType %} + <wml2:parameter> + <om:NamedValue> + <om:name xlink:href="urn:bro:gld:ObservationProcess:airPressureCompensationType"/> + <om:value xsi:type="gml:CodeWithAuthorityType" codeSpace="urn:bro:gld:AirPressureCompensationType">{{ sourcedocs_data.airPressureCompensationType }}</om:value> + </om:NamedValue> + </wml2:parameter> + {% endif %} + <wml2:parameter> <om:NamedValue> <om:name xlink:href="urn:bro:gld:ObservationProcess:evaluationProcedure"/> <om:value xsi:type="gml:CodeWithAuthorityType" codeSpace="urn:bro:gld:EvaluationProcedure">{{ sourcedocs_data.evaluationProcedure }}</om:value> @@ -85,30 +93,30 @@ <om:observedProperty/> <om:featureOfInterest/> <om:result> - <wml2:MeasurementTimeseries gml:id="{{ sourcedocs_data.measurementTimeseriesId }}"> + <wml2:MeasurementTimeseries gml:id="{{ sourcedocs_data.measurementTimeseriesId }}"> {% for tvp in sourcedocs_data.timeValuePairs %} - <wml2:point> - <wml2:MeasurementTVP> - <wml2:time>{{ tvp.time }}</wml2:time> - <wml2:value uom="m">{{ tvp.value }}</wml2:value> - <wml2:metadata> - <wml2:TVPMeasurementMetadata> - <wml2:qualifier> - <swe:Category> - <swe:codeSpace xlink:href="urn:bro:gld:StatusQualityControl"/> - <swe:value>{{ tvp.statusQualityControl }}</swe:value> - </swe:Category> - </wml2:qualifier> - <wml2:interpolationType xlink:href="http://www.opengis.net/def/waterml/2.0/interpolationType/Discontinuous"/> - </wml2:TVPMeasurementMetadata> - </wml2:metadata> - </wml2:MeasurementTVP> - </wml2:point> + <wml2:point> + <wml2:MeasurementTVP> + <wml2:time>{{ tvp.time }}</wml2:time> + <wml2:value uom="m">{{ tvp.value }}</wml2:value> + <wml2:metadata> + <wml2:TVPMeasurementMetadata> + <wml2:qualifier> + <swe:Category> + <swe:codeSpace xlink:href="urn:bro:gld:StatusQualityControl"/> + <swe:value>{{ tvp.statusQualityControl }}</swe:value> + </swe:Category> + </wml2:qualifier> + <wml2:interpolationType xlink:href="http://www.opengis.net/def/waterml/2.0/interpolationType/Discontinuous"/> + </wml2:TVPMeasurementMetadata> + </wml2:metadata> + </wml2:MeasurementTVP> + </wml2:point> {% endfor %} - </wml2:MeasurementTimeseries> - </om:result> - </om:OM_Observation> - </observation> - </GLD_Addition> - </sourceDocument> - </deleteRequest> + </wml2:MeasurementTimeseries> + </om:result> + </om:OM_Observation> + </observation> + </GLD_Addition> + </sourceDocument> +</deleteRequest> diff --git a/api/bro_upload/templates/registration_GLD_Addition.html b/api/bro_upload/templates/registration_GLD_Addition.html index 3d6df8a1..acde76f0 100644 --- a/api/bro_upload/templates/registration_GLD_Addition.html +++ b/api/bro_upload/templates/registration_GLD_Addition.html @@ -72,7 +72,15 @@ <om:procedure> <wml2:ObservationProcess gml:id="{{ sourcedocs_data.observationProcessId }}"> <wml2:processType xlink:href="http://www.opengis.net/def/waterml/2.0/processType/Algorithm"/> - <wml2:processReference xlink:href="urn:bro:gld:ProcessReference:NEN5120v1991"/> + <wml2:processReference xlink:href="urn:bro:gld:ProcessReference:{{ sourcedocs_data.processReference }}"/> +{% if sourcedocs_data.airPressureCompensationType %} + <wml2:parameter> + <om:NamedValue> + <om:name xlink:href="urn:bro:gld:ObservationProcess:airPressureCompensationType"/> + <om:value xsi:type="gml:CodeWithAuthorityType" codeSpace="urn:bro:gld:AirPressureCompensationType">{{ sourcedocs_data.airPressureCompensationType }}</om:value> + </om:NamedValue> + </wml2:parameter> +{% endif %} <wml2:parameter> <om:NamedValue> <om:name xlink:href="urn:bro:gld:ObservationProcess:evaluationProcedure"/> diff --git a/api/bro_upload/templates/replace_GLD_Addition.html b/api/bro_upload/templates/replace_GLD_Addition.html index 25a11333..7dd30044 100644 --- a/api/bro_upload/templates/replace_GLD_Addition.html +++ b/api/bro_upload/templates/replace_GLD_Addition.html @@ -72,7 +72,15 @@ <om:procedure> <wml2:ObservationProcess gml:id="{{ sourcedocs_data.observationProcessId }}"> <wml2:processType xlink:href="http://www.opengis.net/def/waterml/2.0/processType/Algorithm"/> - <wml2:processReference xlink:href="urn:bro:gld:ProcessReference:NEN5120v1991"/> + <wml2:processReference xlink:href="urn:bro:gld:ProcessReference:{{ sourcedocs_data.processReference }}"/> +{% if sourcedocs_data.airPressureCompensationType %} + <wml2:parameter> + <om:NamedValue> + <om:name xlink:href="urn:bro:gld:ObservationProcess:airPressureCompensationType"/> + <om:value xsi:type="gml:CodeWithAuthorityType" codeSpace="urn:bro:gld:AirPressureCompensationType">{{ sourcedocs_data.airPressureCompensationType }}</om:value> + </om:NamedValue> + </wml2:parameter> +{% endif %} <wml2:parameter> <om:NamedValue> <om:name xlink:href="urn:bro:gld:ObservationProcess:evaluationProcedure"/> diff --git a/api/bro_upload/upload_datamodels.py b/api/bro_upload/upload_datamodels.py index 13789c67..8222e8eb 100644 --- a/api/bro_upload/upload_datamodels.py +++ b/api/bro_upload/upload_datamodels.py @@ -305,8 +305,6 @@ class GAR(BaseModel): # GLD - - class GLDStartregistration(BaseModel): objectIdAccountableParty: str | None = None groundwaterMonitoringNets: list[str] | None = None @@ -339,6 +337,8 @@ class GLDAddition(BaseModel): observationType: str evaluationProcedure: str measurementInstrumentType: str + processReference: str + airPressureCompensationType: str | None = None beginPosition: str endPosition: str resultTime: str