QS mit CheckSummen und FileContent
Aus BAWiki
Die User können zur Qualitätssicherung mit dem Message-Digest Algorithmus 5 (MD5) gebildete Checksummen von Input-Dateien nutzen und den Inhalt von ASCII-Eingabedateien direkt aus den NetCDF-Ergebnisdateien extrahieren. Beide Features sind nicht ISO 19115 konform und können somit nicht in das Metadaten-Informationssystem MIS der BAW übernommen werden. Die Informationen können aber u.a. mit dem ncdump-Befehl direkt aus entsprechenden NetCDF-Dateien der BAW gelesen werden. Die Features wurden im Rahmen des DMQS-Projektes in die Simulationsprogramme UnTRIM und UnTRIM2 sowie die NetCDF-Dateien schreibenden Postprozessoren der BAW implementiert.
1. Checksumme
Checksummen dienen dazu die Gleichheit von Eingabedateien zweier Programmläufe zu prüfen. Die Programme bilden die Checksummen mit dem MD5-Algorithmus und schreiben sie als CHAR-(Zeichen-)-Variablen in die NetCDF-Ergebnisdateien. Als Beispiel folgt eine aus zwei Teilstrings bestehende Checksummen-Variable, die jeweils Prüfsummen und Datei-Infos aus NCDELTA-Steuerdaten enthalten:
md5sum_m_ncdelta_steer =
- "md5=c260d840c14f4482dfad41cdf971c2c5,
file=/net/lustre/temp/FuE/UNK/r028/ser/wrk/2019_11_05_POS/6_ncdelta/int/ncdelta.dat, descr=Eingabesteuerdatei des Typs ncdelta.dat",
- "md5=85f91901af2404c5ef23b06f6c766bff,
file=/net/lustre/temp/FuE/UNK/r028/ser/wrk/2D.r028.IZ_2012.integ.nc, descr=Data_Files-Reference_File";
Der Variableninhalt lässt sich für originale und neue NCDELTA-Läufe manuell extrahieren:
- ncdump –v <checksum_variable> <original_result.nc> > original.txt
- ncdump –v <checksum_variable> <new_result.nc> > new.txt
Der Vergleich der beiden Textdateien ergibt, ob im originalen und im neuen Lauf die exakt gleiche Eingabedatei verwendet worden ist. Wenn die Prüfsummen nicht identisch sind, kann das sowohl eine ggf. zu vernachlässigende Änderung der Metadaten als auch eine wesentliche Änderung der Zahlenwerte sein.
2. File-Content
BAW-Programme, die NetCDF-Dateien ausgeben, schreiben den Inhalt von ASCII-Eingabedateien in NetCDF-Variablen. Diese sind durch das Attribut cf_role = "dmqs_file_contents" gekennzeichnet. Das nachfolgende Beispiel zeigt die Eigenschaften einer Variable mit dem Inhalt einer Steuerdatei des Typs utromp2007.dat: contents_m_untrim2007_steer_utromp2007:
- long_name = "/net/themis/system/akprog/examples/untrim2007/run/channel/new_3d/utromp2007_new_3d.dat"
- short_name = "utromp2007_new_3d.dat"
- name_id = 3508
- comment = "Eingabedaten Paket m_untrim2007_steer File utromp2007_new_3d.dat"
- cf_role = "dmqs_file_contents" ;
Der Inhalt der Eingabedateien, bspw. die Parametrisierung eines Simulationslaufes lässt sich einfach aus der Ergebnisdatei rekonstruieren:
- ncdump –v <filcon_variable> <result.nc>
- mit dem MATLAB ncread Befehl
- usw.
Zurück zu Erfassung der Metadaten einer Simulation