##// END OF EJS Templates
Added POC AMDA python impl and CDAWEB bits...
Added POC AMDA python impl and CDAWEB bits Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1430:ecc8b7b09c3d
r1430:ecc8b7b09c3d
Show More
amda.py
60 lines | 2.0 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")
import os
import datetime
import PythonProviders
import pysciqlopcore
import numpy as np
import pandas as pds
import requests
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
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
tstart=datetime.datetime.fromtimestamp(start)
tend=datetime.datetime.fromtimestamp(stop)
df = amda.get_parameter(start_time=tstart, stop_time=tend, parameter_id=param_id)
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429 t = np.array([d.timestamp()-7200 for d in df.index])
values = df.values
Added POC AMDA python impl and CDAWEB bits...
r1430 print(len(t))
print(len(values))
return ts_type(t,values)
return ts_type(1)
Some more progress on Python Providers side, works with a simple request on CDAWeb....
r1429 except Exception as e:
Added POC AMDA python impl and CDAWEB bits...
r1430 print("Error in amda.py ",str(e))
return ts_type(1)
if len(amda.component) is 0:
amda.update_inventory()
parameters = amda.parameter.copy()
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' ]
if parameter.get('size',0) is '3':
metadata.append(("type","vector"))
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