##// END OF EJS Templates
Removed empty path item in product tree with python providers...
Removed empty path item in product tree with python providers Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1434:865bdf496f65
r1438:8e8b7407a3ae
Show More
amda.py
67 lines | 2.4 KiB | text/x-python | PythonLexer
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429 import sys
sys.path.append("/home/jeandet/Documents/prog/build-SciQLop-Desktop-Debug/core")
WIP Multicomponent TS...
r1431 import traceback
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429 import os
WIP Multicomponent TS...
r1431 from datetime import datetime, timedelta, timezone
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429 import PythonProviders
import pysciqlopcore
import numpy as np
import pandas as pds
import requests
MultiComponent TS almost complete...
r1432 import copy
Added POC AMDA python impl and CDAWEB bits...
r1430 from spwc.amda import AMDA
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429
Added POC AMDA python impl and CDAWEB bits...
r1430 amda = AMDA()
def get_sample(metadata,start,stop):
ts_type = pysciqlopcore.ScalarTimeSerie
Few fixes with merging empty csv files from Web Services...
r1433 default_ctor_args = 1
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429 try:
Added POC AMDA python impl and CDAWEB bits...
r1430 param_id = None
for key,value in metadata:
if key == 'xml:id':
param_id = value
elif key == 'type':
if value == 'vector':
ts_type = pysciqlopcore.VectorTimeSerie
MultiComponent TS almost complete...
r1432 elif value == 'multicomponent':
ts_type = pysciqlopcore.MultiComponentTimeSerie
Few fixes with merging empty csv files from Web Services...
r1433 default_ctor_args = (0,2)
MultiComponent TS almost complete...
r1432 tstart=datetime.datetime.fromtimestamp(start, tz=timezone.utc)
tend=datetime.datetime.fromtimestamp(stop, tz=timezone.utc)
Few fixes with merging empty csv files from Web Services...
r1433 df = amda.get_parameter(start_time=tstart, stop_time=tend, parameter_id=param_id, method="REST")
WIP Multicomponent TS...
r1431 t = np.array([d.timestamp() for d in df.index])
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429 values = df.values
WIP...
r1434 return ts_type(t,values)
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429 except Exception as e:
WIP Multicomponent TS...
r1431 print(traceback.format_exc())
Added POC AMDA python impl and CDAWEB bits...
r1430 print("Error in amda.py ",str(e))
Few fixes with merging empty csv files from Web Services...
r1433 return ts_type(default_ctor_args)
Added POC AMDA python impl and CDAWEB bits...
r1430
if len(amda.component) is 0:
amda.update_inventory()
MultiComponent TS almost complete...
r1432 parameters = copy.deepcopy(amda.parameter)
Added POC AMDA python impl and CDAWEB bits...
r1430 for name,component in amda.component.items():
if 'components' in parameters[component['parameter']]:
parameters[component['parameter']]['components'].append(component)
else:
parameters[component['parameter']]['components']=[component]
products = []
for key,parameter in parameters.items():
path = f"/AMDA/{parameter['mission']}/{parameter['instrument']}/{parameter['dataset']}/{parameter['name']}"
components = [component['name'] for component in parameter.get('components',[])]
metadata = [ (key,item) for key,item in parameter.items() if key is not 'components' ]
MultiComponent TS almost complete...
r1432 n_components = parameter.get('size',0)
if n_components is '3':
Added POC AMDA python impl and CDAWEB bits...
r1430 metadata.append(("type","vector"))
MultiComponent TS almost complete...
r1432 elif n_components !=0:
metadata.append(("type","multicomponent"))
Added POC AMDA python impl and CDAWEB bits...
r1430 else:
metadata.append(("type","scalar"))
products.append( (path, components, metadata))
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429
Added POC AMDA python impl and CDAWEB bits...
r1430 PythonProviders.register_product(products, get_sample)
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429