Aktionen

BOE2NC: Unterschied zwischen den Versionen

Aus BAWiki

imported>Hagen Robert
imported>Hagen Robert
Zeile 5: Zeile 5:
 
|version_beschr=Juni 2019
 
|version_beschr=Juni 2019
 
|stichworte=Preprozessor<br />
 
|stichworte=Preprozessor<br />
Wandlung einer Menge von [[BOEWRT.DAT]] in [[CF-NETCDF.NC|cf-netcdf.nc]]<br />
+
Wandlung einer Menge von [[BOEWRT.DAT]] in eine zusammengefasste [[CF-NETCDF.NC|cf-netcdf.nc]]<br />
  
 
|kurzbeschreibung=
 
|kurzbeschreibung=
[[BOE2NC]] (siehe auch [[BOE2NC.DAT|boe2nc.dat]]) wird angewendet um eine beliebige Menge von Messdaten vom [[BOEWRT.DAT]] in [[CF-NETCDF.NC|cf-netcdf.nc]] zu überführen. Hierbei gilt es zu beachten:
+
[[BOE2NC]] (siehe auch [[BOE2NC.DAT|boe2nc.dat]]) wird angewendet um eine beliebige Menge von Messdaten vom [[BOEWRT.DAT]] in eine zusammengefasste [[CF-NETCDF.NC|cf-netcdf.nc]] zu überführen.  
 +
Hierbei gilt es zu beachten:
 
# Alle Messdaten müssen in einem Ordner vorliegen
 
# Alle Messdaten müssen in einem Ordner vorliegen
 
# Erlaubte physikalische Größen sind zur Zeit: Wasserstand, Salzgehalt, Temperatur, Strömungsgeschwindigkeit
 
# Erlaubte physikalische Größen sind zur Zeit: Wasserstand, Salzgehalt, Temperatur, Strömungsgeschwindigkeit
 
# Zur Strömungsgeschwindigkeit muss eine Magnitude und eine Richtung vorliegen
 
# Zur Strömungsgeschwindigkeit muss eine Magnitude und eine Richtung vorliegen
 
# Die [[BOEWRT.DAT]] Header müssen zwingend enthalten (Zeitzone, Koordinatensystem, Koordinaten, ID)
 
# Die [[BOEWRT.DAT]] Header müssen zwingend enthalten (Zeitzone, Koordinatensystem, Koordinaten, ID)
# Die Messdaten sollten geprüft sein. Eine Prüfung des Wertebereichs wird nicht vorgenommen.
+
# Die Messdaten sollten geprüft sein. Eine Prüfung des Wertebereichs wird nicht vorgenommen. Die Wandlung ist zudem recht zeitintensiv - und bei fehlerhaften Daten muss neu gestartet werden.)
# Es ist möglich den Messstationen eine Reihenfolge in einem Textfile vorzugeben. Dafür bitte die Stationsnamen in der gewünschten Reihenfolge in der Datei hinterlegen.
+
# Es ist möglich den Messstationen eine Reihenfolge in einem Textfile vorzugeben. Dafür bitte die Stationsnamen in der gewünschten Reihenfolge in einer Text-Datei hinterlegen. Dieser Textfile muss bei den Messdaten liegen.
# Nicht-Wasserstände werden anhand des Stationsnames einander zugeordnet.
+
# Ist einer Nicht-Wasserstandsdatei kein Wasserstand zugeordnet wird die Nicht-Wasserstandsdatei nicht mit gewandelt.
 +
# Nicht-Wasserstände werden anhand nur anhand des Stationsnamens der [[BOEWRT.DAT]] einander zugeordnet.
 
# Ist eine physikalische Größe für einen Pegel nicht vorhanden werden Fill_Values zugeordnet.
 
# Ist eine physikalische Größe für einen Pegel nicht vorhanden werden Fill_Values zugeordnet.
 
# Messdaten die keine Wasserstände sind, müssen einen Wasserstand zugeordnet bekommen. Vorschlag hierfür: Kopieren eines nahegelegenen Wasserstandspegels und ändern des Stationsnamen auf den Namen der Nicht-Wasserstandgröße.
 
# Messdaten die keine Wasserstände sind, müssen einen Wasserstand zugeordnet bekommen. Vorschlag hierfür: Kopieren eines nahegelegenen Wasserstandspegels und ändern des Stationsnamen auf den Namen der Nicht-Wasserstandgröße.
 +
# Es ist möglich nicht alle physikalischen Größen zu verwenden. Dies spart massiv Rechenzeit, da keine Dummys erstellt, gewandelt und angehängt werden müssen.
  
Mögliche Fehlerquellen:
+
'''Mögliche Fehlerquellen:'''
 
# Einer oder mehrere [[BOEWRT.DAT]] Header sind fehlerhaft.
 
# Einer oder mehrere [[BOEWRT.DAT]] Header sind fehlerhaft.
 
# Die Stationsnamen stimmt nicht überein.
 
# Die Stationsnamen stimmt nicht überein.
  
Anmerkungen
+
'''Anmerkungen'''
# Die Daten müssen zwingend die Endung *.boewrt.dat aufweisen!
+
# Die [[BOEWRT.DAT]] Eingangsdaten müssen zwingend die Endung *.boewrt.dat aufweisen!
# Die Wandlung selbst nimmt den Großteil der Programmlaufzeit in Anspruch. 140 Jahreszeitreihen ~20min
+
# Die Wandlung selbst nimmt den Großteil der Programmlaufzeit in Anspruch. 100 Jahreszeitreihen ~70min
 
# Die Anwendung kann sich bei schwankender Messdatenqualität recht mühsam gestalten, da keine Möglichkeit besteht gewandelte [[CF-NETCDF.NC|cf-netcdf.nc]] zu bearbeiten. Entsprechend wird empfohlen sich alle Daten vor dem Wandeln anzugucken.
 
# Die Anwendung kann sich bei schwankender Messdatenqualität recht mühsam gestalten, da keine Möglichkeit besteht gewandelte [[CF-NETCDF.NC|cf-netcdf.nc]] zu bearbeiten. Entsprechend wird empfohlen sich alle Daten vor dem Wandeln anzugucken.
  
 
|eingabedateien=
 
|eingabedateien=
# Datenpfad
+
# req: Steuerdatei [[BOE2NC.dat|boe2nc.dat]]
 +
# opt: Reihenfolgedatei z.B. reihenfolge.txt
  
 
|ausgabedateien=   
 
|ausgabedateien=   
# Datei mit '''Informationen zum Programmablauf''' (Dateityp ncpolo.sdr)
+
# Datei mit Informationen zum Programmablauf (Dateityp *.sdr)
# (optional) Zeitreihen (Dateityp PNG, FIG, EPS, FIG)
+
# Datei mit Warnungen und Fehlern (Dateityp *.err)
# (optional) Scatterplot (Dateityp PNG, FIG, EPS, FIG)
 
# (optional) Hodograph (Dateityp PNG, FIG, EPS, FIG)
 
# (optional) Boxplotverteilung (Dateityp PNG, FIG, EPS, FIG)
 
# (optional) Statistikverteilung (Dateityp PNG, FIG, EPS, FIG)
 
# (optional) Statistische Kennwerte (Dateityp DAT, CSV, LATEX)
 
# (optional) Zeitlich und örtlich korrelierte Daten (Dateityp DAT, CSV, [[BOEWRT.DAT]], MAT)
 
  
 
|methode=
 
|methode=
Zeile 45: Zeile 43:
  
 
# Lesen der Steuerdatei des Anwenders.
 
# Lesen der Steuerdatei des Anwenders.
# Festlegen der zu bearbeitenden physikalischen Größen.
+
# Prüfen der Steuerdatei auf req. und opt Angaben
# Äußere Schleife (parallelisiert): Je physikalischer Größe:
+
# Auswerten der [[BOEWRT.DAT]] Headerinformationen
## Check: Existieren Messdaten für diese physikalische Größe?
+
# Auswerten der nutzerdef. Angaben der Dateiliste
## Check: Sollen Plots erstellt werden und wenn ja welche?
+
# Wandlung I: Vorgegebene [[BOEWRT.DAT]] Daten
## Check: Sollen Daten exportiert werden und wenn ja welche?
+
## Starten von [[ZEITRIO]] mit den Angaben aus der Steuerdatei [[BOE2NC.DAT]]
## Wenn 1 und 2 und/oder 3 zutreffend sind: Einladen der Messdaten der physikalischen Größe.
+
## Check: Haben alle Wandlungen mit [[ZEITRIO]] funktioniert? (nur mit Reihenfolge)
### Innere Schleife: Je Messposition (seriell):
+
## Starten von [[DATACONVERT]] mit den Angaben aus der Steuerdatei [[BOE2NC.DAT]]
### Korrelation von punktuell vorliegenden Messdaten auf die flächige 2D Ergebnisdatei
+
## Check: Haben alle Wandlungen mit [[DATACONVERT]] funktioniert?
### Check: Liegt die Position innerhalb des vorgegeben, maximalen Abstands ''maxDist''?
+
# Nun wird gecheckt, ob für jeden Wasserstand alle angeforderten physikalischen Größen vorhanden sind.
### Falls ja, wird das flächige Modellergebnis am räumlich nächsten Index (Face oder Edge) ausgelesen.
+
# Erstellen von Dummy-Werten falls die nicht-Wasserstandsgröße nicht vorhanden ist.
### Check: Fällt die ausgelesene nächste Position trocken?
+
## Check: Soll die physikalische Größe erzeugt werden?
### Falls ja, Auslesen der nächstnäheren Position, bis ''minPoints'' erreicht ist, oder der Punkt nicht mehr trockenfällt.
+
## Check: Existieren hier schon "echte" Daten?
### Check: Existieren gemeinsame Zeitpunkte innerhalb der Zeittoleranz ''ttol''?
+
## Falls nein wird ein Array mit Fill_Values erzeugt, welcher nach [[BOEWRT.DAT]] gespeichert wird.
### Falls ja, werden alle gemeinsamen Zeitpunkte für diese Position ermittelt und gespeichert.
+
## Diese [[BOEWRT.DAT]] wird mit [[DATACONVERT]] nach [[CF-NETCDF.NC|cf-netcdf.nc]] überführt und an den entsprechenden Wasserstand angehängt.
### Aus diesen Zeitpunkten wird die [[NCPOLO]] Statistik berechnet.
+
## Dies wird für alle angeforderten physikalischen Werte wiederholt.
### Alle eben ermittelten Werte werden abgespeichert -danach wird die nächste Position analog bearbeitet.
+
# Anschließend werden alle [[CF-NETCDF.NC|cf-netcdf.nc]] Messdaten mit ncrcat -h ([[NetCDF Operators]]) zusammegeführt
# Alle vom Nutzer gewünschten Grafiken werden erzeugt (parallelisiert).
+
# Abschließend werden alle temporären Dateien gelöscht und alle Wandlungsprodukte in entsprechende Ordner verschoben.
# Die Grafiken werden im nutzerdefinierten Format abgespeichert und in einer Verzeichnisstruktur im nutzerdefinierten Export Directory abgelegt.
 
# Alle vom Nutzer gewünschten Möglichkeiten zum Datenexport und Statistikexport werden erzeugt.
 
# Die Daten werden im nutzerdefinierten Format abgespeichert und in einer Verzeichnisstruktur im nutzerdefinierten Export Pfad abgelegt.
 
  
|preprozessor=[[ZEITRIO]],[[DATACONVERT]]
+
|preprozessor=[[ZEITRIO]], [[DATACONVERT]]
|postprozessor=[[NCDELTA]], [[NCANALYSE]], [[NCPOLO]]
+
|postprozessor=[[NCDELTA]], [[NCANALYSE]], [[NCPOLO]], [[NCPLOT]], [[NetCDF Operators]]
 
|programmiersprache=MATLAB r2018b
 
|programmiersprache=MATLAB r2018b
 
|zus_software= keine
 
|zus_software= keine
|kontakt_original=[mailto:robert.hagen@baw.de R. Hagen],[mailto:maurice.jurke@baw.de M. Jurke]
+
|kontakt_original=[mailto:robert.hagen@baw.de R. Hagen]
 
|kontakt_pflege=[mailto:robert.hagen@baw.de R. Hagen]
 
|kontakt_pflege=[mailto:robert.hagen@baw.de R. Hagen]
 
|dokumentation=
 
|dokumentation=

Version vom 27. Juni 2019, 13:39 Uhr

Basisinformationen

Programm-Name

BOE2NC

Version

Juni 2019

Beschreibung

Juni 2019

Stichworte

Preprozessor
Wandlung einer Menge von BOEWRT.DAT in eine zusammengefasste cf-netcdf.nc

Kurzbeschreibung

BOE2NC (siehe auch boe2nc.dat) wird angewendet um eine beliebige Menge von Messdaten vom BOEWRT.DAT in eine zusammengefasste cf-netcdf.nc zu überführen. Hierbei gilt es zu beachten:

  1. Alle Messdaten müssen in einem Ordner vorliegen
  2. Erlaubte physikalische Größen sind zur Zeit: Wasserstand, Salzgehalt, Temperatur, Strömungsgeschwindigkeit
  3. Zur Strömungsgeschwindigkeit muss eine Magnitude und eine Richtung vorliegen
  4. Die BOEWRT.DAT Header müssen zwingend enthalten (Zeitzone, Koordinatensystem, Koordinaten, ID)
  5. Die Messdaten sollten geprüft sein. Eine Prüfung des Wertebereichs wird nicht vorgenommen. Die Wandlung ist zudem recht zeitintensiv - und bei fehlerhaften Daten muss neu gestartet werden.)
  6. Es ist möglich den Messstationen eine Reihenfolge in einem Textfile vorzugeben. Dafür bitte die Stationsnamen in der gewünschten Reihenfolge in einer Text-Datei hinterlegen. Dieser Textfile muss bei den Messdaten liegen.
  7. Ist einer Nicht-Wasserstandsdatei kein Wasserstand zugeordnet wird die Nicht-Wasserstandsdatei nicht mit gewandelt.
  8. Nicht-Wasserstände werden anhand nur anhand des Stationsnamens der BOEWRT.DAT einander zugeordnet.
  9. Ist eine physikalische Größe für einen Pegel nicht vorhanden werden Fill_Values zugeordnet.
  10. Messdaten die keine Wasserstände sind, müssen einen Wasserstand zugeordnet bekommen. Vorschlag hierfür: Kopieren eines nahegelegenen Wasserstandspegels und ändern des Stationsnamen auf den Namen der Nicht-Wasserstandgröße.
  11. Es ist möglich nicht alle physikalischen Größen zu verwenden. Dies spart massiv Rechenzeit, da keine Dummys erstellt, gewandelt und angehängt werden müssen.

Mögliche Fehlerquellen:

  1. Einer oder mehrere BOEWRT.DAT Header sind fehlerhaft.
  2. Die Stationsnamen stimmt nicht überein.

Anmerkungen

  1. Die BOEWRT.DAT Eingangsdaten müssen zwingend die Endung *.boewrt.dat aufweisen!
  2. Die Wandlung selbst nimmt den Großteil der Programmlaufzeit in Anspruch. 100 Jahreszeitreihen ~70min
  3. Die Anwendung kann sich bei schwankender Messdatenqualität recht mühsam gestalten, da keine Möglichkeit besteht gewandelte cf-netcdf.nc zu bearbeiten. Entsprechend wird empfohlen sich alle Daten vor dem Wandeln anzugucken.

Eingabe-Dateien

  1. req: Steuerdatei boe2nc.dat
  2. opt: Reihenfolgedatei z.B. reihenfolge.txt

Ausgabe-Dateien

  1. Datei mit Informationen zum Programmablauf (Dateityp *.sdr)
  2. Datei mit Warnungen und Fehlern (Dateityp *.err)

Methode

Das Programm wurde mit MATLAB erstellt und mit PROGHOME Methoden ergänzt. Der Programmablauf wird nachfolgend skizziert:

  1. Lesen der Steuerdatei des Anwenders.
  2. Prüfen der Steuerdatei auf req. und opt Angaben
  3. Auswerten der BOEWRT.DAT Headerinformationen
  4. Auswerten der nutzerdef. Angaben der Dateiliste
  5. Wandlung I: Vorgegebene BOEWRT.DAT Daten
    1. Starten von ZEITRIO mit den Angaben aus der Steuerdatei BOE2NC.DAT
    2. Check: Haben alle Wandlungen mit ZEITRIO funktioniert? (nur mit Reihenfolge)
    3. Starten von DATACONVERT mit den Angaben aus der Steuerdatei BOE2NC.DAT
    4. Check: Haben alle Wandlungen mit DATACONVERT funktioniert?
  6. Nun wird gecheckt, ob für jeden Wasserstand alle angeforderten physikalischen Größen vorhanden sind.
  7. Erstellen von Dummy-Werten falls die nicht-Wasserstandsgröße nicht vorhanden ist.
    1. Check: Soll die physikalische Größe erzeugt werden?
    2. Check: Existieren hier schon "echte" Daten?
    3. Falls nein wird ein Array mit Fill_Values erzeugt, welcher nach BOEWRT.DAT gespeichert wird.
    4. Diese BOEWRT.DAT wird mit DATACONVERT nach cf-netcdf.nc überführt und an den entsprechenden Wasserstand angehängt.
    5. Dies wird für alle angeforderten physikalischen Werte wiederholt.
  8. Anschließend werden alle cf-netcdf.nc Messdaten mit ncrcat -h (NetCDF Operators) zusammegeführt
  9. Abschließend werden alle temporären Dateien gelöscht und alle Wandlungsprodukte in entsprechende Ordner verschoben.

Vorlauf-Programme

ZEITRIO, DATACONVERT

Nachlauf-Programme

NCDELTA, NCANALYSE, NCPOLO, NCPLOT, NetCDF Operators

Weitere Informationen

Programmiersprache

MATLAB r2018b

zusätzliche Software

keine

Originalversion

R. Hagen

Programmpflege

R. Hagen

Dokumentation/Literatur

  • Musterdateien:
    • Musterdateien finden sich in $PROGHOME/examples/boe2nc/

zurück zu Programmkennblätter


Strukturübersicht