diff --git a/aosstower/level_b1/nc.py b/aosstower/level_b1/nc.py index e170050deb37de9345ee1af745c0317d347c6315..949b25822f196a50ec5e5c57f2fed07cbfa5e647 100644 --- a/aosstower/level_b1/nc.py +++ b/aosstower/level_b1/nc.py @@ -39,6 +39,11 @@ def get_data(input_files): frame = pd.DataFrame(_get_data(input_files)) frame = frame.set_index('stamp') frame = frame.mask(frame == -99999.).fillna(value=np.nan) + + for col_name in frame.columns: + if col_name in schema.unit_conversions: + conv_func = schema.unit_conversions[col_name] + frame[col_name] = conv_func(frame[col_name]) return frame diff --git a/aosstower/schema.py b/aosstower/schema.py index f03f7c093223c5e0da490c8bce68d787a90733ea..afb060f57548729d0503cfe2a24accb78e9f58d2 100644 --- a/aosstower/schema.py +++ b/aosstower/schema.py @@ -241,7 +241,7 @@ database = dict( 'accumulated_precipitation', 'accum_precip', 'Precipitation accumulated since 0Z', - 'mm', + 'mm', # data comes from instrument as inches but we typically want millimeters '0', '254', None, @@ -273,3 +273,6 @@ database_dict = {k: v._asdict() for k, v in database.items()} met_vars = {'air_temp', 'dewpoint', 'rh', 'solar_flux', 'pressure', 'precip', 'accum_precip', 'wind_speed', 'wind_dir', 'gust'} engr_vars = set(database.keys()) - met_vars + +unit_conversions = {} +unit_conversions['accum_precip'] = lambda x: x * 25.4