csiborgtools/notebooks/powerspectrum_test.ipynb

722 lines
1009 KiB
Plaintext
Raw Normal View History

Add pynbody and other support (#92) * Simplify box units * Move old scripts * Add printing * Update readers * Disable boundscheck * Add new ordering * Clean up imports * Enforce dtype and add mass to quijote * Simplify print statements * Fix little typos * Fix key bug * Bug fixing * Delete boring comments * Improve ultimate clumps for PHEW * Delete boring comments * Add basic reading * Remove 0th index HID * Add flipping of X and Z * Updates to halo catalogues * Add ordered caching * Fix flipping * Add new flags * Fix PHEW empty clumps * Stop over-wrriting * Little improvements to angular neighbours * Add catalogue masking * Change if-else statements * Cache only filtered data * Add PHEW cats * Add comments * Sort imports * Get Quijote workign * Docs * Add HMF calculation * Move to old * Fix angular * Add great circle distance * Update imports * Update impotrts * Update docs * Remove unused import * Fix a quick bug * Update compatibility * Rename files * Renaming * Improve compatiblity * Rename snapsht * Fix snapshot bug * Update interface * Finish updating interface * Update all paths * Add old scripts * Add basic halo * Update imports * Improve snapshot processing * Update ordering * Fix how CM positions accessed * Add merger paths * Add imports * Add merger reading * Add making a merger tree * Add a basic merger tree reader * Add imports * Add main branch walking + comments + debuggin * Get tree running * Add working merger tree walking along main branch * Add units conversion for merger data * Add hid_to_array_index * Update merger tree * Add mergertree mass to PHEWcat * Edit comments * Add this to track changes... * Fix a little bug * Add mergertree mass * Add cache clearing * Improve summing substructure code * Littbe bug * Little updates to the merger tree reader * Update .giignore * Add box selection * Add optional deletingf of a group * add to keep track of changes * Update changes * Remove * Add manual tracker * Fix bug * Add m200c_to_r200c * Add manual halo tracking * Remove skipped snapshots * update cosmo params to match csiborg * remove old comments * Add SDSSxALFALFA * Fix bugs * Rename * Edit paths * Updates * Add comments * Add comment * Add hour conversion * Add imports * Add new observation class * Add selection * Add imports * Fix small bug * Add field copying for safety * Add matching to survey without masking * Add P(k) calculation * Add nb * Edit comment * Move files * Remove merger import * Edit setup.yp * Fix typo * Edit import warnigns * update nb * Update README * Update README * Update README * Add skeleton * Add skeleton
2023-12-07 15:23:32 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"import csiborgtools\n",
"from h5py import File\n",
"from gc import collect"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"with File(\"/mnt/extraspace/rstiskalek/csiborg2/snapshot_099.hdf5\", 'r') as f:\n",
" # print(f[\"Header\"].attrs[\"BoxSize\"])\n",
" mhigh = f[\"Header\"].attrs[\"MassTable\"][1]\n",
" pos1 = f['PartType1']['Coordinates'][:]\n",
" pos5 = f['PartType5']['Coordinates'][:]\n",
" mass5 = f['PartType5']['Masses'][:]\n",
"\n",
"mass1 = np.ones(len(pos1)) * mhigh * 1e10\n",
"mass5 *= 1e10\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"80"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pos = np.concatenate((pos1, pos5), axis=0)\n",
"mass = np.concatenate((mass1, mass5), axis=0).astype(np.float32)\n",
"\n",
"del pos1, pos5, mass1, mass5\n",
"collect()\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Using PCS mass assignment scheme with weights\n",
"Time taken = 58.325 seconds\n",
"\n"
]
}
],
"source": [
"import MAS_library as MASL\n",
"\n",
"\n",
"# density field parameters\n",
"grid = 512 #the 3D field will have grid x grid x grid voxels\n",
"BoxSize = 677.7 #Mpc/h ; size of box\n",
"MAS = 'PCS' #mass-assigment scheme\n",
"verbose = True #print information on progress\n",
"\n",
"# define 3D density field\n",
"delta = np.zeros((grid,grid,grid), dtype=np.float32)\n",
"# construct 3D density field\n",
"MASL.MA(pos, delta, BoxSize, MAS, verbose=verbose, W=mass)\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"# np.save(\"delta_8600_PCS.npy\", delta)\n",
"delta_new = np.load(\"delta_8600_PCS.npy\")\n",
"\n",
"delta_old = np.load(\"/mnt/extraspace/rstiskalek/CSiBORG/environment/density_PCS_08596_grid512.npy\").T"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"delta_new /= np.mean(delta_new)\n",
"delta_new -= 1\n",
"delta_old /= np.mean(delta_old)\n",
"delta_old -= 1\n",
"\n",
"# delta_new = np.log10(delta_new)\n",
"# delta_old = np.log10(delta_old)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"imin = 256 - 50\n",
"imax = 256 + 50\n",
"\n",
"delta_new_central = np.zeros_like(delta_new)\n",
"delta_new_central[imin:imax, imin:imax, imin:imax] = delta_new[imin:imax, imin:imax, imin:imax]\n",
"\n",
"delta_old_central = np.zeros_like(delta_old)\n",
"delta_old_central[imin:imax, imin:imax, imin:imax] = delta_old[imin:imax, imin:imax, imin:imax]"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"# plt.figure()\n",
"# plt.imshow(delta_new_central[:, 256, :], origin='lower')\n",
"\n",
"# plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Computing power spectrum of the field...\n",
"Time to complete loop = 8.08\n",
"Time taken = 14.80 seconds\n",
"\n",
"Computing power spectrum of the field...\n",
"Time to complete loop = 8.02\n",
"Time taken = 14.54 seconds\n"
]
}
],
"source": [
"knew, pknew = csiborgtools.field.power_spectrum(delta_new_central, 677.7, \"PCS\", threads=2)\n",
"kold, pkold = csiborgtools.field.power_spectrum(delta_old_central, 677.7, \"PCS\", threads=2)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"import camb\n",
"from camb import model \n",
"\n",
"pars = camb.CAMBparams()\n",
"h = 0.705\n",
"pars.set_cosmology(H0=h*100, ombh2=0.04825 * h**2, omch2=(0.307 - 0.04825) * h**2)\n",
"pars.InitPower.set_params(ns=0.9611)\n",
"#Note non-linear corrections couples to smaller scales than you want\n",
"pars.set_matter_power(redshifts=[0.], kmax=40)\n",
"\n",
"#Non-Linear spectra (Halofit)\n",
"pars.NonLinear = model.NonLinear_both\n",
"results = camb.get_results(pars)\n",
"results.calc_power_spectra(pars)\n",
"kh_nonlin, z_nonlin, pk_nonlin = results.get_matter_power_spectrum(minkh=1e-3, maxkh=50, npoints = 200)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkoAAAHLCAYAAAA3J7d5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB7nElEQVR4nO3de3zO9f/H8cd1XTtvjNmYOc35zDQmyik0lKLorKF0kpKOOkl9U+nwU1lJYTpJhApJ5FQJyYQ5n88MM7t2vq7P748rV60Zs9N1bXveb7fdvtfn/Xl/Pp/Xta6v67X30WQYhoGIiIiI5GJ2dQAiIiIi7kqJkoiIiEgelCiJiIiI5EGJkoiIiEgelCiJiIiI5EGJkoiIiEgelCiJiIiI5EGJkoiIiEgelCiJiIiI5EGJkoiUGSaTiZdeesnVYeQQHh7O4MGDS/y5L730EiaTicTExBJ/tkhZokRJRErMwoUL3S6RERG5GCVKIlJiFi5cyNixY10dRonavn07H3/8savDEJECUqIkIm4pOzubzMzMEnlWeno6dru9WO7t7e2Np6dnsdxbRIqfEiWRcurw4cPcc889hIWF4e3tTd26dXnwwQdzJCdJSUmMHDmSWrVq4e3tTYMGDXjjjTdyJBX79u3DZDLx1ltvMXnyZOrXr4+3tzft2rVj3bp1znqDBw8mNjYWcIwlOv/z33tMmDDBeY+EhAQyMzN58cUXiYyMJDAwEH9/fzp16sSyZcsK9L6XL1+OyWTiq6++4vnnn6dGjRr4+fmRnJwMwJo1a+jVqxeBgYH4+fnRpUsXfv311wvep23btvj4+FC/fn0++ugj57igf7vQGKU9e/YwcOBAgoKC8PPz48orr2TBggUXjPPrr7/m1VdfpWbNmvj4+NC9e3d27dqV7/ebmJjILbfcQsWKFalSpQqPPvoo6enpOepkZ2fzyiuvOH/v4eHhPPvss2RkZABgGAbdunUjJCSEEydOOK/LzMykZcuW1K9fH6vVmu+YREoTD1cHICIl78iRI0RFRZGUlMR9991HkyZNOHz4MLNnzyY1NRUvLy9SU1Pp0qULhw8f5v7776d27dr89ttvjB49mqNHjzJhwoQc9/zyyy85d+4c999/PyaTifHjx3PTTTexZ88ePD09uf/++zly5Ag//fQTn3322QXjmjZtGunp6dx33314e3sTFBREcnIyn3zyCbfffjvDhg3j3LlzTJkyhejoaNauXUtERESBfgevvPIKXl5ePPHEE2RkZODl5cXPP/9M7969iYyMZMyYMZjNZqZNm8Y111zDqlWriIqKAmDDhg306tWL6tWrM3bsWGw2Gy+//DIhISGXfO7x48fp2LEjqampPPLII1SpUoXp06dzww03MHv2bPr375+j/uuvv47ZbOaJJ57g7NmzjB8/njvvvJM1a9bk633ecssthIeH89prr/H777/z3nvvcebMGT799FNnnXvvvZfp06czYMAAHn/8cdasWcNrr73G1q1bmTt3LiaTialTp9KqVSseeOAB5syZA8CYMWPYsmULy5cvx9/fP7+/epHSxRCRcufuu+82zGazsW7dulzn7Ha7YRiG8corrxj+/v7Gjh07cpx/5plnDIvFYhw4cMAwDMPYu3evARhVqlQxTp8+7az37bffGoDx/fffO8uGDx9uXOifnfP3qFixonHixIkc57Kzs42MjIwcZWfOnDGqVatmDB06NEc5YIwZM+ai733ZsmUGYNSrV89ITU3N8b4bNmxoREdHO38HhmEYqampRt26dY2ePXs6y/r27Wv4+fkZhw8fdpbt3LnT8PDwyPX+6tSpY8TExDiPR44caQDGqlWrnGXnzp0z6tata4SHhxs2my1HnE2bNs3x/t99910DMDZt2nTR9zlmzBgDMG644YYc5Q899JABGBs3bjQMwzDi4+MNwLj33ntz1HviiScMwPj555+dZR999JEBGJ9//rnx+++/GxaLxRg5cuRF4xAp7dT1JlLO2O125s2bR9++fWnbtm2u8+e7jmbNmkWnTp2oXLkyiYmJzp8ePXpgs9lYuXJljutuvfVWKleu7Dzu1KkT4Ohmyq+bb745V6uMxWLBy8vLGfvp06fJzs6mbdu2/Pnnn/m+93/FxMTg6+vrPI6Pj2fnzp3ccccdnDp1yvl+rVYr3bt3Z+XKldjtdmw2G0uWLKFfv36EhYU5r2/QoAG9e/e+5HMXLlxIVFQUV199tbMsICCA++67j3379pGQkJCj/pAhQ5zvHy7/9zp8+PAcxyNGjHDG8e//HTVqVI56jz/+OECOLsH77ruP6OhoRowYwaBBg6hfvz7jxo3LVxwipZW63kTKmZMnT5KcnEyLFi0uWm/nzp389ddfeXYn/XusCkDt2rVzHJ9Pms6cOZPv2OrWrXvB8unTp/P222+zbds2srKyLlm/IM/auXMn4Eig8nL27FnS09NJS0ujQYMGuc5fqOy/9u/fT/v27XOVN23a1Hn+3/9tCvt7bdiwYY7j+vXrYzab2bdvn/N5ZrM5V+yhoaFUqlSJ/fv35yifMmUK9evXZ+fOnfz22285kk2RskiJkohckN1up2fPnjz11FMXPN+oUaMcxxaL5YL1DMPI9zMv9KX7+eefM3jwYPr168eTTz5J1apVsVgsvPbaa+zevTvf977Us84PUH/zzTfzHPcUEBCQayB0cSuK3+u//Xew+aXK/2v58uXOQd6bNm2iQ4cOBYpDpLRQoiRSzoSEhFCxYkU2b9580Xr169cnJSWFHj16FNmz8/tl/G+zZ8+mXr16zJkzJ8f1Y8aMKbK4wPF+ASpWrHjR91y1alV8fHwuOPMsP7PR6tSpw/bt23OVb9u2zXm+KO3cuTNH69muXbuw2+2Eh4c7n2e329m5c6ezVQscg86TkpJyxHP06FFGjBjBtdde6xwIHx0dXeQxi7gTjVESKWfMZjP9+vXj+++/548//sh1/nxLxS233MLq1av58ccfc9VJSkoiOzv7sp99fmZUUlJSvq8536Ly7xaUNWvWsHr16st+/sVERkZSv3593nrrLVJSUnKdP3nypDOeHj16MG/ePI4cOeI8v2vXLn744YdLPqdPnz6sXbs2R/xWq5XJkycTHh5Os2bNiuDd/OP8kgznvf/++wDO8VR9+vQByDWL8Z133gHguuuuc5YNGzYMu93OlClTmDx5Mh4eHtxzzz0Fbt0SKQ3UoiRSDo0bN47FixfTpUsX7rvvPpo2bcrRo0eZNWsWv/zyC5UqVeLJJ5/ku+++4/rrr2fw4MFERkZitVrZtGkTs2fPZt++fQQHB1/WcyMjIwF45JFHiI6OxmKxcNttt130muuvv545c+bQv39/rrvuOvbu3cukSZNo1qzZBROagjKbzXzyySf07t2b5s2bM2TIEGrUqMHhw4dZtmwZFStW5Pvvvwcc+6gtXryYq666igcffBCbzcbEiRNp0aIF8fHxF33OM888w4wZM+jduzePPPIIQUFBTJ8+nb179/LNN99gNhft36979+7lhhtuoFevXqxevZrPP/+cO+64g9atWwPQunVrYmJimDx5MklJSXTp0oW1a9cyffp0+vXrR7du3QDH0g0LFiwgLi6OmjVrAo6k66677uLDDz/koYceKtK4RdyGS+fciYjL7N+/37j77ruNkJAQw9vb26hXr54xfPjwHFPRz507Z4wePdpo0KCB4eXlZQQHBxsdO3Y03nrrLSMzM9MwjH+m9r/55pu5nsF/putnZ2cbI0aMMEJCQgyTyeScSn+xe9jtdmPcuHFGnTp1DG9vb6NNmzbG/PnzjZiYGKNOnToXfd6FnJ92P2vWrAue37Bhg3HTTTcZVapUMby9vY06deoYt9xyi7F06dIc9ZYuXWq0adPG8PLyMurXr2988sknxuOPP274+PjkqPff5QEMwzB2795tDBgwwKhUqZLh4+NjREVFGfPnz89XnOd/V9OmTbvo+zy/PEBCQoIxYMAAo0KFCkblypWNhx9+2EhLS8tRNysryxg7dqxRt25dw9PT06hVq5YxevRoIz093TAMwzh48KARGBho9O3bN9d
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"plt.plot(knew, pknew, label=\"New Gadget4\")\n",
"plt.plot(kold, pkold, label=\"Old RAMSES\")\n",
"\n",
"# m = (kh_nonlin > knew.min()) & (kh_nonlin < knew.max())\n",
"# plt.plot(kh_nonlin[m], pk_nonlin[0, :][m], label=\"CAMB\")\n",
"\n",
"kmax = 2 * np.pi / 677.6 * (512 / 2)\n",
"\n",
"plt.axvline(kmax, color=\"k\", ls=\"--\", label=\"Nyquist\")\n",
"\n",
"plt.xlabel(\"k [h/Mpc]\")\n",
"plt.ylabel(\"P(k) [Mpc/h]$^3$\")\n",
"\n",
"plt.yscale(\"log\")\n",
"plt.xscale(\"log\")\n",
"\n",
"plt.legend()\n",
"\n",
"plt.title(\"central region box\")\n",
"plt.savefig(\"../plots/pk_comparison_central_box.png\", dpi=300, bbox_inches=\"tight\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Computing correlation function of the field...\n",
"Time to complete loop = 1.48\n",
"Time taken = 54.30 seconds\n"
]
}
],
"source": [
"import numpy as np\n",
"import Pk_library as PKL\n",
"\n",
"# correlation function parameters\n",
"BoxSize = 677.7 #Mpc/h\n",
"MAS = ['PCS', 'PCS']\n",
"axis = 0\n",
"threads = 2\n",
"\n",
"# compute cross-correlaton function of the two fields\n",
"CCF = PKL.XXi(delta_new, delta_old, BoxSize, MAS, axis, threads)\n",
"\n",
"# get the attributes\n",
"r = CCF.r3D #radii in Mpc/h\n",
"xxi0 = CCF.xi[:,0] #monopole\n",
"xxi2 = CCF.xi[:,1] #quadrupole\n",
"xxi4 = CCF.xi[:,2] #hexadecapole\n",
"Nmodes = CCF.Nmodes3D #number of modes"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"plt.plot( 1 / r, xxi0, label=\"monopole\")\n",
"plt.yscale(\"log\")\n",
"plt.xscale(\"log\")\n",
"plt.xlabel(\"r [Mpc/h]\")\n",
"plt.ylabel(\"Cross corr\")\n",
"plt.axvline(2.65, color=\"k\", ls=\"--\", label=\"Nyquist\")\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<KeysViewHDF5 ['GroupAscale', 'GroupFirstSub', 'GroupLen', 'GroupLenPrevMostBnd', 'GroupLenType', 'GroupMass', 'GroupMassType', 'GroupNsubs', 'GroupOffsetType', 'GroupPos', 'GroupVel', 'Group_M_Crit200', 'Group_M_Crit500', 'Group_M_Mean200', 'Group_M_TopHat200', 'Group_R_Crit200', 'Group_R_Crit500', 'Group_R_Mean200', 'Group_R_TopHat200']>\n"
]
}
],
"source": [
"with File(\"/mnt/extraspace/rstiskalek/csiborg2/fof_subhalo_tab_099.hdf5\", 'r') as f:\n",
" print(f[\"Group\"].keys())\n",
" x = f[\"Group/GroupMass\"][:] * 1e10\n",
" pos = f[\"Group/GroupPos\"][:]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [],
"source": [
"x0 = np.ones(3) * 676.6 / 2\n",
"\n",
"d = np.linalg.norm(pos - x0, axis=1)\n",
"m = d < 100"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"plt.hist(np.log10(x[m]), bins=\"auto\")\n",
"\n",
"plt.yscale(\"log\")\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"dx = (delta_new - delta_old.T) / delta_old.T"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"plt.imshow(dx[:, :, 256], origin=\"lower\")\n",
"plt.colorbar()\n",
"\n",
"thetas = np.linspace(0, 2 * np.pi, 1000)\n",
"rad = 0.22 * 512\n",
"plt.plot(rad * np.cos(thetas) + 256, rad * np.sin(thetas) + 256, color=\"red\", ls=\"--\")\n",
"\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_24992/1715643559.py:6: RuntimeWarning: divide by zero encountered in log10\n",
" axs[2].imshow(np.log10(np.abs(dx[:, :, 256])))\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x600 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axs = plt.subplots(1, 3, figsize=(10, 6))\n",
"\n",
"\n",
"axs[0].imshow(np.log10(delta_new[:, :, 256] + 2))\n",
"axs[1].imshow(np.log10((delta_old.T)[:, :, 256] + 2))\n",
"axs[2].imshow(np.log10(np.abs(dx[:, :, 256])))\n",
"\n",
"thetas = np.linspace(0, 2 * np.pi, 1000)\n",
"rad = 0.22 * 512\n",
"for i in range(2):\n",
" axs[i].plot(rad * np.cos(thetas) + 256, rad * np.sin(thetas) + 256, color=\"red\", ls=\"--\")\n",
" axs[i].axvline(256, color=\"red\", ls=\"--\", alpha=0.5)\n",
" axs[i].axhline(256, color=\"red\", ls=\"--\", alpha=0.5)\n",
" \n",
"fig.show()"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"102.4"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"0.2 * 512"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2023-11-23 11:17:00.672141: opening `/mnt/extraspace/rstiskalek/CSiBORG/processed_output/parts_FOF_07444.hdf5`.\n"
]
}
],
"source": [
"paths = csiborgtools.read.Paths(**csiborgtools.paths_glamdring)\n",
"cat = csiborgtools.read.CSiBORGCatalogue(7444, paths, \"halofinder_catalogue\", \"FOF\")"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bins = np.arange(13, 15, 0.1)\n",
"\n",
"plt.figure()\n",
"plt.hist(np.log10(mass), bins=bins, log=True, histtype=\"step\")\n",
"plt.hist(np.log10(cat[\"totpartmass\"]), bins=bins, log=True, histtype=\"step\")\n",
"\n",
"\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2023-11-23 11:16:53.499291: opening `/mnt/extraspace/rstiskalek/CSiBORG/processed_output/parts_FOF_07444.hdf5`.\n"
]
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"pos_old = cat[\"snapshot_final/pos\"][:]"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"mass_old = cat[\"snapshot_final/mass\"][:]"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"with File(\"/mnt/zfsusers/rstiskalek/gadget4/examples/V04_DM/output/snapshot_004.hdf5\", 'r') as f:\n",
" pos_new = f[\"PartType1/Coordinates\"][:] / 677.7\n",
" mass_new = np.ones(len(pos_new)) * 1e10 * 158.061\n",
" # mass_new = f[\"PartType1/Mass\"][:] * 1e10"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [],
"source": [
"box = csiborgtools.read.CSiBORG1Box(951, 7444, paths)\n",
Add pynbody and other support (#92) * Simplify box units * Move old scripts * Add printing * Update readers * Disable boundscheck * Add new ordering * Clean up imports * Enforce dtype and add mass to quijote * Simplify print statements * Fix little typos * Fix key bug * Bug fixing * Delete boring comments * Improve ultimate clumps for PHEW * Delete boring comments * Add basic reading * Remove 0th index HID * Add flipping of X and Z * Updates to halo catalogues * Add ordered caching * Fix flipping * Add new flags * Fix PHEW empty clumps * Stop over-wrriting * Little improvements to angular neighbours * Add catalogue masking * Change if-else statements * Cache only filtered data * Add PHEW cats * Add comments * Sort imports * Get Quijote workign * Docs * Add HMF calculation * Move to old * Fix angular * Add great circle distance * Update imports * Update impotrts * Update docs * Remove unused import * Fix a quick bug * Update compatibility * Rename files * Renaming * Improve compatiblity * Rename snapsht * Fix snapshot bug * Update interface * Finish updating interface * Update all paths * Add old scripts * Add basic halo * Update imports * Improve snapshot processing * Update ordering * Fix how CM positions accessed * Add merger paths * Add imports * Add merger reading * Add making a merger tree * Add a basic merger tree reader * Add imports * Add main branch walking + comments + debuggin * Get tree running * Add working merger tree walking along main branch * Add units conversion for merger data * Add hid_to_array_index * Update merger tree * Add mergertree mass to PHEWcat * Edit comments * Add this to track changes... * Fix a little bug * Add mergertree mass * Add cache clearing * Improve summing substructure code * Littbe bug * Little updates to the merger tree reader * Update .giignore * Add box selection * Add optional deletingf of a group * add to keep track of changes * Update changes * Remove * Add manual tracker * Fix bug * Add m200c_to_r200c * Add manual halo tracking * Remove skipped snapshots * update cosmo params to match csiborg * remove old comments * Add SDSSxALFALFA * Fix bugs * Rename * Edit paths * Updates * Add comments * Add comment * Add hour conversion * Add imports * Add new observation class * Add selection * Add imports * Fix small bug * Add field copying for safety * Add matching to survey without masking * Add P(k) calculation * Add nb * Edit comment * Move files * Remove merger import * Edit setup.yp * Fix typo * Edit import warnigns * update nb * Update README * Update README * Update README * Add skeleton * Add skeleton
2023-12-07 15:23:32 +01:00
"\n",
"field_generator = csiborgtools.field.DensityField(box, \"PCS\")"
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Loading particles for the density field: 97%|█████████▋| 30/31 [00:02<00:00, 13.90it/s]\n",
"Loading particles for the density field: 97%|█████████▋| 30/31 [00:58<00:01, 1.97s/it]\n"
]
}
],
"source": [
"field_new = field_generator(pos_new, mass_new, 128)\n",
"field_old = field_generator(pos_old, mass_old, 128)"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = 0\n",
"fig, axs = plt.subplots(1, 2, figsize=(10, 5))\n",
"axs[0].imshow(np.mean(field_new, axis=ax))\n",
"axs[1].imshow(np.mean(field_old.T, axis=ax))\n",
"# axs[1].imshow(np.mean(field_new, axis=ax) - np.mean(field_old.T, axis=ax))\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Computing power spectrum of the field...\n",
"Time to complete loop = 0.17\n",
"Time taken = 0.19 seconds\n",
"\n",
"Computing power spectrum of the field...\n",
"Time to complete loop = 0.16\n",
"Time taken = 0.18 seconds\n"
]
}
],
"source": [
"delta_new = field_new / np.mean(field_new) - 1\n",
"delta_old = field_old / np.mean(field_old) - 1\n",
"\n",
"\n",
"knew, pnew = csiborgtools.field.power_spectrum(delta_new, box.boxsize, field_generator.MAS)\n",
"kold, pold = csiborgtools.field.power_spectrum(delta_old, box.boxsize, field_generator.MAS)"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 900x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axs = plt.subplots(1, 2, figsize=(9, 4))\n",
"axs[0].plot(knew, pnew, label=\"Gadget4\")\n",
"axs[0].plot(kold, pold, label=\"RAMSES\")\n",
"axs[0].set_yscale(\"log\")\n",
"axs[0].set_xscale(\"log\")\n",
"\n",
"axs[1].plot(knew, pnew / pold)\n",
"axs[1].axhline(1, color=\"k\", ls=\"--\")\n",
"axs[1].set_xscale(\"log\")\n",
"axs[1].set_ylim(0.75, 1.25)\n",
"\n",
"axs\n",
"\n",
"axs[0].set_xlabel(r\"$k ~ [h / \\mathrm{Mpc}]$\")\n",
"axs[1].set_xlabel(r\"$k ~ [h / \\mathrm{Mpc}]$\")\n",
"axs[1].set_ylabel(r\"$P(k)$\")\n",
"axs[0].legend()\n",
"\n",
"fig.tight_layout()\n",
"# plt.savefig(\"../plots/powerspectrum_test_7444.png\", dpi=300, bbox_inches=\"tight\")\n",
"\n",
"fig.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"csiborgtools.field.power_spectrum "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "venv_csiborg",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}