Note
Go to the end to download the full example code
Cloud Base Height RetrievalsΒΆ
This example shows how to calculate the cloud base heights using the sobel edge detection method. This can be used for vertical radar and lidar data.
Author: Adam Theisen
Average difference between ceilomter and sobel heights 84.37419
from arm_test_data import DATASETS
from matplotlib import pyplot as plt
import act
import numpy as np
# Read Ceilometer data for an example
filename_ceil = DATASETS.fetch('sgpceilC1.b1.20190101.000000.nc')
ds = act.io.arm.read_arm_netcdf(filename_ceil)
ds = act.retrievals.cbh.generic_sobel_cbh(
ds, variable='backscatter', height_dim='range', var_thresh=1000.0, fill_na=0.0
)
# Plot the cloud base height data
display = act.plotting.TimeSeriesDisplay(ds, subplot_shape=(1, 2), figsize=(16, 6))
display.plot('backscatter', subplot_index=(0, 0))
title = 'SGP Ceilometer with Lidar-Calculated CBH Overplotted'
display.plot('first_cbh', subplot_index=(0, 0), color='k', set_title=title)
display.plot('backscatter', subplot_index=(0, 1))
title = 'SGP Ceilometer with CBH Overplotted'
display.plot('cbh_sobel_backscatter', color='k', subplot_index=(0, 1), set_title=title)
diff = ds['first_cbh'].values - ds['cbh_sobel_backscatter'].values
print("Average difference between ceilomter and sobel heights ", np.nanmean(diff))
ds.close()
plt.show()
Total running time of the script: (0 minutes 4.523 seconds)