Source code for act.corrections.ceil
"""
This module contains functions for correcting ceilometer data
"""
import numpy as np
[docs]def correct_ceil(ds, fill_value=1e-7, var_name='backscatter'):
"""
This procedure corrects ceilometer data by filling all zero and
negative values of backscatter with fill_value and then converting
the backscatter data into logarithmic space.
Parameters
----------
ds : xarray.Dataset
The ceilometer dataset to correct. The backscatter data should be
in linear space.
var_name : str
The variable name of data in the dataset.
fill_value : float
The fill_value to use. The fill_value is entered in linear space.
Returns
-------
ds : xarray.Dataset
The ceilometer dataset containing the corrected values.
"""
data = ds[var_name].data
data[data <= 0] = fill_value
data = np.log10(data)
ds[var_name].values = data
if 'units' in ds[var_name].attrs:
ds[var_name].attrs['units'] = 'log(' + ds[var_name].attrs['units'] + ')'
else:
ds[var_name].attrs['units'] = 'log(unknown)'
return ds