MooMooMilkParty
Joined 10 years ago
Joined 10 years ago
If you look at the annual temperature range for the northern hemisphere (NH) it has a range >10C, while the southern hemisphere has a range ~5C.
You can read more about this here: https://www.carbonbrief.org/guest-post-why-does-land-warm-up...
Just the last couple of weeks: - Flooding in Pakistan kills 1000+: https://www.vox.com/world/2022/8/30/23327725/pakistan-floodi...
- Ongoing slow disaster in the Colorado River Basin: https://www.npr.org/2022/08/27/1119550028/7-states-and-feder...
- Jackson, MS water crisis: https://www.cnn.com/2022/08/30/us/jackson-water-system-faili...
- Record breaking heat forecasted for CA this coming week: https://www.latimes.com/california/story/2022-08-31/the-heat...
- Spanish drought destroys harvests: https://www.bbc.com/news/world-europe-62707435
- China factories shut down because of heat wave: https://www.wsj.com/articles/chinas-factories-hurt-amid-covi...
- Drought dries up rivers in France: https://www.reuters.com/world/europe/frances-river-loire-set...
Edit: Or, here's the direct link: http://science.sciencemag.org/cgi/content/full/372/6540/418?...
I fit a few distributions to the data and actually the Planck distribution at 9000K seems to be noticeably better. I did no further statistics and haven't even looked at the fitted parameters for this. Note: I am an earth scientist, not a physicist. https://imgur.com/Qg4ixF2
Edit: More distributions: https://imgur.com/IrF6lsV
Edit: Filtering out sodium and potassium to try to account for some of the low-wavelength counts doesn't seem to help fitting the distributions either: https://imgur.com/dHDUS9Z
You can get the data here: https://physics.nist.gov/PhysRefData/ASD/lines_form.html
And here's the (garbage) code to reproduce my plots:
%pylab inline
import pandas as pd
import scipy
import scipy.stats
mpl.style.use('seaborn-muted')
mpl.rcParams['figure.figsize'] = (18, 12)
mpl.rcParams['font.size'] = 16
df = pd.read_csv('nist.csv')
def filter_string(x):
x = str(x).replace('=', '').replace('"', '').replace('*', '').replace('+', '').replace('(', '').replace(')', '')
if len(x) == 0:
x = 'NaN'
return x
asl_comp = df['ritz_wl_vac(nm)'].apply(filter_string).astype(float)
asl_ver = df['obs_wl_vac(nm)'].apply(filter_string).astype(float)
sp_num = df['sp_num'].astype(float)
df_neutral = df[sp_num == 1]
asl_comp = df_neutral['ritz_wl_vac(nm)'].apply(filter_string).astype(float)
asl_ver = df_neutral['obs_wl_vac(nm)'].apply(filter_string).astype(float)
sp_num = df_neutral['sp_num'].astype(float)
asl_ver = asl_ver[~asl_ver.isna()]
def planck(wav, T=9000.0):
h = 6.626e-34
c = 3.0e+8
k = 1.38e-23
a = 2.0*h*c**2
b = h*c/(wav*k*T)
intensity = (a / ( (wav**5)) * (1 / (np.exp(b) - 1.0) ))
return intensity
dist_names = ['beta', 'lognorm', 'pearson3', 'gumbel_r']
x = np.arange(0, 1500, 5)
intensity = planck(x / 1e9)
size = len(asl_ver)
yvals, xvals = np.histogram(asl_ver, bins=300, normed=True)
for dist_name in dist_names:
dist = getattr(scipy.stats, dist_name)
param = dist.fit(asl_ver)
pdf_fitted = dist.pdf(x, *param[:-2], loc=param[-2], scale=param[-1])
plt.plot(x, pdf_fitted, label=dist_name, linewidth=4,)
plt.hist(asl_ver, bins=300, density=True, color='grey');
plt.plot(x, intensity / 1.1e17, linewidth=4, color='red', linestyle='--', label='scaled planck (9000k)')
plt.legend()
plt.xlabel(r'$\lambda (nm)$')
plt.ylabel('Density')But now you've got me thinking, it would be nice if libraries like Dask could allow for flagging of symbolic operations like this to be written to disk for quickly saving metadata where intermediate steps don't explicitly need to be saved.
So, this, as well as ocean mixing is how the surface temperature is "moderated", in addition to the heat capacity that others have brought up.