def MieQ_withWavelengthRange(m, diameter, wavelengthRange=(100,1600), nw=1000, logW=False):
# http://pymiescatt.readthedocs.io/en/latest/forward.html#MieQ_withWavelengthRange
if type(m) == complex and len(wavelengthRange)==2:
if logW:
wavelengths = np.logspace(np.log10(wavelengthRange[0]),np.log10(wavelengthRange[1]),nw)
else:
wavelengths = np.linspace(wavelengthRange[0],wavelengthRange[1],nw)
_qD = [AutoMieQ(m,wavelength,diameter) for wavelength in wavelengths]
elif type(m) in [np.ndarray,list,tuple] and len(wavelengthRange)==len(m):
wavelengths=wavelengthRange
_qD = [MieQ(emm,wavelength,diameter) for emm,wavelength in zip(m,wavelengths)]
else:
warnings.warn("Error: the size of the input data is minmatched. Please examine your inputs and try again.")
return
qext = np.array([q[0] for q in _qD])
qsca = np.array([q[1] for q in _qD])
qabs = np.array([q[2] for q in _qD])
g = np.array([q[3] for q in _qD])
qpr = np.array([q[4] for q in _qD])
qback = np.array([q[5] for q in _qD])
qratio = np.array([q[6] for q in _qD])
return wavelengths, qext, qsca, qabs, g, qpr, qback, qratio
评论列表
文章目录