• Hardware :
    • Microcontrollers : 8051, AVR, ARM
    • Seriele communicatie : SPI, I2C, RS232, USB, CAN
    • PCB ontwerp
  • Embedded software :
    • Taal : C, assembly
  • Embedded applicaties :
    • Sensor interfacing
    • Motor besturing
    • Seriele communicatie
    • Gebruikers interface
  • Desktop software :
    • Taal : C, C++
    • Operating system : Linux, Windows
  • Desktop applicaties :
    • Ontwerp GUI
    • Database interface
    • Seriele communicatie

Conversion gef <--> bro-xml

1 - Cone Penetration Test (CPT)
    Bij een CPT test wordt een conus met sensoren met een constante snelheid (2 cm/s) de grond ingedrukt. Gedurende de beweging naar beneden word de data afkomstig van sensoren uiteindelijk geregistreerd in een "parent" gef bestand. Voorbeelden van te meten grootheden zijn : temperatuur, waterdruk, puntweerstand, trilling, wrijvingsweerstand, geleidbaarheid, korrelstructuur en helling.

2 - Dissipatietest
    De beweging van de sondeerstreng naar beneden kan worden gestopt i.v.m het uitvoeren van een dissipatietest. Hierbij wordt op een bepaalde diepte gedurende een bepaalde tijd waterdruk en conusweerstand geregistreerd. Per sondering zijn meerdere dissipatietesten mogelijk. Elke afzonderlijke dissipatietest wordt opgeslagen in een apart "child" gef bestand. Tijdens het conversieproces worden "parent" en één of meerdere "child" bestanden automatisch verwerkt tot één bro-xml bestand.

3 - Data acquisitie en besturing
Voor het uitvoeren van een Cone Penetration Test (mogelijk inclusief dissipatietest) word gebruik gemaakt van een microcontroller gebaseerd data-acquisitiesysteem. Een dergelijk systeem bestaat uit de volgende componenten :

Onderdeel Functie
Conus Voorheen werden conussen uitgerust met sensoren en analoge conditioneringselektronika. Een nadeel van de analoge conus was het versturen van "kleine" analoge signalen over relatief grote afstand. Tegenwoordig worden conussen uitgerust met digitale intelligentie. De intelligentie wordt bepaald door de onboard microcontroller. Deze microcontroller is o.a verantwoordelijk voor het uitlezen van sensoren en communicatie met de "bovenliggende" besturing. In een "typical" systeem bevinden zich in de conus sensoren voor punt- en wijvingsweerstand (rekstrookjes), waterdruk (druksensor) en helling (capacitief). De analoge sensorsignalen worden met 24-bit resolutie en een sampling frequentie van minimaal 10 Hz gedigitaliseerd. Dit laatste zodat bijvoorbeeld dunne lagen niet worden gemist. Op basis van ingestelde calibratiegegevens bewerkt de microcontroller de ruwe data en stuurt deze naar "boven".
Communicatie Voor de communicatie naar boven (hardware) zijn er meerdere mogelijkheden : CAN, RS485, optisch en audio. Elke methode heeft zijn eigen voor- en nadelen. In geval van bedrading word een kabel door de diverse sondeerbuizen getrokken. De "handling" van de buizen wordt hierdoor wel gecompliceerder. Het robuuste Controller Area Network (CAN) heeft o.a als voordeel t.o.v. RS485 dat transmissie fouten worden herkend en hersteld. Ook kan het multimaster CAN netwerk worden gekoppeld aan het reeds bestaande netwerk in vrachtauto's. De draadloze varianten (optisch en audio) hebben als nadeel dat er beperkingen zijn in connectiviteit, data-snelheid en data-betrouwbaarheid. Ook zijn beide laatstgenoemden nogal onderhoudsgevoelig. Wanneer er sprake is van geautomatiseerde buizentoevoer dan moet de voorkeur worden gegeven aan een niet-draadloze realisatie.
Datakoppelaar Deze eveneens microcontroller gebaseerde hardware ontvangt meetgegevens van de conus. Deze gegevens worden gekoppeld aan de positie van de conus (diepte). De diepte wordt verkregen door een roterende encoder mechanisch te koppelen aan de sondeerstreng. De gekoppelde datastroom (meetwaarden en diepte) word doorgestuurd naar een desktop computer. Voor nauwkeurige vastlegging van de positie is de datakoppelaar mogelijk uitgerust met een GPS ontvanger.
Desktop computer De desktop computer is met de datakoppelaar verbonden via een USB of (verouderde) RS232 poort. Het sondeerproces kan vanaf deze plaats worden gestart, gestopt of gepauzeerd. Ook kunnen diverse configuratie waarden voor conus en koppelaar hier worden ingesteld. Op de desktop wordt de ruwe meetdata verder verwerkt en gevisualiseerd. De meetdata en aanvullende informatie worden ingekapselt in standaard formaten zoals gef en bro-xml. Voor externe toegankelijkheid is mogelijk web- of fileserver functionaliteit geinstalleerd.

4 - Applicatie
    De conversie software is ontwikkeld onder Linux. Zoveel mogelijk is er gebruik gemaakt van open source software. De uiteindelijke applicatie draait native op een Ubuntu (release : 22.04) systeem met geinstalleerde Apache webserver. Door middel van crosscompiling is er ook een Windows versie beschikbaar. Het geheel kan daarom ook werken in een Microsoft omgeving.

5 - Documentatie
    Voor de totstandkoming van de conversie software zijn meerdere bronnen geraadpleegd. Hierbij de meest relevante :
    Gef 1.1.2 CPT
    Gef dissipation test
    BRO : Een handreiking voor conversie
    Basisregistratie Ondergrond Catalogus Geotechnisch Sondeeronderzoek (CPT)
    XML schema design files
    XML tutorial
    XML schema tutorial

6 - Conversie gef naar bro-xml
    Alle benodigde gegevens worden door de gebruiker middels een HTML formulier aangeboden aan de Apache webserver. Na verzending zorgt CGI functionaliteit (common gateway interface) ervoor dat genoemde gegevens op de juiste plaats worden opgeslagen. Hierbij wordt ook een eerste controle uitgevoerd m.b.t. de juistheid van de aangeboden data.
    Bij de verder verwerking is gebruik gemaakt van technieken welke worden toegepast in de compilerbouw (compilatie, interpretatie, translatie). Een aangeboden gef bestand wordt als eerste verwerkt door een lexer. De output van de lexer (tokenstream) is vervolgens de input voor de parser. De parser herkent structuren (syntax) in het originele gef bestand. Tijdens parsing wordt een zogenaamde Abstract Syntax Tree (AST) aangemaakt. Met de AST als uitgangspunt vindt een semantische analyse plaats. Er wordt o.a gecontroleerd op volledigheid, tegenstrijdigheid en samenhang. Vervolgens vindt de eigenlijke vertaling plaats. Hierbij wordt een datamodel gevuld met data en metadata.
    De informatie welke nu aanwezig is in het datamodel kan worden geexporteerd als een bro-xml bestand. Dit bestand wordt tenslotte gevalideerd met de BRO specificatie als uitgangspunt.

7 - Graphische representatie
    Een gef of bro-xml bestand bevat alle noodzakelijke data (grootheden, eenheden, metadata en data) om een correcte grafische weergave te genereren. Deze gegevens worden als vectoren weggeschreven naar één of meer pdf bestanden.

8 - Foutrapportage
    Fouten of tekortkomingen in aangeleverde bestanden kunnen ertoe leiden dat een voltooien van de conversie niet mogelijk is. In een later gestuurde email word vermeld welke fouten zijn opgetreden en waarom de conversie niet is gelukt.

9 - Conversietijd
    Het algehele conversieproces per sondering kan maximaal 15 seconden duren. De totale verwerkingstijd is mede afhankelijk van externe factoren zoals mailservers en internetsnelheid.

10 - Kwaliteitsregime
    Op basis van de aangeleverde gegevens word automatisch bepaald aan welk kwaliteitregime het gegenereerde bro-xml bestand voldoet.

11 - Aanpassen conversie software
    Het gef formaat kan worden omschreven als tolerant. Voorbeelden : tekst welke voor kan komen op niet voor de hand liggende plaatsen, volgorde van sommige "keywords" belangrijk maar andere weer niet, voorkomen van speciale tekens in verschillende contexten. De verwerkingssoftware moet al deze gevallen onderkennen en op de juiste manier verwerken. Omdat er veel combinaties mogelijk zijn kan het in de testfase gebeuren dat zo'n combinatie nog niet wordt herkend. Team www.cptdata.nl zal in dat geval de software aanpassen zodat een dergelijk geval in de toekomst wel op de juiste manier automatisch wordt verwerkt.

12 - Opmerkingen gef versus bro-xml
- In een gef document mogen kolommen met data in elke volgorde voorkomen. De #COLUMNINFO nummers geven aan welke kolom correspondeert met welke meetwaarde. Voor iedere kolom wordt ook het meetkanaal gespecificeerd. In het bro-xml formaat hebben kolommen een vaste volgorde. Het meetkanaal is niet aanwezig.
- In #SPECIMENVAR worden enkel de bovengrens van de verschillende verwijderde lagen gespecificeerd. In de bro-xml wordt voor iedere verwijderde laag ook de ondergrens toegevoegd.
- De #FIRSTSCAN waarde is niet overgenomen.
- De #LASTSCAN waarde is niet overgenomen maar wel impliciet aanwezig in de meetdata.
- De #COLUMNMINMAX waarden zijn niet overgenomen maar wel impliciet aanwezig in de meetdata.
- Het totaal aantal aanwezige kolommen in #COLUMN is niet overgenomen maar wel impliciet aanwezig in de meetdata.
- Meetdata in bestaande bro-xml bestanden bestaat uit een lange rij van numerieke waarden. Dit is niet erg overzichtelijk en daarom is in gegenereerde bestanden de data op een meer ordelijke manier gerangschikt. De originele kolomstructuur in het gef formaat is overgenomen.

14 - BRO : Basisregistratie ondergrond
    De BRO heeft mogelijkheden voor inname en uitgifte van bro-xml bestanden.
Inname : Bestanden met root-element "registrationRequest" of "correctionRequest"
Uitgifte : Bestanden met root-element "dispatchDataResponse" of "CPT"
Bro-xml bestanden met genoemde root-elementen worden door de conversie software herkend of ondersteund.

15 - Mogelijk toekomstige ontwikkelingen
    - Ontwikkeling van een desktop applicatie (GUI) in combinatie met embedded software (datakoppelaar). Sondeerdata afkomstig van de datakoppelaar (via USB) wordt gecombineerd met metadata en direkt opgeslagen als een bro-xml bestand. Het bro-xml bestand kan per email direkt worden verstuurd voor verdere dataverwerking of levering aan de Basisregistratie Ondergrond (BRO).