可以读取任意版本5km(V3、V4的calipso),检索字段里的径向剖面

注:vfm数据读取可以参考CALIPSO L2 VFM 产品的读取和绘制(with Python) - Kai Wu's Blog

from pyhdf.HDF import HDF
from pyhdf.VS import VS
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt


filename = 'CAL_LID_L2_05kmAPro-Standard-V4-51.2023-03-25T08-48-53ZD.hdf' 


hdf = HDF(filename)
vs = hdf.vstart()
ref = vs.find('metadata')
vdata = vs.attach(ref)
records = vdata.read()
altitudes = None
for item in records[0]:
    if isinstance(item, list) and all(isinstance(x, (float, int)) for x in item) and len(item) > 200:
        altitudes = np.array(item, dtype=np.float32)
        break

vdata.detach()
vs.end()
hdf.close()
ds = Dataset(filename, 'r')
extinction = ds.variables['Extinction_Coefficient_532'][:]
latitude   = ds.variables['Latitude'][:]
lat = latitude[:, 1]
data = np.array(extinction, dtype=np.float32)
data[data == -9999] = np.nan

alt_index = (altitudes >= 0) & (altitudes <= 10)
selected_altitudes = altitudes[alt_index]
data = data[:, alt_index]
data = np.fliplr(data)
plot_altitudes = np.flipud(selected_altitudes)

plt.figure(figsize=(12, 6))
h = plt.pcolormesh(lat, plot_altitudes, data.T, shading='auto', cmap='jet')
plt.colorbar(h, label='Extinction Coefficient (km⁻¹)')
plt.xlabel('Latitude (°)')
plt.ylabel('Altitude (km)')
plt.title('CALIPSO Extinction Coefficient at 532 nm (0–10 km)')
plt.clim(0, 1.0)
plt.grid(True, linestyle='--', alpha=0.3)
plt.tight_layout()
plt.show()

import cartopy.crs as ccrs
import cartopy.feature as cfeature

longitude = ds.variables['Longitude'][:]
lon = longitude[:, 1]

plt.figure(figsize=(10, 5))
ax = plt.axes(projection=ccrs.PlateCarree())
ax.set_global()
ax.coastlines()
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.add_feature(cfeature.LAND, facecolor='lightgray', edgecolor='black')
ax.add_feature(cfeature.OCEAN, facecolor='lightblue')
ax.plot(lon, lat, color='red', linewidth=1.5, label='CALIPSO轨迹')
plt.title("CALIPSO Satellite Ground Track")
plt.legend(loc='lower left')
plt.tight_layout()
plt.show()

结果图:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐