In [1]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(context="talk")
from bokeh import plotting
plotting.output_notebook()
import pandas as pd
from astropy.modeling import models, fitting
In [84]:
nstep = 10000
In [3]:
%%bash -s "$nstep"
make
./sedov3 $1
In [4]:
i, x, den, energy, pressure, velocity, cs = np.loadtxt('spherical_standard_omega0p00_nstep_' + str(nstep).zfill(4) + '.dat', skiprows=2, unpack=True)
In [85]:
filename = 'spherical_standard_omega0p00_nstep_' + str(nstep).zfill(5) + '.dat'
df = pd.read_csv(filename, skiprows=1, sep=r"\s+", index_col=0, usecols=np.arange(6)+1)
(df / df.max()).plot()
Out[85]:
In [81]:
power_law_model = models.PowerLaw1D(alpha=-4.5)
fitter = fitting.LevMarLSQFitter()
fitting_range = (df.index<.6)
fitted = fitter(power_law_model, df.index[fitting_range], df.den[fitting_range])
print(fitted)
In [82]:
plt.plot(df.index, df.den, label="data")
plt.plot(df.index, fitted(df.index), label="fit")
plt.xscale("log")
plt.yscale("log")
plt.legend(loc="best")
Out[82]:
In [83]:
p = plotting.figure(x_axis_type = "log", y_axis_type = "log", tools="crosshair, wheel_zoom")
p.line(df.index, df.den, legend="density: data" )
fit_by_hand = models.PowerLaw1D(amplitude=5.199e-4, x_0 =.2, alpha=-4.5)
p.line(df.index, fit_by_hand(df.index), legend="density: fit")
plotting.show(p)