sophy_proc_rev007.py
117 lines
| 5.7 KiB
| text/x-python
|
PythonLexer
|
r1535 | import os,sys,json | ||
import datetime | ||||
import time | ||||
import argparse | ||||
from schainpy.controller import Project | ||||
''' | ||||
NOTA: | ||||
Este script de prueba. | ||||
- Unidad del lectura 'HDFReader'. | ||||
- Unidad de procesamiento ParametersProc | ||||
''' | ||||
PATH = "/home/soporte/Documents/EVENTO/HYO_PM@2022-06-09T15-05-12/paramC0N36.0/2022-06-09T18-00-00/" | ||||
#PATH = "/home/soporte/Documents/EVENTO/HYO_PM@2022-06-09T15-05-12/param/2022-06-09T18-00-00/" | ||||
#PATH = "/home/soporte/Documents/EVENTO/HYO_PM@2022-06-09T15-05-12/paramC0N36.0/2022-06-09T19-00-00/" | ||||
#PATH = "/home/soporte/Documents/EVENTO/HYO_PM@2022-05-31T12-00-17/paramC0N36.0/2022-05-31T16-00-00/" | ||||
path = PATH | ||||
PARAM = { | ||||
'S': {'zmin': -45, 'zmax': -25, 'colormap': 'jet', 'label': 'Power', 'wrname': 'power','cb_label': 'dBm', 'ch':0}, | ||||
'SNR': {'zmin': -40, 'zmax': -20, 'colormap': 'jet', 'label': 'SNR', 'wrname': 'snr','cb_label': 'dB', 'ch':0}, | ||||
'V': {'zmin': -12, 'zmax': 12, 'colormap': 'sophy_v', 'label': 'Velocity', 'wrname': 'velocity', 'cb_label': 'm/s', 'ch':0}, | ||||
'R': {'zmin': 0, 'zmax': 1, 'colormap': 'jet', 'label': 'RhoHV', 'wrname':'rhoHV', 'cb_label': '*', 'ch':0}, | ||||
'P': {'zmin': -180,'zmax': 180,'colormap': 'RdBu_r', 'label': 'PhiDP', 'wrname':'phiDP' , 'cb_label': 'ยบ', 'ch':0}, | ||||
'D': {'zmin': -30, 'zmax': 80, 'colormap': 'sophy_r','label': 'ZDR','wrname':'differential_reflectivity' , 'cb_label': 'dBz','ch':0}, | ||||
'Z': {'zmin': -30, 'zmax': 80, 'colormap': 'sophy_r','label': 'Reflectivity ', 'wrname':'reflectivity', 'cb_label': 'dBz','ch':0}, | ||||
'W': {'zmin': 0, 'zmax': 15, 'colormap': 'sophy_w','label': 'Spectral Width', 'wrname':'spectral_width', 'cb_label': 'm/s', 'ch':0} | ||||
} | ||||
def main(args): | ||||
#filefmt="******%Y%m%d*%H%M%S*******" | ||||
#filefmt="SOPHY_20220609_184620_E8.0_Z" | ||||
parameters = args.parameters | ||||
grado = args.grado | ||||
MASK = None | ||||
for param in parameters: | ||||
filefmt ="******%Y%m%d*%H%M%S*******" | ||||
filter= "_E"+str(grado)+".0_"+param | ||||
variable = 'Data/'+PARAM[param]['wrname']+'/H' | ||||
desc = { | ||||
'Data': { | ||||
'data_param': [variable], | ||||
'utctime' : 'Data/time' | ||||
}, | ||||
'Metadata': { | ||||
'heightList': 'Metadata/range', | ||||
'data_azi' : 'Metadata/azimuth', | ||||
'data_ele' : 'Metadata/elevation', | ||||
'mode_op' : 'Metadata/scan_type', | ||||
'h0' : 'Metadata/range_correction', | ||||
} | ||||
} | ||||
project = Project() | ||||
project.setup(id='10',name='Test Simulator',description=desc) | ||||
readUnitConfObj = project.addReadUnit(datatype='HDFReader', | ||||
path=path, | ||||
startDate="2022/01/01", #"2020/01/01",#today, | ||||
endDate= "2022/12/01", #"2020/12/30",#today, | ||||
startTime='00:00:00', | ||||
endTime='23:59:59', | ||||
delay=0, | ||||
#set=0, | ||||
online=0, | ||||
walk=0, | ||||
filefmt=filefmt, | ||||
filter=filter, | ||||
dparam= 1, | ||||
description= json.dumps(desc))#1 | ||||
proc1 = project.addProcUnit(datatype='ParametersProc',inputId=readUnitConfObj.getId()) | ||||
if args.plot: | ||||
print("plotea") | ||||
op= proc1.addOperation(name='WeatherParamsPlot') | ||||
if args.save: | ||||
op.addParameter(name='save', value=path_plots, format='str') | ||||
op.addParameter(name='save_period', value=-1) | ||||
op.addParameter(name='show', value=args.show) | ||||
op.addParameter(name='channels', value='0,') | ||||
op.addParameter(name='zmin', value=PARAM[param]['zmin'], format='int') | ||||
op.addParameter(name='zmax', value=PARAM[param]['zmax'], format='int') | ||||
op.addParameter(name='attr_data', value=param, format='str') | ||||
op.addParameter(name='labels', value=[PARAM[param]['label']]) | ||||
op.addParameter(name='save_code', value=param) | ||||
op.addParameter(name='cb_label', value=PARAM[param]['cb_label']) | ||||
op.addParameter(name='colormap', value=PARAM[param]['colormap']) | ||||
op.addParameter(name='bgcolor', value='black') | ||||
if MASK: op.addParameter(name='mask', value=MASK, format='float') | ||||
if args.server: | ||||
op.addParameter(name='server', value='0.0.0.0:4444') | ||||
op.addParameter(name='exp_code', value='400') | ||||
project.start() | ||||
if __name__ == '__main__': | ||||
parser = argparse.ArgumentParser(description='Script to process SOPHy data.') | ||||
parser.add_argument('--parameters', nargs='*', default=['S'], | ||||
help='Variables to process: P, Z, V ,W') | ||||
parser.add_argument('--grado', default=2, | ||||
help='Angle in Elev to plot') | ||||
parser.add_argument('--save', default=0, | ||||
help='Save plot') | ||||
parser.add_argument('--range', default=0, type=float, | ||||
help='Max range to plot') | ||||
parser.add_argument('--plot', action='store_true', | ||||
help='Create plot files') | ||||
parser.add_argument('--show', action='store_true', | ||||
help='Show matplotlib plot.') | ||||
parser.add_argument('--server', action='store_true', | ||||
help='Send to realtime') | ||||
args = parser.parse_args() | ||||
main(args) | ||||