Aktionen

QS mit CheckSummen und FileContent

Aus BAWiki

Die User können zur Qualitätssicherung mit dem md5sum-Algorithmus 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 mit NetCDF schreibenden Postprozessoren der BAW implementiert.

1. Checksumme

Checksummen dienen dazu die Gleichheit von Eingabedateien zweier ähnlicher Programmläufe zu prüfen. Die Programme bilden die Checksummen mit dem md5sum-Befehl und schreiben sie als Character-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