Appearance
Formatkonvertierung von Zeitreihen-Daten
Die Formatkonvertierung wird durch eine INI-Datei mit Sektion [CONV]
gesteuert. Dabei werden Dateien mit einem beliebigen Ausgangsformat (.csv, .txt, .xml, ...), welches durch die INI-Option REGEX
definiert wird, zu einer ZRXP-Datei konvertiert. Die Dateien befinden sich zunächst im Ordner der INI-Option SPOOL
und werden in den Ordner DEST
konvertiert. Vor der Konvertierung werden die Dateien vom SPOOL
Ordner in einen Archivordner (INI-Option ARCH
) kopiert.
powershell
python prozessing.pyz conv_xxxx.ini
INI-Datei: conv
ini
[CONV]
FORMAT_SRC =
FORMAT_DEST =
REGEX =
SPOOL =
DEST =
ARCH =
Folgende Keys werden für die INI-Sektion [CONV]
unterstützt. Pflichteinträge sind mit * markiert.
Key | Beispiel | Beschreibung |
---|---|---|
FORMAT_SRC * | mis | Bezeichnung des Quell-Datenformats |
FORMAT_DEST * | zrxp | Bezeichnung des Ziel-Datenformats |
REGEX * | .dat$ | Regulärer Ausdruck für Dateinamen-Muster |
GLOB * | *.dat | Unix-Shell-ähnliche Platzhalter für Dateinamen-Muster |
SPOOL * | ../Daten/spool/xyz | Quellverzeichnis der Dateien (auch Angabe von mehreren Pfaden möglich) |
DEST * | ../Daten/zrxp/xyz | Zielverzeichnis für konvertierte Dateien (auch Angabe von mehreren Pfaden möglich) |
DEST_MKDIR | False oder True | Zielverzeichnis automatisch erstellen |
DEST_SUBDIR | False oder True oder ^[re] | Jede Datensammlernummer in eigenem Unterverzeichnis ablegen oder Bilder nach Nummern einordnen (regulärer Ausdruck, wenn ^ oder . oder | vorkommt) |
ARCH * | ../Daten/arch/xyz | Archivverzeichnis für originale Quelldateien (auch Angabe von mehreren Pfaden möglich) |
ARCH_MKDIR | False oder True | Archivverzeichnis automatisch erstellen |
ARCH_SUBDIR | False oder True | Jede Datensammlernummer in eigenem Unterverzeichnis ablegen |
FAILED | ../Daten/failed_conv/xyz | Verzeichnis für fehlerhafte Quelldateien bzw. fehlgeschlagene Konvertierungen |
FAILED_MKDIR | False oder True | Verzeichnis automatisch erstellen |
STATS | ../Daten/provi | Verzeichnis für HTML-Historie von konvertierten Daten |
REXCHANGE | {station}_{parameter} | Muster für die Generierung der eindeutigen Austauschnummer Je nach Konverter stehen zur Verfügung: {station} , {station_name} , {parameter} , {channel} |
COMBINE_FILES | False oder True | mit False (default) werden alle Quelldateien separat konvertiertmit True werden pro SPOOL alle Quelldateien eingelesen und anschließend kombiniert geschrieben |
DEST_PREFIX | {now} | Präfix für Dateinamen im Zielverzeichnis, vgl. Platzhalter von Datenabholung |
MAX_GAP | PT1H13M21S | Maximale Lücke zwischen zwei Zeitstempeln, ab der ein zusätzlicher Header eingefügt wird. Format PyYmMwWdDThHmMsS |
SEPARATE_FILES_PER_HEADER | False oder True | mit False (default) werden alle Zeitreihen der Quelldatei in eine Zieldatei geschriebenmit True wird für jede Zeitreihe eine separate Datei geschrieben |
SEPARATE_HEADER_PER_LINE | False oder True | mit True wird für jede Datenzeile ein separater ZRXP-Block ausgegeben |
UNQ | False oder True | mit True (default) wird die Quelldatei eindeutig gemacht (für den Fall, dass der Lieferant immer den selben Dateinamen schickt) |
min_size | 0 oder 64 oder 1024 | Minimale Dateigröße in Bytes |
max_size | 0 oder 64 oder 1024 | Maximale Dateigröße in Bytes |
min_mod_diff | 0 oder 10 oder 30 | Mindest-Wartezeit in Sekunden, wenn die Datei erst neu geschrieben wurde, um ein Abschneiden einer Datei zu vermeiden, die erst gerade geschrieben wird |
flock | False oder True | File-Locking mittels fcntl.flock(fh, fcntl.LOCK_EX + fcntl.LOCK_NB) |
source_encoding | utf-8 | Encoding der Quelldateien |
INI-Datei: conv für Monitoring via Dokumentation und Datenflussdiagramme
Key | Beispiel | Beschreibung |
---|---|---|
EXPECT_INTERVAL | 3600 oder 3h oder 4d | Erwartungs-Intervall (in Sekunden) für Datenlieferungen in das Quellverzeichnis |
SPOOL_MONITORING | False oder True | Minimum für Monitoring der Quellverzeichnisse |
DEST_MONITORING | False oder True | Minimum für Monitoring der Zielverzeichnisse |
FAILED_MONITORING | 0 oder 42 oder ∞ | Minimum für Monitoring des Verzeichnis für fehlerhafte Quelldateien |
INI-Datei: Filterung von Datenblöcken
Positivliste: Wenn [STATIONS]
oder [PARAMETERS]
oder [REXCHANGE]
mit =1
angegeben, werden nur die genannten Stationen/Parameter konvertiert.
ini
[STATIONS]
sta1 = 1
sta2 = 1
[PARAMETERS]
par3 = 1
par4 = 1
[REXCHANGE]
rexchange5 = 1
rexchange6 = 1
Negativliste: Wenn [STATIONS]
oder [PARAMETERS]
oder [REXCHANGE]
mit =0
angegeben, werden die genannten Stationen/Parameter nicht konvertiert.
ini
[STATIONS]
sta1 = 0
sta2 = 0
[PARAMETERS]
par3 = 0
par4 = 0
[REXCHANGE]
rexchange5 = 0
rexchange6 = 0
Mappingliste: Wenn [STATIONS]
oder [PARAMETERS]
oder [REXCHANGE]
mit =[Zeichenkette]
angegeben, werden die angegebenen Stationen/Parameter durch die Zeichenkette ersetzt.
ini
[STATIONS]
sta1 = station1
sta2 = station2
[PARAMETERS]
par3 = parameter3
par4 = parameter4
[REXCHANGE]
rexchange5 = foo5
rexchange6 = bar6
INI-Datei: Einheiten-Mapping
Statt #CUNITpH-Wert|*|
wird #CUNIT−log(H⁺)|*|
im ZRXP-Header ausgegeben.
ini
[UNITS]
pH-Wert = −log(H⁺)
INI-Beispiele
einfache Formatkonvertierung für Dateiendungen txt bzw. csv
ini
[CONV]
REGEX = (.txt)|(.csv)
FORMAT_SRC = hobo
FORMAT_DEST = zrxp
SPOOL = F:/Datenmanagement/spool/irr_hobo
DEST = F:/Datenmanagement/zrxp/irr_hobo
ARCH = F:/Datenmanagement/arch/irr_hobo
UNQ = 1
SEPARATE_FILES_PER_HEADER = 1
WIKI = https://link.zur.dokumentation/hobo_konvertierung
mehrere Verzeichnisse
ini
[CONV]
REGEX = .csv
FORMAT_SRC = gprssommer
FORMAT_DEST = zrxp
SPOOL =
F:/Datenmanagement/spool/irr_gprssommer
F:/Datenmanagement/spool/wlv_gprssommer
DEST =
F:/Datenmanagement/zrxp/irr_gprssommer
F:/Datenmanagement/zrxp/wlv_gprssommer
ARCH =
F:/Datenmanagement/arch/irr_gprssommer
F:/Datenmanagement/arch/wlv_gprssommer
einfache Konvertierung zum verschieben von Dateien
ini
[CONV]
REGEX = gz
FORMAT_SRC = general_move
FORMAT_DEST = zrxp
SPOOL = F:/Datenmanagement/spool/wlv_hd2wlv
DEST = F:/Datenmanagement/arch/wlv_hd2wlv
ARCH = F:/Datenmanagement/arch/wlv_hd2wlv
einfache Konvertierung zum Kopieren von Dateien, falls diese z.b. mehrere Datenwege gehen sollen
ini
[CONV]
REGEX = .csv|.prc
FORMAT_SRC = general_copy
FORMAT_DEST =
SPOOL = F:/Datenmanagement/spool/oebb_gprssommer_spulersee_in
DEST = F:/Datenmanagement/spool/oebb_gprssommer_spulersee_hdv_out
ARCH = F:/Datenmanagement/spool/oebb_gprssommer_spulersee
EXPECT_INTERVAL = 1800