{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving a new SN object to the CAAT database" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Introduction\n", "\n", "This notebook will demonstate how to instantiate a new `SN` object which does not already exist in the `CAAT` file, save its information to the `CAAT` file, and save its data for easy initialization later." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setup\n", "\n", "First, let's create a dictionary containing fake data of a transient, as well as a dictionary of data in a few bands: " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Configuration file not found:\n", "\n", " /Users/craigpellegrino/.dustmapsrc\n", "\n", "To create a new configuration file in the default location, run the following python code:\n", "\n", " from dustmaps.config import config\n", " config.reset()\n", "\n", "Note that this will delete your configuration! For example, if you have specified a data directory, then dustmaps will forget about its location.\n" ] } ], "source": [ "from caat import SN\n", "\n", "info = {\n", " \"ra\": 123.456,\n", " \"dec\": -43.21,\n", " \"z\": 0.015,\n", "}\n", "\n", "data = {\n", " \"B\": [\n", " {\n", " \"mjd\": 60500.0,\n", " \"mag\": 18.0,\n", " \"err\": 0.1,\n", " },\n", " {\n", " \"mjd\": 60505.0,\n", " \"mag\": 17.5,\n", " \"err\": 0.09,\n", " },\n", " {\n", " \"mjd\": 60506.0,\n", " \"mag\": 17.6,\n", " \"err\": 0.11,\n", " },\n", " {\n", " \"mjd\": 60510.0,\n", " \"mag\": 18.2,\n", " \"err\": 0.09,\n", " },\n", " ],\n", " \"g\": [\n", " {\n", " \"mjd\": 60500.0,\n", " \"mag\": 17.9,\n", " \"err\": 0.1,\n", " },\n", " {\n", " \"mjd\": 60505.0,\n", " \"mag\": 17.3,\n", " \"err\": 0.09,\n", " },\n", " {\n", " \"mjd\": 60506.0,\n", " \"mag\": 17.4,\n", " \"err\": 0.11,\n", " },\n", " {\n", " \"mjd\": 60510.0,\n", " \"mag\": 18.1,\n", " \"err\": 0.09,\n", " },\n", " ],\n", " \"i\": [\n", " {\n", " \"mjd\": 60500.0,\n", " \"mag\": 18.2,\n", " \"err\": 0.1,\n", " },\n", " {\n", " \"mjd\": 60505.0,\n", " \"mag\": 17.8,\n", " \"err\": 0.09,\n", " },\n", " {\n", " \"mjd\": 60506.0,\n", " \"mag\": 18.0,\n", " \"err\": 0.11,\n", " },\n", " {\n", " \"mjd\": 60510.0,\n", " \"mag\": 18.4,\n", " \"err\": 0.09,\n", " },\n", " ]\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Initializing a new SN object\n", "\n", "In other examples, `SN` objects are initialized by name. Under the hood, the code searches the `CAAT` database .csv file for a reference to a transient by that name. If one exists, it will load its metadata from the `CAAT` file and attempt to load any data saved as .json files.\n", "\n", "However, let's suppose a user wants to create a new `SN` object with some data they have saved in memory. In this case, a `SN` object can be instantiated by passing in the data to the class constructor, as well as some other pieces of information, including the SN type and subtype as well as a dictionary of other metadata, including RA, Declination, and redshift:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "new_sn = SN(\n", " name=\"SN2026test\",\n", " data=data,\n", " type=\"SNII\",\n", " subtype=\"SNII\",\n", " info=info,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualize the data to make sure that it is saved as part of `new_sn`:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSy0lEQVR4nO3de1wU5f4H8M+wyEVEvCQCgoCRGkKoaCqFSpJ5F4nql6aUerTC1LTLwd/xVKZgKoYZ5fGWdlOTViI1T2YSq9LxisqRvKICgR6Pyk3lsvv8/kD2x8pFVnbYZffzfr3m1c7MM89850lnvs4884wkhBAgIiIisiBWxg6AiIiIqKkxASIiIiKLwwSIiIiILA4TICIiIrI4TICIiIjI4jABIiIiIovDBIiIiIgsDhMgIiIisjhMgIiIiMjiMAEiIiIii8MEiIge2MmTJxEREQFPT0/Y2dmhU6dOePrpp7Fy5UptGS8vL0iShDfeeKPG9ikpKZAkCYmJidplhw4dwowZM9CjRw84ODigc+fOeP7553HmzJlaY8jMzMSwYcPQqlUrtGvXDhMnTsR//vMfnTJ//PEH3nnnHfTs2ROOjo5wdXXFyJEjcfjw4TqPbcuWLRgwYAAcHBzQpk0bBAUF4ddff9Wu//PPP/H+++8jPT29oc31QL799lvEx8fLug8iS8QEiIgeyIEDB9CnTx8cP34cf/nLX/Dpp59i6tSpsLKywooVK2qUX7NmDf7888/71vvRRx/h+++/x5AhQ7BixQpMmzYNqamp6N27NzIyMnTK5uTkYODAgTh37hxiYmLw1ltvYceOHXj66adRVlamLbd27VqsWbMGffr0QVxcHObMmYPTp0+jf//++OWXX2rE8P777+PFF1+Eh4cHli9fjoULF+Kxxx5Dbm6utsyff/6JDz74gAkQUXMliIgewIgRI0SHDh3EjRs3aqy7cuWK9renp6fo0aOHsLa2Fm+88YZOub179woAYuvWrdpl+/fvF6WlpTrlzpw5I2xtbcWECRN0lr/22mvC3t5eXLp0Sbts9+7dAoD4xz/+oV12+PBhUVRUpLPttWvXRIcOHcQTTzyhszwtLU1IkiSWL19e7/EfOnRIABBffPFFveUaa+TIkcLT01PWfRBZIt4BIqIHcv78efTo0QNt2rSpsc7Z2Vln3svLC5MmTWrQXaCgoCDY2NjoLHvkkUfQo0cPZGZm6iz//vvvMWrUKHTu3Fm7LDQ0FF27dsV3332nXRYYGIhWrVrpbNu+fXsEBwfXqDM+Ph4uLi6YNWsWhBAoLi6uEWNKSgr69u0LAHjllVcgSRIkScKGDRu0Zf71r39h2LBhcHJyQsuWLTFo0CDs379fp56ioiLMnj0bXl5esLW1hbOzM55++mkcPXoUADB48GDs2LEDly5d0u7Dy8ur3vYjooZhAkRED8TT0xNHjhyp8ViqLv/7v/+LiooKLF68WO99CSFw5coVPPTQQ9plubm5uHr1Kvr06VOj/OOPP45jx47dt978/HydOgFgz5496Nu3Lz755BN06NBB22fo008/1ZZ59NFHsWDBAgDAtGnT8NVXX+Grr77CwIEDAQC//vorBg4ciMLCQrz33nuIiYnBzZs38dRTT+HgwYPael599VV8/vnnePbZZ/HZZ5/hrbfegr29vTYp+9///V/07NkTDz30kHYffBxGZCDGvgVFRM3Tzz//LBQKhVAoFGLAgAHinXfeEf/85z9FWVmZTjlPT08xcuRIIYQQr7zyirCzsxN//vmnEKL2R2C1+eqrrwQAsW7dOu2yqkdQX375ZY3yb7/9tgAg7ty5U2edqampQpIkMX/+fO2y69evCwCiffv2olWrVmLp0qViy5YtYtiwYQKAWLVqVY393/sITKPRiEceeUQ888wzQqPRaJffunVLeHt7i6efflq7zMnJSURFRdV77HwERiQP3gEiogfy9NNPIy0tDWPGjMHx48exZMkSPPPMM+jUqROSk5Nr3eZvf/ub3neB/vjjD0RFRWHAgAGIjIzULr99+zYAwNbWtsY2dnZ2OmXudfXqVYwfPx7e3t545513tMurHnf997//xdq1a/HWW2/h+eefx44dO+Dr64uFCxfeN9709HScPXsW48ePx3//+19cu3YN165dQ0lJCYYMGYLU1FRoNBoAQJs2bfCvf/2rQZ3DiciwmAAR0QPr27cvlEolbty4gYMHDyI6OhpFRUWIiIjAqVOnapTv0qULJk6ciNWrVyMvL+++9efn52PkyJFwcnJCYmIiFAqFdp29vT0AoLS0tMZ2d+7c0SlTXUlJCUaNGoWioiL88MMPOn2Dqsq3aNECERER2uVWVlZ44YUXkJOTg8uXL9cb89mzZwEAkZGR6NChg860du1alJaWoqCg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xd33DTEiIiIiU6B3ArR371454iAiIiJqMnr3AXrqqadw8+bNGssLCwv5GjwRERE1C3onQCkpKSgrK6ux/M6dO1CpVAYJioiIiEhODX4EduLECe3vU6dOIT8/XzuvVquxa9cudOrUybDREREREcmgwQlQz549IUkSJEmq9VGXvb09Vq5cadDgiIiIiOTQ4AQoKysLQgh06dIFBw8eRIcOHbTrbGxs4OzsDIVCIUuQRERERIbU4ATI09MTQOVnL8wVvwZPRERkGRr0Nfjk5GQMHz4cLVq0QHJycr1lx4wZY7DgjIVfgyciU8GvwRM1nD7X7wYlQFZWVsjPz4ezszOsrOp+cUySJLO4e8IEiMhMMZsgMmv6XL8b9Ais+mMvc34ERkRERJbBYB9DJSIiImou9P4UBgDs2bMHe/bswdWrV2vcEVq/fr1BAiMiIiKSi94J0AcffIAFCxagT58+cHV1hSRJcsRFREREJBu9E6BVq1Zhw4YNmDhxohzxEBEREclO7z5AZWVlCAoKkiMWIiIioiahdwI0depUfPvtt3LEQkRERNQk9H4EdufOHaxevRq//PILHnvsMbRo0UJn/fLlyw0WHBEREZEc9E6ATpw4gZ49ewIAMjIydNaxQzQRERE1B3onQHv37pUjDiIiIqImw4EQq0lISICvry/69u1r7FCIiIhIRg36Flh148aNq/VRlyRJsLOzg4+PD8aPH49u3boZLMimxm+BEZkpfguMyKzpc/3W+w6Qk5MTfv31Vxw9ehSSJEGSJBw7dgy//vorKioqsGXLFgQEBGD//v0PfABEREREctK7D5CLiwvGjx+PTz/9VPtleI1Gg1mzZsHR0RGbN2/Gq6++infffRf79u0zeMBEREREjaX3I7AOHTpg//796Nq1q87yM2fOICgoCNeuXcPJkycRHByMmzdvGjLWJsNHYERmio/AiMyarI/AKioq8Mcff9RY/scff0CtVgMA7Ozs+Eo8ERERmSy9H4FNnDgRU6ZMwbx587RvSx06dAgxMTGYNGkSAOC3335Djx49DBspERERkYHonQB9/PHH6NixI5YsWYIrV64AADp27Ig333wT7777LgBg6NChGDZsmGEjJSIiIjIQvfsAVVdYWAgAZtdPhn2AiMyTurAQKicn5AFw3bkTwUOHQqFQGDssIjIQWfsAVde6detGJQipqakY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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "new_sn.plot_data()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Saving the new SN info\n", "\n", "A user likely doesn't want to keep passing in the data and info to the class constructor each time they want to initialize this particular object. To simplify this, the codebase has routines to save the passed-in data as well as any metadata that is provided or calculated. For example, using the `SN.fit_for_max()` method calculates and stores the light curve peak info, which can then be saved to the `CAAT` database file for easy re-initialization later on. Let's walk through that.\n", "\n", "First, fit for the light curve peak. Let's check the plot to make sure it's acceptable, then double check that the parameters are added to the `new_sn.info` attribute:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "new_sn.fit_for_max(filt=\"g\", plot=True)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'ra': 123.456, 'dec': -43.21, 'z': 0.015, 'peak_mjd': 60505.02717171717, 'peak_mag': 17.265359586129193, 'peak_filt': 'g', 'searched': True}\n" ] } ], "source": [ "# Double check that the light curve peak parameters have been stored after fitting:\n", "\n", "print(new_sn.info)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, to make sure that these parameters are saved and accessed each time this `SN` is instantiated in the future, we have to write its information to the `CAAT` database file. \n", "\n", "In this case, this transient is not part of the file already. To add it, we'll use the `SN.write_info_to_caat_file()` method. This will check for the existence of the `SN` by name, and if it does not exist, it will write all the info from `SN.info` to the `CAAT` file in the appropriate order. \n", "\n", "As part of this example, we'll do a dry run and not actually save the data, to avoid polluting the `CAAT` file. To actually overwrite the existing `CAAT` file and save the data in production scenarios, pass `force=True` to the method:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:caat.CAAT:WARNING: CAAT file with this name already exists. To overwrite, use force=True\n" ] } ], "source": [ "new_sn.write_info_to_caat_file()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. Saving the new SN data\n", "\n", "`SN` also has a method to write the passed-in data to a .json file in the appropriate directory, so that it can be loaded and used in future fits. To do so, use the `SN.write_json_data()` method. Note that this method will create new directories to store the `SN` data, if necessary, and will overwrite any existing data files for that object, if they exist. For this example we don't want to actually save anything, so we can specify `dry_run=True`, which will log what the method would do if run \"for real.\"" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:caat.SN:SN directory does not exist. This will make one if `dry_run=False`.\n", "INFO:caat.SN:This will save the data as a new file, or overwrite an existing one. To do so, specify `dry_run=False`.\n" ] } ], "source": [ "new_sn.write_json_data(dry_run=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To use this new `SN` object in future fitting routines, we also need to construct and save its warped datacube. Here we won't save the results, but to do so specify `save=True`:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from caat import DataCube\n", "\n", "cube = DataCube(sn=new_sn)\n", "cube.measure_flux_in_filter(save=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. Conclusions\n", "\n", "Now that the `SN` info and data have been saved in the appropriate places, they can be reloaded and instantiated in the future. This example `SN` is now a full-fledged member of the transient dataset. This allows for dynamic changes to this data repository, enabling new fits of future transients!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "nasa-adap", "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.11" } }, "nbformat": 4, "nbformat_minor": 2 }