-
jacques.grelet_ird.fr authoredjacques.grelet_ird.fr authored
oceano.py 2.52 KiB
import argparse
import sys
import PySimpleGUIQt as sg
# import PySimpleGUIQt as sg
import toml
import logging
from file_extractor import FileExtractor
import pathlib
# usage:
# > python oceano.py data/cnv/dfr2900[1-3].cnv -d
# > python oceano.py data/cnv/dfr2900[1-3].cnv -k PRES TEMP PSAL DOX2 DENS
# > python oceano.py data/cnv/dfr29*.cnv -d
parser = argparse.ArgumentParser(
description='This program read multiple ASCII file, extract physical parameter \
following ROSCOP codification at the given column, fill arrays, write header file',
epilog='J. Grelet IRD US191 - March 2019')
parser.add_argument('-d', '--debug', help='display debug informations',
action='store_true')
parser.add_argument('-c', '--config', help="toml configuration file, (default: %(default)s)",
default='tests/test.toml')
parser.add_argument('-k', '--key', nargs='+', default=['PRES', 'TEMP', 'PSAL'],
help='display dictionary for key(s), (default: %(default)s)')
parser.add_argument('-g', '--gui', action='store_true',
help='use GUI interface')
parser.add_argument('files', nargs='*',
help='cnv file(s) to parse, (default: data/cnv/dfr29*.cnv)')
args = parser.parse_args()
# set looging mode if debug
if args.debug:
logging.basicConfig(
format='%(levelname)s:%(message)s', level=logging.DEBUG)
# test arguements from sys.argv, args is never to None with default option set
if len(sys.argv) == 1:
# define GUI layout
layout = ([[sg.Text('File(s) to read and convert')],
[sg.Input(size=(40, .8)), sg.FileBrowse(
file_types=(("cnv files", "*.cnv"),))],
[sg.Checkbox('PRES'), sg.Checkbox('TEMP'), sg.Checkbox('PSAL')],
[sg.CloseButton('Run'), sg.CloseButton('Cancel')]])
# create the main windows
event, values = sg.Window('Oceano converter').Layout(layout).Read()
# fname = pathlib.PurePosixPath(fname)
print(event, values[0])
else:
# in line command
values[0] = args.files
if not values[0]:
sg.Popup("Cancel", "No filename supplied")
raise SystemExit("Cancelling: no filename supplied")
# transform full pathname into list
fe = FileExtractor([values[0]])
print("File(s): {}, Config: {}".format(values[0], args.config))
cfg = toml.load(args.config)
[n, m] = fe.firstPass()
print("Indices:", n, m)
fe.secondPass(args.key, cfg, 'ctd')
# fe.secondPass(['PRES', 'TEMP', 'PSAL', 'DOX2'], cdf, 'ctd')
fe.disp(args.key)
# fe.disp(['PRES', 'TEMP', 'PSAL', 'DOX2'])