def plasmaprop(iono:DataArray, f:float,B0:float):
assert isinstance(iono,DataArray)
Ne = iono.loc[:,'ne'].astype(float)
w = 2*np.pi*f
wp = np.sqrt(Ne*e**2/(eps0*me)) # electron plasma frequency [rad/sec]
wH = B0*e/me # electron gyrofrequency [rad/sec]
if (w <= wp).any(): # else reflection doesn't occur, passes right through (radar freq > MUF)
reflectionheight = iono.alt_km[abs(w-wp).argmin()]
else:
print(f'radar freq {f/1e6:.1f} MHz > max. plasma freq {wp.max()/(2*np.pi)/1e6:.1f} MHz: no reflection')
reflectionheight = None
return wp,wH,reflectionheight
评论列表
文章目录