runConverter - Convert between timeseries formats

NAME

PROZESSING - Convert between timeseries formats

COPYRIGHT

Copyright (C) 2012-2021 TBBM <https://www.tbbm.at>

SYNOPSIS

runConverter.pl [options] -converter [converter] -i [spool] -o [target] -archive [archive]

runConverter.pl [options] -converter [converter] -f [file] runConverter.pl [options] -converter [converter] -f [file] -o [target dir]

runConverter.pl [options] -iniFile [file]

OPTIONS

General Options

-h

Print a brief help message and exits.

-help

Prints the manual page and exits.

-logLevel

Sets the log level: DEBUG, DEBUG, WARN, ERROR, defaults to INFO.

-logDir

Sets the directory to store the log files, defaults to ./logs.

-logIni

Defines a custom log configuration file to use, defaults to a built-in configuration.

Conversion options

-converter

The format converter.

-i

The spool directory, i.e., from where to read the files to convert. Multiple directories are supported and can specified using a comma as delimiter: dir1,dir2

-o

The destination directory, i.e., where to put the converted files. Multiple directories are supported and can specified using a comma as delimiter: dir1,dir2

-separateFilesPerHeader

Whether to export separate files per header. When enabled, for an input file `foo.dat`, `foo_01234_X.zrxp` and `foo_01234_Y.zrxp` are exported.

-f

The source file, which is converted to {destination directory}/{unix}.zrxp or {file}.zrxp.

-archive

The archive directory, i.e., where to move the files after successful processing. Multiple directories are supported and can specified using a comma as delimiter: dir1,dir2

-archiveSubdirectory

Whether to group files in the archive directory by datalogger. Not supported by all converters.

-archiveUnique

Whether to append a timestamp to the filename before archiving to avoid overwriting.

-regex

A regular expression to determine which files to process from the spool directory.

-regexFile

A file to read the filename regex from. Blank lines and lines beginning with # are ignored. Remaining lines are combined into a regex alternation: (line1|line2|...|lineN).

-regexInvert

Whether to invert the regular expression, i.e., files matching the expression are ignored.

-rexchange

A template string to generate the REXCHANGE. The supported variables is converter dependent.

-rexchangeRegexFile

A file to read the exchange number regex from. Blank lines and lines beginning with # are ignored. Remaining lines are combined into a regex alternation: (line1|line2|...|lineN).

-rexchangeRegexInvert

Whether to invert the regular expression, i.e., exchange numbers matching the expression are ignored.

-sleep

Convert every X seconds, does not terminate.

-inotify

Linux only: use inotify for monitoring filesystem events. Converts a file immediately after a IN_CLOSE_WRITE (file opened for writing was closed) event.

-minModDiff

Do not touch files younger than the specified seconds.

-minZeroDiff

Do not delete empty files younger than the specified seconds.

Configuration based conversion

-iniFile

The converter config file, such as:

        [CONV]
        REGEX = .dat                            # regulärer Ausdruck für Dateinamenmuster, die konvertiert werden sollen
    
        REGEX_FILE = ...                        # ??
    
        REGEX_INVERT = 0|1                      # wenn auf 1 gesetzt werden Datein gesucht, die nicht dem Muster aus REGEX entsprechen
    
        FORMAT_SRC = xyz                        # Bezeichnung des Quell Datei Formats
    
        FORMAT_DEST = zrxp                      # Bezeichnung des Ziel  Datei Formats
    
        REXCHANGE = {station}_{channel}         # Muster für die Generierung der eindeutigen Austauschnummer
                                                # Welche Einträge zur Verfügung stehen ist abhängig vom FORMAT_SRC
                                            
        ;ADD_ZRXP_HEADER_LINE = #XTRUNCATE1|*|  # fügt einen zusätzliche Eintrag in den ZRXP Header hinzu
                                            # mit #XTRINCATE1 kann z.b. gewährleistet werden, dass die Daten 
                                            # vor dem Import im Zielsystem gelöscht werden
        REXCHANGE_REGEX_FILE = ...
    
        REXCHANGE_REGEX_INVERT = 0
    
        SPOOL = ../Daten/spool/xyz              # Quellverzeichnis der Dateien
    
        DEST = ../Daten/zrxp/xyz                # Zielverzeichnis für konvertierte Dateien
    
        SEPARATE_FILES_PER_HEADER = 0|1         # OPTIONAL mit 1 wird für jede Zeitreihe eine separare Datei geschrieben
                                            # mit 0 (default) werden alle Zeitreihen der Quelldatei in eine einzige Ziel Datei geschrieben
                                            
        ARCH = ../Daten/arch/xyz                # Archivverzeichnis für originale Quelldateien

    ARCH_MKDIR = 0|1                        # Archivverzeichnis automatisch erstellen
    
        ARCH_SUBDIR = 0                         # Es wird nach Substrings (z.b. die ersten 8 Zeichen) im Dateinamen archiviert,
                                                # so dass jede Messstelle ein eigenes Archivverzeichnis hat
                                            
        UNQ = 0|1                               # OPTIONAL: mit 1 wird die Quelldatei eindeutig gemacht (für den Fall, dass
                                                # der Lieferant immer den selben Dateinamen schickt)
                                            
        WIKI = ...                              # OPTIONAL: Möglichkeit per URL zur Dokumentation zu verlinken, die URL wird im
                                                # automatisch generierten Systemschaubild übernommen und kann dort angewählt werden
                                            
        EXPECT_INTERVAL = ...                   # OPTIONAL: Möglichkeit ein Erwartungs-Intervall festzulegen (z.b. alle 60 min),
                                                # dies kann automatisch zu Warnmeldungen führen, sollten die Daten nicht im 
                                                # Intervall hereinkommen
                                            
        min_mod_diff = ...                      # OPTIONAL: Mindest-Wartezeit in Sekunden, wenn die Datei erst neu geschrieben wurde,
                                                # um ein Abschneiden einer Datei zu vermeiden, die erst gerade geschrieben wird
                                            
        min_zero_diff = ...                     # OPTIONAL: Mindest-Wartezeit in Sekunden nach der eine leere Datei gelöscht wird

EXAMPLES

einfache Formatkonvertierung für Dateiendungen txt bzw. csv

    [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
    

einfache Konvertierung zum verschieben von Dateien

    [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

    [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
    
 runConverter - Convert between timeseries formats