{ "cells": [ { "cell_type": "code", "execution_count": 2, "id": "5a38ed25", "metadata": { "ExecuteTime": { "end_time": "2023-04-12T14:25:46.519408Z", "start_time": "2023-04-12T14:25:03.003304Z" }, "scrolled": true }, "outputs": [], "source": [ "import sys\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import scienceplots\n", "import astroquery\n", "from tqdm import trange, tqdm\n", "\n", "sys.path.append(\"../\")\n", "import csiborgtools\n", "\n", "%matplotlib widget \n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 38, "id": "79919270", "metadata": {}, "outputs": [], "source": [ "# # Norma\n", "cluster = {\"RA\": (16 + 15 / 60 + 32.8 / 60**2) * 15,\n", " \"DEC\": -60 + 54 / 60 + 30 / 60**2,\n", " \"DIST\": 67.8}\n", "\n", "Xclust = np.array([cluster[\"DIST\"], cluster[\"RA\"], cluster[\"DEC\"]]).reshape(1, -1)" ] }, { "cell_type": "code", "execution_count": 39, "id": "96740b90", "metadata": {}, "outputs": [], "source": [ "paths = csiborgtools.read.Paths(**csiborgtools.paths_glamdring)\n", "nsims = paths.get_ics(False)" ] }, { "cell_type": "code", "execution_count": 29, "id": "90033fb1", "metadata": {}, "outputs": [], "source": [ "Xclust = np.array([cluster[\"DIST\"], cluster[\"RA\"], cluster[\"DEC\"]]).reshape(1, -1)" ] }, { "cell_type": "code", "execution_count": 33, "id": "194baa83", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 101/101 [00:44<00:00, 2.25it/s]\n" ] } ], "source": [ "matches = np.full(len(nsims), np.nan)\n", "\n", "for ii in trange(101):\n", " cat = csiborgtools.read.CSiBORGHaloCatalogue(nsims[ii], paths, minmass=('M', 1e13))\n", " dist, ind = cat.angular_neighbours(Xclust, ang_radius=5, rad_tolerance=10)\n", " dist = dist[0]\n", " ind = ind[0]\n", "\n", " if ind.size > 0:\n", " matches[ii] = np.max(cat['M'][ind])\n" ] }, { "cell_type": "code", "execution_count": 37, "id": "392f6eee", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "6ff7d5b9dc2f4b3fa6f563ee91f59655", "version_major": 2, "version_minor": 0 }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAflklEQVR4nO3df3TV9X348Vf4kcCEBBMlISMBWltjtbAOK6a6ddXMyOH4o6Q/7HGWUk532hOpkLNV6dZST6fB7kxoK2D1ODw7p8zWP7CjntrDsonHs4AYxo6uk1ZrD1hMqG4kiCMw8vn+0a+p0UT5kZub3Pfjcc49x3zuzcfXy+Anz3NzbyjKsiwLAACSMS7fAwAAMLIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYgQgAEBiBCAAQGIEIABAYibke4CxrK+vLw4cOBBTp06NoqKifI8DAJyELMvi8OHDUV1dHePGpflcmAA8AwcOHIiampp8jwEAnIb9+/fHzJkz8z1GXgjAMzB16tSI+O0foNLS0jxPAwCcjJ6enqipqen/Pp4iAXgG3vixb2lpqQAEgDEm5ZdvpfmDbwCAhAlAAIDECEAAgMQIQACAxAhAAIDECEAAgMQIQACAxAhAAIDECEAAgMQIQACAxAhAAIDECEAAgMQIQACAxAhAAIDETMj3AABA7s2+7dF8j3DKfrVmUb5HKFieAQQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEhMwQbgN77xjSgqKhpwq6ur67//6NGj0dzcHBUVFTFlypRoamqKrq6uPE4MADAyCjYAIyIuvPDCePnll/tvTz75ZP99K1eujK1bt8bDDz8c27dvjwMHDsTixYvzOC0AwMiYkO8BcmnChAlRVVX1tuPd3d3xwAMPxObNm+OKK66IiIhNmzbFBRdcEDt27IhLL710pEcFABgxBf0M4C9+8Yuorq6O97znPXHjjTfGvn37IiKio6Mjjh8/Hg0NDf2Prauri9ra2mhvbx/yfL29vdHT0zPgBgAw1hRsAC5YsCAefPDBeOyxx2Ljxo3x4osvxh/90R/F4cOHo7OzM4qLi2PatGkDPqeysjI6OzuHPGdra2uUlZX132pqanK8BQDA8CvYHwEvXLiw/5/nzp0bCxYsiFmzZsUPf/jDmDx58mmdc9WqVdHS0tL/cU9PjwgEAMacgn0G8K2mTZsW73//++P555+PqqqqOHbsWBw6dGjAY7q6ugZ9zeAbSkpKorS0dMANAGCsSSYAX3vttXjhhRdixowZMX/+/Jg4cWK0tbX13793797Yt29f1NfX53FKAIDcK9gfAf/FX/xFXHPNNTFr1qw4cOBArF69OsaPHx+f+cxnoqysLJYtWxYtLS1RXl4epaWlsXz58qivr/cOYACg4BVsAL700kvxmc98Jl599dU499xz4/LLL48dO3bEueeeGxERa9eujXHjxkVTU1P09vZGY2NjbNiwIc9TAwDkXlGWZVm+hxirenp6oqysLLq7u70eEIBRbfZtj+Z7hFP2qzWLcnJe378Teg0gAAC/JQABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABIjAAEAEiMAAQASIwABABKTRACuWbMmioqKYsWKFf3Hjh49Gs3NzVFRURFTpkyJpqam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", "text/html": [ "\n", "