cemsbv / pygef

Parse soil measurement data.
https://cemsbv.github.io/pygef
MIT License
31 stars 19 forks source link

import as file error (xml, CPT, Bore) #323

Closed Swoud closed 1 year ago

Swoud commented 1 year ago

Downloaded files from broloket error when trying to read XML files of borehole and cpt data. (GEF CPT works)

the following errors are produced:

CPT: AttributeError: 'NoneType' object has no attribute 'findall' Boring: KeyError: 'bhrgtcom'

The same files can be read and plotted when using the rest service.

RDWimmers commented 1 year ago

The XML Namespaces are different between a XML file that is downloaded from broloket.nl and the REST API.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns13:dispatchDataResponse xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:gts="http://www.isotc211.org/2005/gts"
                           xmlns:gml="http://www.opengis.net/gml/3.2"
                           xmlns:sampling="http://www.opengis.net/sampling/2.0"
                           xmlns:dscpt="https://schema.broservices.nl/xsd/dscpt/1.1"
                           xmlns:gco="http://www.isotc211.org/2005/gco"
                           xmlns:ns13="http://www.broservices.nl/xsd/dscpt/1.1"
                           xmlns:ns12="http://www.broservices.nl/xsd/brocommon/3.0"
                           xmlns:brocom="https://schema.broservices.nl/xsd/brocommon/3.0"
                           xmlns:ns14="http://www.broservices.nl/xsd/cptcommon/1.1"
                           xmlns:om="http://www.opengis.net/om/2.0"
                           xmlns:cptcommon="https://schema.broservices.nl/xsd/cptcommon/1.1"
                           xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gmd="http://www.isotc211.org/2005/gmd">
    <ns12:responseType>dispatch</ns12:responseType>
    <ns12:requestReference></ns12:requestReference>
    <ns12:dispatchTime>2023-05-30T16:35:21+02:00</ns12:dispatchTime>
    <ns13:dispatchDocument>
        <ns13:CPT_O gml:id="BRO_0007">
            <ns12:broId>CPT000000060418</ns12:broId>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dispatchDataResponse xmlns="http://www.broservices.nl/xsd/dscpt/1.1" xmlns:swe="http://www.opengis.net/swe/2.0"
                      xmlns:xlink="http://www.w3.org/1999/xlink"
                      xmlns:brocom="http://www.broservices.nl/xsd/brocommon/3.0"
                      xmlns:cptcommon="http://www.broservices.nl/xsd/cptcommon/1.1"
                      xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:om="http://www.opengis.net/om/2.0"
                      xmlns:sampling="http://www.opengis.net/sampling/2.0" xmlns:ns9="http://www.isotc211.org/2005/gco"
                      xmlns:ns10="http://www.isotc211.org/2005/gmd">
    <brocom:responseType>dispatch</brocom:responseType>
    <brocom:requestReference>CEMS</brocom:requestReference>
    <brocom:dispatchTime>2022-11-28T16:02:43+01:00</brocom:dispatchTime>
    <dispatchDocument>
        <CPT_O gml:id="BRO_0010">
            <brocom:broId>CPT000000155283</brocom:broId>
RDWimmers commented 1 year ago

Uw melding BM23 06 00027 is afgemeld. Hieronder vindt u onze reactie:

We hebben het volgende antwoord van Sjaak ontvangen.

Het zijn (nog) 2 aparte applicaties.

  1. De REST interface maakt direct gebruik van de landelijke voorziening (als database).
  2. De Loket interface gebruikt de SOAP interface (digikoppeling) om data to ontrekken voor de bijgaande informatie (de leverings pdf). Daarna wordt het document opnieuw verpakt met een eigen implementatie en uitgegeven.

Bij 2. Die laatste stap maakt geen gebruik van vooraf gedefinieerde (herkenbare) namespaces maar laat dit over aan de gebruikte parser. ns == namespace. Merk op: dit maakt het voor een mens slechter te lezen, maar is volledig correct volgens de standaard. XML is eigenlijk ook bedoeld voor machine naar machine communicatie.

Welnu: wij zijn komende maanden bezig om dit proces te optimaliseren en ook bro/dino loket gebruik te laten maken van de rest interfaces. Dit zal dus op d'n duur gelijk getrokken worden.

De originele melding:

Datum verzonden: 2-jun-2023 8:39 Naar: support@broservicedesk.nl Onderwerp: Contactformulier Basisregistratie Ondergrond

Goedemorgen, Ik heb een vraag over de uitvoer van XML data via de REST API en broloket. Als ik een CPT object download via de REST API krijg ik een andere bestand dan als ik broloket gebruik. Het gaat hierbij om het gebruik van de XML namespaces in het bestand zelf (zie bijlage). Bijvoorbeeld:

Jouw bijlage response_1685687718818.xml Jouw bijlage cpt000000060418_imbro_a.xml

Indien u nog aanvullende vragen of opmerkingen heeft, dan horen wij dit graag. Wij zijn bereikbaar op ​088-8664 999​ of per e-mail met een reactie op dit bericht.

Met vriendelijke groet,

Gulian Tutein Nolthenius BRO servicedesk ​088-8664 999​

Swoud commented 1 year ago

Hartelijk dank voor het antwoord, dit heeft geholpen