mirror of
https://github.com/Findus23/halo_comparison.git
synced 2024-09-19 16:03:50 +02:00
56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
from pathlib import Path
|
|
|
|
import matplotlib.pyplot as plt
|
|
import numpy as np
|
|
from matplotlib.axes import Axes
|
|
from matplotlib.colors import LogNorm
|
|
from matplotlib.figure import Figure
|
|
from numba import njit
|
|
|
|
from paths import base_dir
|
|
from readfiles import read_file
|
|
|
|
|
|
@njit()
|
|
def cic_deposit(X, Y, ngrid):
|
|
rho = np.zeros((ngrid, ngrid))
|
|
for x, y in zip(X, Y):
|
|
x = np.fmod(1.0 + x, 1.0)
|
|
y = np.fmod(1.0 + y, 1.0)
|
|
il = int(np.floor(x * ngrid))
|
|
ir = (il + 1) % ngrid
|
|
jl = int(np.floor(y * ngrid))
|
|
jr = (jl + 1) % ngrid
|
|
dx = x * ngrid - float(il)
|
|
dy = y * ngrid - float(jl)
|
|
rho[il, jl] += (1 - dx) * (1 - dy)
|
|
rho[il, jr] += (1 - dx) * dy
|
|
rho[ir, jl] += dx * (1 - dy)
|
|
rho[ir, jr] += dx * dy
|
|
rhomean = len(X) / ngrid ** 2
|
|
return rho / rhomean - 1
|
|
|
|
|
|
if __name__ == '__main__':
|
|
reference_dir = Path(base_dir / f"shannon_512_100")
|
|
df_ref, _ = read_file(reference_dir)
|
|
|
|
|
|
fig: Figure = plt.figure()
|
|
ax: Axes = fig.gca()
|
|
|
|
print("start cic")
|
|
rho = cic_deposit(df_ref.X.to_numpy() / 100, df_ref.Y.to_numpy() / 100, 2000)
|
|
print("finished cic")
|
|
data = 1.001 + rho
|
|
i = ax.imshow(data, norm=LogNorm())
|
|
fig.colorbar(i)
|
|
plt.show()
|
|
|
|
cmap = plt.cm.viridis
|
|
data = np.log(data)
|
|
norm = plt.Normalize(vmin=data.min(), vmax=data.max())
|
|
image = cmap(norm(data))
|
|
plt.imsave("out.png", image)
|
|
# ax.hist2d(df.X, df.Y, bins=500, norm=LogNorm())
|
|
# ax.hist2d(df2.X, df2.Y, bins=1000, norm=LogNorm())
|