ooici/pyon — pull request #146 by swarbhanu (2012-08-28 18:46:16+00:00)
Title: Yaml for parameter dicts

This enables us to load from corresponding ymls the parameter dict types, parameter context types and the DotDict that maps each parameter dictionary to its parameter contexts.

Therefore, it enables us to do the following (which is similar to how RT, PRED, etc are used):

><> from pyon.ion.param_dict_ctxt import PD, PD_CTXT, PCTXT

><> PD
-->
{'CondParamDict': 'CondParamDict',
'PressParamDict': 'PressParamDict',
'SalParamDict': 'SalParamDict',
'TempParamDict': 'TempParamDict'}

><> PD_CTXT
-->
{'CondParamDict': ['lat', 'lon', 'time', 'depth', 'conductivity'],
'PressParamDict': ['lat', 'lon', 'time', 'depth', 'pressure'],
'SalParamDict': ['lat', 'lon', 'time', 'depth', 'salinity'],
'TempParamDict': ['lat', 'lon', 'time', 'depth', 'temperature']}

><> PCTXT
-->
{'Conductivity': 'Conductivity',
'Depth': 'Depth',
'Lat': 'Lat',
'Lon': 'Lon',
'Pressure': 'Pressure',
'Raw': 'Raw',
'Salinity': 'Salinity',
'Temperature': 'Temperature',
'Time': 'Time'}

><> PD.CondParamDict
--> 'CondParamDict'

><> PD_CTXT.SalParamDict
--> ['lat', 'lon', 'time', 'depth', 'salinity']

><> PCTXT.Raw
--> 'Raw'

><> from pyon.ion.param_dict_ctxt import ParamDict, ParamContext

><> ParamDict
-->
{'CondParamDict': {'conductivity': 'Conductivity',
'depth': 'Depth',
'lat': 'Lat',
'lon': 'Lon',
'time': 'Time'},
'PressParamDict': {'depth': 'Depth',
'lat': 'Lat',
'lon': 'Lon',
'pressure': 'Pressure',
'time': 'Time'},
'SalParamDict': {'depth': 'Depth',
'lat': 'Lat',
'lon': 'Lon',
'salinity': 'Salinity',
'time': 'Time'},
'TempParamDict': {'depth': 'Depth',
'lat': 'Lat',
'lon': 'Lon',
'temperature': 'Temperature',
'time': 'Time'}}

><> ParamContext
-->
{'Conductivity': {'docstring': 'References the conductivity',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.float32)',
'uom': 'siemens_per_meter'},
'Depth': {'docstring': 'References the depth',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.float32)',
'ref_frame': 'AxisTypeEnum.HEIGHT',
'uom': 'meters'},
'Lat': {'docstring': 'References the latitude',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.float32)',
'ref_frame': 'AxisTypeEnum.LAT',
'uom': 'degree_north'},
'Lon': {'docstring': 'References the longitude',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.float32)',
'ref_frame': 'AxisTypeEnum.LON',
'uom': 'degree_east'},
'Pressure': {'docstring': 'References the pressure',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.float32)',
'uom': 'Pascal'},
'Raw': {'docstring': 'References raw data',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.float32)',
'uom': 'unknown'},
'Salinity': {'docstring': 'References the salinity',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.float32)',
'uom': 'PSU'},
'Temperature': {'docstring': 'References the temperature',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.float32)',
'uom': 'degree_Celsius'},
'Time': {'docstring': 'References the time',
'fill_value': '0e0',
'param_type': 'QuantityType(value_encoding=np.int64)',
'ref_frame': 'AxisTypeEnum.TIME',
'uom': 'seconds since 1970-01-01'}}