ProRail gebruikt een tekstformaat genaamd KRDZ (wat volgens mij staat voor koördinatenbestand met Z) voor het uitwisselen van meetgegevens van het spoor. Meetbedrijven leveren metingen als KRDZ aan ProRail, en uit de ProRail applicatie Sigma kun je metingen als KRDZ downloaden. De opbouw van zo’n bestand is beschreven in een bijlage van de RLN000296 Absolute Spoorgeometrie. Hier een paar voorbeeldregels:
1012    127363.464  462297.770  015118 -003  000.605        202206  0.010  0.015   002  54  003
1012    127363.142  462296.823  015119 -003  000.606        202206  0.010  0.015   002  54  003
S3676R    127842.158  463737.325  015120  000  002.747        202206  0.010  0.050   000  00  003
18    125547.021  457608.406  015121  000  008.217        202206  0.010  0.015   000  00  003
Een KRDZ bestand kan zowel punten als lijnen bevatten. Vertices van lijnen hebben daarbij altijd een viercijferige code. Voor het bekijken van de inhoud van een KRDZ bestand zou het natuurlijk ontzettend handig zijn om deze niet alleen als puntjes te bekijken (wat met de tekst-import van QGIS makkelijk te realiseren is) maar ook de lijnen daadwerkelijk als lijnen te plotten. Hiervoor heb ik een Python script geschreven, deze kun je hier downloaden.
Dit script vertaald een KRDZ bestand naar twee 3D shapefiles. De verkanting wordt als m-waarde aan elke vertex meegegeven. Je kunt hem in QGIS gebruiken door de Python console te openen, daar de editor te tonen en het script te laden en uit te voeren (wel handmatig het pad naar het KRDZ bestand opgeven).
Een aantal dingen kunnen nog verbeterd of aangepast worden:
- Streng gezien dient een lijn te eindigen met een punt dat een code heeft die op 0 eindigt, niet 2. Bij Sigma exports is dit echter niet het geval. Mocht je een script willen hebben die hiermee goed omgaat dan zou je een check moeten toevoegen op 0 als laatste cijfer en dit punt toevoegen aan de lijst van punten voordat de feature wordt aangemaakt.
 - Er wordt nu alleen de code als attribuut meegegeven, de andere attributen zoals meetdatum worden genegeerd.
 - Lijnen worden pas geknipt bij 100m afstand tussen de vertices, wat voor sommige bestanden teveel kan zijn.
 - Er wordt nu een enkel bestand gelezen. Je zou ook alle bestanden in een map of evt. zelfs in submappen (met os.walk) kunnen inlezen.
 - Puntvormige objecten met een code die uit vier cijfers bestaat (zoals P7/7 voor een bovenleidingsmast) worden nu niet meegenomen. Met isnumeric() zou je kunnen checken of het daadwerkelijk een lijncode is.
 
  
Een gedachte over “KRDZ bestanden lezen met QGIS”
KRDZ betekent koordinaten RD met Z.