{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# NBVAL_SKIP\n", "from jax import config\n", "#config.update(\"jax_enable_x64\", True)\n", "config.update('jax_num_cpu_devices', 2)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[CpuDevice(id=0), CpuDevice(id=1)]\n" ] } ], "source": [ "#NBVAL_SKIP\n", "import os\n", "\n", "# Only make GPU 0 and GPU 1 visible to JAX:\n", "#os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3,4,5'\n", "\n", "import jax\n", "\n", "# Now JAX will list two CpuDevice entries\n", "print(jax.devices())\n", "# → [CpuDevice(id=0), CpuDevice(id=1)]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# NBVAL_SKIP\n", "os.environ['SPS_HOME'] = '/home/annalena_data/sps_fsps'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# RUBIX pipeline\n", "\n", "RUBIX is designed as a linear pipeline, where the individual functions are called and constructed as a pipeline. This allows as to execude the whole data transformation from a cosmological hydrodynamical simulation of a galaxy to an IFU cube in two lines of code. This notebook shows, how to execute the pipeline. To see, how the pipeline is execuded in small individual steps per individual function, we refer to the notebook `rubix_pipeline_stepwise.ipynb`.\n", "\n", "## How to use the Pipeline\n", "1) Define a `config`\n", "2) Setup the `pipeline yaml`\n", "3) Prepare input data\n", "4) Run the RUBIX pipeline\n", "5) Do science with the mock-data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 1: Config\n", "\n", "The `config` contains all the information needed to run the pipeline. Those are run specfic configurations. Currently we support IllustrisTNG and NIHAO as simulation.\n", "\n", "For the `config` you can choose the following options:\n", "- `pipeline`: you specify the name of the pipeline that is stored in the yaml file in rubix/config/pipeline_config.yml\n", "- `logger`: RUBIX has implemented a logger to report the user, what is happening during the pipeline execution and give warnings\n", "- `data - args - particle_type`: load only stars particle (\"particle_type\": [\"stars\"]) or only gas particle (\"particle_type\": [\"gas\"]) or both (\"particle_type\": [\"stars\",\"gas\"])\n", "- `data - args - simulation`: choose the Illustris simulation (e.g. \"simulation\": \"TNG50-1\")\n", "- `data - args - snapshot`: which time step of the simulation (99 for present day)\n", "- `data - args - save_data_path`: set the path to save the downloaded Illustris data\n", "- `data - load_galaxy_args - id`: define, which Illustris galaxy is downloaded\n", "- `data - load_galaxy_args - reuse`: if True, if in th esave_data_path directory a file for this galaxy id already exists, the downloading is skipped and the preexisting file is used\n", "- `data - subset`: only a defined number of stars/gas particles is used and stored for the pipeline. This may be helpful for quick testing\n", "- `simulation - name`: currently only IllustrisTNG is supported\n", "- `simulation - args - path`: where the data is stored and how the file will be named\n", "- `output_path`: where the hdf5 file is stored, which is then the input to the RUBIX pipeline\n", "- `telescope - name`: define the telescope instrument that is observing the simulation. Some telescopes are predefined, e.g. MUSE. If your instrument does not exist predefined, you can easily define your instrument in rubix/telescope/telescopes.yaml\n", "- `telescope - psf`: define the point spread function that is applied to the mock data\n", "- `telescope - lsf`: define the line spread function that is applied to the mock data\n", "- `telescope - noise`: define the noise that is applied to the mock data\n", "- `cosmology`: specify the cosmology you want to use, standard for RUBIX is \"PLANCK15\"\n", "- `galaxy - dist_z`: specify at which redshift the mock-galaxy is observed\n", "- `galaxy - rotation`: specify the orientation of the galaxy. You can set the types edge-on or face-on or specify the angles alpha, beta and gamma as rotations around x-, y- and z-axis\n", "- `ssp - template`: specify the simple stellar population lookup template to get the stellar spectrum for each stars particle. In RUBIX frequently \"BruzualCharlot2003\" is used." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2025-07-01 11:54:55,965 - rubix - INFO - \n", " ___ __ _____ _____ __\n", " / _ \\/ / / / _ )/ _/ |/_/\n", " / , _/ /_/ / _ |/ /_> <\n", "/_/|_|\\____/____/___/_/|_|\n", "\n", "\n", "2025-07-01 11:54:55,966 - rubix - INFO - Rubix version: 0.0.post467+g61e4558.d20250616\n", "2025-07-01 11:54:55,967 - rubix - INFO - JAX version: 0.6.0\n", "2025-07-01 11:54:55,967 - rubix - INFO - Running on [CpuDevice(id=0), CpuDevice(id=1)] devices\n" ] } ], "source": [ "#NBVAL_SKIP\n", "import matplotlib.pyplot as plt\n", "from rubix.core.pipeline import RubixPipeline \n", "import os" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# NBVAL_SKIP\n", "config_TNG = {\n", " \"pipeline\":{\"name\": \"calc_ifu_memory\"},\n", " \n", " \"logger\": {\n", " \"log_level\": \"DEBUG\",\n", " \"log_file_path\": None,\n", " \"format\": \"%(asctime)s - %(name)s - %(levelname)s - %(message)s\",\n", " },\n", " \"data\": {\n", " \"name\": \"IllustrisAPI\",\n", " \"args\": {\n", " \"api_key\": os.environ.get(\"ILLUSTRIS_API_KEY\"),\n", " \"particle_type\": [\"stars\"],\n", " \"simulation\": \"TNG50-1\",\n", " \"snapshot\": 99,\n", " \"save_data_path\": \"data\",\n", " },\n", " \n", " \"load_galaxy_args\": {\n", " \"id\": 12,\n", " \"reuse\": True,\n", " },\n", " \n", " \"subset\": {\n", " \"use_subset\": True,\n", " \"subset_size\": 1000,\n", " },\n", " },\n", " \"simulation\": {\n", " \"name\": \"IllustrisTNG\",\n", " \"args\": {\n", " \"path\": \"data/galaxy-id-12.hdf5\",\n", " },\n", " \n", " },\n", " \"output_path\": \"output\",\n", "\n", " \"telescope\":\n", " {\"name\": \"MUSE\",\n", " \"psf\": {\"name\": \"gaussian\", \"size\": 5, \"sigma\": 0.6},\n", " \"lsf\": {\"sigma\": 0.5},\n", " \"noise\": {\"signal_to_noise\": 100,\"noise_distribution\": \"normal\"},},\n", " \"cosmology\":\n", " {\"name\": \"PLANCK15\"},\n", " \n", " \"galaxy\":\n", " {\"dist_z\": 0.1,\n", " \"rotation\": {\"type\": \"edge-on\"},\n", " },\n", " \n", " \"ssp\": {\n", " \"template\": {\n", " \"name\": \"BruzualCharlot2003\",\n", " },\n", " \"dust\": {\n", " \"extinction_model\": \"Cardelli89\",\n", " \"dust_to_gas_ratio\": 0.01,\n", " \"dust_to_metals_ratio\": 0.4,\n", " \"dust_grain_density\": 3.5,\n", " \"Rv\": 3.1,\n", " },\n", " }, \n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 2: Pipeline yaml\n", "\n", "To run the RUBIX pipeline, you need a yaml file (stored in `rubix/config/pipeline_config.yml`) that defines which functions are used during the execution of the pipeline. This shows the example pipeline yaml to compute a stellar IFU cube.\n", "\n", "```yaml\n", "calc_ifu_memory:\n", " Transformers:\n", " rotate_galaxy:\n", " name: rotate_galaxy\n", " depends_on: null\n", " args: []\n", " kwargs: {}\n", " filter_particles:\n", " name: filter_particles\n", " depends_on: rotate_galaxy\n", " args: []\n", " kwargs: {}\n", " spaxel_assignment:\n", " name: spaxel_assignment\n", " depends_on: filter_particles\n", " args: []\n", " kwargs: {}\n", " calculate_datacube_particlewise:\n", " name: calculate_datacube_particlewise\n", " depends_on: spaxel_assignment\n", " args: []\n", " kwargs: {}\n", " convolve_psf:\n", " name: convolve_psf\n", " depends_on: calculate_datacube_particlewise\n", " args: []\n", " kwargs: {}\n", " convolve_lsf:\n", " name: convolve_lsf\n", " depends_on: convolve_psf\n", " args: []\n", " kwargs: {}\n", " apply_noise:\n", " name: apply_noise\n", " depends_on: convolve_lsf\n", " args: []\n", " kwargs: {}\n", "```\n", "\n", "There is one thing you have to know about the naming of the functions in this yaml: To use the functions inside the pipeline, the functions have to be called exactly the same as they are returned from the core module function!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3: Run the pipeline\n", "\n", "After defining the `config` and the `pipeline_config` you can simply run the whole pipeline by these three lines of code." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/factory.py:26: UserWarning: No telescope config provided, using default stored in /home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/telescopes.yaml\n", " warnings.warn(\n" ] } ], "source": [ "#NBVAL_SKIP\n", "pipe = RubixPipeline(config_TNG)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2025-07-01 11:54:56,212 - rubix - INFO - Getting rubix data...\n", "2025-07-01 11:54:56,213 - rubix - INFO - Loading data from IllustrisAPI\n", "2025-07-01 11:54:56,214 - rubix - INFO - Reusing existing file galaxy-id-12.hdf5. If you want to download the data again, set reuse=False.\n", "2025-07-01 11:54:56,239 - rubix - INFO - Loading data into input handler\n", "2025-07-01 11:54:56,240 - rubix - DEBUG - Loading data from Illustris file..\n", "2025-07-01 11:54:56,240 - rubix - DEBUG - Checking if the fields are present in the file...\n", "2025-07-01 11:54:56,241 - rubix - DEBUG - Keys in the file: \n", "2025-07-01 11:54:56,241 - rubix - DEBUG - Expected fields: ['Header', 'SubhaloData', 'PartType4', 'PartType0']\n", "2025-07-01 11:54:56,242 - rubix - DEBUG - Matching fields: {'PartType4', 'SubhaloData', 'Header'}\n", "2025-07-01 11:54:56,246 - rubix - DEBUG - Found 649384 valid particles out of 649384\n", "2025-07-01 11:54:56,625 - rubix - DEBUG - Converting Stellar Formation Time to Age\n", "2025-07-01 11:55:03,481 - rubix - DEBUG - Converting to Rubix format..\n", "2025-07-01 11:55:03,482 - rubix - DEBUG - Checking if the fields are present in the particle data...\n", "2025-07-01 11:55:03,482 - rubix - DEBUG - Keys in the particle data: dict_keys(['stars'])\n", "2025-07-01 11:55:03,483 - rubix - DEBUG - Expected fields: {'PartType4': 'stars', 'PartType0': 'gas'}\n", "2025-07-01 11:55:03,483 - rubix - DEBUG - Matching fields: {'stars'}\n", "2025-07-01 11:55:03,484 - rubix - DEBUG - Required fields for stars: ['coords', 'mass', 'metallicity', 'velocity', 'age']\n", "2025-07-01 11:55:03,484 - rubix - DEBUG - Available fields in particle_data[stars]: ['coords', 'mass', 'metallicity', 'age', 'velocity']\n", "2025-07-01 11:55:03,485 - rubix - INFO - Rubix file saved at output/rubix_galaxy.h5\n", "2025-07-01 11:55:03,485 - rubix - DEBUG - Creating Rubix file at path: output/rubix_galaxy.h5\n", "2025-07-01 11:55:03,490 - rubix - DEBUG - Converting redshift for galaxy data into \n", "2025-07-01 11:55:03,492 - rubix - DEBUG - Converting center for galaxy data into kpc\n", "2025-07-01 11:55:03,493 - rubix - DEBUG - Converting halfmassrad_stars for galaxy data into kpc\n", "2025-07-01 11:55:03,494 - rubix - DEBUG - Converting coords for particle type stars into kpc\n", "2025-07-01 11:55:03,501 - rubix - DEBUG - Converting mass for particle type stars into Msun\n", "2025-07-01 11:55:03,504 - rubix - DEBUG - Converting metallicity for particle type stars into \n", "2025-07-01 11:55:03,506 - rubix - DEBUG - Converting age for particle type stars into Gyr\n", "2025-07-01 11:55:03,508 - rubix - DEBUG - Converting velocity for particle type stars into km/s\n", "2025-07-01 11:55:03,525 - rubix - INFO - Rubix file saved at output/rubix_galaxy.h5\n", "2025-07-01 11:55:03,552 - rubix - INFO - Centering stars particles\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Converted to Rubix format!\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "2025-07-01 11:55:04,305 - rubix - WARNING - The Subset value is set in config. Using only subset of size 1000 for stars\n", "2025-07-01 11:55:04,306 - rubix - INFO - Data loaded with 1000 star particles and 0 gas particles.\n", "2025-07-01 11:55:04,307 - rubix - INFO - Setting up the pipeline...\n", "2025-07-01 11:55:04,308 - rubix - DEBUG - Pipeline Configuration: {'Transformers': {'rotate_galaxy': {'name': 'rotate_galaxy', 'depends_on': None, 'args': [], 'kwargs': {}}, 'filter_particles': {'name': 'filter_particles', 'depends_on': 'rotate_galaxy', 'args': [], 'kwargs': {}}, 'spaxel_assignment': {'name': 'spaxel_assignment', 'depends_on': 'filter_particles', 'args': [], 'kwargs': {}}, 'calculate_datacube_particlewise': {'name': 'calculate_datacube_particlewise', 'depends_on': 'spaxel_assignment', 'args': [], 'kwargs': {}}, 'convolve_psf': {'name': 'convolve_psf', 'depends_on': 'calculate_datacube_particlewise', 'args': [], 'kwargs': {}}, 'convolve_lsf': {'name': 'convolve_lsf', 'depends_on': 'convolve_psf', 'args': [], 'kwargs': {}}, 'apply_noise': {'name': 'apply_noise', 'depends_on': 'convolve_lsf', 'args': [], 'kwargs': {}}}}\n", "2025-07-01 11:55:04,309 - rubix - DEBUG - Roataion Type found: edge-on\n", "2025-07-01 11:55:04,311 - rubix - INFO - Calculating spatial bin edges...\n", "/home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/factory.py:26: UserWarning: No telescope config provided, using default stored in /home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/telescopes.yaml\n", " warnings.warn(\n", "2025-07-01 11:55:04,335 - rubix - INFO - Getting cosmology...\n", "2025-07-01 11:55:04,490 - rubix - INFO - Calculating spatial bin edges...\n", "2025-07-01 11:55:04,500 - rubix - INFO - Getting cosmology...\n", "2025-07-01 11:55:04,512 - rubix - DEBUG - Method not defined, using default method: cubic\n", "/home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/factory.py:26: UserWarning: No telescope config provided, using default stored in /home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/telescopes.yaml\n", " warnings.warn(\n", "2025-07-01 11:55:04,547 - rubix - DEBUG - SSP Wave: (842,)\n", "/home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/factory.py:26: UserWarning: No telescope config provided, using default stored in /home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/telescopes.yaml\n", " warnings.warn(\n", "2025-07-01 11:55:04,559 - rubix - INFO - Getting cosmology...\n", "/home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/factory.py:26: UserWarning: No telescope config provided, using default stored in /home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/telescopes.yaml\n", " warnings.warn(\n", "2025-07-01 11:55:04,598 - rubix - DEBUG - Method not defined, using default method: cubic\n", "/home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/factory.py:26: UserWarning: No telescope config provided, using default stored in /home/annalena/.conda/envs/rubix/lib/python3.12/site-packages/rubix/telescope/telescopes.yaml\n", " warnings.warn(\n", "2025-07-01 11:55:04,772 - rubix - INFO - Assembling the pipeline...\n", "2025-07-01 11:55:04,773 - rubix - INFO - Compiling the expressions...\n", "2025-07-01 11:55:04,774 - rubix - INFO - Number of devices: 2\n", "2025-07-01 11:55:04,897 - rubix - INFO - Rotating galaxy with alpha=90.0, beta=0.0, gamma=0.0\n", "2025-07-01 11:55:04,897 - rubix - DEBUG - No rotation matrix provided, using Euler angles for rotation.\n", "2025-07-01 11:55:05,000 - rubix - INFO - Filtering particles outside the aperture...\n", "2025-07-01 11:55:05,005 - rubix - INFO - Assigning particles to spaxels...\n", "2025-07-01 11:55:05,029 - rubix - INFO - Calculating Data Cube (combined per‐particle)…\n", "2025-07-01 11:55:05,262 - rubix - DEBUG - Datacube shape: (25, 25, 3721)\n", "2025-07-01 11:55:05,262 - rubix - INFO - Convolving with PSF...\n", "2025-07-01 11:55:05,266 - rubix - INFO - Convolving with LSF...\n", "2025-07-01 11:55:05,271 - rubix - INFO - Applying noise to datacube with signal to noise ratio: 100 and noise distribution: normal\n", "2025-07-01 11:55:07,306 - rubix - INFO - Pipeline run completed in 3.00 seconds.\n" ] } ], "source": [ "#NBVAL_SKIP\n", "\n", "inputdata = pipe.prepare_data()\n", "rubixdata = pipe.run_sharded(inputdata)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Convert luminosity to flux\n", "\n", "The output of the pipeline is a cube in luminosity. As observers work with flux, we have to convert our luminosity cube to a flux cube." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# NBVAL_SKIP\n", "from rubix.spectra.ifu import convert_luminoisty_to_flux\n", "from rubix.cosmology import PLANCK15\n", "\n", "observation_lum_dist = PLANCK15.luminosity_distance_to_z(config_TNG[\"galaxy\"][\"dist_z\"])\n", "observation_z = config_TNG[\"galaxy\"][\"dist_z\"]\n", "pixel_size = 1.0\n", "fluxcube = convert_luminoisty_to_flux(rubixdata, observation_lum_dist, observation_z, pixel_size)\n", "rubixdata = fluxcube/1e-20" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Store datacube in a fits file with header\n", "\n", "If you want to have the datacube stored in a fits file, this is supported by these lines of code." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "#NBVAL_SKIP\n", "#from rubix.core.fits import store_fits\n", "\n", "#store_fits(config_TNG, rubixdata, \"./output/\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 4: Mock-data\n", "\n", "Now we have our final datacube and can use the mock-data to do science. Here we have a quick look in the optical wavelengthrange of the mock-datacube and show the spectra of a central spaxel and a spatial image." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "#NBVAL_SKIP\n", "import jax.numpy as jnp\n", "\n", "wave = pipe.telescope.wave_seq\n", "# get the indices of the visible wavelengths of 4000-8000 Angstroms\n", "visible_indices = jnp.where((wave >= 4000) & (wave <= 8000))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is how you can access the spectrum of an individual spaxel, the wavelength can be accessed via `pipe.wave_seq`" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAHWCAYAAAB9mLjgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAkvhJREFUeJzs3Xd4VGX+/vH3lGTSe4fQexVEelNwUVyxlxW7a+/Yu+7qurr+XNaKrl9FsaxdUbEgqAjSe68BAqT3Oklmzu+PSYaEJJAhZZJwv67rXDNzzpkzn2Gz4J3neT7HZBiGgYiIiIiIiDSY2dsFiIiIiIiItDUKUiIiIiIiIh5SkBIREREREfGQgpSIiIiIiIiHFKREREREREQ8pCAlIiIiIiLiIQUpERERERERDylIiYiIiIiIeEhBSkRERERExEMKUiIi0uL27t2LyWTihRdeOOa5Tz75JCaTqQWqqmn27NmYTCZWrVrV4p9dperPafbs2U12zarvtXfv3ia7pojIiUhBSkREjqrqP7yrNqvVSocOHbj66qs5ePCgt8vzmNPp5L333mPEiBFEREQQHBxMr169uPLKK1m2bJm3yxMRkTbC6u0CRESkbfjb3/5G165dKS0tZdmyZcyePZvFixezadMm/Pz8mu1zH330UR588MEmu94dd9zBq6++yjnnnMP06dOxWq1s376d77//nm7dujFy5Mgm+ywREWm/FKRERKRBzjzzTIYNGwbAX//6V6KionjuueeYO3cuF198cbN9rtVqxWptmn+u0tLSeO2117j++ut58803axybOXMmGRkZTfI5niguLiYgIKDFP1dERBpHU/tEROS4jBs3DoDdu3e7902cOJGJEyfWOvfqq6+mS5cudV7n3//+N507d8bf358JEyawadOmGsePXCP1zjvvYDKZePvtt2uc949//AOTycS8efPqrTkpKQnDMBgzZkytYyaTiZiYmFr77XY7M2bMIDo6msDAQM4777xagevrr7/mrLPOIiEhAZvNRvfu3fn73/+Ow+Gocd7EiRMZMGAAq1evZvz48QQEBPDwww8DkJuby9VXX01oaChhYWFcddVV5Obm1vk9tm3bxoUXXkhERAR+fn4MGzaMuXPn1jpv8+bNnHbaafj7+9OxY0eefvppnE5nvX8+IiLScBqREhGR41LVrCA8PPy4r/Hee+9RUFDArbfeSmlpKf/5z3847bTT2LhxI7GxsXW+55prruGLL75gxowZnH766SQmJrJx40aeeuoprrvuOqZOnVrv53Xu3BmATz/9lIsuuqhBI0G333474eHhPPHEE+zdu5eZM2dy22238fHHH7vPmT17NkFBQcyYMYOgoCAWLlzI448/Tn5+Pv/6179qXC8rK4szzzyTSy+9lMsvv5zY2FgMw+Ccc85h8eLF3HTTTfTt25cvv/ySq666qlY9mzdvZsyYMXTo0IEHH3yQwMBAPvnkE84991w+//xzzjvvPABSU1M59dRTqaiocJ/35ptv4u/vf8zvLCIiDWCIiIgcxTvvvGMAxs8//2xkZGQYycnJxmeffWZER0cbNpvNSE5Odp87YcIEY8KECbWucdVVVxmdO3d2v05KSjIAw9/f3zhw4IB7//Llyw3AuPvuu937nnjiCePIf65SUlKMiIgI4/TTTzfsdrsxZMgQo1OnTkZeXt4xv8+VV15pAEZ4eLhx3nnnGS+88IKxdevWer/35MmTDafT6d5/9913GxaLxcjNzXXvKy4urvX+G2+80QgICDBKS0vd+yZMmGAAxqxZs2qc+9VXXxmA8fzzz7v3VVRUGOPGjTMA45133nHvnzRpkjFw4MAa13U6ncbo0aONnj17uvfdddddBmAsX77cvS89Pd0IDQ01ACMpKekYf1IiInI0mtonIiINMnnyZKKjo0lMTOTCCy8kMDCQuXPn0rFjx+O+5rnnnkuHDh3cr4cPH86IESOOOj0PIC4ujldffZX58+czbtw41q1bx9tvv01ISMgxP/Odd97hlVdeoWvXrnz55Zfce++99O3bl0mTJtXZhfCGG26oMbVw3LhxOBwO9u3b595XfZSnoKCAzMxMxo0bR3FxMdu2batxPZvNxjXXXFNj37x587Bardx8883ufRaLhdtvv73GednZ2SxcuJCLL77Y/TmZmZlkZWUxZcoUdu7c6f4O8+bNY+TIkQwfPtz9/ujoaKZPn37MPyMRETk2BSkREWmQquDy2WefMXXqVDIzM7HZbI26Zs+ePWvt69WrV4PucXTppZdy1llnsWLFCq6//nomTZrUoM80m83ceuutrF69mszMTL7++mvOPPNMFi5cyKWXXlrr/E6dOtV4XTWVMScnx71v8+bNnHfeeYSGhhISEkJ0dDSXX345AHl5eTXe36FDB3x9fWvs27dvH/Hx8QQFBdXY37t37xqvd+3ahWEYPPbYY0RHR9fYnnjiCQDS09Pd16zrz/fIa4qIyPHRGikREWmQ4cOHu7v2nXvuuYwdO5bLLruM7du3uwOAyWTCMIxa7z2y6UJTyMrKct8sd8uWLTidTsxmz34/GBkZybRp05g2bRoTJ07kt99+Y9++fe61VOAaGapL1ffMzc1lwoQJhISE8Le//Y3u3bvj5+fHmjVreOCBB2o1d2jMGqWqa917771MmTKlznN69Ohx3NcXEZGGU5ASERGPWSwWnn32WU499VReeeUV932ewsPD2bNnT63zq0+Dq27nzp219u3YsaPeDn/V3XrrrRQUFPDss8/y0EMPMXPmTGbMmOHZF6lm2LBh/Pbbb6SkpNQIUsfy66+/kpWVxRdffMH48ePd+5OSkhp8jc6dO7NgwQIKCwtrjEpt3769xnndunUDwMfHh8mTJx/zmnX9+R55TREROT6a2iciIsdl4sSJDB8+nJkzZ1JaWgpA9+7d2bZtW4324OvXr2fJkiV1XuOrr76qsS5pxYoVLF++nDPPPPOon/3ZZ5/x8ccf889//pMHH3yQSy+9lEcffZQdO3Yc9X2pqals2bKl1v6ysjIWLFiA2Wz2eESnasSq+khcWVkZr732WoOvMXXqVCoqKnj99dfd+xwOBy+//HKN82JiYpg4cSJvvPEGKSkpta5T/c996tSpLFu2jBUrVtQ4/sEHHzS4LhERqZ9GpERE5Ljdd999XHTRRcyePZubbrqJa6+9lhdffJEpU6Zw3XXXkZ6ezqxZs+jfvz/5+fm13t+jRw/Gjh3LzTffjN1uZ+bMmURGRnL//ffX+5np6encfPPNnHrqqdx2220AvPLKK/zyyy9cffXVLF68uN4pfgcOHGD48OGcdtppTJo0ibi4ONLT0/noo49Yv349d911F1FRUR79GYwePZrw8HCuuuoq7rjjDkwmE3PmzKlzimN9zj77bMaMGcODDz7I3r176devH1988UWt9VXgWqs2duxYBg4cyPXXX0+3bt1IS0tj6dKlHDhwgPXr1wNw//33M2fOHM444wzuvPNOd/vzzp07s2HDBo++o4iI1KYRKREROW7nn38+3bt354UXXsDhcNC3b1/ee+898vLymDFjBnPnzmXOnDkMHTq0zvdfeeWV3H777bzyyis888wz9O/fn4ULFxIfH1/vZ1aFrqob84JrrdObb77J0qVLeeGFF+p9b+/evZk5cyZWq5XXXnuNG2+8kWeeeYaAgAD++9//8uKLL3r8ZxAZGcm3335LfHw8jz76KC+88AKnn346zz//fIOvYTabmTt3LtOnT+f999/nkUceoUOHDrz77ru1zu3Xrx+rVq3irLPOYvbs2dx6663MmjULs9nM448/7j4vPj6eX375hUGDBvHPf/6TmTNncuWVV3LnnXd6/B1FRKQ2k+HJr8xEREREREREI1IiIiIiIiKeUpASERERERHxkIKUiIiIiIiIhxSkREREREREPKQgJSIiIiIi4iGvBqlFixZx9tlnk5CQgMlk4quvvqr33JtuugmTycTMmTNr7M/Ozmb69OmEhIQQFhbGddddR2FhYfMWLiIiIiIiJzSv3pC3qKiIwYMHc+2113L++efXe96XX37JsmXLSEhIqHVs+vTppKSkMH/+fMrLy7nmmmu44YYb+PDDDxtch9Pp5NChQwQHB7vvSSIiIiIiIicewzAoKCggISGh3hu8V53YKgDGl19+WWv/gQMHjA4dOhibNm0yOnfubPz73/92H9uyZYsBGCtXrnTv+/777w2TyWQcPHiwwZ+dnJxsANq0adOmTZs2bdq0adNmAEZycvJRM4RXR6SOxel0csUVV3DffffRv3//WseXLl1KWFgYw4YNc++bPHkyZrOZ5cuXc95559V5Xbvdjt1ud782Ku9JnJycTEhISBN/CxERERERaSvy8/NJTEwkODj4qOe16iD13HPPYbVaueOOO+o8npqaSkxMTI19VquViIgIUlNT673us88+y1NPPVVrf0hIiIKUiIiIiIgcc8lPq+3at3r1av7zn/8we/bsJl+39NBDD5GXl+fekpOTm/T6IiIiIiLSvrXaIPX777+Tnp5Op06dsFqtWK1W9u3bxz333EOXLl0AiIuLIz09vcb7KioqyM7OJi4urt5r22w29+iTRqFERERERMRTrXZq3xVXXMHkyZNr7JsyZQpXXHEF11xzDQCjRo0iNzeX1atXc/LJJwOwcOFCnE4nI0aMaPGaRURERETkxODVIFVYWMiuXbvcr5OSkli3bh0RERF06tSJyMjIGuf7+PgQFxdH7969Aejbty9nnHEG119/PbNmzaK8vJzbbruNSy+9tM5W6SIiIiIiIk3Bq1P7Vq1axZAhQxgyZAgAM2bMYMiQITz++OMNvsYHH3xAnz59mDRpElOnTmXs2LG8+eabzVWyiIiIiIgIJqOq9/cJLD8/n9DQUPLy8rReSkRERETkBNbQbNBqm02IiIiIiIi0VgpSIiIiIiIiHlKQEhERERER8ZCClIiIiIiIiIcUpERERERERDykICUiIiIiIuIhBSkREREREREPKUi1Mi8t2Ml9n66ntNzh7VJERERERKQeVm8XIDW98ssuyiqcADx/4SBMJpOXKxIRERERkSNpRKqVKXe4QtSnqw/wwfL9Xq5GRERERETqoiDVijidBoZx+PVT32xm9b4c7xUkIiIiIiJ1UpBqRRzVUtS4nlGUOwye+mazFysSEREREZG6KEi1Ig7n4SD1zLkDsZpNbDiQx670Ai9WJSIiIiIiR1KQakWqB6noYBvje0UDMG9jqrdKEhERERGROihItSIV1YKUxWzijP5xAPy4WUFKRERERKQ1UZBqRZxHBKlJfWMwm2DzoXySs4u9WJmIiIiIiFSnINWKVG82YTZBZJCNYV0iAPhpS5q3yhIRERERkSMoSLUiVWukLGaT+0a8UzS9T0RERESk1VGQakWqB6kqf+oXC8CqvdlkFdq9UpeIiIiIiNSkINWKuIOU6XCQSowIoH9CCE4DFmxN91ZpIiIiIiJSjYJUK1IVpKzVRqRA0/tERERERFobBalWpKr9ubmeIPX7rkyK7BUtXpeIiIiIiNSkINWKOI26R6R6xQYRH+pHWYWTLSn53ihNRERERESqsXq7ADmsY7g/n940iiNyFCaTiR4xQaTklZKUUcQplS3RRURERETEOzQi1YoE+Fo5pUsEJ3euHZS6RQUCsDuzsKXLEhERERGRIyhItRHdooMASMoo8nIlIiIiIiKiINVGdK0ckUrKVJASEREREfE2Bak2oipI7csqdrdJFxERERER71CQaiM6hPljs5opczg5kFPs7XJERERERE5oClJthNlsokukpveJiIiIiLQGClJtSJeoAAD2KkiJiIiIiHiVglQb0jWqsnOfgpSIiIiIiFcpSLUhXStHpJKytEZKRERERMSbFKTakMMjUropr4iIiIiINylItSFVLdAP5pRgr3B4uRoRERERkROXglQbEhXkS5DNitOA5GxN7xMRERER8RYFqTbEZDK5R6X2ZNTdcOLv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ZBWV8crCXd4uR0RERETkuDQoSE2YMAGrtUHLqQAYO3YsNpvtuIuS9svHYubRP/cD4J0lSSRlqoufiIiIiLQ9DU9HR0hPTyc9PR2n01lj/6BBgxpdlLRvp/aOYWLvaH7dnsEz323lrauGebskERERERGPeBykVq9ezVVXXcXWrVupWl5lMpkwDAOTyYTDodbWcmyPntWP33cu4uetaSzemcnYnlHeLklEREREpME8vo/UtddeS69evfjjjz/Ys2cPSUlJNR49sWjRIs4++2wSEhIwmUx89dVXNY4bhsHjjz9OfHw8/v7+TJ48mZ07d9Y4Jzs7m+nTpxMSEkJYWBjXXXedOga2AT1igrhiZGcA/vu7Zz83IiIiIiLe5nGQ2rNnD88//zwjRoygS5cudO7cucbmiaKiIgYPHsyrr75a5/Hnn3+el156iVmzZrF8+XICAwOZMmUKpaWl7nOmT5/O5s2bmT9/Pt9++y2LFi3ihhtu8PRriRdcNboLAL/vzCAtv/ToJ4uIiIiItCIeB6lJkyaxfv36JvnwM888k6effprzzjuv1jHDMJg5cyaPPvoo55xzDoMGDeK9997j0KFD7pGrrVu38sMPP/DWW28xYsQIxo4dy8svv8z//vc/Dh3SfYpau65RgZzcORynAV+tPejtckREREREGszjNVJvvfUWV111FZs2bWLAgAH4+NS8D9C0adOapLCkpCRSU1OZPHmye19oaCgjRoxg6dKlXHrppSxdupSwsDCGDTvcrGDy5MmYzWaWL19eZ0ADsNvt2O129+v8/PwmqVk8d8HQjqzel8Pnaw5ww/humEwmb5ckIiIiInJMHgeppUuXsmTJEr7//vtax5qy2URqaioAsbGxNfbHxsa6j9V1k2Cr1UpERIT7nLo8++yzPPXUU01SpzTOWYPiefKbzexIK2TTwXwGdgz1dkkiIiIiIsfk8dS+22+/ncsvv5yUlBScTmeNra107HvooYfIy8tzb8nJyd4u6YQV6u/Dn/q5wvLnaw54uRoRERERkYbxOEhlZWVx99131xopampxcXEApKWl1diflpbmPhYXF0d6enqN4xUVFWRnZ7vPqYvNZiMkJKTGJt5zwckdAfh63UHsFQ42HMjlwtf/4PK3llNkr/BydSIiIiIitXkcpM4//3x++eWX5qilhq5duxIXF8eCBQvc+/Lz81m+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r9cd4sX5O7j5/TW6aa+IiIhIG3BczSby8vKYN28eX3/9NT/88AMRERHukaoJEyZgsbSt36ir2YTUpcuD3wFgs5rZ/vSZTX79d5YksflQPuGV96d6b+k+7BVOJveN4bXpJ+NrPa4ljCIiIiLSCA3NBscVpKorLy/n119/Ze7cucydO5eCggJefvllpk+f3pjLtigFKanLsKfnk1lYxvlDOvDiJSc1++ct3pnJde+uxF7h5PR+sbx62VCFKREREZEW1mJB6khr166loqKCU045pSkv26wUpKQumw7m8X+Lk7j11B61mk80l0U7Mvjre6soq3DSJy6Yc07qwNSBcU26RktERERE6tdsQcrpdGI21/4tuWEYJCcn06lTJ8+r9TIFKWlNft2ezk3vr6a03OneN6pbJK9cNkT3nRIRERFpZk1+H6n8/HwuvvhiAgMDiY2N5fHHH8fhOLwoPj09na5duzauahFhYu8YFj9wGs+cN4CxPaKwmE0s3ZPFRW8s5WBuibfLExERERE8CFKPPfYY69evZ86cOTzzzDO89957nHPOOZSVlbnPaeJZgiInrKggG9NHdOb9v47gx7vGkxDqx56MIi58/Q92pRd4uzwRERGRE16Dg9RXX33FG2+8wYUXXshf//pXVq1aRUZGBmeffTZ2ux1wtXUWkabVIyaIz24eTffoQFLySrlo1lLWJed6uywRERGRE1qDg1RGRgadO3d2v46KiuLnn3+moKCAqVOnUlxc3CwFiggkhPnz6U2jGdwxlJzici777zIW78z0dlkiIiIiJ6wGB6lOnTqxdevWGvuCg4P56aefKCkp4bzzzmvy4kTksIhAXz64fiRje0RRXObg2tkrmbcxxdtliYiIiJyQGhyk/vSnP/HOO+/U2h8UFMSPP/6In59fkxYmIrUF2az839XDmDowjjKHk1s/XMOHy/d7uywRERGRE461oSc+9dRTHDp0qM5jwcHBzJ8/nzVr1jRZYSJSN5vVwst/GUqo/yY+WrGfh7/cSE5xGbdM7K51iiIiIiItpMlvyNsW6T5S0hYZhsELP23n1V92A3D9uK48PLWvwpSIiIhIIzT5faSqlJaWNqowEWkaJpOJ+6b04dGz+gLw39+TePjLTTicJ/zvRkRERESanUdBKicnh0mTJjVXLSJyHP46rhvPXzAIswk+WrGfm99fTaG9wttl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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#NBVAL_SKIP\n", "wave = pipe.telescope.wave_seq\n", "\n", "spectra_sharded = rubixdata # Spectra of all stars\n", "\n", "plt.figure(figsize=(10, 5))\n", "\n", "#plt.subplot(1, 2, 2)\n", "plt.title(\"Rubix Sharded\")\n", "plt.xlabel(\"Wavelength [Angstrom]\")\n", "plt.ylabel(\"Flux [erg/s/cm^2/Angstrom]\")\n", "plt.plot(wave, spectra_sharded[12,12,:])\n", "plt.plot(wave, spectra_sharded[12,15,:])\n", "plt.plot(wave, spectra_sharded[15,12,:])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot a spacial image of the data cube" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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tdzcXHh5eSEjS/uF2371piAnJ0d6TRLdHqfbiIiIdKKKUqgaTrdp2RfdHhduExEREVnAShIREZFOanrhNslhJYmIiIjIAlaSiIiIdCJEmcaVJOt2kifrMEkiIiLSiVBLIVQNkyQN+6Lbq3VJkqqquHjxIjw8PDR5OCcREVEFIQSuXr2KoKAgODhwxQndWq1Lki5evFgrHh5KRER3rrS0NDRq1Ej/C4nS8kPL/shmal2S5OHh8cf/U/44yHqy7x/3GSWiO035ptN//q0hurlalyT9OcXGJEke3z8iosqEzZZzcAsA+1brkiQiIqI7hloKqCXa9kc2w1VrRERERBawkkRERKST8uk2R037I9thJYmIiIjIAlaSiIiI9KKWAqp2lSSuSbItJklERER6YZJk1zjdRkRERGQBK0lERES6KdN4l2w+4NaWWEkiIiIisoCVJCIiIp0oaikUVbt6hMI1STbFShIRERGRBawkERER6UUtBTSsJPHuNttikkRERKQXJkl2jUlSrSX/hGpFcZKKF0L2oYxCMp6IiKjmMEkiIiLSiSJKoQgNF27z2W02xYXbRERERBawkkRERKQXVQVUDTeAVFXt+qLbYpJERESkk/J9kuTXmF7fH9kOp9uIiIiILGAliYiISC9qmcZbAPDZbbbEShIRERGRBawkERER6UUtBTRck8TNJG2LlSQiIiIiC1hJIiIi0omilkHRcE2SwjVJNsUkiYiISC9C44XbgkmSLXG6jYiIiMgCVpKIiIh0oqiqplNkCnfctilWkoiIiIgsYCWJiIhIL2qZxlsAcE2SLTFJIiIi0kn53W1aPruNSZItcbqNiIiIyAJWkoiIiPTC6Ta7xkoSERERkQWsJBEREemEa5LsGytJRERERBawkkRERKQXrkmya0ySiIiIdKKoQtNdshVVaNYX3R6n24iIiIgsYCWJiIhIL2oZoOXj1jjdZlOsJBERERFZwEoSERGRXoTGlSTBSpItMUkiIiLSiSJUKELDfZKElhkX3Q6n24iIiIgsYCWJiIhIL1y4bddYSSIiIiKygJUkIiIivaiqxjtuc02SLTFJqqUUxUm6D1fnIKn4guKLUvFCFEvFE5Ee5P5gy/5uEqJEKv6PXjTow0aYJNk1TrcRERERWcBKEhERkU4UVYWiYfFHy+fA0e2xkkRERERkAStJREREelFVjbcA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UPTt2xfu7u7o0qWLJn1z4TYREZFOuHBbfx9++CEMBgPi4uJQv359jBgxAh999BGys7Ol+2aSRERERHard+/eWLBgAc6cOYOdO3ciPDwcb731FgICAtC3b18sWrQIP//8s1V9M0kiIiLSCXfctq02bdrg+eefx+7du5GamoqRI0ciOTkZbdu2Rdu2bfHVV19Vqz+uSSIiIqI7TmBgICZOnIiJEyciPz8f3377bbUXcTNJIiIi0gnvbrOdgwcPwsnJCe3atQMAfP7551i5ciVat26NOXPm4MEHH6x2n7U2SXKu4wVFsW42sJ27u/T1T10tlopPOBwsFd/ezVEqHgCyCppIxZcoRVLxR3NKpeIBIKZRmVT8iHu3SY9h/fZeUvEP9PhBKt53+UtS8QDQ/9BbUvGJI+6Wir9WJj+zX9dRlYrfny33eS6B/Of5bk+530178y5Ij2F76XmpeB/Fup2LK1wsOS4VDwDFpTlWxwoh9zmqLq2nyDjddnOPPfYYnnvuObRr1w4///wzRo4ciQcffBDr1q3DtWvXsGjRomr3yTVJREREZPd++uknhIeHAwDWrVuHXr16Yc2aNVi1ahX++9//WtVnra0kERER2TsBBQIaTrdp2NedRggBVS2vFH733Xe4//77AZQ/0+3333+3qk9WkoiIiMjude7cGa+++io+/PBDbN++HYMHDwYApKamwt/f36o+WUkiIiLSCRdu286iRYswevRobNiwAS+++CKaNWsGAPjss89wzz33WNUnkyQiIiKdcOG2/n7++Wc0adIE7du3x9GjRyu9/sYbb8DR0bqboTjdRkRERHarffv2aNu2LV544QXs3bu30usuLi5wcnKyqm8mSURERDrhs9v09/vvvyMhIQEZGRkYOnQoAgMDMWHCBHz55ZcoLCyU6ptJEhEREdktFxcXDBkyBO+//z4uXbqE//73v6hXrx5mzJiB+vXrIyYmBitWrEBmZma1+2aSREREpBMVGj+7jVsA3JKiKLjnnnvw+uuv48SJEzh06BB69uyJVatWoVGjRli6dGm1+uPCbSIiIp3w7raa1bx5czz99NN4+umnkZWVhcuXL1crnkkSERER2b0vvvjC4nlFUeDi4oLmzZujefPm1eqTSRIREZFOVGg7RcbptpuLiYmBoigQQpidrzinKAp69OiBDRs2wMfHp0p9ck0SERER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du2KRYsW8YddTc888wyGDBmCkJAQXLx4EbNnz4ajoyNGjRpV00Or1fLy8syqGampqTh8+DB8fX3RuHFjTJ06Fa+++iqaN2+O0NBQzJw5E0FBQYiJiam5QddCt3offX19MXfuXAwbNgwBAQE4d+4cpk+fjmbNmiE6OroGR127xMXFYc2aNfj888/h4eFhWmfk5eUFV1dXeHl5ITY2FvHx8fD19YWnpycmT56MyMhIdOvWrYZHT7Y2YsQIZGZmYtasWTAajQgPD8emTZsqraGkm6jp2+uq66233hKNGzcWzs7OomvXrmL37t01PSS7MmLECBEYGCicnZ1Fw4YNxYgRI8TZs2dreli13tatWyt2cTM7xowZI4Qo3wZg5syZwt/fXxgMBtGvXz9x+vTpmh10LXSr9/HatWuif//+okGDBsLJyUmEhISICRMmCKPRWNPDrlUsvX8AxMqVK01tCgoKxJNPPil8fHxE3bp1xYMPPiguXbpUc4MmslOKEIIPgiEiIiK6gd2sSSIiIiKyJSZJRERERBYwSSIiIiKygEkSERERkQVMkoiIiIgsYJJEREREZAGTJCIiIiILmCQRERERWcAkiYiIiMgCJklEREREFjBJIiIiIrKASRIRERGRBf8PTxFXz6D0iVMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#NBVAL_SKIP\n", "import numpy as np\n", "# get the spectra of the visible wavelengths from the ifu cube\n", "sharded_visible_spectra = rubixdata[ :, :, visible_indices[0]]\n", "\n", "sharded_image = jnp.sum(sharded_visible_spectra, axis=2)\n", "img32 = np.array(sharded_image, dtype=np.float32)\n", "\n", "# Plot side by side\n", "plt.figure(figsize=(6, 5))\n", "\n", "# Sharded IFU datacube image\n", "plt.imshow(img32, origin=\"lower\", cmap=\"inferno\", vmin=0, vmax=1e5)\n", "plt.title(\"Sharded IFU Datacube\")\n", "plt.colorbar(label=\"Flux [erg/s/cm^2]\")\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## DONE!\n", "\n", "Congratulations, you have sucessfully run the RUBIX pipeline to create your own mock-observed IFU datacube! Now enjoy playing around with the RUBIX pipeline and enjoy doing amazing science with RUBIX :)" ] } ], "metadata": { "kernelspec": { "display_name": "rubix", "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.12.10" } }, "nbformat": 4, "nbformat_minor": 2 }