Technical

Contents
1 Cone Penetration Test (CPT)
2 Dissipationtest
3 Data acquisition and control
4 Application
5 Conversion GEF-CPT to BRO-XML
6 Graphical presentation
7 Error reporting
8 Conversiontime
9 Self-learning conversion software
10 GEF-CPT versus BRO-XML
11 Archive DINOloket
12 Validation
13 Doorsturen gegevens naar de BRO
14 Zelf gegevens aanleveren aan de BRO
15 Resources

1 - Cone Penetration Test (CPT)
    During a CPT a cone with sensors is pushed into the ground with a constant speed of 2 cm/s. During the downward movement sensordata is collected and ultimately stored in a "parent" GEF file. Examples of measured parameters are : temperature, waterpressure, cone tip resistance, cone sleeve resistance, vibration, conductivity, granular structure and tilt.

2 - Dissipationtest
    The downward movement can be interupted to perform a dissipationtest. At a certain depth the waterpressure is registered during a certain time. During a CPT multiple dissipationtests can be performed on different depth's. Data from each dissipationtest is stored in separate "child" GEF-CPT files. During the conversion process later on "parent" and one or more "child" files are combined into one BRO-XML file.

3 - Data acquisition and control
To perform a CPT with or without dissipationtest a (multi) microcontroller based data-acquisition system is used. A typical system consists of the following parts :

Part Function
Cone     CPT cones are integrated with sensors and electronics.
    Earlier analog cones are equipped with "conditioning" electronics which makes it possible to transport small analog signals over longer distances. These signals are digitised by a microcontroller based datacoupler which is located above ground.
    Digital cones have an onboard microcontroller. This microcontroller is responsible for immediately digitising sensordata and communicating with the datacoupler above.
    Analog and digital cones can be both integrated with sensors for tipresistance (strain gage), sleeve resistance (strain gage), pore water pressure (pressure sensor) and tilt (capacitor based or mechanical). Analog signals are typically digitised with 24-bit resolution and a 10Hz sampling rate. The microcontroller processes the raw sensor data based on configured calibration parameters. In the case of a digital cone digital information is serially send to the above datacoupler.
Communication     Voor de communicatie naar boven (hardware) zijn er in geval van een digitale conus 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. In verband hiermee is het maar zeer de vraag of de trend naar "draadloos" doorzet. Wanneer er sprake is van geautomatiseerde buizentoevoer dan moet toch de voorkeur worden gegeven aan een "bedraadde" realisatie.
Combining or coupling data streams     Deze eveneens microcontroller gebaseerde hardware ontvangt digitale meetgegevens van de digitale conus. In geval van een analoge conus vindt hier ook de digitalisering van analoge meetdata plaats. Deze gegevens worden gekoppeld aan de positie van de conus (diepte). De diepte word verkregen door een roterende encoder mechanisch te koppelen aan de sondeerstreng. De gekoppelde datastroom (meetwaarden en diepte) word via USB of RS232 doorgestuurd naar een desktop computer. Voor nauwkeurige vastlegging van de geografische positie is de datakoppelaar mogelijk uitgerust met een GPS ontvanger.
Desktop computer     Een desktop computer (bij voorkeur Linux) is met de datakoppelaar verbonden via een USB of 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 "realtime" gevisualiseerd. De meetdata en aanvullende informatie worden ingekapselt in standaard formaten zoals GEF-CPT en BRO-XML. Voor externe toegankelijkheid is mogelijk web- of fileserver functionaliteit geinstalleerd. In dat geval kan na een sondering de data direkt worden aangeboden aan de BasisRegistratie Ondergrond (BRO).

4 - Application
    The conversion software has been developed in C/C++. Compared with interpreted languages like C#, Java or Python a C/C++ solution has an installation as well as a speed advantage. In the development proces several open source tools and libraries have been used. The final application or executable runs native on a Linux webserver (Ubuntu 24.04.1 LTS). The choice for Linux has been made because of speed, stability and "realtime" capabilities.

5 - Conversion GEF-CPT to BRO-XML
    Alle benodigde gegevens worden door de gebruiker middels een HTML formulier aangeboden aan de Apache webserver. Na verzending zorgt CGI functionaliteit 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 verdere verwerking is gebruik gemaakt van technieken welke worden toegepast in de compilerbouw (compilatie, interpretatie, translatie). Een aangeboden GEF bestand word onderworpen aan een systematisch onderzoek. Na herkenning van woorden en structuren vind 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 voor controle en validatie aangeboden aan een RESTfull API server van de BRO.

6 - Graphical presentation
    GEF-CPT and BRO-XML files contain all data for 2-dimensional presentations. All these graphs are written to a standard pdf file. Also derivative graphs like "soil behaviour type" are visualised.

7 - Error reporting
    If the software can't make a succesfull conversion an explanatory email will be sent later.

8 - Conversiontime
    The total conversion time for one CPT test is less than 5 seconds. Determination of the "soil behaviour type" is computationally intensive and can be a substantial part of the total time. Conversion time also depends on filesize, webserver, RESTful API server, mailserver and internet speed.

9 - Self-learning conversion software
    Het GEF-CPT formaat kan worden omschreven als "loosely typed". Tekst kan voorkomen op niet voor de hand liggende plaatsen. De volgorde van sommige "keywords" is belangrijk maar voor andere geldt dit niet. In sommige delen van het bronbestand mogen spaties worden genegeerd. Maar in andere delen juist weer niet. De verwerkingssoftware moet alle mogelijke combinaties herkennen en op de juiste manier verwerken. Het kan voorkomen dat een bepaalde combinatie of structuur nog niet wordt herkend. Team www.cptdata.nl zal in dat geval de conversiesoftware aanpassen zodat een dergelijk geval in de toekomst wel op de juiste manier automatisch wordt verwerkt.

10 - GEF-CPT versus BRO-XML
- In een GEF-CPT 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-CPT formaat is overgenomen.

11 - Archief DINOloket
- Gearchiveerde BRO-XML bestanden bestaan uit 1 lange regel. "Carriage Return" en "Linefeed" karakters zijn weggelaten. Een gevolg hiervan is een moeilijker leesbaarheid en verwerkbaarheid.
- Datarijen in BRO-XML bestanden zouden altijd in de juiste volgorde moeten staan. Dit is echter lang niet altijd het geval. Kolommen penetratielengte en verlopen tijd zijn in dergelijke gevallen niet eenduidig oplopend. Blijkbaar gaat ergens in de keten van data-acquisitie tot data-archivering iets mis. BRO en/of TNO medewerkers bevestigen dit probleem en hebben toegezegd daaraan te zullen werken.
- De XSD (XML schema design) specificatie van de BRO zegt merkwaardig genoeg niets over de meetdata zelf. Er is derhalve geen controle m.b.t. bereik, nauwkeurigheid en getalsnotatie. Dit betekent in de praktijk dat een sondering met mogelijk foutieve meetwaarden door de BRO word geaccepteerd.
- In sommige BRO-XML bestanden is het element "zeroLoadMeasurement" wel aanwezig maar heeft geen child elementen. Dit is niet in overeenstemming met de XSD specificatie. BRO en/of TNO medewerkers bevestigen dit maar zien dit niet als een probleem.
- Een gedownload document met root element "dispatchDataResponse" heeft als childelement "dispatchDocument". Dit element heeft als child element "CPT_O_DP". Dit is niet in overeenstemming met de XSD specificatie.
- SVG bestanden zijn onjuist of onvolledig. Ook nu ontbreken de "Carriage Return" en "Linefeed" karakters. Bovendien zorgt een schaakbord-achtergrond ervoor dat grafiek en text niet duidelijk leesbaar zijn. Genoemde achtergrond kan overigens gemakkelijk worden veranderd door het toevoegen van de volgende regel "<rect x="0" y="0" width="100%" height="100%" fill="white"/>"
- Een door "www.cptdata.nl" gegenereerd pdf bestand bevat voor iedere meetparameter een grafische presentatie. Van iedere datakolom wordt tevens de resolutie berekend en gevisualiseerd. Bij veel BRO-XML bestanden valt op dat de hellingmeter resolutie niet in verhouding staat tot het meetbereik. Voorbeeld : een resolutie van 1 graad op een bereik van -1 tot +1 graad. Een dergelijke hellingmeting is niet zinvol.

12 - Validation
Bij een GEF-CPT naar BRO-XML conversie wordt het gegenereerde XML bestand (automatisch) aangeboden aan de validatieservice van de BRO. De BRO retourneert een testrapport met daarin informatie of het XML bestand voldoet aan de standaard. Met dit testrapport weet de aanvrager van de conversie of het gegenereerde XML bestand geschikt is voor inname door de BRO.

13 - Doorsturen gegevens naar de BRO
Bij voldoende belangstelling wil team www.cptdata.nl volautomatisch sondeerdata kunnen aanleveren aan de BRO. De keuze om een gegenereerd BRO-XML bestand direkt te deponeren bij de BRO kan dan door de gebruiker worden aangevinkt in het websiteformulier. Op deze manier wordt het gehele proces van conversie, validatie en levering in 1 transactie afgerond.

14 - Zelf gegevens aanleveren aan de BRO
Een sondeerbedrijf kan ook zelf data aanleveren bij de BRO. Hierbij word het bedrijf voor een bepaald project gemachtigd door de betreffende bronhouder (b.v. gemeente) en fungeert daarmee als dataleverancier. Er zijn twee mogelijkheden :
1 - Handmatig aanleveren via het bronhouder portaal. Na inloggen kunnen via deze website BRO-XML bestanden worden geupload naar de BRO.
2 - Volautomatisch aanleveren van BRO-XML bestanden door vanaf een client computer te communiceren met een RESTful API server van de BRO. Voor deze manier van communiceren is authentificatie vereist. Het instellen van een username en password is reeds eerder gebeurd via het bronhouderportaal. In alle communicatie met de RESTful API server worden beide "sleutels" gebruikt.

Samenvatting :
1 - Sondeerbedrijf maakt een account aan in het bronhouderportaal
2 - Sondeerbedrijf maakt onder genoemd account een username en password aan. Dit is noodzakelijk wanneer data word geleverd aan een RESTful API server
3 - Voor een project kan het sondeerbedrijf nu gemachtigd worden door een bronhouder. De bronhouder machtigt het sondeerbedrijf via zijn eigen account in het bronhouderportaal. Het sondeerbedrijf is nu dataleverancier.
4 - Het nu gemachtigde sondeerbedrijf kan sondeerdata leveren aan de BRO via zijn account of de RESTful API server

15 - Resources
    Among others the following resources have been used in creating the conversion software :

1 GEF-CPT 1.1.2
2 GEF-CPT 1.1.3
3 GEF-CPT 1.1.3 release notes
4 GEF-CPT 1.1.3 beschrijving
5 GEF-CPT dissipation test
6 GEF-BORE 1.0.0
7 BRO : Een handreiking voor conversie
8 Basisregistratie Ondergrond Catalogus Geotechnisch Sondeeronderzoek (CPT)
9 XML schema design files
10 XML tutorial
11 XML schema tutorial
12 BasisRegistratie Ondergrond (BRO)
13 Bronhouderportaal
14 DINOloket
15 Boek : Compilers (Principles, Techniques & Tools) by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
16 Soil Behaviour Type from the CPT
by P.K. Robertson, Gregg Drilling & Testing Inc.
Signal Hill, California, USA