csiborgtools/scripts/plot_galaxy_distribution.ipynb

151 lines
250 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2022-10-20T14:23:25.906826Z",
"start_time": "2022-10-20T14:23:24.270299Z"
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"%matplotlib notebook\n",
"import matplotlib.pyplot as plt\n",
"# Local imports\n",
"try:\n",
2022-10-21 00:37:33 +02:00
" import csiborgtools\n",
"except ModuleNotFoundError:\n",
" import sys\n",
" sys.path.append(\"../\")\n",
2022-10-21 00:37:33 +02:00
" import csiborgtools\n",
"import utils\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2022-10-20T14:23:27.797767Z",
"start_time": "2022-10-20T14:23:25.910913Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████████████| 1/1 [00:00<00:00, 4.37it/s]\n"
]
}
],
"source": [
"obs = utils.load_2mpp()\n",
"\n",
"\n",
"cols = [\"ra\", \"dec\", \"mass_cl\", \"dist\"]\n",
"mmains = utils.load_mmains(1)\n",
2022-10-21 00:37:33 +02:00
"mmains = csiborgtools.utils.list_to_ndarray(mmains, cols)\n",
"sim = mmains[0, ...]\n",
2022-10-21 00:37:33 +02:00
"sim = csiborgtools.utils.array_to_structured(sim ,cols)\n",
"planck = utils.load_planck2015()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2022-10-20T14:23:28.182428Z",
"start_time": "2022-10-20T14:23:28.011353Z"
}
},
"outputs": [
{
"data": {
2022-10-21 00:37:33 +02:00
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dx = 20\n",
"dmin = 125\n",
"dmax = dmin + dx\n",
"\n",
"mask_obs = (dmin < obs[\"CDIST_CMB\"]) & (obs[\"CDIST_CMB\"] < dmax)\n",
"mask_sim = (dmin < sim[\"dist\"]) & (sim[\"dist\"] < dmax) & (sim[\"mass_cl\"] > 1e12)\n",
"\n",
"width = 6.4\n",
"plt.figure(figsize=(width, width*0.75))\n",
"plt.scatter(obs[\"RA\"][mask_obs], obs[\"DEC\"][mask_obs], s=1.5, label=\"2M++\")\n",
"plt.scatter(sim[\"ra\"][mask_sim] , sim[\"dec\"][mask_sim], s=1.5, label=\"CSiBORG\")\n",
"plt.scatter(planck[\"RA\"], planck[\"DEC\"], label=\"Planck SZ clusters < 214 MPc\", c=\"red\")\n",
"\n",
"\n",
"plt.legend()\n",
"plt.xlabel(\"RA\")\n",
"plt.ylabel(\"dec\")\n",
"plt.tight_layout()\n",
"# plt.savefig(\"../plots/2mpp_overlap.png\", dpi=450)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
2022-10-21 00:37:33 +02:00
"display_name": "Python 3.8.0 ('venv_galomatch': virtualenv)",
"language": "python",
2022-10-21 00:37:33 +02:00
"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.8.0"
},
"vscode": {
"interpreter": {
2022-10-21 00:37:33 +02:00
"hash": "f29d02a8350410abc2a9fb79641689d10bf7ab64afc03ec87ca3cf6ed2daa499"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}