{ "cells": [ { "cell_type": "markdown", "id": "de250114", "metadata": {}, "source": [ "# Example Reduction" ] }, { "cell_type": "code", "execution_count": null, "id": "125d0bc6", "metadata": {}, "outputs": [], "source": [ "import os\n", "os.environ['OPENTSDB_PYTHON_METRICS_TEST_MODE'] = 'True'" ] }, { "cell_type": "code", "execution_count": null, "id": "161b33dc", "metadata": {}, "outputs": [], "source": [ "from banzai.calibrations import make_master_calibrations\n", "import requests\n", "from banzai_floyds import settings\n", "import banzai.dbs\n", "from banzai.utils.stage_utils import run_pipeline_stages\n", "import logging\n", "from banzai.logs import set_log_level\n", "from glob import glob\n", "\n", "import importlib.resources\n", "import banzai_floyds.dbs\n", "from astropy.io import ascii, fits\n", "from banzai.utils.fits_utils import download_from_s3" ] }, { "cell_type": "code", "execution_count": null, "id": "103fd876", "metadata": {}, "outputs": [], "source": [ "os.environ['DB_ADDRESS'] = 'sqlite:///test_data/test.db'\n", "\n", "settings.processed_path= os.path.join(os.getcwd(), 'test_data')\n", "settings.fpack=True\n", "settings.db_address = os.environ['DB_ADDRESS']\n", "settings.reduction_level = 91\n", "settings.ARCHIVE_API_ROOT = 'https://archive-api.lco.global/'\n", "settings.RAW_DATA_API_ROOT = 'https://archive-api.lco.global/'\n", "settings.RAW_DATA_FRAME_URL = 'https://archive-api.lco.global/frames'\n", "settings.ARCHIVE_FRAME_URL = 'https://archive-api.lco.global/frames'" ] }, { "cell_type": "code", "execution_count": null, "id": "caa18273", "metadata": {}, "outputs": [], "source": [ "# set up the context object.\n", "import banzai.main\n", "context = banzai.main.parse_args(settings, parse_system_args=False)" ] }, { "cell_type": "code", "execution_count": null, "id": "329a1e76", "metadata": {}, "outputs": [], "source": [ "os.makedirs('test_data', exist_ok=True)" ] }, { "cell_type": "code", "execution_count": null, "id": "74d0d7f8", "metadata": {}, "outputs": [], "source": [ "banzai.dbs.create_db(os.environ[\"DB_ADDRESS\"])\n", "os.system(f'banzai_add_site --site ogg --latitude 20.7069444444 --longitude -156.258055556 --elevation 3065 --timezone -10 --db-address={os.environ[\"DB_ADDRESS\"]}')\n", "os.system(f'banzai_add_site --site coj --latitude -31.272932 --longitude 149.070648 --elevation 1116 --timezone 10 --db-address={os.environ[\"DB_ADDRESS\"]}')\n", "os.system(f'banzai_add_instrument --site ogg --camera en06 --name floyds01 --instrument-type 2m0-FLOYDS-SciCam --db-address={os.environ[\"DB_ADDRESS\"]}')\n", "os.system(f'banzai_add_instrument --site coj --camera en12 --name floyds02 --instrument-type 2m0-FLOYDS-SciCam --db-address={os.environ[\"DB_ADDRESS\"]}')\n", "banzai_floyds.dbs.ingest_standards(os.environ[\"DB_ADDRESS\"])" ] }, { "cell_type": "code", "execution_count": null, "id": "3bbc2051", "metadata": {}, "outputs": [], "source": [ "skyflat_files = ascii.read(os.path.join(importlib.resources.files('banzai_floyds.tests'), 'data', 'test_skyflat.dat'))\n", "for skyflat in skyflat_files:\n", " skyflat_info = dict(skyflat)\n", " context = banzai.main.parse_args(settings, parse_system_args=False)\n", " skyflat_hdu = fits.open(download_from_s3(skyflat_info, context))\n", "\n", " # Munge the data to be OBSTYPE SKYFLAT\n", " skyflat_hdu['SCI'].header['OBSTYPE'] = 'SKYFLAT'\n", " skyflat_name = skyflat_info[\"filename\"].replace(\"x00.fits\", \"f00.fits\")\n", " filename = os.path.join('test_data', f'{skyflat_name}')\n", " skyflat_hdu.writeto(filename, overwrite=True)\n", " skyflat_hdu.close()\n", " run_pipeline_stages([{'path': filename}], context)" ] }, { "cell_type": "code", "execution_count": null, "id": "404eae88-c53b-48f6-ae9c-4720bd7cbc38", "metadata": {}, "outputs": [], "source": [ "DATA_FILELIST = os.path.join(importlib.resources.files('banzai_floyds.tests'), 'data', 'test_data.dat')\n", "test_data = ascii.read(DATA_FILELIST)" ] }, { "cell_type": "code", "execution_count": null, "id": "6013453f-2085-4f47-bf60-d1b53cd75e5c", "metadata": {}, "outputs": [], "source": [ "for row in test_data:\n", " if 'a00.fits' in row['filename']:\n", " archive_record = requests.get(f'{context.ARCHIVE_FRAME_URL}/{row[\"frameid\"]}').json()\n", " archive_record['frameid'] = archive_record['id']\n", " run_pipeline_stages([archive_record], context)" ] }, { "cell_type": "code", "execution_count": null, "id": "683f69eb", "metadata": {}, "outputs": [], "source": [ "for row in test_data:\n", " if 'w00.fits' in row['filename']:\n", " archive_record = requests.get(f'{context.ARCHIVE_FRAME_URL}/{row[\"frameid\"]}').json()\n", " archive_record['frameid'] = archive_record['id']\n", " run_pipeline_stages([archive_record], context)" ] }, { "cell_type": "code", "execution_count": null, "id": "93283289", "metadata": {}, "outputs": [], "source": [ "coj_floyds = banzai.dbs.get_instruments_at_site('coj', settings.db_address)[0]\n", "ogg_floyds = banzai.dbs.get_instruments_at_site('ogg', settings.db_address)[0]\n", "make_master_calibrations(ogg_floyds, 'LAMPFLAT', '2020-01-01', '2021-01-01', context)\n", "make_master_calibrations(coj_floyds, 'LAMPFLAT', '2020-01-01', '2021-01-01', context)" ] }, { "cell_type": "code", "execution_count": null, "id": "dd129631", "metadata": {}, "outputs": [], "source": [ "for row in test_data:\n", " if 'e00.fits' in row['filename'] and ('BD+284211' in row['object'] or 'FEIGE110' in row['OBJECT']):\n", " archive_record = requests.get(f'{context.ARCHIVE_FRAME_URL}/{row[\"frameid\"]}').json()\n", " archive_record['frameid'] = archive_record['id']\n", " run_pipeline_stages([archive_record], context)" ] }, { "cell_type": "code", "execution_count": null, "id": "22ef8929-e60c-466d-9763-f0d6f77e5504", "metadata": {}, "outputs": [], "source": [ "for row in test_data:\n", " if 'e00.fits' in row['filename'] and not ('BD+284211' in row['object'] or 'FEIGE110' in row['OBJECT']):\n", " archive_record = requests.get(f'{context.ARCHIVE_FRAME_URL}/{row[\"frameid\"]}').json()\n", " archive_record['frameid'] = archive_record['id']\n", " run_pipeline_stages([archive_record], context)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.13" } }, "nbformat": 4, "nbformat_minor": 5 }