Aktionen

BOE2NC: Unterschied zwischen den Versionen

Aus BAWiki

imported>Hagen Robert
(Die Seite wurde neu angelegt: „{{Programmkennblatt |name_en=BOE2NC |name=BOE2NC |version=Juni 2019 |version_beschr=Juni 2019 |stichworte=Preprozessor<br /> Wandlung einer Menge von BOEWRT.…“)
 
imported>Hagen Robert
K
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
 
|name_en=BOE2NC
 
|name_en=BOE2NC
 
|name=BOE2NC
 
|name=BOE2NC
|version=Juni 2019
+
|version=August 2019
 
|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<br />
 +
[[BOEWRT.DAT]]<br />
 +
[[CF-NETCDF.NC|cf-netcdf.nc]]
  
 
|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]]) wird angewendet um eine beliebige Menge von Messdaten vom [[BOEWRT.DAT]] in eine zusammengefasste [[CF-NETCDF.NC|cf-netcdf.nc]] zu überführen.  
<br />
+
 
 
# 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.
+
# [[BOEWRT.DAT]] Messdaten werden in Wasserstände und nicht-Wasserstände unterschieden.
 +
# Nicht-Wasserstände werden anhand anhand des Stationsnamens der [[BOEWRT.DAT]] einem Wasserstand 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.
 
# 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.
+
# 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.
<br />
 
  
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.
<br />
+
# Ein nicht-Wasserstand hat keinen Wasserstand zugeordnet.
Anmerkungen
+
 
# Der Messstationsname wird aus der [[BOEWRT.DAT]] Datei für alle Outputs verwendet. Es ist also von Vorteil diesen '''kurz''' zu wählen.
+
|Anmerkungen=
# Für die Statistikausgabe werden MAE, RMSE, bzw. RMAE und RRMSE empfohlen.
+
# Die [[BOEWRT.DAT]] Eingangsdaten müssen zwingend die Endung *.boewrt.dat aufweisen!
# Da es möglich ist mehrsprachig (deutsch, englisch) mit mehreren Ausgabeformaten (.png, .fig, .eps, .pdf) zu arbeiten, ergibt sich sehr schnell eine extrem große Menge an Bildern (>1.000). Der Nutzer sollte sich entsprechend vorher überlegen, welche Darstellungen überhaupt in welchen Formaten benötigt werden.
+
# 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.
 +
# Sind mehrere Tiefen für eine Station vorhanden sollte der Stationsname geändert werden. Liegen zum Beispiel für RSS Messungen in 2 und 8m Wassertiefe vor, sollten die Stationsnamen RSS_020 und RSS_080 heißen. Für jeder der beiden Daten muss dann eine Wasserstandszeitreihe vorgegeben werden.
  
 
|eingabedateien=
 
|eingabedateien=
# '''allgemeine Eingabedaten''' (Dateityp [[NCPOLO.DAT|ncpolo.dat]]);
+
# req: Steuerdatei [[BOE2NC.dat]]
# '''Modelldaten''', aus [[UNTRIM2007]], [[UNTRIM2]] und [[UNK]] (Dateityp [[CF-NETCDF.NC|cf-netcdf.nc]]);
+
# opt: Reihenfolgedatei z.B. reihenfolge.txt
# '''Messdaten''', z. B. Wasserstand (Dateityp [[CF-NETCDF.NC|cf-netcdf.nc]]);
 
  
 
|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 49: Zeile 47:
  
 
# 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 für jede Wasserstands-Station gecheckt, ob alle angeforderten physikalischen Größen vorhanden sind.
### Falls ja, wird das flächige Modellergebnis am räumlich nächsten Index (Face oder Edge) ausgelesen.
+
## Check: Soll die physikalische Größe erzeugt werden?
### Check: Fällt die ausgelesene nächste Position trocken?
+
## Check: Existieren hier schon "echte" Daten?
### Falls ja, Auslesen der nächstnäheren Position, bis ''minPoints'' erreicht ist, oder der Punkt nicht mehr trockenfällt.
+
## Falls ja, werden die Daten an die Station angehängt.
### 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 dann 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]]) zusammengefü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=

Aktuelle Version vom 7. August 2019, 05:10 Uhr

Basisinformationen

Programm-Name

BOE2NC

Version

August 2019

Beschreibung

Juni 2019

Stichworte

Preprozessor
Wandlung
BOEWRT.DAT
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.

  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. BOEWRT.DAT Messdaten werden in Wasserstände und nicht-Wasserstände unterschieden.
  8. Nicht-Wasserstände werden anhand anhand des Stationsnamens der BOEWRT.DAT einem Wasserstand zugeordnet.
  9. 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.
  10. Ist eine physikalische Größe für einen Pegel nicht vorhanden werden Fill_Values zugeordnet.
  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.

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 für jede Wasserstands-Station gecheckt, ob alle angeforderten physikalischen Größen vorhanden sind.
    1. Check: Soll die physikalische Größe erzeugt werden?
    2. Check: Existieren hier schon "echte" Daten?
    3. Falls ja, werden die Daten an die Station angehängt.
    4. Falls nein, wird ein Array mit Fill_Values erzeugt, welcher nach BOEWRT.DAT gespeichert wird.
    5. Diese BOEWRT.DAT wird mit DATACONVERT nach cf-netcdf.nc überführt und dann an den entsprechenden Wasserstand angehängt.
    6. Dies wird für alle angeforderten physikalischen Werte wiederholt.
  7. Anschließend werden alle cf-netcdf.nc Messdaten mit ncrcat -h (NetCDF Operators) zusammengeführt
  8. 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