From aa74ad3382df3718803767685f37cb7640fef6de Mon Sep 17 00:00:00 2001 From: jrob93 Date: Thu, 29 Feb 2024 11:21:39 +0000 Subject: [PATCH 1/9] initial phase curve functions --- src/adler/science/PhaseCurve.py | 122 ++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 src/adler/science/PhaseCurve.py diff --git a/src/adler/science/PhaseCurve.py b/src/adler/science/PhaseCurve.py new file mode 100644 index 0000000..e0d6de6 --- /dev/null +++ b/src/adler/science/PhaseCurve.py @@ -0,0 +1,122 @@ +class PhaseCurve: + """ + Class to define the phasecurve model and associated functions + + Units - by default no units are set but astropy units can be passed. + It is up to the user to ensure that units are correct for the relevant phasecurve model + """ + + def __init__(self, abs_mag=18, phase_param=0.2, phase_param2=None, model_name="HG"): + """ + abs_mag - absolute magnitude, H, of the phasecurve model (often units of mag) + phase_param - the first phase parameter of the phasecurve model, e.g. G from HG + (often dimensionless units unless S from LinearPhaseFunc, which has units mag/deg or mag/rad) + phase_param2 - the second phase parameter, only used for the 3 parameter HG1G2 phasecurve model + model_name - the phasecurve model to be used + + """ + + self.abs_mag = abs_mag + self.phase_param = phase_param + self.phase_param2 = phase_param2 # second phase parameter, G2, when required for the HG1G2 model + self.model_name = model_name # ["HG", "HG1G2", "HG12", "HG12_Pen16", "LinearPhaseFunc"] + + if model_name == "HG": + self.model_function = HG(H=abs_mag, G=self.phase_param) + elif model_name == "HG1G2": + self.model_function = HG1G2(H=abs_mag, G1=self.phase_param, G2=self.phase_param) + elif model_name == "HG12": + self.model_function = HG12(H=abs_mag, G12=self.phase_param) + elif model_name == "HG12_Pen16": + self.model_function = HG12_Pen16(H=abs_mag, G12=self.phase_param) + elif model_name == "LinearPhaseFunc": + self.model_function = LinearPhaseFunc(H=abs_mag, S=self.phase_param) + else: + print("no model selected") + + # print(self.model_function.parameters) + + def ReturnModelDict(self): + """ + Return the values for the PhaseCurve class as a dict + """ + + return self.__dict__ + + def InitModelDict(self, model_dict): + """ + Set up a new PhaseCurve model object from a dictionary + + model_dict - dictionary containing relevant PhaseCurve parameters + """ + + model = PhaseCurve() + for key, value in model_dict.items(): + setattr(model, key, value) + return model + + def InitModelSbpy(self, model_sbpy): + """ + Set up a new PhaseCurve model object from an existing sbpy model + ### or create dict from sbpy model and then use InitModelDict? + + model_sbpy + """ + + # get model name from the sbpy model object + model_name = model_sbpy.__class__.name + + # get the sbpy model parameters + param_names = model_sbpy.param_names + parameters = [] + for p in param_names: + # try get the quantity (value with units) + x = getattr(model_sbpy, p).quantity + # if there are no units get just the value + if x is None: + x = getattr(model_sbpy, p).value + parameters.append(x) + print(param_names, parameters) + + # create a PhaseCurve object with the extracted parameters + model = PhaseCurve(*parameters, model_name=model_name) + + return model + + def ReducedMag(self, phase_angle): + """ + Return the reduced magnitude of the phasecurve model for a given phase angle(s) + + phase_angle - value or array, must have astropy units of degrees + """ + + ### add check to require phase angle units of deg + # return self.model_function.evaluate(phase_angle,*self.model_function.parameters) + return self.model_function(phase_angle) + + def FitModel(self, phase_angle, reduced_mag, mag_err=None, fitter=None): + """ + Fit the phasecurve model parameters to observations + starts with a phase curve model as an initial guess for parameters + fits model to phase angle and reduced magnitude + + phase_angle - phase angle of each observations + reduced_mag - distance corrected reduced magnitudes + mag_err - photometric uncertainties to weight the measurements + fitter - can pass a fitting function from astropy.modeling.fitting, defaults to astropy.modeling.fitting.LevMarLSQFitter + """ + + # use the LevMarLSQFitter by default + if fitter is None: + fitter = LevMarLSQFitter() + print(fitter) + + if mag_err is not None: # fit weighted by photometric uncertainty + model_fit = fitter(self.model_function, phase_angle, reduced_mag, weights=1.0 / mag_err) + else: # unweighted fit + model_fit = fitter(self.model_function, phase_angle, reduced_mag) + + ### if overwrite_model: + # redo __init__ with the new fitted parameters + + return model_fit From 8276fff9c78fcc69fb95fc711a35fbbc31fb3e0a Mon Sep 17 00:00:00 2001 From: jrob93 Date: Thu, 29 Feb 2024 13:55:19 +0000 Subject: [PATCH 2/9] call an adler phase curve --- notebooks/adler_examples.ipynb | 286 ++++++++++++++++++++++++++++++++ src/adler/adler.py | 5 + src/adler/science/PhaseCurve.py | 5 + 3 files changed, 296 insertions(+) create mode 100644 notebooks/adler_examples.ipynb diff --git a/notebooks/adler_examples.ipynb b/notebooks/adler_examples.ipynb new file mode 100644 index 0000000..ca677f8 --- /dev/null +++ b/notebooks/adler_examples.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "d591f5d8-9148-46ff-a62b-0f2a29eb806c", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:39.474924Z", + "iopub.status.busy": "2024-02-29T13:14:39.474411Z", + "iopub.status.idle": "2024-02-29T13:14:40.937484Z", + "shell.execute_reply": "2024-02-29T13:14:40.936715Z", + "shell.execute_reply.started": "2024-02-29T13:14:39.474897Z" + } + }, + "outputs": [], + "source": [ + "from adler.dataclasses.AdlerPlanetoid import AdlerPlanetoid\n", + "from adler.science.PhaseCurve import PhaseCurve\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.gridspec as gridspec\n", + "import astropy.units as u\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "645efb98-567d-481e-a79c-b1cfdc828726", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:40.939104Z", + "iopub.status.busy": "2024-02-29T13:14:40.938517Z", + "iopub.status.idle": "2024-02-29T13:14:40.942711Z", + "shell.execute_reply": "2024-02-29T13:14:40.942008Z", + "shell.execute_reply.started": "2024-02-29T13:14:40.939075Z" + } + }, + "outputs": [], + "source": [ + "# ssObjectId of object to analyse\n", + "ssoid = \"8268570668335894776\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10b36aab-b322-49b8-8ff3-49bef68d7416", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:40.943908Z", + "iopub.status.busy": "2024-02-29T13:14:40.943672Z", + "iopub.status.idle": "2024-02-29T13:14:42.102328Z", + "shell.execute_reply": "2024-02-29T13:14:42.101569Z", + "shell.execute_reply.started": "2024-02-29T13:14:40.943886Z" + } + }, + "outputs": [], + "source": [ + "# retrieve the object data via adler\n", + "planetoid = AdlerPlanetoid(ssoid)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d9a0623d-0dc7-49c1-99dd-a76ef970a3ff", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:42.103570Z", + "iopub.status.busy": "2024-02-29T13:14:42.103319Z", + "iopub.status.idle": "2024-02-29T13:14:42.116418Z", + "shell.execute_reply": "2024-02-29T13:14:42.115723Z", + "shell.execute_reply.started": "2024-02-29T13:14:42.103547Z" + } + }, + "outputs": [], + "source": [ + "# inspect the object\n", + "# dir(planetoid.Observations)\n", + "planetoid.Observations.__dict__" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b226fefa-a252-40d2-925e-549eee16858e", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:42.118915Z", + "iopub.status.busy": "2024-02-29T13:14:42.118650Z", + "iopub.status.idle": "2024-02-29T13:14:42.135245Z", + "shell.execute_reply": "2024-02-29T13:14:42.134491Z", + "shell.execute_reply.started": "2024-02-29T13:14:42.118892Z" + } + }, + "outputs": [], + "source": [ + "getattr(planetoid.Observations,\"phaseAngle\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d7dc125-06c1-49ad-8854-17d8c8b6954f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:42.136687Z", + "iopub.status.busy": "2024-02-29T13:14:42.136408Z", + "iopub.status.idle": "2024-02-29T13:14:42.327499Z", + "shell.execute_reply": "2024-02-29T13:14:42.326677Z", + "shell.execute_reply.started": "2024-02-29T13:14:42.136663Z" + } + }, + "outputs": [], + "source": [ + "# plot the observations\n", + "x_plot = \"phaseAngle\"\n", + "y_plot = \"reduced_mag\"\n", + "\n", + "x = getattr(planetoid.Observations, x_plot)\n", + "y = getattr(planetoid.Observations,y_plot)\n", + "xerr = planetoid.Observations.magErr\n", + "\n", + "fig = plt.figure()\n", + "gs = gridspec.GridSpec(1, 1)\n", + "ax1 = plt.subplot(gs[0,0])\n", + "\n", + "ax1.errorbar(x,y,xerr, fmt = \"o\")\n", + "\n", + "ax1.invert_yaxis()\n", + "ax1.set_xlabel(x_plot)\n", + "ax1.set_ylabel(y_plot)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6efe3b5a-09dd-4d5e-9f41-20ea6e1b43df", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:42.329124Z", + "iopub.status.busy": "2024-02-29T13:14:42.328845Z", + "iopub.status.idle": "2024-02-29T13:14:42.335238Z", + "shell.execute_reply": "2024-02-29T13:14:42.334503Z", + "shell.execute_reply.started": "2024-02-29T13:14:42.329100Z" + } + }, + "outputs": [], + "source": [ + "# define the phase curve\n", + "pc = PhaseCurve(abs_mag = planetoid.SSObject.r_H * u.mag,\n", + " phase_param = planetoid.SSObject.r_G12,\n", + " model_name = \"HG12_Pen16\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "80f552f1-8907-4cc9-b57c-2e667eab459c", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:42.336659Z", + "iopub.status.busy": "2024-02-29T13:14:42.336270Z", + "iopub.status.idle": "2024-02-29T13:14:42.354637Z", + "shell.execute_reply": "2024-02-29T13:14:42.353753Z", + "shell.execute_reply.started": "2024-02-29T13:14:42.336622Z" + } + }, + "outputs": [], + "source": [ + "pc.model_function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24c1955e-95cd-4d77-ad05-aa5b8d18620a", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:42.355955Z", + "iopub.status.busy": "2024-02-29T13:14:42.355681Z", + "iopub.status.idle": "2024-02-29T13:14:42.375422Z", + "shell.execute_reply": "2024-02-29T13:14:42.374603Z", + "shell.execute_reply.started": "2024-02-29T13:14:42.355929Z" + } + }, + "outputs": [], + "source": [ + "alpha = np.linspace(0,np.amax(planetoid.Observations.phaseAngle)) * u.deg\n", + "alpha" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3f30fe0-0d89-4ffa-8237-9c71181d44ee", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:42.376715Z", + "iopub.status.busy": "2024-02-29T13:14:42.376441Z", + "iopub.status.idle": "2024-02-29T13:14:42.395497Z", + "shell.execute_reply": "2024-02-29T13:14:42.394647Z", + "shell.execute_reply.started": "2024-02-29T13:14:42.376691Z" + } + }, + "outputs": [], + "source": [ + "red_mag = pc.ReducedMag(alpha)\n", + "red_mag" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04be98a1-e4dc-4216-bcd9-ef777f6053fb", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T13:14:42.397129Z", + "iopub.status.busy": "2024-02-29T13:14:42.396580Z", + "iopub.status.idle": "2024-02-29T13:14:42.615666Z", + "shell.execute_reply": "2024-02-29T13:14:42.615009Z", + "shell.execute_reply.started": "2024-02-29T13:14:42.397102Z" + } + }, + "outputs": [], + "source": [ + "%matplotlib widget\n", + "\n", + "# plot the observations with the LSST phase curve\n", + "x_plot = \"phaseAngle\"\n", + "y_plot = \"reduced_mag\"\n", + "\n", + "x = getattr(planetoid.Observations, x_plot)\n", + "y = getattr(planetoid.Observations,y_plot)\n", + "xerr = planetoid.Observations.magErr\n", + "\n", + "fig = plt.figure()\n", + "gs = gridspec.GridSpec(1, 1)\n", + "ax1 = plt.subplot(gs[0,0])\n", + "\n", + "ax1.errorbar(x,y,xerr, fmt = \"o\")\n", + "\n", + "ax1.plot(alpha.value,red_mag.value)\n", + "\n", + "ax1.invert_yaxis()\n", + "ax1.set_xlabel(x_plot)\n", + "ax1.set_ylabel(y_plot)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9815543d-6140-4bdb-8bad-8296994723f4", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "adler-dev", + "language": "python", + "name": "adler-dev" + }, + "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 +} diff --git a/src/adler/adler.py b/src/adler/adler.py index 2d390a1..a5cd707 100644 --- a/src/adler/adler.py +++ b/src/adler/adler.py @@ -1,6 +1,7 @@ import argparse from adler.dataclasses.AdlerPlanetoid import AdlerPlanetoid +from adler.science.PhaseCurve import PhaseCurve def runAdler(args): @@ -8,6 +9,10 @@ def runAdler(args): planetoid.do_pretend_science() + # now let's do some phase curves! + pc = PhaseCurve(abs_mag=planetoid.SSObject.r_H, phase_param=0.2, model_name="HG") + print(pc) + def main(): parser = argparse.ArgumentParser(description="Runs Adler for a select planetoid and given user input.") diff --git a/src/adler/science/PhaseCurve.py b/src/adler/science/PhaseCurve.py index e0d6de6..e9f356c 100644 --- a/src/adler/science/PhaseCurve.py +++ b/src/adler/science/PhaseCurve.py @@ -1,3 +1,8 @@ +from sbpy.photometry import HG, HG1G2, HG12, HG12_Pen16, LinearPhaseFunc +import astropy.units as u +from astropy.modeling.fitting import LevMarLSQFitter + + class PhaseCurve: """ Class to define the phasecurve model and associated functions From 951aee9739951a34ba170388194663089a5d878f Mon Sep 17 00:00:00 2001 From: jrob93 Date: Thu, 29 Feb 2024 14:01:01 +0000 Subject: [PATCH 3/9] update nb --- notebooks/adler_examples.ipynb | 376 ++++++++++++++++++++++++++------- 1 file changed, 299 insertions(+), 77 deletions(-) diff --git a/notebooks/adler_examples.ipynb b/notebooks/adler_examples.ipynb index ca677f8..e46dc20 100644 --- a/notebooks/adler_examples.ipynb +++ b/notebooks/adler_examples.ipynb @@ -2,15 +2,15 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "d591f5d8-9148-46ff-a62b-0f2a29eb806c", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:39.474924Z", - "iopub.status.busy": "2024-02-29T13:14:39.474411Z", - "iopub.status.idle": "2024-02-29T13:14:40.937484Z", - "shell.execute_reply": "2024-02-29T13:14:40.936715Z", - "shell.execute_reply.started": "2024-02-29T13:14:39.474897Z" + "iopub.execute_input": "2024-02-29T13:58:00.064543Z", + "iopub.status.busy": "2024-02-29T13:58:00.064107Z", + "iopub.status.idle": "2024-02-29T13:58:01.636895Z", + "shell.execute_reply": "2024-02-29T13:58:01.635972Z", + "shell.execute_reply.started": "2024-02-29T13:58:00.064516Z" } }, "outputs": [], @@ -26,15 +26,15 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "645efb98-567d-481e-a79c-b1cfdc828726", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:40.939104Z", - "iopub.status.busy": "2024-02-29T13:14:40.938517Z", - "iopub.status.idle": "2024-02-29T13:14:40.942711Z", - "shell.execute_reply": "2024-02-29T13:14:40.942008Z", - "shell.execute_reply.started": "2024-02-29T13:14:40.939075Z" + "iopub.execute_input": "2024-02-29T13:58:01.638850Z", + "iopub.status.busy": "2024-02-29T13:58:01.637982Z", + "iopub.status.idle": "2024-02-29T13:58:01.642608Z", + "shell.execute_reply": "2024-02-29T13:58:01.641792Z", + "shell.execute_reply.started": "2024-02-29T13:58:01.638819Z" } }, "outputs": [], @@ -45,18 +45,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "10b36aab-b322-49b8-8ff3-49bef68d7416", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:40.943908Z", - "iopub.status.busy": "2024-02-29T13:14:40.943672Z", - "iopub.status.idle": "2024-02-29T13:14:42.102328Z", - "shell.execute_reply": "2024-02-29T13:14:42.101569Z", - "shell.execute_reply.started": "2024-02-29T13:14:40.943886Z" + "iopub.execute_input": "2024-02-29T13:58:01.643793Z", + "iopub.status.busy": "2024-02-29T13:58:01.643545Z", + "iopub.status.idle": "2024-02-29T13:58:02.777149Z", + "shell.execute_reply": "2024-02-29T13:58:02.776163Z", + "shell.execute_reply.started": "2024-02-29T13:58:01.643771Z" } }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jrob/adler/src/adler/dataclasses/DataSchema.py:34: UserWarning: Warning: converting a masked element to nan.\n", + " return float(self.data_table[column_name][0])\n" + ] + } + ], "source": [ "# retrieve the object data via adler\n", "planetoid = AdlerPlanetoid(ssoid)" @@ -64,18 +73,122 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "d9a0623d-0dc7-49c1-99dd-a76ef970a3ff", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:42.103570Z", - "iopub.status.busy": "2024-02-29T13:14:42.103319Z", - "iopub.status.idle": "2024-02-29T13:14:42.116418Z", - "shell.execute_reply": "2024-02-29T13:14:42.115723Z", - "shell.execute_reply.started": "2024-02-29T13:14:42.103547Z" - } + "iopub.execute_input": "2024-02-29T13:58:02.778637Z", + "iopub.status.busy": "2024-02-29T13:58:02.778367Z", + "iopub.status.idle": "2024-02-29T13:58:02.794141Z", + "shell.execute_reply": "2024-02-29T13:58:02.793251Z", + "shell.execute_reply.started": "2024-02-29T13:58:02.778613Z" + }, + "scrolled": true }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'ssObjectId': '8268570668335894776',\n", + " 'sql_query': \"\\n SELECT\\n ssObject.ssObjectId, mag, magErr, band, midpointMjdTai as mjd, ra, dec, phaseAngle,\\n topocentricDist, heliocentricDist\\n FROM\\n dp03_catalogs_10yr.ssObject\\n JOIN dp03_catalogs_10yr.diaSource ON dp03_catalogs_10yr.ssObject.ssObjectId = dp03_catalogs_10yr.diaSource.ssObjectId\\n JOIN dp03_catalogs_10yr.ssSource ON dp03_catalogs_10yr.diaSource.diaSourceId = dp03_catalogs_10yr.ssSource.diaSourceId\\n WHERE\\n ssObject.ssObjectId = 8268570668335894776 and band='r'\\n \",\n", + " 'service': ,\n", + " 'data_table': \n", + " ssObjectId mag magErr ... topocentricDist heliocentricDist\n", + " ... AU AU \n", + " int64 float32 float32 ... float32 float32 \n", + " ------------------- ------- ------- ... --------------- ----------------\n", + " 8268570668335894776 23.522 0.163 ... 1.4200809 2.2182078\n", + " 8268570668335894776 23.933 0.351 ... 1.673502 1.8633804\n", + " 8268570668335894776 23.742 0.2 ... 1.8374033 1.9377198\n", + " 8268570668335894776 22.44 0.046 ... 1.0358349 1.7923788\n", + " 8268570668335894776 22.179 0.042 ... 0.8584717 1.5282809\n", + " 8268570668335894776 22.39 0.1 ... 0.9861143 1.6029718\n", + " 8268570668335894776 23.568 0.172 ... 1.5848765 1.9770172\n", + " 8268570668335894776 22.924 0.116 ... 1.2739334 1.6663356\n", + " 8268570668335894776 22.262 0.051 ... 0.99954176 1.7732488\n", + " ... ... ... ... ... ...\n", + " 8268570668335894776 22.248 0.046 ... 0.93472457 1.6602533\n", + " 8268570668335894776 22.445 0.098 ... 0.986064 1.6029434\n", + " 8268570668335894776 21.986 0.049 ... 0.6861022 1.2940885\n", + " 8268570668335894776 22.249 0.036 ... 0.96172243 1.7529303\n", + " 8268570668335894776 22.698 0.063 ... 1.0843298 1.7405357\n", + " 8268570668335894776 23.702 0.248 ... 1.5928001 2.5560288\n", + " 8268570668335894776 22.229 0.264 ... 0.20776999 0.8767123\n", + " 8268570668335894776 22.276 0.06 ... 0.95206416 1.66985\n", + " 8268570668335894776 23.068 0.211 ... 1.5636572 2.5446959\n", + " 8268570668335894776 22.143 0.057 ... 0.9247384 1.7326578,\n", + " 'mag': array([23.522, 23.933, 23.742, 22.44 , 22.179, 22.39 , 23.568, 22.924,\n", + " 22.262, 21.914, 22.094, 22.291, 24.242, 21.728, 22.168, 21.722,\n", + " 21.615, 21.759, 22.285, 21.789, 24.195, 22.049, 21.959, 23.702,\n", + " 22.662, 20.447, 22.177, 22.887, 22.248, 22.445, 21.986, 22.249,\n", + " 22.698, 23.702, 22.229, 22.276, 23.068, 22.143], dtype=float32),\n", + " 'magErr': array([0.163, 0.351, 0.2 , 0.046, 0.042, 0.1 , 0.172, 0.116, 0.051,\n", + " 0.095, 0.047, 0.082, 0.383, 0.038, 0.034, 0.034, 0.036, 0.07 ,\n", + " 0.054, 0.052, 0.17 , 0.283, 0.06 , 0.199, 0.083, 0.011, 0.316,\n", + " 0.182, 0.046, 0.098, 0.049, 0.036, 0.063, 0.248, 0.264, 0.06 ,\n", + " 0.211, 0.057], dtype=float32),\n", + " 'mjd': array([61052.13729, 63554.05676, 63562.05437, 60230.03315, 62415.05691,\n", + " 62422.06596, 61355.02232, 63534.03975, 60228.08066, 63492.00291,\n", + " 63502.00311, 61326.03134, 62095.28873, 62407.07445, 60224.07621,\n", + " 62407.09369, 62406.09011, 63479.0044 , 60228.0802 , 62412.12365,\n", + " 60264.01472, 61253.96744, 62414.13572, 61355.02277, 61329.00043,\n", + " 61294.15865, 61253.96433, 62125.2233 , 61322.07319, 62422.06327,\n", + " 63500.06856, 60226.02382, 61330.01524, 63217.23761, 61253.97055,\n", + " 61323.00925, 62113.17449, 60223.98877]),\n", + " 'ra': array([ 62.6767601, 322.0860789, 325.868688 , 323.9242256, 304.7993288,\n", + " 309.1190487, 327.0967385, 311.280946 , 323.5373434, 268.4639755,\n", + " 283.7424099, 316.7793075, 81.7128501, 298.9437966, 322.7931457,\n", + " 298.9592036, 298.1255196, 239.848597 , 323.5372789, 302.7875618,\n", + " 332.3781914, 170.4247983, 304.1818652, 327.0968451, 317.8804823,\n", + " 301.5682143, 170.4172297, 69.233718 , 315.2799036, 309.1175392,\n", + " 281.1782352, 323.1475474, 318.2527231, 68.4459325, 170.4323598,\n", + " 315.6390597, 74.6917865, 322.7789008]),\n", + " 'dec': array([ 27.0535373, -12.3090787, -11.0256047, -10.5571517, -17.0169932,\n", + " -15.8743016, -10.035292 , -15.6284188, -10.6693695, -22.9543395,\n", + " -21.5140075, -13.2712987, 29.563878 , -18.443366 , -10.8850457,\n", + " -18.4396764, -18.6306791, -21.8243507, -10.6694075, -17.5230447,\n", + " -7.9025949, -3.6513877, -17.1737751, -10.0351984, -12.9420707,\n", + " -17.709034 , -3.6478445, 28.6462634, -13.7156598, -15.874741 ,\n", + " -21.8517282, -10.7825671, -12.8300092, 28.5344673, -3.6550378,\n", + " -13.6098197, 29.3204275, -10.889507 ]),\n", + " 'phaseAngle': array([ 18.636665 , 31.88497 , 30.160686 , 27.637327 , 37.81433 ,\n", + " 36.348026 , 29.765968 , 36.50101 , 27.429834 , 56.708397 ,\n", + " 48.8024 , 31.867077 , 9.175689 , 39.98022 , 26.91216 ,\n", + " 39.974342 , 40.30449 , 72.76689 , 27.429777 , 38.530846 ,\n", + " 27.739908 , 126.787056 , 38.031944 , 29.765924 , 31.74269 ,\n", + " 33.562683 , 126.79137 , 7.0533433, 32.005596 , 36.34851 ,\n", + " 50.079884 , 27.178923 , 31.696053 , 5.731951 , 126.78273 ,\n", + " 31.974665 , 2.5533326, 26.898243 ], dtype=float32),\n", + " 'topocentricDist': array([1.4200809 , 1.673502 , 1.8374033 , 1.0358349 , 0.8584717 ,\n", + " 0.9861143 , 1.5848765 , 1.2739334 , 0.99954176, 0.58142245,\n", + " 0.7141255 , 1.0085962 , 1.7333832 , 0.7201695 , 0.9263163 ,\n", + " 0.72049457, 0.70371586, 0.4728923 , 0.99953324, 0.806705 ,\n", + " 1.7147071 , 0.20780498, 0.8421095 , 1.5848858 , 1.064913 ,\n", + " 0.45957258, 0.20783997, 1.5073341 , 0.93472457, 0.986064 ,\n", + " 0.6861022 , 0.96172243, 1.0843298 , 1.5928001 , 0.20776999,\n", + " 0.95206416, 1.5636572 , 0.9247384 ], dtype=float32),\n", + " 'heliocentricDist': array([2.2182078 , 1.8633804 , 1.9377198 , 1.7923788 , 1.5282809 ,\n", + " 1.6029718 , 1.9770172 , 1.6663356 , 1.7732488 , 1.1989769 ,\n", + " 1.3165528 , 1.700587 , 2.6598191 , 1.440692 , 1.7335323 ,\n", + " 1.4409063 , 1.4297057 , 1.0418874 , 1.7732443 , 1.4964073 ,\n", + " 2.1019201 , 0.8766754 , 1.5183101 , 1.9770212 , 1.730421 ,\n", + " 1.3572357 , 0.87663853, 2.462233 , 1.6602533 , 1.6029434 ,\n", + " 1.2940885 , 1.7529303 , 1.7405357 , 2.5560288 , 0.8767123 ,\n", + " 1.66985 , 2.5446959 , 1.7326578 ], dtype=float32),\n", + " 'reduced_mag': array([21.030422, 21.463362, 20.984524, 21.0964 , 21.589355, 21.395733,\n", + " 21.08797 , 21.289454, 21.019146, 22.697487, 22.227936, 21.11942 ,\n", + " 20.923267, 21.647972, 21.139544, 21.640667, 21.60178 , 23.296085,\n", + " 21.042171, 21.380177, 21.410969, 25.746527, 21.425354, 21.221952,\n", + " 21.334671, 21.471954, 25.874252, 20.039307, 21.293709, 21.450884,\n", + " 22.244236, 21.11493 , 21.318779, 20.653364, 25.9268 , 21.269281,\n", + " 20.069113, 21.11934 ], dtype=float32)}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# inspect the object\n", "# dir(planetoid.Observations)\n", @@ -84,36 +197,65 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "b226fefa-a252-40d2-925e-549eee16858e", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:42.118915Z", - "iopub.status.busy": "2024-02-29T13:14:42.118650Z", - "iopub.status.idle": "2024-02-29T13:14:42.135245Z", - "shell.execute_reply": "2024-02-29T13:14:42.134491Z", - "shell.execute_reply.started": "2024-02-29T13:14:42.118892Z" + "iopub.execute_input": "2024-02-29T13:58:02.797449Z", + "iopub.status.busy": "2024-02-29T13:58:02.796971Z", + "iopub.status.idle": "2024-02-29T13:58:02.813977Z", + "shell.execute_reply": "2024-02-29T13:58:02.813007Z", + "shell.execute_reply.started": "2024-02-29T13:58:02.797420Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 18.636665 , 31.88497 , 30.160686 , 27.637327 , 37.81433 ,\n", + " 36.348026 , 29.765968 , 36.50101 , 27.429834 , 56.708397 ,\n", + " 48.8024 , 31.867077 , 9.175689 , 39.98022 , 26.91216 ,\n", + " 39.974342 , 40.30449 , 72.76689 , 27.429777 , 38.530846 ,\n", + " 27.739908 , 126.787056 , 38.031944 , 29.765924 , 31.74269 ,\n", + " 33.562683 , 126.79137 , 7.0533433, 32.005596 , 36.34851 ,\n", + " 50.079884 , 27.178923 , 31.696053 , 5.731951 , 126.78273 ,\n", + " 31.974665 , 2.5533326, 26.898243 ], dtype=float32)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "getattr(planetoid.Observations,\"phaseAngle\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "9d7dc125-06c1-49ad-8854-17d8c8b6954f", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:42.136687Z", - "iopub.status.busy": "2024-02-29T13:14:42.136408Z", - "iopub.status.idle": "2024-02-29T13:14:42.327499Z", - "shell.execute_reply": "2024-02-29T13:14:42.326677Z", - "shell.execute_reply.started": "2024-02-29T13:14:42.136663Z" + "iopub.execute_input": "2024-02-29T13:58:02.815525Z", + "iopub.status.busy": "2024-02-29T13:58:02.815227Z", + "iopub.status.idle": "2024-02-29T13:58:03.008493Z", + "shell.execute_reply": "2024-02-29T13:58:03.007542Z", + "shell.execute_reply.started": "2024-02-29T13:58:02.815500Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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qFOnTioqKtKsWbO0a9cu5efnKzQ0tM7vIMwAAGA+DRJmzvfxxx9rypQpevbZZzVw4EBJ0qZNm/TUU0/p2Wef1dChQ70q/OjRo4qJiVF2drZSUlKqbbN792716dNH3333nbp27VrnNQkzAACYT31+v73aNG/ixIl64403dOONN7qO3XbbbWrRooXGjRunr7/+2pvLym63S1KN82xKSko0f/58JSQkKD4+vto25eXlKi//z7bqDofDq1oAAIA5eDUBeO/evWrduvVFx202m/797397VYjT6dTEiROVnJysxMREt3N/+ctf1KpVK7Vq1UqrV69WVlaWmjdvXu11MjMzZbPZXK+aQg8AAGgcvLrNlJKSooiICL3zzjtq3769JOnw4cO67777VFZWpuzs7HoXMn78eK1evVobN25Ux44d3c7Z7XYdOXJEBQUFevHFF3Xw4EH961//UkRExEXXqW5kJj4+nttMAACYSIPPmfnuu+9055136ttvv3WNfBw4cEDdu3fXBx98oG7dutXrehkZGVq+fLk2bNighISEWtueOXNGbdq00d/+9jeNGjWqzmszZwYAAPNp8Dkz3bp10+7du5WVlaVvvvlGktSzZ08NGTLEbVVTXQzD0COPPKJly5Zp/fr1dQaZqs8YhuE2+gIAAJour5+abbFYlJqaqpSUFIWHh9crxFRJT0/XokWLtHz5clmtVhUWFko6N/cmMjJS33//vZYsWaLU1FRddtll+uGHHzRnzhxFRkZq2LBh3pYOAAAaEa8mADudTj3zzDO6/PLL1apVK+Xn50uSZsyYoTfffNPj68ydO1d2u12DBg1SXFyc67VkyRJJUkREhD799FMNGzZM3bp10z333COr1arPPvtMMTEx3pQOAAAaGa9GZn7/+9/rrbfe0vPPP6+HH37YdTwxMVGvvPKKxo4d69F16pqu06FDB/3v//6vNyUCAIAmwquRmbffflvz5s3T6NGj3Xbh7dOnj2sODQAAgD94FWYOHjxY7Yolp9OpioqKSy4KAADAU16FmV69eunTTz+96Pg//vEP9e3b95KLAgAA8JRXc2aefvpp3X///Tp48KCcTqeWLl2qvLw8vf3221q1apWvawSAoFDpNLQ1v0hHissUY43QgIRohYbUfyUnAN/yatM8Sfr000/1X//1X/riiy906tQp9evXT08//bRSU1N9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AACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYWkDDTGZmppKSkmS1WhUTE6ORI0cqLy/Prc2gQYNksVjcXr/5zW8CVDEAAAg2AQ0z2dnZSk9P1+bNm5WVlaWKigqlpqaqpKTErd3DDz+sgoIC1+v5558PUMUAACDYhAXyy9esWeP2fsGCBYqJidH27duVkpLiOt6iRQvFxsb6uzwAAGACQTVnxm63S5Kio6Pdjr/77rtq166dEhMTNW3aNJWWltZ4jfLycjkcDrcXAABovAI6MnM+p9OpiRMnKjk5WYmJia7j9957rzp37qwOHTpo9+7dmjJlivLy8rR06dJqr5OZmanZs2f7q2wAABBgFsMwjEAXIUnjx4/X6tWrtXHjRnXs2LHGdmvXrtXgwYP13XffqWvXrhedLy8vV3l5ueu9w+FQfHy87Ha7oqKiGqR2AADgWw6HQzabzaPf76AYmcnIyNCqVau0YcOGWoOMJF133XWSVGOYCQ8PV3h4eIPUCQAAgk9Aw4xhGHrkkUe0bNkyrV+/XgkJCXV+ZteuXZKkuLi4Bq4OAACYQUDDTHp6uhYtWqTly5fLarWqsLBQkmSz2RQZGam9e/dq0aJFGjZsmNq2bavdu3dr0qRJSklJUe/evQNZOgAACBIBnTNjsViqPT5//nw98MADOnDggMaMGaOcnByVlJQoPj5ed955p5566imP57/U554bAAAIDqaZM1NXjoqPj1d2drafqgEAAGYUVPvMAAAA1BdhBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAA1FvpmbPqMvVDdZn6oUrPnA1oLYQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABQb+dP+mUCMAAAwCUgzAAAAFMjzAAAAFMjzAAAAFMjzAAAgHqrdBquP3/+7xNu7/2NMAMAAOplTU6BfvLqv1zvf7Nwh258bq3W5BQEpB7CDAAA8NianAKNX7hDR4vL3Y4X2ss0fuGOgAQawgwAAPBIpdPQ7JW5qu6GUtWx2Stz/X7LiTADAAA8sjW/SAX2shrPG5IK7GXaml/kv6JEmAEAAB46UlxzkPGmna8QZgAAgEdirBE+becrhBkAAOCRAQnRirNFyFLDeYukOFuEBiRE+7MswgwAAPBMaIhFM0f0qnYCsHRuzszMEb0UGlJT3GkYhBkAAGBqhBkAAOCRqqXZNbGIpdkAACCIsTQbAACYGkuzAQCAqbVrGe7Tdr5CmAEAAJ7xdJGSfxczBTbMZGZmKikpSVarVTExMRo5cqTy8vIuardp0ybdeuutatmypaKiopSSkqLTp08HoGIAAJquY6fK625Uj3a+EtAwk52drfT0dG3evFlZWVmqqKhQamqqSkpKXG02bdqktLQ0paamauvWrdq2bZsyMjIUEsKgEgAA/hSsOwBbDMPw7/qpWhw9elQxMTHKzs5WSkqKJOn666/X0KFD9cwzz3h1TYfDIZvNJrvdrqioKF+WCwBAk1LpNHTjc2tVaC+rduM8i6RYW4Q2Trn1kjfOq8/vd1ANb9jtdklSdPS5bZCPHDmiLVu2KCYmRjfccIPat2+vm2++WRs3bqzxGuXl5XI4HG4vAABw6ap2AK5OVXRp0jsAO51OTZw4UcnJyUpMTJQkff/995KkWbNm6eGHH9aaNWvUr18/DR48WHv27Kn2OpmZmbLZbK5XfHy83/4OAAA0dmmJcZo7pp8us7qvWIq1RWjumH5KS4zze01Bc5tp/PjxWr16tTZu3KiOHTtKkj777DMlJydr2rRpevbZZ11te/fureHDhyszM/Oi65SXl6u8/D8TjxwOh+Lj47nNBACADx12nNZ1z66VJL0xpp+G9or16YhMfW4zhfnsWy9BRkaGVq1apQ0bNriCjCTFxZ1Ld716uQ9p9ezZU/v376/2WuHh4QoP9+/6dgAAmprzg8u1Xdr4/dbS+QJ6m8kwDGVkZGjZsmVau3atEhIS3M536dJFHTp0uGi59rfffqvOnTv7s1QAABCkAjoyk56erkWLFmn58uWyWq0qLCyUJNlsNkVGRspisejxxx/XzJkz1adPH11zzTV666239M033+gf//hHIEsHAABBIqBhZu7cuZKkQYMGuR2fP3++HnjgAUnSxIkTVVZWpkmTJqmoqEh9+vRRVlaWunbt6udqAQBAMApomPF07vHUqVM1derUBq4GAACYUdAszQYAAPAGYQYAAJgaYQYAAJhaUOwzAwAAzKVdqwj9e87wQJchiZEZAABgcoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgamGBLqChGYYhSXI4HAGuBAAAeKrqd7vqd7w2jT7MFBcXS5Li4+MDXAkAAKiv4uJi2Wy2WttYDE8ij4k5nU4dOnRIVqtVFovFo884HA7Fx8frwIEDioqKauAKzYk+qh39Uzf6qG70Ue3on7qZuY8Mw1BxcbE6dOigkJDaZ8U0+pGZkJAQdezY0avPRkVFme7/+P5GH9WO/qkbfVQ3+qh29E/dzNpHdY3IVGECMAAAMDXCDAAAMDXCTDXCw8M1c+ZMhYeHB7qUoEUf1Y7+qRt9VDf6qHb0T92aSh81+gnAAACgcWNkBgAAmBphBgAAmBphBgAAmBphBgAAmBphphqvv/66unTpooiICF133XXaunVroEsKiMzMTCUlJclqtSomJkYjR45UXl6eW5uysjKlp6erbdu2atWqle6++24dPnw4QBUH1pw5c2SxWDRx4kTXMfpHOnjwoMaMGaO2bdsqMjJSV199tT7//HPXecMw9PTTTysuLk6RkZEaMmSI9uzZE8CK/auyslIzZsxQQkKCIiMj1bVrVz3zzDNuz6Npan20YcMGjRgxQh06dJDFYtEHH3zgdt6T/igqKtLo0aMVFRWl1q1ba+zYsTp16pQf/xYNp7b+qaio0JQpU3T11VerZcuW6tChg+677z4dOnTI7RqNrX8IMxdYsmSJJk+erJkzZ2rHjh3q06ePbrvtNh05ciTQpflddna20tPTtXnzZmVlZamiokKpqakqKSlxtZk0aZJWrlyp999/X9nZ2Tp06JDuuuuuAFYdGNu2bdN///d/q3fv3m7Hm3r/nDhxQsnJyWrWrJlWr16t3NxcvfTSS2rTpo2rzfPPP68///nPeuONN7Rlyxa1bNlSt912m8rKygJYuf8899xzmjt3rl577TV9/fXXeu655/T888/r1VdfdbVpan1UUlKiPn366PXXX6/2vCf9MXr0aH311VfKysrSqlWrtGHDBo0bN85ff4UGVVv/lJaWaseOHZoxY4Z27NihpUuXKi8vT7fffrtbu0bXPwbcDBgwwEhPT3e9r6ysNDp06GBkZmYGsKrgcOTIEUOSkZ2dbRiGYZw8edJo1qyZ8f7777vafP3114YkY9OmTYEq0++Ki4uN7t27G1lZWcbNN99sTJgwwTAM+scwDGPKlCnGjTfeWON5p9NpxMbGGi+88ILr2MmTJ43w8HDjvffe80eJATd8+HDjoYcecjt21113GaNHjzYMgz6SZCxbtsz13pP+yM3NNSQZ27Ztc7VZvXq1YbFYjIMHD/qtdn+4sH+qs3XrVkOSsW/fPsMwGmf/MDJznjNnzmj79u0aMmSI61hISIiGDBmiTZs2BbCy4GC32yVJ0dHRkqTt27eroqLCrb969OihTp06Nan+Sk9P1/Dhw936QaJ/JGnFihW69tpr9bOf/UwxMTHq27ev/vrXv7rO5+fnq7Cw0K2PbDabrrvuuibTRzfccIM++eQTffvtt5KkL774Qhs3btSPf/xjSfTRhTzpj02bNql169a69tprXW2GDBmikJAQbdmyxe81B5rdbpfFYlHr1q0lNc7+afQPmqyPY8eOqbKyUu3bt3c73r59e33zzTcBqio4OJ1OTZw4UcnJyUpMTJQkFRYWqnnz5q7/QKq0b99ehYWFAajS/xYvXqwdO3Zo27ZtF52jf6Tvv/9ec+fO1eTJkzV9+nRt27ZNjz76qJo3b67777/f1Q/V/TfXVPpo6tSpcjgc6tGjh0JDQ1VZWak//OEPGj16tCTRRxfwpD8KCwsVExPjdj4sLEzR0dFNrs/Kyso0ZcoUjRo1yvWgycbYP4QZeCQ9PV05OTnauHFjoEsJGgcOHNCECROUlZWliIiIQJcTlJxOp6699lo9++yzkqS+ffsqJydHb7zxhu6///4AVxcc/t//+3969913tWjRIv3oRz/Srl27NHHiRHXo0IE+wiWpqKjQz3/+cxmGoblz5wa6nAbFbabztGvXTqGhoRetNjl8+LBiY2MDVFXgZWRkaNWqVVq3bp06duzoOh4bG6szZ87o5MmTbu2bSn9t375dR44cUb9+/RQWFqawsDBlZ2frz3/+s8LCwtS+ffsm3T+SFBcXp169erkd69mzp/bv3y9Jrn5oyv/NPf7445o6dap+8Ytf6Oqrr9Yvf/lLTZo0SZmZmZLoowt50h+xsbEXLdo4e/asioqKmkyfVQWZffv2KSsryzUqIzXO/iHMnKd58+bq37+/PvnkE9cxp9OpTz75RAMHDgxgZYFhGIYyMjK0bNkyrV27VgkJCW7n+/fvr2bNmrn1V15envbv398k+mvw4MH68ssvtWvXLtfr2muv1ejRo11/bsr9I0nJyckXLef/9ttv1blzZ0lSQkKCYmNj3frI4XBoy5YtTaaPSktLFRLi/k9xaGionE6nJProQp70x8CBA3Xy5Elt377d1Wbt2rVyOp267rrr/F6zv1UFmT179ujjjz9W27Zt3c43yv4J9AzkYLN48WIjPDzcWLBggZGbm2uMGzfOaN26tVFYWBjo0vxu/Pjxhs1mM9avX28UFBS4XqWlpa42v/nNb4xOnToZa9euNT7//HNj4MCBxsCBAwNYdWCdv5rJMOifrVu3GmFhYcYf/vAHY8+ePca7775rtGjRwli4cKGrzZw5c4zWrVsby5cvN3bv3m3ccccdRkJCgnH69OkAVu4/999/v3H55Zcbq1atMvLz842lS5ca7dq1M5544glXm6bWR8XFxcbOnTuNnTt3GpKMl19+2di5c6drNY4n/ZGWlmb07dvX2LJli7Fx40aje/fuxqhRowL1V/Kp2vrnzJkzxu2332507NjR2LVrl9u/3eXl5a5rNLb+IcxU49VXXzU6depkNG/e3BgwYICxefPmQJcUEJKqfc2fP9/V5vTp08Zvf/tbo02bNkaLFi2MO++80ygoKAhc0QF2YZihfwxj5cqVRmJiohEeHm706NHDmDdvntt5p9NpzJgxw2jfvr0RHh5uDB482MjLywtQtf7ncDiMCRMmGJ06dTIiIiKMK664wnjyySfdfniaWh+tW7eu2n977r//fsMwPOuP48ePG6NGjTJatWplREVFGQ8++KBRXFwcgL+N79XWP/n5+TX+271u3TrXNRpb/1gM47xtJgEAAEyGOTMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMALlmXLl30yiuvBLoMvxk0aJAmTpwY6DIA/B/CDIBG5b333lNoaKjS09MDXQoAPyHMAGhU3nzzTT3xxBN67733VFZWFuhyAPgBYQZAnQYNGqSMjAxlZGTIZrOpXbt2mjFjhs5/tFtpaakeeughWa1WderUSfPmzXO7xpQpU3TllVeqRYsWuuKKKzRjxgxVVFS4zn/xxRe65ZZbZLVaFRUVpf79++vzzz93nd+4caNuuukmRUZGKj4+Xo8++qhKSkrcviM/P1+fffaZpk6dqiuvvFJLly51O79gwQK1bt1a//znP9WzZ0+1atVKaWlpKigocLU5e/asHn30UbVu3Vpt27bVlClTdP/992vkyJE19k95ebkee+wxXX755WrZsqWuu+46rV+/vj5dDOASEGYAeOStt95SWFiYtm7dqj/96U96+eWX9be//c11/qWXXtK1116rnTt36re//a3Gjx+vvLw813mr1aoFCxYoNzdXf/rTn/TXv/5Vf/zjH13nR48erY4dO2rbtm3avn27pk6dqmbNmkmS9u7dq7S0NN19993avXu3lixZoo0bNyojI8Otxvnz52v48OGy2WwaM2aM3nzzzYv+HqWlpXrxxRf1zjvvaMOGDdq/f78ee+wx1/nnnntO7777rubPn69//etfcjgc+uCDD2rtm4yMDG3atEmLFy/W7t279bOf/UxpaWnas2dPvfoYgJcC/NRuACZw8803Gz179jScTqfr2JQpU4yePXsahmEYnTt3NsaMGeM653Q6jZiYGGPu3Lk1XvOFF14w+vfv73pvtVqNBQsWVNt27Nixxrhx49yOffrpp0ZISIhx+vRpwzAMo7Ky0oiPjzc++OADwzAM4+jRo0bz5s2N77//3vWZ+fPnG5KM7777znXs9ddfN9q3b+963759e+OFF15wvT979qzRqVMn44477nDrjwkTJhiGYRj79u0zQkNDjYMHD7rVN3jwYGPatGk1/v0B+A4jMwA8cv3118tisbjeDxw4UHv27FFlZaUkqXfv3q5zFotFsbGxOnLkiOvYkiVLlJycrNjYWLVq1UpPPfWU9u/f7zo/efJk/epXv9KQIUM0Z84c7d2713Xuiy++0IIFC9SqVSvX67bbbpPT6VR+fr4kKSsrSyUlJRo2bJgkqV27dho6dKj+/ve/u/09WrRooa5du7rex8XFueq02+06fPiwBgwY4DofGhqq/v3719gvX375pSorK3XllVe61Zedne32dwDQcMICXQCAxqHqllAVi8Uip9MpSdq0aZNGjx6t2bNn67bbbpPNZtPixYv10ksvudrPmjVL9957rz788EOtXr1aM2fO1OLFi3XnnXfq1KlT+vWvf61HH330ou/t1KmTpHMTf4uKihQZGek653Q6tXv3bs2ePVshISE11mmcN/envk6dOqXQ0FBt375doaGhbudatWrl9XUBeI4wA8AjW7ZscXu/efNmde/e/aIf8Op89tln6ty5s5588knXsX379l3U7sorr9SVV16pSZMmadSoUZo/f77uvPNO9evXT7m5uerWrVu11z9+/LiWL1+uxYsX60c/+pHreGVlpW688UZ99NFHSktLq7NOm82m9u3ba9u2bUpJSXFdY8eOHbrmmmuq/Uzfvn1VWVmpI0eO6KabbqrzOwD4HmEGgEf279+vyZMn69e//rV27NihV1991W1kpTbdu3fX/v37tXjxYiUlJenDDz/UsmXLXOdPnz6txx9/XD/96U+VkJCgH374Qdu2bdPdd98t6dxKqOuvv14ZGRn61a9+pZYtWyo3N1dZWVl67bXX9M4776ht27b6+c9/7nYrTJKGDRumN99806MwI0mPPPKIMjMz1a1bN/Xo0UOvvvqqTpw4cdF1q1x55ZUaPXq07rvvPr300kvq27evjh49qk8++US9e/fW8OHDPfpeAN4jzADwyH333afTp09rwIABCg0N1YQJEzRu3DiPPnv77bdr0qRJysjIUHl5uYYPH64ZM2Zo1qxZks7NSzl+/Ljuu+8+HT58WO3atdNdd92l2bNnSzo3Hyc7O1tPPvmkbrrpJhmGoa5du+qee+6RJP3973/XnXfeWW3guPvuu/XLX/5Sx44d86jWKVOmqLCwUPfdd59CQ0M1btw43XbbbbWOQM2fP1+///3v9bvf/U4HDx5Uu3btdP311+snP/mJR98J4NJYjEu5WQygSRg0aJCuueaaJvXIgipOp1M9e/bUz3/+cz3zzDOBLgdANRiZAYDz7Nu3Tx999JFuvvlmlZeX67XXXlN+fr7uvffeQJcGoAYszQaA84SEhGjBggVKSkpScnKyvvzyS3388cfq2bNnoEsDUANuMwEAAFNjZAYAAJgaYQYAAJgaYQYAAJgaYQYAAJgaYQYAAJgaYQYAAJgaYQYAAJgaYQYAAJja/weofG/yrMWRyQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# plot the observations\n", "x_plot = \"phaseAngle\"\n", @@ -138,18 +280,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "6efe3b5a-09dd-4d5e-9f41-20ea6e1b43df", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:42.329124Z", - "iopub.status.busy": "2024-02-29T13:14:42.328845Z", - "iopub.status.idle": "2024-02-29T13:14:42.335238Z", - "shell.execute_reply": "2024-02-29T13:14:42.334503Z", - "shell.execute_reply.started": "2024-02-29T13:14:42.329100Z" + "iopub.execute_input": "2024-02-29T13:58:03.009996Z", + "iopub.status.busy": "2024-02-29T13:58:03.009720Z", + "iopub.status.idle": "2024-02-29T13:58:03.017850Z", + "shell.execute_reply": "2024-02-29T13:58:03.017046Z", + "shell.execute_reply.started": "2024-02-29T13:58:03.009973Z" } }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jrob/.conda/envs/adler-dev/lib/python3.10/site-packages/sbpy/photometry/iau.py:50: InvalidPhaseFunctionWarning: G12 parameter could result in an invalid phsae function\n", + " warnings.warn(msg, exception)\n" + ] + } + ], "source": [ "# define the phase curve\n", "pc = PhaseCurve(abs_mag = planetoid.SSObject.r_H * u.mag,\n", @@ -159,36 +310,73 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "80f552f1-8907-4cc9-b57c-2e667eab459c", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:42.336659Z", - "iopub.status.busy": "2024-02-29T13:14:42.336270Z", - "iopub.status.idle": "2024-02-29T13:14:42.354637Z", - "shell.execute_reply": "2024-02-29T13:14:42.353753Z", - "shell.execute_reply.started": "2024-02-29T13:14:42.336622Z" + "iopub.execute_input": "2024-02-29T13:58:03.019427Z", + "iopub.status.busy": "2024-02-29T13:58:03.019140Z", + "iopub.status.idle": "2024-02-29T13:58:03.038779Z", + "shell.execute_reply": "2024-02-29T13:58:03.037777Z", + "shell.execute_reply.started": "2024-02-29T13:58:03.019404Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "pc.model_function" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "24c1955e-95cd-4d77-ad05-aa5b8d18620a", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:42.355955Z", - "iopub.status.busy": "2024-02-29T13:14:42.355681Z", - "iopub.status.idle": "2024-02-29T13:14:42.375422Z", - "shell.execute_reply": "2024-02-29T13:14:42.374603Z", - "shell.execute_reply.started": "2024-02-29T13:14:42.355929Z" + "iopub.execute_input": "2024-02-29T13:58:03.040252Z", + "iopub.status.busy": "2024-02-29T13:58:03.039969Z", + "iopub.status.idle": "2024-02-29T13:58:03.060967Z", + "shell.execute_reply": "2024-02-29T13:58:03.060089Z", + "shell.execute_reply.started": "2024-02-29T13:58:03.040228Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$[0,~2.5875789,~5.1751578,~7.7627367,~10.350316,~12.937895,~15.525473,~18.113052,~20.700631,~23.28821,~25.875789,~28.463368,~31.050947,~33.638526,~36.226105,~38.813684,~41.401263,~43.988841,~46.57642,~49.163999,~51.751578,~54.339157,~56.926736,~59.514315,~62.101894,~64.689473,~67.277052,~69.864631,~72.452209,~75.039788,~77.627367,~80.214946,~82.802525,~85.390104,~87.977683,~90.565262,~93.152841,~95.74042,~98.327999,~100.91558,~103.50316,~106.09074,~108.67831,~111.26589,~113.85347,~116.44105,~119.02863,~121.61621,~124.20379,~126.79137] \\; \\mathrm{{}^{\\circ}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "alpha = np.linspace(0,np.amax(planetoid.Observations.phaseAngle)) * u.deg\n", "alpha" @@ -196,18 +384,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "c3f30fe0-0d89-4ffa-8237-9c71181d44ee", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:42.376715Z", - "iopub.status.busy": "2024-02-29T13:14:42.376441Z", - "iopub.status.idle": "2024-02-29T13:14:42.395497Z", - "shell.execute_reply": "2024-02-29T13:14:42.394647Z", - "shell.execute_reply.started": "2024-02-29T13:14:42.376691Z" + "iopub.execute_input": "2024-02-29T13:58:03.062362Z", + "iopub.status.busy": "2024-02-29T13:58:03.062068Z", + "iopub.status.idle": "2024-02-29T13:58:03.082782Z", + "shell.execute_reply": "2024-02-29T13:58:03.081742Z", + "shell.execute_reply.started": "2024-02-29T13:58:03.062339Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$[19.805893,~19.920355,~20.052052,~20.202895,~20.360566,~20.513141,~20.658458,~20.794601,~20.920251,~21.035105,~21.140282,~21.238644,~21.334969,~21.432803,~21.532351,~21.633562,~21.736362,~21.840655,~21.946316,~22.053192,~22.161093,~22.2698,~22.379056,~22.488576,~22.598035,~22.706974,~22.814826,~22.920961,~23.024702,~23.12535,~23.222222,~23.314692,~23.402255,~23.484581,~23.561579,~23.633452,~23.700294,~23.761468,~23.816277,~23.864116,~23.904505,~23.937131,~23.961868,~23.978792,~23.988178,~23.990477,~23.986295,~23.97653,~23.964571,~23.955435] \\; \\mathrm{mag}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "red_mag = pc.ReducedMag(alpha)\n", "red_mag" @@ -215,20 +426,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "04be98a1-e4dc-4216-bcd9-ef777f6053fb", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:14:42.397129Z", - "iopub.status.busy": "2024-02-29T13:14:42.396580Z", - "iopub.status.idle": "2024-02-29T13:14:42.615666Z", - "shell.execute_reply": "2024-02-29T13:14:42.615009Z", - "shell.execute_reply.started": "2024-02-29T13:14:42.397102Z" + "iopub.execute_input": "2024-02-29T13:58:03.084410Z", + "iopub.status.busy": "2024-02-29T13:58:03.084016Z", + "iopub.status.idle": "2024-02-29T13:58:03.250587Z", + "shell.execute_reply": "2024-02-29T13:58:03.249526Z", + "shell.execute_reply.started": "2024-02-29T13:58:03.084385Z" } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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ah4NM4mJiXTo0IHQ0FAiIiIYMmQIO3bsKHRNr169sFgshV4PPvighyoWERGR8sajYSY5OZn4+HhWrVpFUlISeXl59O/fn6ysrELX3X///aSkpNhfL7/8socqFhERkfLGz5MfvnDhwkLHM2bMICIignXr1tGjRw/7+SpVqhAZGenQPXNzc8nNzbUfZ2RkuKZYERERKZfK1ZiZ9PR0AMLDwwud/+yzz6hZsyaxsbE8/vjjZGdnF3uPxMRErFar/RUdHe3WmkVERMSzLIZhGJ4uAsBmszF48GBOnjzJ8uXL7effe+896tevT506ddi8eTMTJkygY8eOzJkzp8j7FNUyEx0dTXp6OmFhYW7/PkRERKT0MjIysFqtDv389mg30/ni4+PZunVroSADMHLkSPvvW7ZsSVRUFH369GH37t00atToovsEBgYSGBjo9npFRESkfCgX3UwJCQnMnz+fxYsXU7du3Ute26lTJwB27dpVFqWJiIhIOefRlhnDMHj44YeZO3cuS5YsISYm5rJfs3HjRgCioqLcXJ2IiIh4A4+Gmfj4eGbNmsU333xDaGgoqampAFitVoKDg9m9ezezZs1i4MCB1KhRg82bNzN27Fh69OhBq1atPFm6iIiIlBMeHQBssViKPD99+nTuvvtuDhw4wPDhw9m6dStZWVlER0dz44038tRTTzk8mLckA4hERESkfPCaAcCXy1HR0dEkJyeXUTUiIiLijcrFAGARERERZynMiIiIiFdTmBERERGvpjAjIiIiXk1hRkRERLyawoyIiIh4NYUZERER8WoKMyIiIuLVFGZERETEqynMiIiIiFdTmBERERGvpjAjIiIiXk1hRkRERLyawoyIiIh4NYUZERER8WoKMyIiIuLVFGZERETEqynMiIiISIllnzlLg4nf0WDid2SfOevRWhRmRERExKspzIiIiIhXU5gRERERr6YwIyIiIl5NYUZERERK7PxBvxoALCIiIlIKCjMiIiLi1RRmRERExKspzIiIiIhXU5gRERGREjuVc27Q74pdx8i3GR6rRWFGRERESmTh1hRu/dcq+/EjszfR7aVFLNya4pF6FGZERETEYQu3pjBq5nqOZuYWOp+ansOomes9EmgUZkRERMQh+TaDyd9uo6gOpYJzk7/dVuZdTgozIiIi4pA1e9NISc8p9n0DSEnPYc3etLIrCoUZ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ZxgGCQkJzJ07l0WLFhETE1Po/Xbt2uHv71/oWe3YsYP9+/dX+GfVp08ftmzZwsaNG+2v9u3bM2zYMPvvK+uz6dq160VT+H///Xfq168PQExMDJGRkYWeTUZGBqtXr67wzyY7Oxsfn8J/Lfv6+mKz2YDK/Wwu5Miz6NKlCydPnmTdunX2axYtWoTNZqNTp05lXnNZKggyO3fu5Mcff6RGjRqF3q9wz8bTI5C90ezZs43AwEBjxowZxrZt24yRI0ca1apVM1JTUz1dWpkaNWqUYbVajSVLlhgpKSn2V3Z2tv2aBx980KhXr56xaNEi45dffjG6dOlidOnSxYNVe875s5kMo/I+mzVr1hh+fn7G888/b+zcudP47LPPjCpVqhgzZ860X/Piiy8a1apVM7755htj8+bNxg033GDExMQYp0+f9mDl7nfXXXcZV1xxhTF//nxj7969xpw5c4yaNWsajz32mP2ayvRsMjMzjQ0bNhgbNmwwAOO1114zNmzYYJ+R48iziIuLM9q0aWOsXr3aWL58udGkSRNj6NChnvqWXOZSz+bMmTPG4MGDjbp16xobN24s9Pdzbm6u/R4V6dkozDjprbfeMurVq2cEBAQYHTt2NFatWuXpksocUORr+vTp9mtOnz5tPPTQQ0b16tWNKlWqGDfeeKORkpLiuaI96MIwU5mfzbfffmvExsYagYGBRrNmzYz33nuv0Ps2m814+umnjdq1axuBgYFGnz59jB07dnio2rKTkZFhjB492qhXr54RFBRkNGzY0HjyyScL/QCqTM9m8eLFRf4dc9dddxmG4dizOH78uDF06FAjJCTECAsLM+655x4jMzPTA9+Na13q2ezdu7fYv58XL15sv0dFejYWwzhvaUkRERERL6MxMyIiIuLVFGZERETEqynMiIiIiFdTmBERERGvpjAjIiIiXk1hRkRERLyawoyIiIh4NYUZERER8WoKMyJSag0aNOD111/3dBllplevXowZM8bTZYjInxRmRKRC+fzzz/H19SU+Pt7TpYhIGVGYEZEK5cMPP+Sxxx7j888/Jycnx9PliEgZUJgRkcvq1asXCQkJJCQkYLVaqVmzJk8//TTnb+2WnZ3NvffeS2hoKPXq1eO9994rdI8JEybQtGlTqlSpQsOGDXn66afJy8uzv79p0yZ69+5NaGgoYWFhtGvXjl9++cX+/vLly+nevTvBwcFER0fzyCOPkJWVVegz9u7dy4oVK5g4cSJNmzZlzpw5hd6fMWMG1apV4/vvv6d58+aEhIQQFxdHSkqK/ZqzZ8/yyCOPUK1aNWrUqMGECRO46667GDJkSLHPJzc3l0cffZQrrriCqlWr0qlTJ5YsWVKSRywipaAwIyIO+fjjj/Hz82PNmjW88cYbvPbaa3zwwQf296dMmUL79u3ZsGEDDz30EKNGjWLHjh3290NDQ5kxYwbbtm3jjTfe4P333+ef//yn/f1hw4ZRt25d1q5dy7p165g4cSL+/v4A7N69m7i4OG6++WY2b97MF198wfLly0lISChU4/Tp0xk0aBBWq5Xhw4fz4YcfXvR9ZGdn8+qrr/Lpp5+ydOlS9u/fz6OPPmp//6WXXuKzzz5j+vTp/Pzzz2RkZPD1119f8tkkJCSwcuVKZs+ezebNm7n11luJi4tj586dJXrGIuIkD+/aLSJeoGfPnkbz5s0Nm81mPzdhwgSjefPmhmEYRv369Y3hw4fb37PZbEZERIQxderUYu/5yiuvGO3atbMfh4aGGjNmzCjy2vvuu88YOXJkoXPLli0zfHx8jNOnTxuGYRj5+flGdHS08fXXXxuGYRhHjx41AgICjD179ti/Zvr06QZg7Nq1y37unXfeMWrXrm0/rl27tvHKK6/Yj8+ePWvUq1fPuOGGGwo9j9GjRxuGYRj79u0zfH19jYMHDxaqr0+fPsbjjz9e7PcvIq6jlhkRcUjnzp2xWCz24y5durBz507y8/MBaNWqlf09i8VCZGQkR44csZ/74osv6Nq1K5GRkYSEhPDUU0+xf/9++/vjxo3jb3/7G3379uXFF19k9+7d9vc2bdrEjBkzCAkJsb8GDBiAzWZj7969ACQlJZGVlcXAgQMBqFmzJv369eOjjz4q9H1UqVKFRo0a2Y+joqLsdaanp3P48GE6duxof9/X15d27doV+1y2bNlCfn4+TZs2LVRfcnJyoe9BRNzHz9MFiEjFUNAlVMBisWCz2QBYuXIlw4YNY/LkyQwYMACr1crs2bOZMmWK/fpnn32WO+64g++++44FCxYwadIkZs+ezY033sipU6d44IEHeOSRRy763Hr16gHmwN+0tDSCg4Pt79lsNjZv3szkyZPx8fEptk7jvLE/JXXq1Cl8fX1Zt24dvr6+hd4LCQlx+r4i4jiFGRFxyOrVqwsdr1q1iiZNmlz0A7woK1asoH79+jz55JP2c/v27bvouqZNm9K0aVPGjh3L0KFDmT59OjfeeCNt27Zl27ZtNG7cuMj7Hz9+nG+++YbZs2dz1VVX2c/n5+fTrVs3fvjhB+Li4i5bp9VqpXbt2qxdu5YePXrY77F+/XquvvrqIr+mTZs25Ofnc+TIEbp3737ZzxAR11OYERGH7N+/n3HjxvHAAw+wfv163nrrrUItK5fSpEkT9u/fz+zZs+nQoQPfffcdc+fOtb9/+vRpxo8fzy233EJMTAz/+9//WLt2LTfffDNgzoTq3LkzCQkJ/O1vf6Nq1aps27aNpKQk3n77bT799FNq1KjBbbfdVqgrDGDgwIF8+OGHDoUZgIcffpjExEQaN25Ms2bNeOuttzhx4sRF9y3QtGlThg0bxogRI5gyZQpt2rTh6NGj/PTTT7Rq1YpBgwY59Lki4jyFGRFxyIgRIzh9+jQdO3bE19eX0aNHM3LkSIe+dvDgwYwdO5aEhARyc3MZNGgQTz/9NM8++yxgjks5fvw4I0aM4PDhw9SsWZObbrqJyZMnA+Z4nOTkZJ588km6d++OYRg0atSI22+/HYCPPvqIG2+8scjAcfPNN3PnnXdy7Ngxh2qdMGECqampjBgxAl9fX0aOHMmAAQMu2QI1ffp0/vGPf/D3v/+dgwcPUrNmTTp37sx1113n0GeKSOlYjNJ0FotIpdCrVy+uvvrqSrVlQQGbzUbz5s257bbbeO655zxdjogUQS0zIiLn2bdvHz/88AM9e/YkNzeXt99+m71793LHHXd4ujQRKYamZouInMfHx4cZM2bQoUMHunbtypYtW/jxxx9p3ry5p0sTkWKom0lERES8mlpmRERExKspzIiIiIhXU5gRERERr6YwIyIiIl5NYUZERES8msKMiIiIeDWFGREREfFqCjMiIiLi1f4fnxNMs4GhO2IAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "%matplotlib widget\n", + "# %matplotlib widget\n", "\n", "# plot the observations with the LSST phase curve\n", "x_plot = \"phaseAngle\"\n", From 74fda1e03973290ccab9c6450f0e83b270108caa Mon Sep 17 00:00:00 2001 From: jrob93 Date: Thu, 29 Feb 2024 16:16:53 +0000 Subject: [PATCH 4/9] calculate an adler phasecurve --- notebooks/adler_examples.ipynb | 445 +++++++++++++++++++++++++++------ 1 file changed, 373 insertions(+), 72 deletions(-) diff --git a/notebooks/adler_examples.ipynb b/notebooks/adler_examples.ipynb index e46dc20..602efff 100644 --- a/notebooks/adler_examples.ipynb +++ b/notebooks/adler_examples.ipynb @@ -6,11 +6,11 @@ "id": "d591f5d8-9148-46ff-a62b-0f2a29eb806c", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:00.064543Z", - "iopub.status.busy": "2024-02-29T13:58:00.064107Z", - "iopub.status.idle": "2024-02-29T13:58:01.636895Z", - "shell.execute_reply": "2024-02-29T13:58:01.635972Z", - "shell.execute_reply.started": "2024-02-29T13:58:00.064516Z" + "iopub.execute_input": "2024-02-29T16:09:11.533501Z", + "iopub.status.busy": "2024-02-29T16:09:11.533247Z", + "iopub.status.idle": "2024-02-29T16:09:13.062886Z", + "shell.execute_reply": "2024-02-29T16:09:13.061510Z", + "shell.execute_reply.started": "2024-02-29T16:09:11.533477Z" } }, "outputs": [], @@ -30,11 +30,11 @@ "id": "645efb98-567d-481e-a79c-b1cfdc828726", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:01.638850Z", - "iopub.status.busy": "2024-02-29T13:58:01.637982Z", - "iopub.status.idle": "2024-02-29T13:58:01.642608Z", - "shell.execute_reply": "2024-02-29T13:58:01.641792Z", - "shell.execute_reply.started": "2024-02-29T13:58:01.638819Z" + "iopub.execute_input": "2024-02-29T16:09:13.065333Z", + "iopub.status.busy": "2024-02-29T16:09:13.064482Z", + "iopub.status.idle": "2024-02-29T16:09:13.070452Z", + "shell.execute_reply": "2024-02-29T16:09:13.069235Z", + "shell.execute_reply.started": "2024-02-29T16:09:13.065297Z" } }, "outputs": [], @@ -49,11 +49,11 @@ "id": "10b36aab-b322-49b8-8ff3-49bef68d7416", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:01.643793Z", - "iopub.status.busy": "2024-02-29T13:58:01.643545Z", - "iopub.status.idle": "2024-02-29T13:58:02.777149Z", - "shell.execute_reply": "2024-02-29T13:58:02.776163Z", - "shell.execute_reply.started": "2024-02-29T13:58:01.643771Z" + "iopub.execute_input": "2024-02-29T16:09:13.072314Z", + "iopub.status.busy": "2024-02-29T16:09:13.071967Z", + "iopub.status.idle": "2024-02-29T16:09:14.279820Z", + "shell.execute_reply": "2024-02-29T16:09:14.278772Z", + "shell.execute_reply.started": "2024-02-29T16:09:13.072275Z" } }, "outputs": [ @@ -77,11 +77,96 @@ "id": "d9a0623d-0dc7-49c1-99dd-a76ef970a3ff", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:02.778637Z", - "iopub.status.busy": "2024-02-29T13:58:02.778367Z", - "iopub.status.idle": "2024-02-29T13:58:02.794141Z", - "shell.execute_reply": "2024-02-29T13:58:02.793251Z", - "shell.execute_reply.started": "2024-02-29T13:58:02.778613Z" + "iopub.execute_input": "2024-02-29T16:09:14.281553Z", + "iopub.status.busy": "2024-02-29T16:09:14.281143Z", + "iopub.status.idle": "2024-02-29T16:09:14.287399Z", + "shell.execute_reply": "2024-02-29T16:09:14.286612Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.281511Z" + }, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'ssObjectId': '8268570668335894776',\n", + " 'sql_filename': None,\n", + " 'service': ,\n", + " 'Observations': ,\n", + " 'MPCORB': ,\n", + " 'SSObject': }" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# inspect the object\n", + "planetoid.__dict__" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1d360360-025b-4a77-acf5-325b2f2d1873", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:14.290960Z", + "iopub.status.busy": "2024-02-29T16:09:14.290631Z", + "iopub.status.idle": "2024-02-29T16:09:14.307210Z", + "shell.execute_reply": "2024-02-29T16:09:14.306215Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.290937Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'ssObjectId': '8268570668335894776',\n", + " 'sql_query': '\\n SELECT\\n discoverySubmissionDate, firstObservationDate, arc, numObs, \\n r_H, r_G12, r_Herr, r_G12err, r_nData,\\n maxExtendedness, minExtendedness, medianExtendedness\\n FROM\\n dp03_catalogs_10yr.SSObject\\n WHERE\\n ssObjectId = 8268570668335894776\\n ',\n", + " 'service': ,\n", + " 'data_table':
\n", + " discoverySubmissionDate firstObservationDate ... medianExtendedness\n", + " d d ... \n", + " float64 float64 ... float32 \n", + " ----------------------- -------------------- ... ------------------\n", + " 60218.0 60220.01958 ... 0.0,\n", + " 'discoverySubmissionDate': 60218.0,\n", + " 'firstObservationDate': 60220.01958,\n", + " 'arc': 3342.05859375,\n", + " 'numObs': 94,\n", + " 'r_H': 19.805892944335938,\n", + " 'r_G12': 1.52932608127594,\n", + " 'r_Herr': 0.01974303089082241,\n", + " 'r_G12Err': 0.05071713775396347,\n", + " 'r_nData': 38,\n", + " 'maxExtendedness': 0.0,\n", + " 'minExtendedness': 0.0,\n", + " 'medianExtendedness': 0.0}" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "planetoid.SSObject.__dict__" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e0bcad0b-32ea-4c0f-b489-00d7491ff3b6", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:14.308956Z", + "iopub.status.busy": "2024-02-29T16:09:14.308489Z", + "iopub.status.idle": "2024-02-29T16:09:14.333001Z", + "shell.execute_reply": "2024-02-29T16:09:14.332167Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.308917Z" }, "scrolled": true }, @@ -91,7 +176,7 @@ "text/plain": [ "{'ssObjectId': '8268570668335894776',\n", " 'sql_query': \"\\n SELECT\\n ssObject.ssObjectId, mag, magErr, band, midpointMjdTai as mjd, ra, dec, phaseAngle,\\n topocentricDist, heliocentricDist\\n FROM\\n dp03_catalogs_10yr.ssObject\\n JOIN dp03_catalogs_10yr.diaSource ON dp03_catalogs_10yr.ssObject.ssObjectId = dp03_catalogs_10yr.diaSource.ssObjectId\\n JOIN dp03_catalogs_10yr.ssSource ON dp03_catalogs_10yr.diaSource.diaSourceId = dp03_catalogs_10yr.ssSource.diaSourceId\\n WHERE\\n ssObject.ssObjectId = 8268570668335894776 and band='r'\\n \",\n", - " 'service': ,\n", + " 'service': ,\n", " 'data_table':
\n", " ssObjectId mag magErr ... topocentricDist heliocentricDist\n", " ... AU AU \n", @@ -184,28 +269,27 @@ " 20.069113, 21.11934 ], dtype=float32)}" ] }, - "execution_count": 4, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# inspect the object\n", "# dir(planetoid.Observations)\n", "planetoid.Observations.__dict__" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "id": "b226fefa-a252-40d2-925e-549eee16858e", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:02.797449Z", - "iopub.status.busy": "2024-02-29T13:58:02.796971Z", - "iopub.status.idle": "2024-02-29T13:58:02.813977Z", - "shell.execute_reply": "2024-02-29T13:58:02.813007Z", - "shell.execute_reply.started": "2024-02-29T13:58:02.797420Z" + "iopub.execute_input": "2024-02-29T16:09:14.334599Z", + "iopub.status.busy": "2024-02-29T16:09:14.334226Z", + "iopub.status.idle": "2024-02-29T16:09:14.351732Z", + "shell.execute_reply": "2024-02-29T16:09:14.350910Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.334562Z" } }, "outputs": [ @@ -222,7 +306,7 @@ " 31.974665 , 2.5533326, 26.898243 ], dtype=float32)" ] }, - "execution_count": 5, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -233,15 +317,15 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "id": "9d7dc125-06c1-49ad-8854-17d8c8b6954f", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:02.815525Z", - "iopub.status.busy": "2024-02-29T13:58:02.815227Z", - "iopub.status.idle": "2024-02-29T13:58:03.008493Z", - "shell.execute_reply": "2024-02-29T13:58:03.007542Z", - "shell.execute_reply.started": "2024-02-29T13:58:02.815500Z" + "iopub.execute_input": "2024-02-29T16:09:14.353538Z", + "iopub.status.busy": "2024-02-29T16:09:14.352944Z", + "iopub.status.idle": "2024-02-29T16:09:14.544075Z", + "shell.execute_reply": "2024-02-29T16:09:14.543137Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.353500Z" } }, "outputs": [ @@ -280,15 +364,15 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "id": "6efe3b5a-09dd-4d5e-9f41-20ea6e1b43df", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:03.009996Z", - "iopub.status.busy": "2024-02-29T13:58:03.009720Z", - "iopub.status.idle": "2024-02-29T13:58:03.017850Z", - "shell.execute_reply": "2024-02-29T13:58:03.017046Z", - "shell.execute_reply.started": "2024-02-29T13:58:03.009973Z" + "iopub.execute_input": "2024-02-29T16:09:14.545627Z", + "iopub.status.busy": "2024-02-29T16:09:14.545342Z", + "iopub.status.idle": "2024-02-29T16:09:14.553323Z", + "shell.execute_reply": "2024-02-29T16:09:14.552540Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.545603Z" } }, "outputs": [ @@ -310,15 +394,15 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "id": "80f552f1-8907-4cc9-b57c-2e667eab459c", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:03.019427Z", - "iopub.status.busy": "2024-02-29T13:58:03.019140Z", - "iopub.status.idle": "2024-02-29T13:58:03.038779Z", - "shell.execute_reply": "2024-02-29T13:58:03.037777Z", - "shell.execute_reply.started": "2024-02-29T13:58:03.019404Z" + "iopub.execute_input": "2024-02-29T16:09:14.554644Z", + "iopub.status.busy": "2024-02-29T16:09:14.554319Z", + "iopub.status.idle": "2024-02-29T16:09:14.571588Z", + "shell.execute_reply": "2024-02-29T16:09:14.570921Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.554620Z" } }, "outputs": [ @@ -328,7 +412,7 @@ "" ] }, - "execution_count": 8, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -339,15 +423,15 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "id": "24c1955e-95cd-4d77-ad05-aa5b8d18620a", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:03.040252Z", - "iopub.status.busy": "2024-02-29T13:58:03.039969Z", - "iopub.status.idle": "2024-02-29T13:58:03.060967Z", - "shell.execute_reply": "2024-02-29T13:58:03.060089Z", - "shell.execute_reply.started": "2024-02-29T13:58:03.040228Z" + "iopub.execute_input": "2024-02-29T16:09:14.572987Z", + "iopub.status.busy": "2024-02-29T16:09:14.572491Z", + "iopub.status.idle": "2024-02-29T16:09:14.593610Z", + "shell.execute_reply": "2024-02-29T16:09:14.592732Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.572960Z" } }, "outputs": [ @@ -372,7 +456,7 @@ " 124.20378767, 126.79136658] deg>" ] }, - "execution_count": 9, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -384,15 +468,15 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "id": "c3f30fe0-0d89-4ffa-8237-9c71181d44ee", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:03.062362Z", - "iopub.status.busy": "2024-02-29T13:58:03.062068Z", - "iopub.status.idle": "2024-02-29T13:58:03.082782Z", - "shell.execute_reply": "2024-02-29T13:58:03.081742Z", - "shell.execute_reply.started": "2024-02-29T13:58:03.062339Z" + "iopub.execute_input": "2024-02-29T16:09:14.594977Z", + "iopub.status.busy": "2024-02-29T16:09:14.594621Z", + "iopub.status.idle": "2024-02-29T16:09:14.614140Z", + "shell.execute_reply": "2024-02-29T16:09:14.613401Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.594943Z" } }, "outputs": [ @@ -414,7 +498,7 @@ " 23.99047722, 23.98629539, 23.97653042, 23.96457121, 23.95543471] mag>" ] }, - "execution_count": 10, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -426,15 +510,15 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "id": "04be98a1-e4dc-4216-bcd9-ef777f6053fb", "metadata": { "execution": { - "iopub.execute_input": "2024-02-29T13:58:03.084410Z", - "iopub.status.busy": "2024-02-29T13:58:03.084016Z", - "iopub.status.idle": "2024-02-29T13:58:03.250587Z", - "shell.execute_reply": "2024-02-29T13:58:03.249526Z", - "shell.execute_reply.started": "2024-02-29T13:58:03.084385Z" + "iopub.execute_input": "2024-02-29T16:09:14.615656Z", + "iopub.status.busy": "2024-02-29T16:09:14.615050Z", + "iopub.status.idle": "2024-02-29T16:09:14.783515Z", + "shell.execute_reply": "2024-02-29T16:09:14.782664Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.615623Z" } }, "outputs": [ @@ -477,11 +561,228 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "9815543d-6140-4bdb-8bad-8296994723f4", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:14.784754Z", + "iopub.status.busy": "2024-02-29T16:09:14.784498Z", + "iopub.status.idle": "2024-02-29T16:09:14.953022Z", + "shell.execute_reply": "2024-02-29T16:09:14.952237Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.784731Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGwCAYAAABcnuQpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA400lEQVR4nO3de3RU5b3/8c/knsBkIGBIKAEiUBGDFBAxohEVYqo/LeqpHhUtlqPCCSjYokCteGkJXqo967RisR7QItVjK3JRolEwiA0gNzGikUsQlIRbZAaCCYF5fn9wMjLmNhkm2bPD+7XWrMXs/bDnO8+a7PnM3s9+tsMYYwQAAGBTEVYXAAAAcDoIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNairC6gpXm9Xu3Zs0dOp1MOh8PqcgAAQACMMTp8+LC6du2qiIjGj720+TCzZ88epaWlWV0GAAAIwu7du9WtW7dG27T5MON0OiWd7IzExESLqwEAAIHweDxKS0vzfY83ps2HmdpTS4mJiYQZAABsJpAhIgwABgAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAthZldQEAYCdHjx1Xv4ff8T3f8thVSohhVwpYiSMzAADA1ggzAADA1ggzAADA1iwNM3l5eRoyZIicTqeSk5M1atQolZSU+LWpqqpSbm6uOnXqpPbt2+vGG2/U3r17LaoYAACEG0vDTGFhoXJzc7V69WoVFBSopqZG2dnZqqys9LWZPHmylixZotdff12FhYXas2ePbrjhBgurBoDvrS2t0AmvsboM4IzmMMaEzV/h/v37lZycrMLCQmVlZcntduuss87SggUL9G//9m+SpC+++ELnnnuuioqKdNFFF9XZRnV1taqrq33PPR6P0tLS5Ha7lZiY2GrvBUDbtHDD15r8v5/4LUt1xWnGtf2Uk5FqUVVA2+PxeORyuQL6/g6rMTNut1uSlJSUJElav369ampqNGLECF+bvn37qnv37ioqKqp3G3l5eXK5XL5HWlpayxcO4IyQ9/aWOkFGksrcVRo/f4Pyi8ssqApA2IQZr9erSZMmadiwYcrIyJAklZeXKyYmRh06dPBr26VLF5WXl9e7nWnTpsntdvseu3fvbunSAZwB3t5cpr+sLG1wvZH06JItnHICLBA2Mz3l5uaquLhYq1atOq3txMbGKjY2NkRVAYB0wmv00KLiJtuVuau0trRCmb06tUJVAGqFxZGZCRMmaOnSpVqxYoW6devmW56SkqJjx47p0KFDfu337t2rlJSUVq4SwJlqbWmFKiqPBdR23+GqFq4GwA9ZGmaMMZowYYIWLlyo5cuXKz093W/94MGDFR0drffff9+3rKSkRLt27VJmZmZrlwvgDNWcgJLsjGvBSgDUx9LTTLm5uVqwYIEWLVokp9PpGwfjcrkUHx8vl8ulsWPH6v7771dSUpISExM1ceJEZWZm1nslEwC0hEADSlK7aF2YntTC1QD4IUvDzOzZsyVJw4cP91s+d+5cjRkzRpL07LPPKiIiQjfeeKOqq6t11VVX6bnnnmvlSgGcyS5MT1KqK05l7saP0PzuZxmKjHC0UlUAaoXVPDMtoTnXqQNAQ/KLyzR+/gY1tMO8Jytd067u16o1AW2ZbeeZAYBwlZORqtmjB6lLov/VkkntYvTcrYMIMoCFwubSbAAIdzkZqRrWu7P6P/Kub1nhlOFyxkVbWBUAjswAQDP8cEwMY2QA6xFmAACArRFmACBIWx67SgkxnK0HrEaYAQAAtkaYAQAAtsbxUQBohoSYKO2cdY3VZQA4BUdmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACw0NFjx9Vz6lvqOfUtHT123OpybIkwAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwBN4NJZILwRZgAAsNAJr/H9e21phd9zBIYwAwCARfKLyzTimULf8zFzP9YlTyxXfnGZhVXZD2EGAAAL5BeXafz8DdrrqfZbXu6u0vj5Gwg0zUCYAQCglZ3wGj26ZIvqO6FUu+zRJVs45RQgwgwAAK1sbWmFytxVDa43ksrcVVpbWtF6RdkYYQYAgFa273DDQSaYdmc6wgwAAK0s2RkX0nZnOsIMAACt7ML0JKW64uRoYL1DUqorThemJ7VmWbZFmAEAoJVFRjg049p+klQn0NQ+n3FtP0VGNBR3cCrCDAAAFsjJSNXs0YOUnBjrtzzFFafZowcpJyPVosrsJ8rqAgAAOFPlZKRqWO/O6v/Iu5KkeXcO0aV9zuKITDNxZAYAAAudGlwuTE8iyASBMAMAAJotnG7ASpgBAAC2RpgBgCZwV2MgvBFmAKAR3NUYCH+EGQBoAHc1BuyBMIMzTjgNWkP44q7GgH0wzwwA1KM5dzXO7NWp9QpDm5MQE6Wds66xuoxm++FYMivnx+HIDBCGOHpkPe5qDDQs3MaSWRpm8vLyNGTIEDmdTiUnJ2vUqFEqKSnxazNnzhwNHz5ciYmJcjgcOnTokDXF/sAJr1HR9oNatOkbFW0/yKFmG+HKFASCuxoD9QvHsWSWhpnCwkLl5uZq9erVKigoUE1NjbKzs1VZWelrc/ToUeXk5Gj69OkWVuovv7hMw2a9r1teWK37Xt2kW15YrWGz3mcwoA2E268JhC/uagzUFa5jySwNM/n5+RozZozOO+88DRgwQPPmzdOuXbu0fv16X5tJkyZp6tSpuuiiiyys9Hv5xWUaN3+Dyn+YSD3VGsfVDWEtHH9NIHxxV2OgruaMJWtNYTVmxu12S5KSkoL/pVNdXS2Px+P3CJUTXqOpb3zaaJupb3zKaYswFK6/JhrCqbDwwF2NAX/hOpYsbMKM1+vVpEmTNGzYMGVkZAS9nby8PLlcLt8jLS0tZDWu3n5Qh47WNNrm0NEard5+MGSvidAI118T9eFUWHjJyUjVe/df5ns+784hWvXgFQQZnJHCdSxZ2ISZ3NxcFRcX69VXXz2t7UybNk1ut9v32L17d4gqlIp2HAhpO7SecP01Uat2QPnjSz7TOE6FhR3uagycFK5jycJinpkJEyZo6dKlWrlypbp163Za24qNjVVsbGzTDYMS6A6MHV24CddfE9LJIzEzFn9WJ8Ccyujkp+rRJVs0sl8KX6YALFE7lmz8/A1ySH6n7q0cS2bpkRljjCZMmKCFCxdq+fLlSk9Pt7KcJg0NMGkG2g6tJ1x/TTQ0KLk+4XQqDMCZKxzHkll6ZCY3N1cLFizQokWL5HQ6VV5eLklyuVyKj4+XJJWXl6u8vFzbtm2TJH366adyOp3q3r37aQ0UDob3RGCDMANth9YTjr8mGhuU3BgmaQNgtZyMVA3r3Vn9H3lX0smxZGfsDMCzZ8+W2+3W8OHDlZqa6nu89tprvjbPP/+8Bg4cqLvuukuSlJWVpYEDB2rx4sWtXu/CTd+EtB1aV7j9mmhqUHJDmKQNQDgIp7Fklh6ZMabp36SPPPKIHnnkkZYvJgBfHzoa0nZofeH0a6K5R1gcOhm8mKQNgNWOHjuufg+/Y3UZPmFzNZMddOuYENJ2sEa4/Jpo7hEWIyZpA4D6EGaa4caBgV1pFWg7nNmaGpQMAAgMYaYZLu7TWQkxkY22SYiJ1MV9OrdSRbCzU6fLD0TtpdnMBgzAKkePHVfPqW/5nWLa8thVSoixdqYXwkwzREY49MxNAxpt88xNAzgNEOYSYqK0c9Y12jnrGsv/AHMyUnV3VroC+chwaTYAq4XrjynCTDPlZKTq+dGD1MUZ47e8izNGz3OvFjRTfnGZ/rKyVM3ZP3BpNgAr/PBWK7UKtuy1oBp/YTEDsN3kZKRqZL8UrS2t0L7DVUp2nrzCpPr4CfWc+pak8DjshvAWyI1L68Ol2QBaW+0En/X97pr06ibFRkVY+mOeb9sgRUY4lNmrk9VlwMZW72j6xqWn4tJsAFYIZIJPq2+1wmkmwCJFQdxdnUuzAbS2pib4DIfxfByZASwT+ECZjgnRyruhP2Oy0KQTXqO1pRX6+tujmvKPzZI47Y3TE+g4PSvH8/HpDqFTR3mvLa2w9D4VCH+ZZ3fWn1ZsD6jtrUO7E2QsVHsFXLjLLy7To0u21PkV/dyKbZo88hz2RwhKoOP0rBzPx2mmEPnhKO8xcz/WJU8sV35xmYVVIZxd1KuTYqMC+xPkKwhNqR2gWd/pgD+t2K7Bvytgf4SgNDXBp0NSqsXj+QgzIVC7E9nrqfZbXu6u0vj5G9iBoF6REQ6Nu6xXQG0zz2YiRjQskAGah47WaBz7IwTh1Ak+Gwo0Vo/nI8ycpsZ2IrXLmLUVDbn3yj5NzirdIT5aF3HlHBrRnDuwsz9CMHIyUjV79CAlJ8bWWZd7eS+N7JdiQVXfI8ycJjuM8kb4OeE1Ktp+UEs379E9WWc32vbRn53HWAc0qtz9XcBt2R8hWDkZqXrv/svqLP/Tiu2WD6tgAPBpssMob4SX+gZpdkiIltfrlafqRJ32I/t1ac3yYEMVlcea1b454Qc41UfbDsihutdi1g6rmG3RTPiEmdNkh1HeCB8NzaLp/r/J8yaP+LF6dk7wzSrNERkEIql93UP/jWlu+AGkpodV1N4M14rJ8zjNdJrsMMob4SGQ8VWvfrxL/+/8rsrs1Ykgg4ClJDbvx1Jzww8ghfewCsLMaWpslHftc6tHeSM8hPOOAPZW+6MqUM0NP4AU3sMqCDMh0NAo7xRXnGXnDxF+wnlHAHs79UdVUzhSjGCF87AKwkyI/HCU97w7h2jVg1cQZOATzjsC2F9ORqqeu3WQ2sfWPxTS8X8PjhQjWOE8rIIwE0Kn7iAYvIkfCucdAewvv7hMj7+1RUeqj9e7vkNCNEeKcVrCeVgFYQZoJeG8I4C9NXYrg1rf/t8Vc8DpCNdhFYQZoBXV7ghSfjBY0+odAewrkFsZ1GL2X4RCOA6rYJ6ZELLLnXVhrZyMVI3sl6K1pRXad7iKOWVwWppzK4Paq+UyuT0GTlO4DasgzAAWiIxw8IWCkGju1W9cLYe2iNNMAGBjSQkxzWrP1XJoiwgzAGBjX5R7Am7L1XJoqwgzAGBju78N/KaRXC2HtoowAwA21iMpIaB2/zboR1wthzaLMAMANnZ7Zk81dbAlwiHNvOH81ikIsABhBgBsLCYqQnddmt5om7suTVdMFLt7tF1cmg0ANjft6pMzS7/wYalOnRMvwnEyyNSuB9oqwgwAtAHTru6nX2X31d+KduqriqPqkZSg2zN7ckQGZwTCDAC0ETFRERp76dlWlwG0OiI7AACwNcIMAACwNU4zAQCAZgm3GytzZAYAANgaYQYAANgaYQYAANgaYQYAANgaYQYAANiapWEmLy9PQ4YMkdPpVHJyskaNGqWSkhLf+oqKCk2cOFHnnHOO4uPj1b17d917771yu90WVg0AAMKJpWGmsLBQubm5Wr16tQoKClRTU6Ps7GxVVlZKkvbs2aM9e/bo6aefVnFxsebNm6f8/HyNHTvWyrIBAEAYcRhjTNPNWsf+/fuVnJyswsJCZWVl1dvm9ddf1+jRo1VZWamoqKanyfF4PHK5XHK73UpMTAx1yQAAoAU05/s7rCbNqz19lJSU1GibxMTEBoNMdXW1qqurfc89Hk9oiwQAAGElbAYAe71eTZo0ScOGDVNGRka9bQ4cOKDHH39cd999d4PbycvLk8vl8j3S0tJaqmQAABAGwuY00/jx47Vs2TKtWrVK3bp1q7Pe4/Fo5MiRSkpK0uLFixUdHV3vduo7MpOWlsZpJgAAbMR2p5kmTJigpUuXauXKlfUGmcOHDysnJ0dOp1MLFy5sMMhIUmxsrGJjY1uyXAAAEEYsPc1kjNGECRO0cOFCLV++XOnp6XXaeDweZWdnKyYmRosXL1ZcXJwFlQIAgHBl6ZGZ3NxcLViwQIsWLZLT6VR5ebkkyeVyKT4+3hdkjh49qvnz58vj8fgG9J511lmKjIy0snwAABAGLB0z43A46l0+d+5cjRkzRh988IEuv/zyetuUlpaqZ8+eTb4Gl2YDAGA/thkz01SOGj58eJNtAADAmS0sBgADAIDwcsJrtLa0QvsOVynZGacL05MUGVH/GRWrEWYAAICf/OIyPbL4M5V7vp/qJCUxVo9cd55yMlItrKx+YTNpHgAAsF5+cZnGzd/gF2QkqdxTrXHzNyi/uMyiyhpGmAEAAJJOnlqa+sanjbaZ+sanOuENr/GsQZ1mWrx4cb3LHQ6H4uLi1Lt373rnjAEAAOFr9faDOnS0ptE2h47WaPX2gxrWp3MrVdW0oMLMqFGj5HA46lxpVLvM4XDokksu0ZtvvqmOHTuGpFAAANCyinYcCLhdOIWZoE4zFRQUaMiQISooKJDb7Zbb7VZBQYGGDh3quy3BwYMH9etf/zrU9QIAgBYT6NVK4XVVU1BHZu677z7NmTNHF198sW/ZlVdeqbi4ON1999367LPP9Mc//lG//OUvQ1YoAABoWZm9OulPK7YF1C6cBHVkZvv27fXOxpeYmKgdO3ZIkvr06aMDBwI7XAUAAKx30dmd1CGh4Zs5S1LHhGhddHYbCDODBw/WlClTtH//ft+y/fv364EHHtCQIUMkSVu3blVaWlpoqgQAAC0uMsKhWTf0b7RN3g39w27yvKDCzIsvvqjS0lJ169ZNvXv3Vu/evdWtWzft3LlTf/3rXyVJR44c0UMPPRTSYgEAQMvKyUjV86MHKSUxzm95qitOz48eFJaT5gV9o0mv16t3331XX375pSTpnHPO0ciRIxUREV5T13CjSQAAms/q2xk05/vb0rtmtwbCDAAA9tMqd82urKxUYWGhdu3apWPHjvmtu/fee4PdLAAAQLMEFWY2btyoq6++WkePHlVlZaWSkpJ04MABJSQkKDk5mTADAABaTVADXCZPnqxrr71W3377reLj47V69Wp99dVXGjx4sJ5++ulQ1wgAANCgoMLMpk2b9Ktf/UoRERGKjIxUdXW10tLS9OSTT2r69OmhrhEAAKBBQYWZ6Oho31VLycnJ2rVrlyTJ5XJp9+7doasOAACgCUGNmRk4cKA+/vhj9enTR5dddpkefvhhHThwQH/729+UkZER6hoBAAAaFNSRmZkzZyo19eSkOb///e/VsWNHjR8/Xvv379ecOXNCWiAAAEBjmGcGAACEneZ8f4fXdL0AAADNFNSYmYMHD+rhhx/WihUrtG/fPnm9Xr/1FRUVISkOAACgKUGFmdtvv13btm3T2LFj1aVLFzkc4XX3TAAAcOYIKsx8+OGHWrVqlQYMGBDqegAAAJolqDEzffv21XfffRfqWgAAQBg4XFWjnlPfUs+pb+mDkn064Q3va4WCCjPPPfecfvOb36iwsFAHDx6Ux+PxewAAAHvKLy7TiGcKfc/HzP1YlzyxXPnFZRZW1bigTjN16NBBHo9HV1xxhd9yY4wcDodOnDgRkuIAAEDryS8u0/j5G/TD4zDl7iqNn79Bs0cPUk5GqiW1NSaoMHPbbbcpOjpaCxYsYAAwAABtwAmv0aNLttQJMpJkJDkkPbpki0b2S1FkRHh97wcVZoqLi7Vx40adc845oa4HAABYYG1phcrcVQ2uN5LK3FVaW1qhzF6dWq+wAAQ1ZuaCCy7ghpIAALQh+w43HGSCadeagjoyM3HiRN13332aMmWK+vfvr+joaL/1559/fkiKAwAArSPZGRfSdq0pqDBz8803S5J++ctf+pY5HA4GAAMAYFMXpicp1RWncndVveNmHJJSXHG6MD2ptUtrUlBhprS0NNR1AAAAC0VGODTj2n4aP3+DHJJfoKkd7jvj2n5hN/hXCjLM9OjRI6B211xzjf76178qNTX8LuMCAAD+cjJSNXv0IM1Y/Jn2eqp9y1NccZpxbb+wvCxbCjLMBGrlypXMFAwAgI3kZKRqZL8UrS2t0L7DVUp2njy1FI5HZGq1aJgBAAD2ExnhCLvLrxsT1KXZAAAA4YIwAwAAbI0wAwAAbI0wAwAAbK1Fw8z06dOVlBR+k+sAAIC2w2GMqW+ivzoWL14c8Eavu+66gNrl5eXpjTfe0BdffKH4+HhdfPHFeuKJJ/xuYHnPPffovffe0549e9S+fXtfm759+wb0Gh6PRy6XS263W4mJiQG/BwAAYJ3mfH8HHGYiIvwP4tTevuDU57UCvZ1BTk6O/v3f/11DhgzR8ePHNX36dBUXF2vLli1q166dJGnOnDnq27evunfvroqKCj3yyCPatGmTSktLFRkZ2eRrEGYAALCfFgkzp3rvvff04IMPaubMmcrMzJQkFRUV6aGHHtLMmTM1cuTIoArfv3+/kpOTVVhYqKysrHrbbN68WQMGDNC2bdvUq1evJrdJmAEAwH6a8/0d1KR5kyZN0vPPP69LLrnEt+yqq65SQkKC7r77bn3++efBbFZut1uSGhxnU1lZqblz5yo9PV1paWn1tqmurlZ19fdTMHs8nqBqAQAA9hDUAODt27erQ4cOdZa7XC7t3LkzqEK8Xq8mTZqkYcOGKSMjw2/dc889p/bt26t9+/ZatmyZCgoKFBMTU+928vLy5HK5fI+GQg8AAGgbgjrNlJWVpbi4OP3tb39Tly5dJEl79+7VHXfcoaqqKhUWFja7kPHjx2vZsmVatWqVunXr5rfO7XZr3759Kisr09NPP61vvvlGH330keLi4upsp74jM2lpaZxmAgDARlp8zMy2bdt0/fXX68svv/Qd+di9e7f69OmjN998U717927W9iZMmKBFixZp5cqVSk9Pb7TtsWPH1LFjR/31r3/VLbfc0uS2GTMDAID9tPiYmd69e2vz5s0qKCjQF198IUk699xzNWLECL+rmppijNHEiRO1cOFCffDBB00Gmdr/Y4zxO/oCAADOXEHfNdvhcCg7O1tZWVmKjY1tVoiplZubqwULFmjRokVyOp0qLy+XdHLsTXx8vHbs2KHXXntN2dnZOuuss/T1119r1qxZio+P19VXXx1s6QAAoA0JagCw1+vV448/rh/96Edq3769SktLJUm//e1v9eKLLwa8ndmzZ8vtdmv48OFKTU31PV577TVJUlxcnD788ENdffXV6t27t26++WY5nU7961//UnJycjClAwCANiaoIzO/+93v9NJLL+nJJ5/UXXfd5VuekZGhP/7xjxo7dmxA22lquE7Xrl319ttvB1MiAAA4QwR1ZObll1/WnDlzdNttt/nNwjtgwADfGBoAAIDWEFSY+eabb+q9Ysnr9aqmpua0iwIAAAhUUGGmX79++vDDD+ss/8c//qGBAweedlEAAACBCmrMzMMPP6xf/OIX+uabb+T1evXGG2+opKREL7/8spYuXRrqGgEAQCs44TVaW1qhfYerlOyM04XpSYqMaP7Vyq0tqEnzJOnDDz/UY489pk8++URHjhzRoEGD9PDDDys7OzvUNZ4WJs0DAKBp+cVlenTJFpW5q3zLUl1xmnFtP+VkpLZ6PS0+A7CdEGYAAGhcfnGZxs/foB8GgtpjMrNHD2r1QNOc7++gxsx8/PHHWrNmTZ3la9as0bp164LZJAAAsMAJr9GjS7bUCTKSfMseXbJFJ7zhe+wjqDCTm5ur3bt311n+zTffKDc397SLAgAArWNtaYXfqaUfMpLK3FVaW1rRekU1U1BhZsuWLRo0aFCd5QMHDtSWLVtOuygAANA69h1uOMgE084KQYWZ2NhY7d27t87ysrIyRUUFfbsnAADQypKdcSFtZ4Wgwkx2dramTZsmt9vtW3bo0CFNnz5dI0eODFlxAACgZV2YnqRUV5waugDboZNXNV2YntSaZTVLUGHm6aef1u7du9WjRw9dfvnluvzyy5Wenq7y8nL94Q9/CHWNAACghURGODTj2n6SVCfQ1D6fcW2/sJ5vJuhLsysrK/XKK6/ok08+UXx8vM4//3zdcsstio6ODnWNp4VLswEAaBrzzIQxwgwAAIEJpxmAm/P9HdRo3ZdffrnR9XfccUcwmwUAABaKjHAos1cnq8totqCOzHTs2NHveU1NjY4ePaqYmBglJCSooiJ8rkXnyAwAAPbT4jMAf/vtt36PI0eOqKSkRJdccon+/ve/B1U0AABAMIIKM/Xp06ePZs2apfvuuy9UmwQAAGhSyMKMJEVFRWnPnj2h3CQAAECjghoAvHjxYr/nxhiVlZXpT3/6k4YNGxaSwgAAAAIRVJgZNWqU33OHw6GzzjpLV1xxBZPmAQCAVhVUmPF6vaGuAwAAICghHTMDAADQ2gI+MnP//fcHvNFnnnkmqGIAAACaK+Aws3HjRr/nGzZs0PHjx3XOOedIkr788ktFRkZq8ODBoa0QAACgEQGHmRUrVvj+/cwzz8jpdOqll17yzQb87bff6s4779Sll14a+ioBAAAaENTtDH70ox/p3Xff1Xnnnee3vLi4WNnZ2WE11wy3MwAAwH5a/HYGHo9H+/fvr7N8//79Onz4cDCbBAAACEpQYeb666/XnXfeqTfeeENff/21vv76a/3zn//U2LFjdcMNN4S6RgAAgAYFNc/M888/r1//+te69dZbVVNTc3JDUVEaO3asnnrqqZAWCAAA0JigxszUqqys1Pbt2yVJvXr1Urt27UJWWKgwZgYAAPtp8TEztcrKylRWVqY+ffqoXbt2Oo1cBAAAEJSgwszBgwd15ZVX6sc//rGuvvpqlZWVSZLGjh2rX/3qVyEtEAAAoDFBhZnJkycrOjpau3btUkJCgm/5zTffrPz8/JAVBwAA0JSgBgC/++67euedd9StWze/5X369NFXX30VksIAAAACEdSRmcrKSr8jMrUqKioUGxt72kUBAAAEKqgwc+mll+rll1/2PXc4HPJ6vXryySd1+eWXh6w4AACApgR1mumpp57SFVdcoXXr1unYsWN64IEH9Nlnn6miokIfffRRqGsEAABoULPDTE1Nje69914tWbJEBQUFcjqdOnLkiG644Qbl5uYqNTW1JeoEAACoV7PDTHR0tDZv3qyOHTvqN7/5TUvUBAAAELCgxsyMHj1aL774YqhrAQAAaLagxswcP35c//M//6P33ntPgwcPrnMbg2eeeSYkxQEAADQlqCMzxcXFGjRokJxOp7788ktt3LjR99i0aVPA28nLy9OQIUPkdDqVnJysUaNGqaSkpN62xhj99Kc/lcPh0JtvvhlM2QAAoA0K6sjMihUrQvLihYWFys3N1ZAhQ3T8+HFNnz5d2dnZ2rJlS52jPX/84x/lcDhC8roAAKDtCCrMhMoPb30wb948JScna/369crKyvIt37Rpk/7whz9o3bp1XC0FAAD8WBpmfsjtdkuSkpKSfMuOHj2qW2+9VX/+85+VkpLS5Daqq6tVXV3te+7xeEJfKAAACBtBjZlpCV6vV5MmTdKwYcOUkZHhWz558mRdfPHF+tnPfhbQdvLy8uRyuXyPtLS0lioZAACEgbA5MpObm6vi4mKtWrXKt2zx4sVavny5Nm7cGPB2pk2bpvvvv9/33OPxEGgAAGjDwuLIzIQJE7R06VKtWLHC707cy5cv1/bt29WhQwdFRUUpKupk9rrxxhs1fPjwercVGxurxMREvwcAAGi7HMYYY9WLG2M0ceJELVy4UB988IH69Onjt768vFwHDhzwW9a/f3/913/9l6699lqlp6c3+Roej0cul0tut5tgAwCATTTn+9vS00y5ublasGCBFi1aJKfTqfLyckmSy+VSfHy8UlJS6h30271794CCDAAAaPssPc00e/Zsud1uDR8+XKmpqb7Ha6+9ZmVZAADARiw9MhPMGS4Lz4oBAIAwFBYDgAEAAIJFmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEA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+Mc/rCwdAACECUvDzOzZsyVJw4cP91s+d+5cjRkzRpI0adIkVVVVafLkyaqoqNCAAQNUUFCgXr16tXK1AAAgHFkaZgIdezx16lRNnTq1hasBAAB2FDaXZgMAAASDMAMAAGyNMAMAAGwtLOaZAdqyzu3jtHPWNVaXAQBtFkdmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArUVZXUBLM8ZIkjwej8WVAACAQNV+b9d+jzemzYeZw4cPS5LS0tIsrgQAADTX4cOH5XK5Gm3jMIFEHhvzer3as2ePnE6nHA6H1eW0OI/Ho7S0NO3evVuJiYlWl2Mp+sIf/fE9+sIf/eGP/vielX1hjNHhw4fVtWtXRUQ0PiqmzR+ZiYiIULdu3awuo9UlJiae8X+EtegLf/TH9+gLf/SHP/rje1b1RVNHZGoxABgAANgaYQYAANgaYaaNiY2N1YwZMxQbG2t1KZajL/zRH9+jL/zRH/7oj+/ZpS/a/ABgAADQtnFkBgAA2BphBgAA2BphBgAA2BphBgAA2BphJgx88803Gj16tDp16qT4+Hj1799f69at8603xujhhx9Wamqq4uPjNWLECG3dutVvGz179pTD4fB7zJo1y6/N5s2bdemllyouLk5paWl68skn69Ty+uuvq2/fvoqLi1P//v319ttvt8ybbkBTffHGG28oOztbnTp1ksPh0KZNm+pso6qqSrm5uerUqZPat2+vG2+8UXv37vVrs2vXLl1zzTVKSEhQcnKypkyZouPHj/u1+eCDDzRo0CDFxsaqd+/emjdvXku85UaFoj+GDx9e57Mxbtw4vzZtoT9qamr04IMPqn///mrXrp26du2qO+64Q3v27PHbRkVFhW677TYlJiaqQ4cOGjt2rI4cOeLXxu5/K4H2RVvZb0hN/6088sgj6tu3r9q1a6eOHTtqxIgRWrNmjd82zoTPhhRYX9jus2FgqYqKCtOjRw8zZswYs2bNGrNjxw7zzjvvmG3btvnazJo1y7hcLvPmm2+aTz75xFx33XUmPT3dfPfdd742PXr0MI899pgpKyvzPY4cOeJb73a7TZcuXcxtt91miouLzd///ncTHx9v/vKXv/jafPTRRyYyMtI8+eSTZsuWLeahhx4y0dHR5tNPPw2bvnj55ZfNo48+al544QUjyWzcuLHOdsaNG2fS0tLM+++/b9atW2cuuugic/HFF/vWHz9+3GRkZJgRI0aYjRs3mrffftt07tzZTJs2zddmx44dJiEhwdx///1my5Yt5r//+79NZGSkyc/Pb9E+OFWo+uOyyy4zd911l99nw+12+9a3lf44dOiQGTFihHnttdfMF198YYqKisyFF15oBg8e7LednJwcM2DAALN69Wrz4Ycfmt69e5tbbrnFt74t/K0E2hdtYb9hTGB/K6+88oopKCgw27dvN8XFxWbs2LEmMTHR7Nu3z9fmTPhsBNoXdvtsEGYs9uCDD5pLLrmkwfVer9ekpKSYp556yrfs0KFDJjY21vz973/3LevRo4d59tlnG9zOc889Zzp27Giqq6v9Xvucc87xPb/pppvMNddc4/f/hg4dau65557mvKWgNdUXpyotLa33y/vQoUMmOjravP76675ln3/+uZFkioqKjDHGvP322yYiIsKUl5f72syePdskJib6+ueBBx4w5513nt+2b775ZnPVVVcF89aCEor+MOZkmLnvvvsa/L9tsT9qrV271kgyX331lTHGmC1bthhJ5uOPP/a1WbZsmXE4HOabb74xxrS9v5VaP+wLY9rGfqO2pub2h9vtNpLMe++9Z4w5sz8bP+wLY+z32eA0k8UWL16sCy64QD//+c+VnJysgQMH6oUXXvCtLy0tVXl5uUaMGOFb5nK5NHToUBUVFflta9asWerUqZMGDhyop556yu80QVFRkbKyshQTE+NbdtVVV6mkpETffvutr82pr1Pb5oev01Ka6otArF+/XjU1NX7vo2/fvurevbvvfRQVFal///7q0qWLr81VV10lj8ejzz77zNfGyr6QQtMftV555RV17txZGRkZmjZtmo4ePepb15b7w+12y+FwqEOHDpJOvo8OHTroggsu8LUZMWKEIiIifIfZ2+rfyg/7opbd9xtS8/vj2LFjmjNnjlwulwYMGCDpzP1s1NcXtez02SDMWGzHjh2aPXu2+vTpo3feeUfjx4/Xvffeq5deekmSVF5eLkl+XzS1z2vXSdK9996rV199VStWrNA999yjmTNn6oEHHvCtLy8vr3cbp75GQ21OfZ2W1FRfBKK8vFwxMTF1dtinvo/T6QuPx6PvvvuuuW8tKKHoD0m69dZbNX/+fK1YsULTpk3T3/72N40ePdq3vq32R1VVlR588EHdcsstvhvklZeXKzk52a9dVFSUkpKSQvL5CNe/lfr6Qmob+w0p8P5YunSp2rdvr7i4OD377LMqKChQ586dfe/jTPpsNNYXkv0+G23+rtnhzuv16oILLtDMmTMlSQMHDlRxcbGef/55/eIXvwh4O/fff7/v3+eff75iYmJ0zz33KC8vL+ynoa4Vqr5oK0LVH3fffbfv3/3791dqaqquvPJKbd++Xb169Qp53S2lOf1RU1Ojm266ScYYzZ4924pyW1So+qIt7DekwPvj8ssv16ZNm3TgwAG98MILuummm7RmzZo6IcbOQtUXdvtscGTGYqmpqerXr5/fsnPPPVe7du2SJKWkpEhSnatx9u7d61tXn6FDh+r48ePauXOnbzv1bePU12ioTWOvE0pN9UUgUlJSdOzYMR06dMhv+anv43T6IjExUfHx8QHXczpC0R/1GTp0qCRp27Ztktpef9R+eX/11VcqKCjwOxKRkpKiffv2+bU/fvy4KioqQvL5CLe/lcb6oj523G9IgfdHu3bt1Lt3b1100UV68cUXFRUVpRdffFHSmffZaKwv6hPunw3CjMWGDRumkpISv2VffvmlevToIUlKT09XSkqK3n//fd96j8ejNWvWKDMzs8Htbtq0SREREb6UnZmZqZUrV6qmpsbXpqCgQOecc446duzoa3Pq69S2aex1QqmpvgjE4MGDFR0d7fc+SkpKtGvXLt/7yMzM1Keffuq346rd0dfuBKzuCyk0/VGf2su3U1NTJbWt/qj98t66davee+89derUya99ZmamDh06pPXr1/uWLV++XF6v1xfy2srfSlN9UR877jek4P9WvF6vqqurJZ1Zn436nNoX9Qn7z0bIhxSjWdauXWuioqLM73//e7N161bzyiuvmISEBDN//nxfm1mzZpkOHTqYRYsWmc2bN5uf/exnfpdm/+tf/zLPPvus2bRpk9m+fbuZP3++Oeuss8wdd9zh28ahQ4dMly5dzO23326Ki4vNq6++ahISEupcRhcVFWWefvpp8/nnn5sZM2a06iWFgfTFwYMHzcaNG81bb71lJJlXX33VbNy40ZSVlfnajBs3znTv3t0sX77crFu3zmRmZprMzEzf+tpLkbOzs82mTZtMfn6+Oeuss+q9FHnKlCnm888/N3/+859b/VLkUPTHtm3bzGOPPWbWrVtnSktLzaJFi8zZZ59tsrKy2lx/HDt2zFx33XWmW7duZtOmTX6XlJ56xUVOTo4ZOHCgWbNmjVm1apXp06eP3+W3beFvJZC+aCv7jUD648iRI2batGmmqKjI7Ny506xbt87ceeedJjY21hQXF/u2cyZ8NgLpCzt+NggzYWDJkiUmIyPDxMbGmr59+5o5c+b4rfd6vea3v/2t6dKli4mNjTVXXnmlKSkp8a1fv369GTp0qHG5XCYuLs6ce+65ZubMmaaqqspvO5988om55JJLTGxsrPnRj35kZs2aVaeW//3f/zU//vGPTUxMjDnvvPPMW2+91TJvugFN9cXcuXONpDqPGTNm+Np899135j//8z9Nx44dTUJCgrn++uv9wo4xxuzcudP89Kc/NfHx8aZz587mV7/6lampqfFrs2LFCvOTn/zExMTEmLPPPtvMnTu3pd52g063P3bt2mWysrJMUlKSiY2NNb179zZTpkzxm2fGmLbRH7WXp9f3WLFiha/dwYMHzS233GLat29vEhMTzZ133mkOHz7s9zp2/1sJpC/a0n7DmMb747vvvjPXX3+96dq1q4mJiTGpqanmuuuuM2vXrvXbxpnw2QikL+z42XAYY0zoj/cAAAC0DsbMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMALC1nTt3yuFw+O45VZ8PPvhADoejzg1IAbQNUVYXAACnIy0tTWVlZercubPVpQCwCGEGgK1FRkYqJSXF6jIAWIjTTADCyvDhwzVx4kRNmjRJHTt2VJcuXfTCCy+osrJSd955p5xOp3r37q1ly5ZJqv8009tvv60f//jHio+P1+WXX66dO3da82YAtArCDICw89JLL6lz585au3atJk6cqPHjx+vnP/+5Lr74Ym3YsEHZ2dm6/fbbdfTo0Tr/d/fu3brhhht07bXXatOmTfqP//gPTZ061YJ3AaC1cNdsAGFl+PDhOnHihD788ENJ0okTJ+RyuXTDDTfo5ZdfliSVl5crNTVVRUVFSklJUXp6ujZu3Kif/OQnmj59uhYtWqTPPvvMt82pU6fqiSee0LfffqsOHTpY8bYAtCCOzAAIO+eff77v35GRkerUqZP69+/vW9alSxdJ0r59++r8388//1xDhw71W5aZmdlClQIIB4QZAGEnOjra77nD4fBb5nA4JEler7dV6wIQnggzANqUc889V2vXrvVbtnr1aouqAdAaCDMA2pRx48Zp69atmjJlikpKSrRgwQLNmzfP6rIAtCDCDIA2pXv37vrnP/+pN998UwMGDNDzzz+vmTNnWl0WgBbE1UwAbK2kpER9+/bV1q1b1bt3b6vLAWABjswAsK2Kigr94x//UGJiotLS0qwuB4BFuJ0BANsaO3as1q9fr9mzZys2NtbqcgBYhNNMAADA1jjNBAAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbO3/AwATy6yYDWegAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot the observations\n", + "x_plot = \"mjd\"\n", + "y_plot = \"reduced_mag\"\n", + "\n", + "x = getattr(planetoid.Observations, x_plot)\n", + "y = getattr(planetoid.Observations,y_plot)\n", + "xerr = planetoid.Observations.magErr\n", + "\n", + "fig = plt.figure()\n", + "gs = gridspec.GridSpec(1, 1)\n", + "ax1 = plt.subplot(gs[0,0])\n", + "\n", + "ax1.errorbar(x,y,xerr, fmt = \"o\")\n", + "\n", + "ax1.invert_yaxis()\n", + "ax1.set_xlabel(x_plot)\n", + "ax1.set_ylabel(y_plot)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "de462b92-3914-4091-b0af-bddd9e9c1ef1", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:14.954181Z", + "iopub.status.busy": "2024-02-29T16:09:14.953935Z", + "iopub.status.idle": "2024-02-29T16:09:14.957556Z", + "shell.execute_reply": "2024-02-29T16:09:14.956913Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.954159Z" + } + }, + "outputs": [], + "source": [ + "# do a different phase curve fit to the data\n", + "# adler should be able to fit different models, and perform more sophisticated fits" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "f92891c9-6ccf-4dac-8887-9545f633ba90", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:14.963464Z", + "iopub.status.busy": "2024-02-29T16:09:14.958584Z", + "iopub.status.idle": "2024-02-29T16:09:14.975015Z", + "shell.execute_reply": "2024-02-29T16:09:14.974187Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.963434Z" + } + }, + "outputs": [], + "source": [ + "pc_fit = PhaseCurve(abs_mag = pc.abs_mag,\n", + " model_name = \"HG\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "db24432b-6d05-4ff2-9d98-e52d8c2e4342", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:14.976283Z", + "iopub.status.busy": "2024-02-29T16:09:14.975943Z", + "iopub.status.idle": "2024-02-29T16:09:14.992854Z", + "shell.execute_reply": "2024-02-29T16:09:14.992071Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.976260Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pc_fit.model_function" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "9039e2e2-27d9-4d21-b2f6-9504a5b85ce4", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:14.994511Z", + "iopub.status.busy": "2024-02-29T16:09:14.993863Z", + "iopub.status.idle": "2024-02-29T16:09:15.023285Z", + "shell.execute_reply": "2024-02-29T16:09:15.022583Z", + "shell.execute_reply.started": "2024-02-29T16:09:14.994486Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pc_fit.FitModel(phase_angle = planetoid.Observations.phaseAngle * u.deg,\n", + " reduced_mag = planetoid.Observations.reduced_mag * u.mag,\n", + " mag_err = planetoid.Observations.magErr * u.mag)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "5d4b7144-ee72-45e0-9606-c40f83c443c6", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:15.024555Z", + "iopub.status.busy": "2024-02-29T16:09:15.024229Z", + "iopub.status.idle": "2024-02-29T16:09:15.217263Z", + "shell.execute_reply": "2024-02-29T16:09:15.216519Z", + "shell.execute_reply.started": "2024-02-29T16:09:15.024533Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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0qVLNqw8/z3wwANGuXLljIULFxqRkZHG3LlzjVKlShnPPvus9ZzidG/i4+ONv/76y/jrr78MwHj33XeNv/76yzojJyf3IiwszGjUqJGxadMmY+3atUa1atWM/v372+or5Znr3ZuUlBSjZ8+eRvny5Y3t27dn+vs5OTnZeo2idG8UZnLpww8/NCpUqGC4uLgYzZo1MzZu3GjrkgockOVj2rRp1nMuXbpkPPHEE0aJEiUMDw8P4+677zaioqJsV7QNXR1mivO9+eWXX4y6desarq6uRs2aNY3PPvss0+tms9kYN26cUaZMGcPV1dXo1KmTsX//fhtVW3Di4uKMp556yqhQoYLh5uZmVK5c2fjf//6X6QdQcbo3K1euzPLvmAceeMAwjJzdi7Nnzxr9+/c3vLy8DB8fH2PIkCFGfHy8Db5N3rrevYmMjMz27+eVK1dar1GU7o3JMK5YWlJERETEzmjMjIiIiNg1hRkRERGxawozIiIiYtcUZkRERMSuKcyIiIiIXVOYEREREbumMCMiIiJ2TWFGRERE7JrCjIjcskqVKjF58mRbl1Fg2rdvz4gRI2xdhoj8R2FGRIqU77//HkdHR8LDw21diogUEIUZESlSvvzyS5599lm+//57kpKSbF2OiBQAhRkRuaH27dsTERFBREQEvr6+lCpVinHjxnHl1m6JiYk89NBDeHt7U6FCBT777LNM1xgzZgzVq1fHw8ODypUrM27cOFJTU62v79ixgw4dOuDt7Y2Pjw9NmjThzz//tL6+du1a2rRpg7u7O8HBwQwfPpyEhIRMnxEZGcn69et57rnnqF69OnPnzs30+vTp0/Hz8+O3336jVq1aeHl5ERYWRlRUlPWctLQ0hg8fjp+fHyVLlmTMmDE88MAD9OrVK9v7k5yczDPPPEO5cuXw9PSkefPmrFq16mZusYjcAoUZEcmRr7/+GicnJzZv3sz777/Pu+++yxdffGF9/Z133qFp06b89ddfPPHEEwwbNoz9+/dbX/f29mb69Ons3buX999/n88//5z33nvP+vrAgQMpX748W7ZsYevWrTz33HM4OzsDcPjwYcLCwujTpw87d+5k9uzZrF27loiIiEw1Tps2jR49euDr68ugQYP48ssvr/keiYmJvP3223z77besWbOGY8eO8cwzz1hfnzRpEt999x3Tpk1j3bp1xMXF8fPPP1/33kRERLBhwwZmzZrFzp07ueeeewgLC+PgwYM3dY9FJJdsvGu3iNiBdu3aGbVq1TLMZrP12JgxY4xatWoZhmEYFStWNAYNGmR9zWw2GwEBAcaUKVOyveZbb71lNGnSxPrc29vbmD59epbnPvzww8Zjjz2W6dgff/xhODg4GJcuXTIMwzDS09ON4OBg4+effzYMwzBOnz5tuLi4GEeOHLG+Z9q0aQZgHDp0yHrs448/NsqUKWN9XqZMGeOtt96yPk9LSzMqVKhg3HXXXZnux1NPPWUYhmEcPXrUcHR0NE6cOJGpvk6dOhnPP/98tt9fRPKOWmZEJEduu+02TCaT9XmLFi04ePAg6enpANSvX9/6mslkIjAwkJiYGOux2bNn06pVKwIDA/Hy8uKFF17g2LFj1tdHjRrFI488QufOnXnjjTc4fPiw9bUdO3Ywffp0vLy8rI9u3bphNpuJjIwEYNmyZSQkJNC9e3cASpUqRZcuXfjqq68yfQ8PDw+qVKlifR4UFGStMzY2llOnTtGsWTPr646OjjRp0iTb+7Jr1y7S09OpXr16pvpWr16d6TuISP5xsnUBIlI0ZHQJZTCZTJjNZgA2bNjAwIEDeemll+jWrRu+vr7MmjWLd955x3r+hAkTGDBgAIsWLWLx4sWMHz+eWbNmcffdd3Px4kWGDh3K8OHDr/ncChUqAJaBv+fOncPd3d36mtlsZufOnbz00ks4ODhkW6dxxdifm3Xx4kUcHR3ZunUrjo6OmV7z8vLK9XVFJOcUZkQkRzZt2pTp+caNG6lWrdo1P8Czsn79eipWrMj//vc/67GjR49ec1716tWpXr06I0eOpH///kybNo27776bxo0bs3fvXqpWrZrl9c+ePcv8+fOZNWsWderUsR5PT0+ndevWLF26lLCwsBvW6evrS5kyZdiyZQtt27a1XmPbtm00bNgwy/c0atSI9PR0YmJiaNOmzQ0/Q0TynsKMiOTIsWPHGDVqFEOHDmXbtm18+OGHmVpWrqdatWocO3aMWbNmERoayqJFi5g3b5719UuXLjF69Gj69u1LSEgI//77L1u2bKFPnz6AZSbUbbfdRkREBI888gienp7s3buXZcuW8dFHH/Htt99SsmRJ7r333kxdYQDdu3fnyy+/zFGYAXjyySeZOHEiVatWpWbNmnz44YecP3/+mutmqF69OgMHDmTw4MG88847NGrUiNOnT7N8+XLq169Pjx49cvS5IpJ7CjMikiODBw/m0qVLNGvWDEdHR5566ikee+yxHL23Z8+ejBw5koiICJKTk+nRowfjxo1jwoQJgGVcytmzZxk8eDCnTp2iVKlS9O7dm5deegmwjMdZvXo1//vf/2jTpg2GYVClShXuu+8+AL766ivuvvvuLANHnz59uP/++zlz5kyOah0zZgzR0dEMHjwYR0dHHnvsMbp163bdFqhp06bx6quv8vTTT3PixAlKlSrFbbfdxh133JGjzxSRW2MybqWzWESKhfbt29OwYcNitWVBBrPZTK1atbj33nt55ZVXbF2OiGRBLTMiIlc4evQoS5cupV27diQnJ/PRRx8RGRnJgAEDbF2aiGRDU7NFRK7g4ODA9OnTCQ0NpVWrVuzatYvff/+dWrVq2bo0EcmGuplERETErqllRkREROyawoyIiIjYNYUZERERsWsKMyIiImLXFGZERETErinMiIiIiF1TmBERERG7pjAjIiIidu3/Iec8Vn6hm44AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# %matplotlib widget\n", + "\n", + "# plot the observations with the LSST phase curve\n", + "x_plot = \"phaseAngle\"\n", + "y_plot = \"reduced_mag\"\n", + "\n", + "x = getattr(planetoid.Observations, x_plot)\n", + "y = getattr(planetoid.Observations,y_plot)\n", + "xerr = planetoid.Observations.magErr\n", + "\n", + "fig = plt.figure()\n", + "gs = gridspec.GridSpec(1, 1)\n", + "ax1 = plt.subplot(gs[0,0])\n", + "\n", + "ax1.errorbar(x,y,xerr, fmt = \"o\")\n", + "\n", + "ax1.plot(alpha.value,pc.ReducedMag(alpha).value, label = pc.model_name)\n", + "ax1.plot(alpha.value,pc_fit.ReducedMag(alpha).value, label = pc_fit.model_name)\n", + "\n", + "ax1.invert_yaxis()\n", + "ax1.set_xlabel(x_plot)\n", + "ax1.set_ylabel(y_plot)\n", + "ax1.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "b7f39ed4-8334-4e10-a97c-a9471105225b", + "metadata": { + "execution": { + "iopub.execute_input": "2024-02-29T16:09:15.221317Z", + "iopub.status.busy": "2024-02-29T16:09:15.220742Z", + "iopub.status.idle": "2024-02-29T16:09:15.224414Z", + "shell.execute_reply": "2024-02-29T16:09:15.223697Z", + "shell.execute_reply.started": "2024-02-29T16:09:15.221290Z" + } + }, "outputs": [], - "source": [] + "source": [ + "# # now we would add our calculated values back into planetoid\n", + "# planetoid.AdlerSchema.r_H = pc_fit.abs_mag\n", + "# planetoid.AdlerSchema.r_G = pc_fit.phase_param" + ] } ], "metadata": { From 647818a6974a8358d065538e7fa706c072e931fc Mon Sep 17 00:00:00 2001 From: jrob93 Date: Mon, 18 Mar 2024 16:18:02 +0000 Subject: [PATCH 5/9] black reformat --- src/adler/science/PhaseCurve.py | 127 +++++++++++++++++++++++--------- 1 file changed, 92 insertions(+), 35 deletions(-) diff --git a/src/adler/science/PhaseCurve.py b/src/adler/science/PhaseCurve.py index e9f356c..cbc328a 100644 --- a/src/adler/science/PhaseCurve.py +++ b/src/adler/science/PhaseCurve.py @@ -4,27 +4,33 @@ class PhaseCurve: - """ - Class to define the phasecurve model and associated functions - + """A class to define the phasecurve model and associated functions. Units - by default no units are set but astropy units can be passed. - It is up to the user to ensure that units are correct for the relevant phasecurve model - """ + It is up to the user to ensure that units are correct for the relevant phasecurve model. - def __init__(self, abs_mag=18, phase_param=0.2, phase_param2=None, model_name="HG"): - """ - abs_mag - absolute magnitude, H, of the phasecurve model (often units of mag) - phase_param - the first phase parameter of the phasecurve model, e.g. G from HG - (often dimensionless units unless S from LinearPhaseFunc, which has units mag/deg or mag/rad) - phase_param2 - the second phase parameter, only used for the 3 parameter HG1G2 phasecurve model - model_name - the phasecurve model to be used + Attibutes + ----------- + abs_mag : float + Absolute magnitude, H, of the phasecurve model (often units of mag). - """ + phase_param: float + The first phase parameter of the phasecurve model, e.g. G from HG + (often dimensionless units unless S from LinearPhaseFunc, which has units mag/deg or mag/rad). + + phase_param2: float + The second phase parameter, only used for the 3 parameter HG1G2 phasecurve model. + + model_name: str + Label for the phasecurve model to be used. + Choice of: "HG", "HG1G2", "HG12", "HG12_Pen16", "LinearPhaseFunc" + + """ + def __init__(self, abs_mag=18, phase_param=0.2, phase_param2=None, model_name="HG"): self.abs_mag = abs_mag self.phase_param = phase_param - self.phase_param2 = phase_param2 # second phase parameter, G2, when required for the HG1G2 model - self.model_name = model_name # ["HG", "HG1G2", "HG12", "HG12_Pen16", "LinearPhaseFunc"] + self.phase_param2 = phase_param2 + self.model_name = model_name if model_name == "HG": self.model_function = HG(H=abs_mag, G=self.phase_param) @@ -39,20 +45,34 @@ def __init__(self, abs_mag=18, phase_param=0.2, phase_param2=None, model_name="H else: print("no model selected") - # print(self.model_function.parameters) - def ReturnModelDict(self): - """ - Return the values for the PhaseCurve class as a dict + """Return the values for the PhaseCurve class as a dict + + Returns + ---------- + + self.__dict__ : dict + The dict of PhaseCurve object parameters. + """ return self.__dict__ def InitModelDict(self, model_dict): - """ - Set up a new PhaseCurve model object from a dictionary + """Set up a new PhaseCurve model object from a dictionary. + This could be written by the user or generated from another PhaseCurve object using ReturnModelDict + + Parameters + ----------- + model_dict : dict + Dictionary containing the PhaseCurve parameters you wish to set, e.g. abs_mag, phase_param + + Returns + ---------- + + model : object + The new PhaseCurve class object - model_dict - dictionary containing relevant PhaseCurve parameters """ model = PhaseCurve() @@ -61,13 +81,21 @@ def InitModelDict(self, model_dict): return model def InitModelSbpy(self, model_sbpy): - """ - Set up a new PhaseCurve model object from an existing sbpy model + """Set up a new PhaseCurve model object from an existing sbpy model ### or create dict from sbpy model and then use InitModelDict? - model_sbpy - """ + Parameters + ----------- + model_sbpy : object + The sbpy model object, e.g. HG() + + Returns + ---------- + + model : object + The new PhaseCurve class object + """ # get model name from the sbpy model object model_name = model_sbpy.__class__.name @@ -89,26 +117,55 @@ def InitModelSbpy(self, model_sbpy): return model def ReducedMag(self, phase_angle): - """ - Return the reduced magnitude of the phasecurve model for a given phase angle(s) + """Return the reduced magnitude of the phasecurve model for a given phase angle(s) phase_angle - value or array, must have astropy units of degrees + + Parameters + ----------- + phase_angle : float or array + value or array of phase angles at which to evaluate the phasecurve model, must have astropy units of degrees. + + Returns + ---------- + + return_value : float or array + The phasecurve model reduced magnitude at the given phase angle(s) + """ - ### add check to require phase angle units of deg - # return self.model_function.evaluate(phase_angle,*self.model_function.parameters) return self.model_function(phase_angle) def FitModel(self, phase_angle, reduced_mag, mag_err=None, fitter=None): - """ - Fit the phasecurve model parameters to observations - starts with a phase curve model as an initial guess for parameters - fits model to phase angle and reduced magnitude + """Fit the phasecurve model parameters to observations. + starts with a phase curve model as an initial guess for parameters. + fits model to phase angle and reduced magnitude. phase_angle - phase angle of each observations reduced_mag - distance corrected reduced magnitudes mag_err - photometric uncertainties to weight the measurements fitter - can pass a fitting function from astropy.modeling.fitting, defaults to astropy.modeling.fitting.LevMarLSQFitter + + Parameters + ----------- + phase_angle : float or array + The Sun-object-observer phase angles of the observations. + + reduced_mag : float or array + The observed reduced magnitudes at the corresponding phase angles. + + mag_err : float or array + Uncertainty on the reduced magnitude, used to weight the fit. + + fitter : object + Select a fitting function from astropy.modeling.fitting, defaults to astropy.modeling.fitting.LevMarLSQFitter + + Returns + ---------- + + return_value : float or array + The phasecurve model reduced magnitude at the given phase angle(s) + """ # use the LevMarLSQFitter by default @@ -121,7 +178,7 @@ def FitModel(self, phase_angle, reduced_mag, mag_err=None, fitter=None): else: # unweighted fit model_fit = fitter(self.model_function, phase_angle, reduced_mag) - ### if overwrite_model: + ### if overwrite_model: # add an overwrite option? # redo __init__ with the new fitted parameters return model_fit From 07a2de4ea4246271dc555dfccf03856677f7103e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 16:25:29 +0000 Subject: [PATCH 6/9] [pre-commit.ci lite] apply automatic fixes --- notebooks/adler_examples.ipynb | 395 +++------------------------------ 1 file changed, 37 insertions(+), 358 deletions(-) diff --git a/notebooks/adler_examples.ipynb b/notebooks/adler_examples.ipynb index 602efff..06bd39c 100644 --- a/notebooks/adler_examples.ipynb +++ b/notebooks/adler_examples.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "d591f5d8-9148-46ff-a62b-0f2a29eb806c", "metadata": { "execution": { @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "645efb98-567d-481e-a79c-b1cfdc828726", "metadata": { "execution": { @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "10b36aab-b322-49b8-8ff3-49bef68d7416", "metadata": { "execution": { @@ -56,16 +56,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:13.072275Z" } }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/jrob/adler/src/adler/dataclasses/DataSchema.py:34: UserWarning: Warning: converting a masked element to nan.\n", - " return float(self.data_table[column_name][0])\n" - ] - } - ], + "outputs": [], "source": [ "# retrieve the object data via adler\n", "planetoid = AdlerPlanetoid(ssoid)" @@ -73,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "d9a0623d-0dc7-49c1-99dd-a76ef970a3ff", "metadata": { "execution": { @@ -82,26 +73,9 @@ "iopub.status.idle": "2024-02-29T16:09:14.287399Z", "shell.execute_reply": "2024-02-29T16:09:14.286612Z", "shell.execute_reply.started": "2024-02-29T16:09:14.281511Z" - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'ssObjectId': '8268570668335894776',\n", - " 'sql_filename': None,\n", - " 'service': ,\n", - " 'Observations': ,\n", - " 'MPCORB': ,\n", - " 'SSObject': }" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" } - ], + }, + "outputs": [], "source": [ "# inspect the object\n", "planetoid.__dict__" @@ -109,7 +83,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "1d360360-025b-4a77-acf5-325b2f2d1873", "metadata": { "execution": { @@ -120,45 +94,14 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.290937Z" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'ssObjectId': '8268570668335894776',\n", - " 'sql_query': '\\n SELECT\\n discoverySubmissionDate, firstObservationDate, arc, numObs, \\n r_H, r_G12, r_Herr, r_G12err, r_nData,\\n maxExtendedness, minExtendedness, medianExtendedness\\n FROM\\n dp03_catalogs_10yr.SSObject\\n WHERE\\n ssObjectId = 8268570668335894776\\n ',\n", - " 'service': ,\n", - " 'data_table':
\n", - " discoverySubmissionDate firstObservationDate ... medianExtendedness\n", - " d d ... \n", - " float64 float64 ... float32 \n", - " ----------------------- -------------------- ... ------------------\n", - " 60218.0 60220.01958 ... 0.0,\n", - " 'discoverySubmissionDate': 60218.0,\n", - " 'firstObservationDate': 60220.01958,\n", - " 'arc': 3342.05859375,\n", - " 'numObs': 94,\n", - " 'r_H': 19.805892944335938,\n", - " 'r_G12': 1.52932608127594,\n", - " 'r_Herr': 0.01974303089082241,\n", - " 'r_G12Err': 0.05071713775396347,\n", - " 'r_nData': 38,\n", - " 'maxExtendedness': 0.0,\n", - " 'minExtendedness': 0.0,\n", - " 'medianExtendedness': 0.0}" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "planetoid.SSObject.__dict__" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "e0bcad0b-32ea-4c0f-b489-00d7491ff3b6", "metadata": { "execution": { @@ -167,113 +110,9 @@ "iopub.status.idle": "2024-02-29T16:09:14.333001Z", "shell.execute_reply": "2024-02-29T16:09:14.332167Z", "shell.execute_reply.started": "2024-02-29T16:09:14.308917Z" - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'ssObjectId': '8268570668335894776',\n", - " 'sql_query': \"\\n SELECT\\n ssObject.ssObjectId, mag, magErr, band, midpointMjdTai as mjd, ra, dec, phaseAngle,\\n topocentricDist, heliocentricDist\\n FROM\\n dp03_catalogs_10yr.ssObject\\n JOIN dp03_catalogs_10yr.diaSource ON dp03_catalogs_10yr.ssObject.ssObjectId = dp03_catalogs_10yr.diaSource.ssObjectId\\n JOIN dp03_catalogs_10yr.ssSource ON dp03_catalogs_10yr.diaSource.diaSourceId = dp03_catalogs_10yr.ssSource.diaSourceId\\n WHERE\\n ssObject.ssObjectId = 8268570668335894776 and band='r'\\n \",\n", - " 'service': ,\n", - " 'data_table':
\n", - " ssObjectId mag magErr ... topocentricDist heliocentricDist\n", - " ... AU AU \n", - " int64 float32 float32 ... float32 float32 \n", - " ------------------- ------- ------- ... --------------- ----------------\n", - " 8268570668335894776 23.522 0.163 ... 1.4200809 2.2182078\n", - " 8268570668335894776 23.933 0.351 ... 1.673502 1.8633804\n", - " 8268570668335894776 23.742 0.2 ... 1.8374033 1.9377198\n", - " 8268570668335894776 22.44 0.046 ... 1.0358349 1.7923788\n", - " 8268570668335894776 22.179 0.042 ... 0.8584717 1.5282809\n", - " 8268570668335894776 22.39 0.1 ... 0.9861143 1.6029718\n", - " 8268570668335894776 23.568 0.172 ... 1.5848765 1.9770172\n", - " 8268570668335894776 22.924 0.116 ... 1.2739334 1.6663356\n", - " 8268570668335894776 22.262 0.051 ... 0.99954176 1.7732488\n", - " ... ... ... ... ... ...\n", - " 8268570668335894776 22.248 0.046 ... 0.93472457 1.6602533\n", - " 8268570668335894776 22.445 0.098 ... 0.986064 1.6029434\n", - " 8268570668335894776 21.986 0.049 ... 0.6861022 1.2940885\n", - " 8268570668335894776 22.249 0.036 ... 0.96172243 1.7529303\n", - " 8268570668335894776 22.698 0.063 ... 1.0843298 1.7405357\n", - " 8268570668335894776 23.702 0.248 ... 1.5928001 2.5560288\n", - " 8268570668335894776 22.229 0.264 ... 0.20776999 0.8767123\n", - " 8268570668335894776 22.276 0.06 ... 0.95206416 1.66985\n", - " 8268570668335894776 23.068 0.211 ... 1.5636572 2.5446959\n", - " 8268570668335894776 22.143 0.057 ... 0.9247384 1.7326578,\n", - " 'mag': array([23.522, 23.933, 23.742, 22.44 , 22.179, 22.39 , 23.568, 22.924,\n", - " 22.262, 21.914, 22.094, 22.291, 24.242, 21.728, 22.168, 21.722,\n", - " 21.615, 21.759, 22.285, 21.789, 24.195, 22.049, 21.959, 23.702,\n", - " 22.662, 20.447, 22.177, 22.887, 22.248, 22.445, 21.986, 22.249,\n", - " 22.698, 23.702, 22.229, 22.276, 23.068, 22.143], dtype=float32),\n", - " 'magErr': array([0.163, 0.351, 0.2 , 0.046, 0.042, 0.1 , 0.172, 0.116, 0.051,\n", - " 0.095, 0.047, 0.082, 0.383, 0.038, 0.034, 0.034, 0.036, 0.07 ,\n", - " 0.054, 0.052, 0.17 , 0.283, 0.06 , 0.199, 0.083, 0.011, 0.316,\n", - " 0.182, 0.046, 0.098, 0.049, 0.036, 0.063, 0.248, 0.264, 0.06 ,\n", - " 0.211, 0.057], dtype=float32),\n", - " 'mjd': array([61052.13729, 63554.05676, 63562.05437, 60230.03315, 62415.05691,\n", - " 62422.06596, 61355.02232, 63534.03975, 60228.08066, 63492.00291,\n", - " 63502.00311, 61326.03134, 62095.28873, 62407.07445, 60224.07621,\n", - " 62407.09369, 62406.09011, 63479.0044 , 60228.0802 , 62412.12365,\n", - " 60264.01472, 61253.96744, 62414.13572, 61355.02277, 61329.00043,\n", - " 61294.15865, 61253.96433, 62125.2233 , 61322.07319, 62422.06327,\n", - " 63500.06856, 60226.02382, 61330.01524, 63217.23761, 61253.97055,\n", - " 61323.00925, 62113.17449, 60223.98877]),\n", - " 'ra': array([ 62.6767601, 322.0860789, 325.868688 , 323.9242256, 304.7993288,\n", - " 309.1190487, 327.0967385, 311.280946 , 323.5373434, 268.4639755,\n", - " 283.7424099, 316.7793075, 81.7128501, 298.9437966, 322.7931457,\n", - " 298.9592036, 298.1255196, 239.848597 , 323.5372789, 302.7875618,\n", - " 332.3781914, 170.4247983, 304.1818652, 327.0968451, 317.8804823,\n", - " 301.5682143, 170.4172297, 69.233718 , 315.2799036, 309.1175392,\n", - " 281.1782352, 323.1475474, 318.2527231, 68.4459325, 170.4323598,\n", - " 315.6390597, 74.6917865, 322.7789008]),\n", - " 'dec': array([ 27.0535373, -12.3090787, -11.0256047, -10.5571517, -17.0169932,\n", - " -15.8743016, -10.035292 , -15.6284188, -10.6693695, -22.9543395,\n", - " -21.5140075, -13.2712987, 29.563878 , -18.443366 , -10.8850457,\n", - " -18.4396764, -18.6306791, -21.8243507, -10.6694075, -17.5230447,\n", - " -7.9025949, -3.6513877, -17.1737751, -10.0351984, -12.9420707,\n", - " -17.709034 , -3.6478445, 28.6462634, -13.7156598, -15.874741 ,\n", - " -21.8517282, -10.7825671, -12.8300092, 28.5344673, -3.6550378,\n", - " -13.6098197, 29.3204275, -10.889507 ]),\n", - " 'phaseAngle': array([ 18.636665 , 31.88497 , 30.160686 , 27.637327 , 37.81433 ,\n", - " 36.348026 , 29.765968 , 36.50101 , 27.429834 , 56.708397 ,\n", - " 48.8024 , 31.867077 , 9.175689 , 39.98022 , 26.91216 ,\n", - " 39.974342 , 40.30449 , 72.76689 , 27.429777 , 38.530846 ,\n", - " 27.739908 , 126.787056 , 38.031944 , 29.765924 , 31.74269 ,\n", - " 33.562683 , 126.79137 , 7.0533433, 32.005596 , 36.34851 ,\n", - " 50.079884 , 27.178923 , 31.696053 , 5.731951 , 126.78273 ,\n", - " 31.974665 , 2.5533326, 26.898243 ], dtype=float32),\n", - " 'topocentricDist': array([1.4200809 , 1.673502 , 1.8374033 , 1.0358349 , 0.8584717 ,\n", - " 0.9861143 , 1.5848765 , 1.2739334 , 0.99954176, 0.58142245,\n", - " 0.7141255 , 1.0085962 , 1.7333832 , 0.7201695 , 0.9263163 ,\n", - " 0.72049457, 0.70371586, 0.4728923 , 0.99953324, 0.806705 ,\n", - " 1.7147071 , 0.20780498, 0.8421095 , 1.5848858 , 1.064913 ,\n", - " 0.45957258, 0.20783997, 1.5073341 , 0.93472457, 0.986064 ,\n", - " 0.6861022 , 0.96172243, 1.0843298 , 1.5928001 , 0.20776999,\n", - " 0.95206416, 1.5636572 , 0.9247384 ], dtype=float32),\n", - " 'heliocentricDist': array([2.2182078 , 1.8633804 , 1.9377198 , 1.7923788 , 1.5282809 ,\n", - " 1.6029718 , 1.9770172 , 1.6663356 , 1.7732488 , 1.1989769 ,\n", - " 1.3165528 , 1.700587 , 2.6598191 , 1.440692 , 1.7335323 ,\n", - " 1.4409063 , 1.4297057 , 1.0418874 , 1.7732443 , 1.4964073 ,\n", - " 2.1019201 , 0.8766754 , 1.5183101 , 1.9770212 , 1.730421 ,\n", - " 1.3572357 , 0.87663853, 2.462233 , 1.6602533 , 1.6029434 ,\n", - " 1.2940885 , 1.7529303 , 1.7405357 , 2.5560288 , 0.8767123 ,\n", - " 1.66985 , 2.5446959 , 1.7326578 ], dtype=float32),\n", - " 'reduced_mag': array([21.030422, 21.463362, 20.984524, 21.0964 , 21.589355, 21.395733,\n", - " 21.08797 , 21.289454, 21.019146, 22.697487, 22.227936, 21.11942 ,\n", - " 20.923267, 21.647972, 21.139544, 21.640667, 21.60178 , 23.296085,\n", - " 21.042171, 21.380177, 21.410969, 25.746527, 21.425354, 21.221952,\n", - " 21.334671, 21.471954, 25.874252, 20.039307, 21.293709, 21.450884,\n", - " 22.244236, 21.11493 , 21.318779, 20.653364, 25.9268 , 21.269281,\n", - " 20.069113, 21.11934 ], dtype=float32)}" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" } - ], + }, + "outputs": [], "source": [ "# dir(planetoid.Observations)\n", "planetoid.Observations.__dict__" @@ -281,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "b226fefa-a252-40d2-925e-549eee16858e", "metadata": { "execution": { @@ -292,32 +131,14 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.334562Z" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 18.636665 , 31.88497 , 30.160686 , 27.637327 , 37.81433 ,\n", - " 36.348026 , 29.765968 , 36.50101 , 27.429834 , 56.708397 ,\n", - " 48.8024 , 31.867077 , 9.175689 , 39.98022 , 26.91216 ,\n", - " 39.974342 , 40.30449 , 72.76689 , 27.429777 , 38.530846 ,\n", - " 27.739908 , 126.787056 , 38.031944 , 29.765924 , 31.74269 ,\n", - " 33.562683 , 126.79137 , 7.0533433, 32.005596 , 36.34851 ,\n", - " 50.079884 , 27.178923 , 31.696053 , 5.731951 , 126.78273 ,\n", - " 31.974665 , 2.5533326, 26.898243 ], dtype=float32)" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "getattr(planetoid.Observations,\"phaseAngle\")" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "9d7dc125-06c1-49ad-8854-17d8c8b6954f", "metadata": { "execution": { @@ -328,18 +149,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.353500Z" } }, - "outputs": [ - { - "data": { - "image/png": "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qFOnTioqKtKsWbO0a9cu5efnKzQ0tM7vIMwAAGA+DRJmzvfxxx9rypQpevbZZzVw4EBJ0qZNm/TUU0/p2Wef1dChQ70q/OjRo4qJiVF2drZSUlKqbbN792716dNH3333nbp27VrnNQkzAACYT31+v73aNG/ixIl64403dOONN7qO3XbbbWrRooXGjRunr7/+2pvLym63S1KN82xKSko0f/58JSQkKD4+vto25eXlKi//z7bqDofDq1oAAIA5eDUBeO/evWrduvVFx202m/797397VYjT6dTEiROVnJysxMREt3N/+ctf1KpVK7Vq1UqrV69WVlaWmjdvXu11MjMzZbPZXK+aQg8AAGgcvLrNlJKSooiICL3zzjtq3769JOnw4cO67777VFZWpuzs7HoXMn78eK1evVobN25Ux44d3c7Z7XYdOXJEBQUFevHFF3Xw4EH961//UkRExEXXqW5kJj4+nttMAACYSIPPmfnuu+9055136ttvv3WNfBw4cEDdu3fXBx98oG7dutXrehkZGVq+fLk2bNighISEWtueOXNGbdq00d/+9jeNGjWqzmszZwYAAPNp8Dkz3bp10+7du5WVlaVvvvlGktSzZ08NGTLEbVVTXQzD0COPPKJly5Zp/fr1dQaZqs8YhuE2+gIAAJour5+abbFYlJqaqpSUFIWHh9crxFRJT0/XokWLtHz5clmtVhUWFko6N/cmMjJS33//vZYsWaLU1FRddtll+uGHHzRnzhxFRkZq2LBh3pYOAAAaEa8mADudTj3zzDO6/PLL1apVK+Xn50uSZsyYoTfffNPj68ydO1d2u12DBg1SXFyc67VkyRJJUkREhD799FMNGzZM3bp10z333COr1arPPvtMMTEx3pQOAAAaGa9GZn7/+9/rrbfe0vPPP6+HH37YdTwxMVGvvPKKxo4d69F16pqu06FDB/3v//6vNyUCAIAmwquRmbffflvz5s3T6NGj3Xbh7dOnj2sODQAAgD94FWYOHjxY7Yolp9OpioqKSy4KAADAU16FmV69eunTTz+96Pg//vEP9e3b95KLAgAA8JRXc2aefvpp3X///Tp48KCcTqeWLl2qvLw8vf3221q1apWvawSAoFDpNLQ1v0hHissUY43QgIRohYbUfyUnAN/yatM8Sfr000/1X//1X/riiy906tQp9evXT08//bRSU1N9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AACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYWkDDTGZmppKSkmS1WhUTE6ORI0cqLy/Prc2gQYNksVjcXr/5zW8CVDEAAAg2AQ0z2dnZSk9P1+bNm5WVlaWKigqlpqaqpKTErd3DDz+sgoIC1+v5558PUMUAACDYhAXyy9esWeP2fsGCBYqJidH27duVkpLiOt6iRQvFxsb6uzwAAGACQTVnxm63S5Kio6Pdjr/77rtq166dEhMTNW3aNJWWltZ4jfLycjkcDrcXAABovAI6MnM+p9OpiRMnKjk5WYmJia7j9957rzp37qwOHTpo9+7dmjJlivLy8rR06dJqr5OZmanZs2f7q2wAABBgFsMwjEAXIUnjx4/X6tWrtXHjRnXs2LHGdmvXrtXgwYP13XffqWvXrhedLy8vV3l5ueu9w+FQfHy87Ha7oqKiGqR2AADgWw6HQzabzaPf76AYmcnIyNCqVau0YcOGWoOMJF133XWSVGOYCQ8PV3h4eIPUCQAAgk9Aw4xhGHrkkUe0bNkyrV+/XgkJCXV+ZteuXZKkuLi4Bq4OAACYQUDDTHp6uhYtWqTly5fLarWqsLBQkmSz2RQZGam9e/dq0aJFGjZsmNq2bavdu3dr0qRJSklJUe/evQNZOgAACBIBnTNjsViqPT5//nw98MADOnDggMaMGaOcnByVlJQoPj5ed955p5566imP57/U554bAAAIDqaZM1NXjoqPj1d2drafqgEAAGYUVPvMAAAA1BdhBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAA1FvpmbPqMvVDdZn6oUrPnA1oLYQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABQb+dP+mUCMAAAwCUgzAAAAFMjzAAAAFMjzAAAAFMjzAAAgHqrdBquP3/+7xNu7/2NMAMAAOplTU6BfvLqv1zvf7Nwh258bq3W5BQEpB7CDAAA8NianAKNX7hDR4vL3Y4X2ss0fuGOgAQawgwAAPBIpdPQ7JW5qu6GUtWx2Stz/X7LiTADAAA8sjW/SAX2shrPG5IK7GXaml/kv6JEmAEAAB46UlxzkPGmna8QZgAAgEdirBE+becrhBkAAOCRAQnRirNFyFLDeYukOFuEBiRE+7MswgwAAPBMaIhFM0f0qnYCsHRuzszMEb0UGlJT3GkYhBkAAGBqhBkAAOCRqqXZNbGIpdkAACCIsTQbAACYGkuzAQCAqbVrGe7Tdr5CmAEAAJ7xdJGSfxczBTbMZGZmKikpSVarVTExMRo5cqTy8vIuardp0ybdeuutatmypaKiopSSkqLTp08HoGIAAJquY6fK625Uj3a+EtAwk52drfT0dG3evFlZWVmqqKhQamqqSkpKXG02bdqktLQ0paamauvWrdq2bZsyMjIUEsKgEgAA/hSsOwBbDMPw7/qpWhw9elQxMTHKzs5WSkqKJOn666/X0KFD9cwzz3h1TYfDIZvNJrvdrqioKF+WCwBAk1LpNHTjc2tVaC+rduM8i6RYW4Q2Trn1kjfOq8/vd1ANb9jtdklSdPS5bZCPHDmiLVu2KCYmRjfccIPat2+vm2++WRs3bqzxGuXl5XI4HG4vAABw6ap2AK5OVXRp0jsAO51OTZw4UcnJyUpMTJQkff/995KkWbNm6eGHH9aaNWvUr18/DR48WHv27Kn2OpmZmbLZbK5XfHy83/4OAAA0dmmJcZo7pp8us7qvWIq1RWjumH5KS4zze01Bc5tp/PjxWr16tTZu3KiOHTtKkj777DMlJydr2rRpevbZZ11te/fureHDhyszM/Oi65SXl6u8/D8TjxwOh+Lj47nNBACADx12nNZ1z66VJL0xpp+G9or16YhMfW4zhfnsWy9BRkaGVq1apQ0bNriCjCTFxZ1Ld716uQ9p9ezZU/v376/2WuHh4QoP9+/6dgAAmprzg8u1Xdr4/dbS+QJ6m8kwDGVkZGjZsmVau3atEhIS3M536dJFHTp0uGi59rfffqvOnTv7s1QAABCkAjoyk56erkWLFmn58uWyWq0qLCyUJNlsNkVGRspisejxxx/XzJkz1adPH11zzTV666239M033+gf//hHIEsHAABBIqBhZu7cuZKkQYMGuR2fP3++HnjgAUnSxIkTVVZWpkmTJqmoqEh9+vRRVlaWunbt6udqAQBAMApomPF07vHUqVM1derUBq4GAACYUdAszQYAAPAGYQYAAJgaYQYAAJhaUOwzAwAAzKVdqwj9e87wQJchiZEZAABgcoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgamGBLqChGYYhSXI4HAGuBAAAeKrqd7vqd7w2jT7MFBcXS5Li4+MDXAkAAKiv4uJi2Wy2WttYDE8ij4k5nU4dOnRIVqtVFovFo884HA7Fx8frwIEDioqKauAKzYk+qh39Uzf6qG70Ue3on7qZuY8Mw1BxcbE6dOigkJDaZ8U0+pGZkJAQdezY0avPRkVFme7/+P5GH9WO/qkbfVQ3+qh29E/dzNpHdY3IVGECMAAAMDXCDAAAMDXCTDXCw8M1c+ZMhYeHB7qUoEUf1Y7+qRt9VDf6qHb0T92aSh81+gnAAACgcWNkBgAAmBphBgAAmBphBgAAmBphBgAAmBphphqvv/66unTpooiICF133XXaunVroEsKiMzMTCUlJclqtSomJkYjR45UXl6eW5uysjKlp6erbdu2atWqle6++24dPnw4QBUH1pw5c2SxWDRx4kTXMfpHOnjwoMaMGaO2bdsqMjJSV199tT7//HPXecMw9PTTTysuLk6RkZEaMmSI9uzZE8CK/auyslIzZsxQQkKCIiMj1bVrVz3zzDNuz6Npan20YcMGjRgxQh06dJDFYtEHH3zgdt6T/igqKtLo0aMVFRWl1q1ba+zYsTp16pQf/xYNp7b+qaio0JQpU3T11VerZcuW6tChg+677z4dOnTI7RqNrX8IMxdYsmSJJk+erJkzZ2rHjh3q06ePbrvtNh05ciTQpflddna20tPTtXnzZmVlZamiokKpqakqKSlxtZk0aZJWrlyp999/X9nZ2Tp06JDuuuuuAFYdGNu2bdN///d/q3fv3m7Hm3r/nDhxQsnJyWrWrJlWr16t3NxcvfTSS2rTpo2rzfPPP68///nPeuONN7Rlyxa1bNlSt912m8rKygJYuf8899xzmjt3rl577TV9/fXXeu655/T888/r1VdfdbVpan1UUlKiPn366PXXX6/2vCf9MXr0aH311VfKysrSqlWrtGHDBo0bN85ff4UGVVv/lJaWaseOHZoxY4Z27NihpUuXKi8vT7fffrtbu0bXPwbcDBgwwEhPT3e9r6ysNDp06GBkZmYGsKrgcOTIEUOSkZ2dbRiGYZw8edJo1qyZ8f7777vafP3114YkY9OmTYEq0++Ki4uN7t27G1lZWcbNN99sTJgwwTAM+scwDGPKlCnGjTfeWON5p9NpxMbGGi+88ILr2MmTJ43w8HDjvffe80eJATd8+HDjoYcecjt21113GaNHjzYMgz6SZCxbtsz13pP+yM3NNSQZ27Ztc7VZvXq1YbFYjIMHD/qtdn+4sH+qs3XrVkOSsW/fPsMwGmf/MDJznjNnzmj79u0aMmSI61hISIiGDBmiTZs2BbCy4GC32yVJ0dHRkqTt27eroqLCrb969OihTp06Nan+Sk9P1/Dhw936QaJ/JGnFihW69tpr9bOf/UwxMTHq27ev/vrXv7rO5+fnq7Cw0K2PbDabrrvuuibTRzfccIM++eQTffvtt5KkL774Qhs3btSPf/xjSfTRhTzpj02bNql169a69tprXW2GDBmikJAQbdmyxe81B5rdbpfFYlHr1q0lNc7+afQPmqyPY8eOqbKyUu3bt3c73r59e33zzTcBqio4OJ1OTZw4UcnJyUpMTJQkFRYWqnnz5q7/QKq0b99ehYWFAajS/xYvXqwdO3Zo27ZtF52jf6Tvv/9ec+fO1eTJkzV9+nRt27ZNjz76qJo3b67777/f1Q/V/TfXVPpo6tSpcjgc6tGjh0JDQ1VZWak//OEPGj16tCTRRxfwpD8KCwsVExPjdj4sLEzR0dFNrs/Kyso0ZcoUjRo1yvWgycbYP4QZeCQ9PV05OTnauHFjoEsJGgcOHNCECROUlZWliIiIQJcTlJxOp6699lo9++yzkqS+ffsqJydHb7zxhu6///4AVxcc/t//+3969913tWjRIv3oRz/Srl27NHHiRHXo0IE+wiWpqKjQz3/+cxmGoblz5wa6nAbFbabztGvXTqGhoRetNjl8+LBiY2MDVFXgZWRkaNWqVVq3bp06duzoOh4bG6szZ87o5MmTbu2bSn9t375dR44cUb9+/RQWFqawsDBlZ2frz3/+s8LCwtS+ffsm3T+SFBcXp169erkd69mzp/bv3y9Jrn5oyv/NPf7445o6dap+8Ytf6Oqrr9Yvf/lLTZo0SZmZmZLoowt50h+xsbEXLdo4e/asioqKmkyfVQWZffv2KSsryzUqIzXO/iHMnKd58+bq37+/PvnkE9cxp9OpTz75RAMHDgxgZYFhGIYyMjK0bNkyrV27VgkJCW7n+/fvr2bNmrn1V15envbv398k+mvw4MH68ssvtWvXLtfr2muv1ejRo11/bsr9I0nJyckXLef/9ttv1blzZ0lSQkKCYmNj3frI4XBoy5YtTaaPSktLFRLi/k9xaGionE6nJProQp70x8CBA3Xy5Elt377d1Wbt2rVyOp267rrr/F6zv1UFmT179ujjjz9W27Zt3c43yv4J9AzkYLN48WIjPDzcWLBggZGbm2uMGzfOaN26tVFYWBjo0vxu/Pjxhs1mM9avX28UFBS4XqWlpa42v/nNb4xOnToZa9euNT7//HNj4MCBxsCBAwNYdWCdv5rJMOifrVu3GmFhYcYf/vAHY8+ePca7775rtGjRwli4cKGrzZw5c4zWrVsby5cvN3bv3m3ccccdRkJCgnH69OkAVu4/999/v3H55Zcbq1atMvLz842lS5ca7dq1M5544glXm6bWR8XFxcbOnTuNnTt3GpKMl19+2di5c6drNY4n/ZGWlmb07dvX2LJli7Fx40aje/fuxqhRowL1V/Kp2vrnzJkzxu2332507NjR2LVrl9u/3eXl5a5rNLb+IcxU49VXXzU6depkNG/e3BgwYICxefPmQJcUEJKqfc2fP9/V5vTp08Zvf/tbo02bNkaLFi2MO++80ygoKAhc0QF2YZihfwxj5cqVRmJiohEeHm706NHDmDdvntt5p9NpzJgxw2jfvr0RHh5uDB482MjLywtQtf7ncDiMCRMmGJ06dTIiIiKMK664wnjyySfdfniaWh+tW7eu2n977r//fsMwPOuP48ePG6NGjTJatWplREVFGQ8++KBRXFwcgL+N79XWP/n5+TX+271u3TrXNRpb/1gM47xtJgEAAEyGOTMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMAAMDUCDMALlmXLl30yiuvBLoMvxk0aJAmTpwY6DIA/B/CDIBG5b333lNoaKjS09MDXQoAPyHMAGhU3nzzTT3xxBN67733VFZWFuhyAPgBYQZAnQYNGqSMjAxlZGTIZrOpXbt2mjFjhs5/tFtpaakeeughWa1WderUSfPmzXO7xpQpU3TllVeqRYsWuuKKKzRjxgxVVFS4zn/xxRe65ZZbZLVaFRUVpf79++vzzz93nd+4caNuuukmRUZGKj4+Xo8++qhKSkrcviM/P1+fffaZpk6dqiuvvFJLly51O79gwQK1bt1a//znP9WzZ0+1atVKaWlpKigocLU5e/asHn30UbVu3Vpt27bVlClTdP/992vkyJE19k95ebkee+wxXX755WrZsqWuu+46rV+/vj5dDOASEGYAeOStt95SWFiYtm7dqj/96U96+eWX9be//c11/qWXXtK1116rnTt36re//a3Gjx+vvLw813mr1aoFCxYoNzdXf/rTn/TXv/5Vf/zjH13nR48erY4dO2rbtm3avn27pk6dqmbNmkmS9u7dq7S0NN19993avXu3lixZoo0bNyojI8Otxvnz52v48OGy2WwaM2aM3nzzzYv+HqWlpXrxxRf1zjvvaMOGDdq/f78ee+wx1/nnnntO7777rubPn69//etfcjgc+uCDD2rtm4yMDG3atEmLFy/W7t279bOf/UxpaWnas2dPvfoYgJcC/NRuACZw8803Gz179jScTqfr2JQpU4yePXsahmEYnTt3NsaMGeM653Q6jZiYGGPu3Lk1XvOFF14w+vfv73pvtVqNBQsWVNt27Nixxrhx49yOffrpp0ZISIhx+vRpwzAMo7Ky0oiPjzc++OADwzAM4+jRo0bz5s2N77//3vWZ+fPnG5KM7777znXs9ddfN9q3b+963759e+OFF15wvT979qzRqVMn44477nDrjwkTJhiGYRj79u0zQkNDjYMHD7rVN3jwYGPatGk1/v0B+A4jMwA8cv3118tisbjeDxw4UHv27FFlZaUkqXfv3q5zFotFsbGxOnLkiOvYkiVLlJycrNjYWLVq1UpPPfWU9u/f7zo/efJk/epXv9KQIUM0Z84c7d2713Xuiy++0IIFC9SqVSvX67bbbpPT6VR+fr4kKSsrSyUlJRo2bJgkqV27dho6dKj+/ve/u/09WrRooa5du7rex8XFueq02+06fPiwBgwY4DofGhqq/v3719gvX375pSorK3XllVe61Zedne32dwDQcMICXQCAxqHqllAVi8Uip9MpSdq0aZNGjx6t2bNn67bbbpPNZtPixYv10ksvudrPmjVL9957rz788EOtXr1aM2fO1OLFi3XnnXfq1KlT+vWvf61HH330ou/t1KmTpHMTf4uKihQZGek653Q6tXv3bs2ePVshISE11mmcN/envk6dOqXQ0FBt375doaGhbudatWrl9XUBeI4wA8AjW7ZscXu/efNmde/e/aIf8Op89tln6ty5s5588knXsX379l3U7sorr9SVV16pSZMmadSoUZo/f77uvPNO9evXT7m5uerWrVu11z9+/LiWL1+uxYsX60c/+pHreGVlpW688UZ99NFHSktLq7NOm82m9u3ba9u2bUpJSXFdY8eOHbrmmmuq/Uzfvn1VWVmpI0eO6KabbqrzOwD4HmEGgEf279+vyZMn69e//rV27NihV1991W1kpTbdu3fX/v37tXjxYiUlJenDDz/UsmXLXOdPnz6txx9/XD/96U+VkJCgH374Qdu2bdPdd98t6dxKqOuvv14ZGRn61a9+pZYtWyo3N1dZWVl67bXX9M4776ht27b6+c9/7nYrTJKGDRumN99806MwI0mPPPKIMjMz1a1bN/Xo0UOvvvqqTpw4cdF1q1x55ZUaPXq07rvvPr300kvq27evjh49qk8++US9e/fW8OHDPfpeAN4jzADwyH333afTp09rwIABCg0N1YQJEzRu3DiPPnv77bdr0qRJysjIUHl5uYYPH64ZM2Zo1qxZks7NSzl+/Ljuu+8+HT58WO3atdNdd92l2bNnSzo3Hyc7O1tPPvmkbrrpJhmGoa5du+qee+6RJP3973/XnXfeWW3guPvuu/XLX/5Sx44d86jWKVOmqLCwUPfdd59CQ0M1btw43XbbbbWOQM2fP1+///3v9bvf/U4HDx5Uu3btdP311+snP/mJR98J4NJYjEu5WQygSRg0aJCuueaaJvXIgipOp1M9e/bUz3/+cz3zzDOBLgdANRiZAYDz7Nu3Tx999JFuvvlmlZeX67XXXlN+fr7uvffeQJcGoAYszQaA84SEhGjBggVKSkpScnKyvvzyS3388cfq2bNnoEsDUANuMwEAAFNjZAYAAJgaYQYAAJgaYQYAAJgaYQYAAJgaYQYAAJgaYQYAAJgaYQYAAJgaYQYAAJja/weofG/yrMWRyQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# plot the observations\n", "x_plot = \"phaseAngle\"\n", @@ -364,7 +174,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "6efe3b5a-09dd-4d5e-9f41-20ea6e1b43df", "metadata": { "execution": { @@ -375,16 +185,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.545603Z" } }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/jrob/.conda/envs/adler-dev/lib/python3.10/site-packages/sbpy/photometry/iau.py:50: InvalidPhaseFunctionWarning: G12 parameter could result in an invalid phsae function\n", - " warnings.warn(msg, exception)\n" - ] - } - ], + "outputs": [], "source": [ "# define the phase curve\n", "pc = PhaseCurve(abs_mag = planetoid.SSObject.r_H * u.mag,\n", @@ -394,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "80f552f1-8907-4cc9-b57c-2e667eab459c", "metadata": { "execution": { @@ -405,25 +206,14 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.554620Z" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pc.model_function" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "24c1955e-95cd-4d77-ad05-aa5b8d18620a", "metadata": { "execution": { @@ -434,33 +224,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.572960Z" } }, - "outputs": [ - { - "data": { - "text/latex": [ - "$[0,~2.5875789,~5.1751578,~7.7627367,~10.350316,~12.937895,~15.525473,~18.113052,~20.700631,~23.28821,~25.875789,~28.463368,~31.050947,~33.638526,~36.226105,~38.813684,~41.401263,~43.988841,~46.57642,~49.163999,~51.751578,~54.339157,~56.926736,~59.514315,~62.101894,~64.689473,~67.277052,~69.864631,~72.452209,~75.039788,~77.627367,~80.214946,~82.802525,~85.390104,~87.977683,~90.565262,~93.152841,~95.74042,~98.327999,~100.91558,~103.50316,~106.09074,~108.67831,~111.26589,~113.85347,~116.44105,~119.02863,~121.61621,~124.20379,~126.79137] \\; \\mathrm{{}^{\\circ}}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "alpha = np.linspace(0,np.amax(planetoid.Observations.phaseAngle)) * u.deg\n", "alpha" @@ -468,7 +232,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "c3f30fe0-0d89-4ffa-8237-9c71181d44ee", "metadata": { "execution": { @@ -479,30 +243,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.594943Z" } }, - "outputs": [ - { - "data": { - "text/latex": [ - "$[19.805893,~19.920355,~20.052052,~20.202895,~20.360566,~20.513141,~20.658458,~20.794601,~20.920251,~21.035105,~21.140282,~21.238644,~21.334969,~21.432803,~21.532351,~21.633562,~21.736362,~21.840655,~21.946316,~22.053192,~22.161093,~22.2698,~22.379056,~22.488576,~22.598035,~22.706974,~22.814826,~22.920961,~23.024702,~23.12535,~23.222222,~23.314692,~23.402255,~23.484581,~23.561579,~23.633452,~23.700294,~23.761468,~23.816277,~23.864116,~23.904505,~23.937131,~23.961868,~23.978792,~23.988178,~23.990477,~23.986295,~23.97653,~23.964571,~23.955435] \\; \\mathrm{mag}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "red_mag = pc.ReducedMag(alpha)\n", "red_mag" @@ -510,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "04be98a1-e4dc-4216-bcd9-ef777f6053fb", "metadata": { "execution": { @@ -521,18 +262,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.615623Z" } }, - "outputs": [ - { - "data": { - "image/png": "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ah4NM4mJiXTo0IHQ0FAiIiIYMmQIO3bsKHRNr169sFgshV4PPvighyoWERGR8sajYSY5OZn4+HhWrVpFUlISeXl59O/fn6ysrELX3X///aSkpNhfL7/8socqFhERkfLGz5MfvnDhwkLHM2bMICIignXr1tGjRw/7+SpVqhAZGenQPXNzc8nNzbUfZ2RkuKZYERERKZfK1ZiZ9PR0AMLDwwud/+yzz6hZsyaxsbE8/vjjZGdnF3uPxMRErFar/RUdHe3WmkVERMSzLIZhGJ4uAsBmszF48GBOnjzJ8uXL7effe+896tevT506ddi8eTMTJkygY8eOzJkzp8j7FNUyEx0dTXp6OmFhYW7/PkRERKT0MjIysFqtDv389mg30/ni4+PZunVroSADMHLkSPvvW7ZsSVRUFH369GH37t00atToovsEBgYSGBjo9npFRESkfCgX3UwJCQnMnz+fxYsXU7du3Ute26lTJwB27dpVFqWJiIhIOefRlhnDMHj44YeZO3cuS5YsISYm5rJfs3HjRgCioqLcXJ2IiIh4A4+Gmfj4eGbNmsU333xDaGgoqampAFitVoKDg9m9ezezZs1i4MCB1KhRg82bNzN27Fh69OhBq1atPFm6iIiIlBMeHQBssViKPD99+nTuvvtuDhw4wPDhw9m6dStZWVlER0dz44038tRTTzk8mLckA4hERESkfPCaAcCXy1HR0dEkJyeXUTUiIiLijcrFAGARERERZynMiIiIiFdTmBERERGvpjAjIiIiXk1hRkRERLyawoyIiIh4NYUZERER8WoKMyIiIuLVFGZERETEqynMiIiIiFdTmBERERGvpjAjIiIiXk1hRkRERLyawoyIiIh4NYUZERER8WoKMyIiIuLVFGZERETEqynMiIiISIllnzlLg4nf0WDid2SfOevRWhRmRERExKspzIiIiIhXU5gRERERr6YwIyIiIl5NYUZERERK7PxBvxoALCIiIlIKCjMiIiLi1RRmRERExKspzIiIiIhXU5gRERGREjuVc27Q74pdx8i3GR6rRWFGRERESmTh1hRu/dcq+/EjszfR7aVFLNya4pF6FGZERETEYQu3pjBq5nqOZuYWOp+ansOomes9EmgUZkRERMQh+TaDyd9uo6gOpYJzk7/dVuZdTgozIiIi4pA1e9NISc8p9n0DSEnPYc3etLIrCoUZ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ZxgGCQkJzJ07l0WLFhETE1Po/Xbt2uHv71/oWe3YsYP9+/dX+GfVp08ftmzZwsaNG+2v9u3bM2zYMPvvK+uz6dq160VT+H///Xfq168PQExMDJGRkYWeTUZGBqtXr67wzyY7Oxsfn8J/Lfv6+mKz2YDK/Wwu5Miz6NKlCydPnmTdunX2axYtWoTNZqNTp05lXnNZKggyO3fu5Mcff6RGjRqF3q9wz8bTI5C90ezZs43AwEBjxowZxrZt24yRI0ca1apVM1JTUz1dWpkaNWqUYbVajSVLlhgpKSn2V3Z2tv2aBx980KhXr56xaNEi45dffjG6dOlidOnSxYNVe875s5kMo/I+mzVr1hh+fn7G888/b+zcudP47LPPjCpVqhgzZ860X/Piiy8a1apVM7755htj8+bNxg033GDExMQYp0+f9mDl7nfXXXcZV1xxhTF//nxj7969xpw5c4yaNWsajz32mP2ayvRsMjMzjQ0bNhgbNmwwAOO1114zNmzYYJ+R48iziIuLM9q0aWOsXr3aWL58udGkSRNj6NChnvqWXOZSz+bMmTPG4MGDjbp16xobN24s9Pdzbm6u/R4V6dkozDjprbfeMurVq2cEBAQYHTt2NFatWuXpksocUORr+vTp9mtOnz5tPPTQQ0b16tWNKlWqGDfeeKORkpLiuaI96MIwU5mfzbfffmvExsYagYGBRrNmzYz33nuv0Ps2m814+umnjdq1axuBgYFGnz59jB07dnio2rKTkZFhjB492qhXr54RFBRkNGzY0HjyyScL/QCqTM9m8eLFRf4dc9dddxmG4dizOH78uDF06FAjJCTECAsLM+655x4jMzPTA9+Na13q2ezdu7fYv58XL15sv0dFejYWwzhvaUkRERERL6MxMyIiIuLVFGZERETEqynMiIiIiFdTmBERERGvpjAjIiIiXk1hRkRERLyawoyIiIh4NYUZERER8WoKMyJSag0aNOD111/3dBllplevXowZM8bTZYjInxRmRKRC+fzzz/H19SU+Pt7TpYhIGVGYEZEK5cMPP+Sxxx7j888/Jycnx9PliEgZUJgRkcvq1asXCQkJJCQkYLVaqVmzJk8//TTnb+2WnZ3NvffeS2hoKPXq1eO9994rdI8JEybQtGlTqlSpQsOGDXn66afJy8uzv79p0yZ69+5NaGgoYWFhtGvXjl9++cX+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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# %matplotlib widget\n", "\n", @@ -561,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "9815543d-6140-4bdb-8bad-8296994723f4", "metadata": { "execution": { @@ -572,18 +302,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.784731Z" } }, - "outputs": [ - { - "data": { - "image/png": "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oArfv3+/kpOTVVhYqKysrHrbbN68WQMGDNC2bdvUq1evJrdJmAEAwH6a8/0d1KR5kyZN0vPPP69LLrnEt+yqq65SQkKC7r77bn3++efBbFZut1uSGhxnU1lZqblz5yo9PV1paWn1tqmurlZ19fdTMHs8nqBqAQAA9hDUAODt27erQ4cOdZa7XC7t3LkzqEK8Xq8mTZqkYcOGKSMjw2/dc889p/bt26t9+/ZatmyZCgoKFBMTU+928vLy5HK5fI+GQg8AAGgbgjrNlJWVpbi4OP3tb39Tly5dJEl79+7VHXfcoaqqKhUWFja7kPHjx2vZsmVatWqVunXr5rfO7XZr3759Kisr09NPP61vvvlGH330keLi4upsp74jM2lpaZxmAgDARlp8zMy2bdt0/fXX68svv/Qd+di9e7f69OmjN998U717927W9iZMmKBFixZp5cqVSk9Pb7TtsWPH1LFjR/31r3/VLbfc0uS2GTMDAID9tPiYmd69e2vz5s0qKCjQF198IUk699xzNWLECL+rmppijNHEiRO1cOFCffDBB00Gmdr/Y4zxO/oCAADOXEHfNdvhcCg7O1tZWVmKjY1tVoiplZubqwULFmjRokVyOp0qLy+XdHLsTXx8vHbs2KHXXntN2dnZOuuss/T1119r1qxZio+P19VXXx1s6QAAoA0JagCw1+vV448/rh/96Edq3769SktLJUm//e1v9eKLLwa8ndmzZ8vtdmv48OFKTU31PV577TVJUlxcnD788ENdffXV6t27t26++WY5nU7961//UnJycjClAwCANiaoIzO/+93v9NJLL+nJJ5/UXXfd5VuekZGhP/7xjxo7dmxA22lquE7Xrl319ttvB1MiAAA4QwR1ZObll1/WnDlzdNttt/nNwjtgwADfGBoAAIDWEFSY+eabb+q9Ysnr9aqmpua0iwIAAAhUUGGmX79++vDDD+ss/8c//qGBAweedlEAAACBCmrMzMMPP6xf/OIX+uabb+T1evXGG2+opKREL7/8spYuXRrqGgEAQCs44TVaW1qhfYerlOyM04XpSYqMaP7Vyq0tqEnzJOnDDz/UY489pk8++URHjhzRoEGD9PDDDys7OzvUNZ4WJs0DAKBp+cVlenTJFpW5q3zLUl1xmnFtP+VkpLZ6PS0+A7CdEGYAAGhcfnGZxs/foB8GgtpjMrNHD2r1QNOc7++gxsx8/PHHWrNmTZ3la9as0bp164LZJAAAsMAJr9GjS7bUCTKSfMseXbJFJ7zhe+wjqDCTm5ur3bt311n+zTffKDc397SLAgAArWNtaYXfqaUfMpLK3FVaW1rRekU1U1BhZsuWLRo0aFCd5QMHDtSWLVtOuygAANA69h1uOMgE084KQYWZ2NhY7d27t87ysrIyRUUFfbsnAADQypKdcSFtZ4Wgwkx2dramTZsmt9vtW3bo0CFNnz5dI0eODFlxAACgZV2YnqRUV5waugDboZNXNV2YntSaZTVLUGHm6aef1u7du9WjRw9dfvnluvzyy5Wenq7y8nL94Q9/CHWNAACghURGODTj2n6SVCfQ1D6fcW2/sJ5vJuhLsysrK/XKK6/ok08+UXx8vM4//3zdcsstio6ODnWNp4VLswEAaBrzzIQxwgwAAIEJpxmAm/P9HdRo3ZdffrnR9XfccUcwmwUAABaKjHAos1cnq8totqCOzHTs2NHveU1NjY4ePaqYmBglJCSooiJ8rkXnyAwAAPbT4jMAf/vtt36PI0eOqKSkRJdccon+/ve/B1U0AABAMIIKM/Xp06ePZs2apfvuuy9UmwQAAGhSyMKMJEVFRWnPnj2h3CQAAECjghoAvHjxYr/nxhiVlZXpT3/6k4YNGxaSwgAAAAIRVJgZNWqU33OHw6GzzjpLV1xxBZPmAQCAVhVUmPF6vaGuAwAAICghHTMDAADQ2gI+MnP//fcHvNFnnnkmqGIAAACaK+Aws3HjRr/nGzZs0PHjx3XOOedIkr788ktFRkZq8ODBoa0QAACgEQGHmRUrVvj+/cwzz8jpdOqll17yzQb87bff6s4779Sll14a+ioBAAAaENTtDH70ox/p3Xff1Xnnnee3vLi4WNnZ2WE11wy3MwAAwH5a/HYGHo9H+/fvr7N8//79Onz4cDCbBAAACEpQYeb666/XnXfeqTfeeENff/21vv76a/3zn//U2LFjdcMNN4S6RgAAgAYFNc/M888/r1//+te69dZbVVNTc3JDUVEaO3asnnrqqZAWCAAA0JigxszUqqys1Pbt2yVJvXr1Urt27UJWWKgwZgYAAPtp8TEztcrKylRWVqY+ffqoXbt2Oo1cBAAAEJSgwszBgwd15ZVX6sc//rGuvvpqlZWVSZLGjh2rX/3qVyEtEAAAoDFBhZnJkycrOjpau3btUkJCgm/5zTffrPz8/JAVBwAA0JSgBgC/++67euedd9StWze/5X369NFXX30VksIAAAACEdSRmcrKSr8jMrUqKioUGxt72kUBAAAEKqgwc+mll+rll1/2PXc4HPJ6vXryySd1+eWXh6w4AACApgR1mumpp57SFVdcoXXr1unYsWN64IEH9Nlnn6miokIfffRRqGsEAABoULPDTE1Nje69914tWbJEBQUFcjqdOnLkiG644Qbl5uYqNTW1JeoEAACoV7PDTHR0tDZv3qyOHTvqN7/5TUvUBAAAELCgxsyMHj1aL774YqhrAQAAaLagxswcP35c//M//6P33ntPgwcPrnMbg2eeeSYkxQEAADQlqCMzxcXFGjRokJxOp7788ktt3LjR99i0aVPA28nLy9OQIUPkdDqVnJysUaNGqaSkpN62xhj99Kc/lcPh0JtvvhlM2QAAoA0K6sjMihUrQvLihYWFys3N1ZAhQ3T8+HFNnz5d2dnZ2rJlS52jPX/84x/lcDhC8roAAKDtCCrMhMoPb30wb948JScna/369crKyvIt37Rpk/7whz9o3bp1XC0FAAD8WBpmfsjtdkuSkpKSfMuOHj2qW2+9VX/+85+VkpLS5Daqq6tVXV3te+7xeEJfKAAACBtBjZlpCV6vV5MmTdKwYcOUkZHhWz558mRdfPHF+tnPfhbQdvLy8uRyuXyPtLS0lioZAACEgbA5MpObm6vi4mKtWrXKt2zx4sVavny5Nm7cGPB2pk2bpvvvv9/33OPxEGgAAGjDwuLIzIQJE7R06VKtWLHC707cy5cv1/bt29WhQwdFRUUpKupk9rrxxhs1fPjwercVGxurxMREvwcAAGi7HMYYY9WLG2M0ceJELVy4UB988IH69Onjt768vFwHDhzwW9a/f3/913/9l6699lqlp6c3+Roej0cul0tut5tgAwCATTTn+9vS00y5ublasGCBFi1aJKfTqfLyckmSy+VSfHy8UlJS6h30271794CCDAAAaPssPc00e/Zsud1uDR8+XKmpqb7Ha6+9ZmVZAADARiw9MhPMGS4Lz4oBAIAwFBYDgAEAAIJFmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEAALZGmAEA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+Mc/rCwdAACECUvDzOzZsyVJw4cP91s+d+5cjRkzRpI0adIkVVVVafLkyaqoqNCAAQNUUFCgXr16tXK1AAAgHFkaZgIdezx16lRNnTq1hasBAAB2FDaXZgMAAASDMAMAAGyNMAMAAGwtLOaZAdqyzu3jtHPWNVaXAQBtFkdmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArUVZXUBLM8ZIkjwej8WVAACAQNV+b9d+jzemzYeZw4cPS5LS0tIsrgQAADTX4cOH5XK5Gm3jMIFEHhvzer3as2ePnE6nHA6H1eW0OI/Ho7S0NO3evVuJiYlWl2Mp+sIf/fE9+sIf/eGP/vielX1hjNHhw4fVtWtXRUQ0PiqmzR+ZiYiIULdu3awuo9UlJiae8X+EtegLf/TH9+gLf/SHP/rje1b1RVNHZGoxABgAANgaYQYAANgaYaaNiY2N1YwZMxQbG2t1KZajL/zRH9+jL/zRH/7oj+/ZpS/a/ABgAADQtnFkBgAA2BphBgAA2BphBgAA2BphBgAA2BphJgx88803Gj16tDp16qT4+Hj1799f69at8603xujhhx9Wamqq4uPjNWLECG3dutVvGz179pTD4fB7zJo1y6/N5s2bdemllyouLk5paWl68skn69Ty+uuvq2/fvoqLi1P//v319ttvt8ybbkBTffHGG28oOztbnTp1ksPh0KZNm+pso6qqSrm5uerUqZPat2+vG2+8UXv37vVrs2vXLl1zzTVKSEhQcnKypkyZouPHj/u1+eCDDzRo0CDFxsaqd+/emjdvXku85UaFoj+GDx9e57Mxbtw4vzZtoT9qamr04IMPqn///mrXrp26du2qO+64Q3v27PHbRkVFhW677TYlJiaqQ4cOGjt2rI4cOeLXxu5/K4H2RVvZb0hN/6088sgj6tu3r9q1a6eOHTtqxIgRWrNmjd82zoTPhhRYX9jus2FgqYqKCtOjRw8zZswYs2bNGrNjxw7zzjvvmG3btvnazJo1y7hcLvPmm2+aTz75xFx33XUmPT3dfPfdd742PXr0MI899pgpKyvzPY4cOeJb73a7TZcuXcxtt91miouLzd///ncTHx9v/vKXv/jafPTRRyYyMtI8+eSTZsuWLeahhx4y0dHR5tNPPw2bvnj55ZfNo48+al544QUjyWzcuLHOdsaNG2fS0tLM+++/b9atW2cuuugic/HFF/vWHz9+3GRkZJgRI0aYjRs3mrffftt07tzZTJs2zddmx44dJiEhwdx///1my5Yt5r//+79NZGSkyc/Pb9E+OFWo+uOyyy4zd911l99nw+12+9a3lf44dOiQGTFihHnttdfMF198YYqKisyFF15oBg8e7LednJwcM2DAALN69Wrz4Ycfmt69e5tbbrnFt74t/K0E2hdtYb9hTGB/K6+88oopKCgw27dvN8XFxWbs2LEmMTHR7Nu3z9fmTPhsBNoXdvtsEGYs9uCDD5pLLrmkwfVer9ekpKSYp556yrfs0KFDJjY21vz973/3LevRo4d59tlnG9zOc889Zzp27Giqq6v9Xvucc87xPb/pppvMNddc4/f/hg4dau65557mvKWgNdUXpyotLa33y/vQoUMmOjravP76675ln3/+uZFkioqKjDHGvP322yYiIsKUl5f72syePdskJib6+ueBBx4w5513nt+2b775ZnPVVVcF89aCEor+MOZkmLnvvvsa/L9tsT9qrV271kgyX331lTHGmC1bthhJ5uOPP/a1WbZsmXE4HOabb74xxrS9v5VaP+wLY9rGfqO2pub2h9vtNpLMe++9Z4w5sz8bP+wLY+z32eA0k8UWL16sCy64QD//+c+VnJysgQMH6oUXXvCtLy0tVXl5uUaMGOFb5nK5NHToUBUVFflta9asWerUqZMGDhyop556yu80QVFRkbKyshQTE+NbdtVVV6mkpETffvutr82pr1Pb5oev01Ka6otArF+/XjU1NX7vo2/fvurevbvvfRQVFal///7q0qWLr81VV10lj8ejzz77zNfGyr6QQtMftV555RV17txZGRkZmjZtmo4ePepb15b7w+12y+FwqEOHDpJOvo8OHTroggsu8LUZMWKEIiIifIfZ2+rfyg/7opbd9xtS8/vj2LFjmjNnjlwulwYMGCDpzP1s1NcXtez02SDMWGzHjh2aPXu2+vTpo3feeUfjx4/Xvffeq5deekmSVF5eLkl+XzS1z2vXSdK9996rV199VStWrNA999yjmTNn6oEHHvCtLy8vr3cbp75GQ21OfZ2W1FRfBKK8vFwxMTF1dtinvo/T6QuPx6PvvvuuuW8tKKHoD0m69dZbNX/+fK1YsULTpk3T3/72N40ePdq3vq32R1VVlR588EHdcsstvhvklZeXKzk52a9dVFSUkpKSQvL5CNe/lfr6Qmob+w0p8P5YunSp2rdvr7i4OD377LMqKChQ586dfe/jTPpsNNYXkv0+G23+rtnhzuv16oILLtDMmTMlSQMHDlRxcbGef/55/eIXvwh4O/fff7/v3+eff75iYmJ0zz33KC8vL+ynoa4Vqr5oK0LVH3fffbfv3/3791dqaqquvPJKbd++Xb169Qp53S2lOf1RU1Ojm266ScYYzZ4924pyW1So+qIt7DekwPvj8ssv16ZNm3TgwAG98MILuummm7RmzZo6IcbOQtUXdvtscGTGYqmpqerXr5/fsnPPPVe7du2SJKWkpEhSnatx9u7d61tXn6FDh+r48ePauXOnbzv1bePU12ioTWOvE0pN9UUgUlJSdOzYMR06dMhv+anv43T6IjExUfHx8QHXczpC0R/1GTp0qCRp27Ztktpef9R+eX/11VcqKCjwOxKRkpKiffv2+bU/fvy4KioqQvL5CLe/lcb6oj523G9IgfdHu3bt1Lt3b1100UV68cUXFRUVpRdffFHSmffZaKwv6hPunw3CjMWGDRumkpISv2VffvmlevToIUlKT09XSkqK3n//fd96j8ejNWvWKDMzs8Htbtq0SREREb6UnZmZqZUrV6qmpsbXpqCgQOecc446duzoa3Pq69S2aex1QqmpvgjE4MGDFR0d7fc+SkpKtGvXLt/7yMzM1Keffuq346rd0dfuBKzuCyk0/VGf2su3U1NTJbWt/qj98t66davee+89derUya99ZmamDh06pPXr1/uWLV++XF6v1xfy2srfSlN9UR877jek4P9WvF6vqqurJZ1Zn436nNoX9Qn7z0bIhxSjWdauXWuioqLM73//e7N161bzyiuvmISEBDN//nxfm1mzZpkOHTqYRYsWmc2bN5uf/exnfpdm/+tf/zLPPvus2bRpk9m+fbuZP3++Oeuss8wdd9zh28ahQ4dMly5dzO23326Ki4vNq6++ahISEupcRhcVFWWefvpp8/nnn5sZM2a06iWFgfTFwYMHzcaNG81bb71lJJlXX33VbNy40ZSVlfnajBs3znTv3t0sX77crFu3zmRmZprMzEzf+tpLkbOzs82mTZtMfn6+Oeuss+q9FHnKlCnm888/N3/+859b/VLkUPTHtm3bzGOPPWbWrVtnSktLzaJFi8zZZ59tsrKy2lx/HDt2zFx33XWmW7duZtOmTX6XlJ56xUVOTo4ZOHCgWbNmjVm1apXp06eP3+W3beFvJZC+aCv7jUD648iRI2batGmmqKjI7Ny506xbt87ceeedJjY21hQXF/u2cyZ8NgLpCzt+NggzYWDJkiUmIyPDxMbGmr59+5o5c+b4rfd6vea3v/2t6dKli4mNjTVXXnmlKSkp8a1fv369GTp0qHG5XCYuLs6ce+65ZubMmaaqqspvO5988om55JJLTGxsrPnRj35kZs2aVaeW//3f/zU//vGPTUxMjDnvvPPMW2+91TJvugFN9cXcuXONpDqPGTNm+Np899135j//8z9Nx44dTUJCgrn++uv9wo4xxuzcudP89Kc/NfHx8aZz587mV7/6lampqfFrs2LFCvOTn/zExMTEmLPPPtvMnTu3pd52g063P3bt2mWysrJMUlKSiY2NNb179zZTpkzxm2fGmLbRH7WXp9f3WLFiha/dwYMHzS233GLat29vEhMTzZ133mkOHz7s9zp2/1sJpC/a0n7DmMb747vvvjPXX3+96dq1q4mJiTGpqanmuuuuM2vXrvXbxpnw2QikL+z42XAYY0zoj/cAAAC0DsbMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMAAAAWyPMALC1nTt3yuFw+O45VZ8PPvhADoejzg1IAbQNUVYXAACnIy0tTWVlZercubPVpQCwCGEGgK1FRkYqJSXF6jIAWIjTTADCyvDhwzVx4kRNmjRJHTt2VJcuXfTCCy+osrJSd955p5xOp3r37q1ly5ZJqv8009tvv60f//jHio+P1+WXX66dO3da82YAtArCDICw89JLL6lz585au3atJk6cqPHjx+vnP/+5Lr74Ym3YsEHZ2dm6/fbbdfTo0Tr/d/fu3brhhht07bXXatOmTfqP//gPTZ061YJ3AaC1cNdsAGFl+PDhOnHihD788ENJ0okTJ+RyuXTDDTfo5ZdfliSVl5crNTVVRUVFSklJUXp6ujZu3Kif/OQnmj59uhYtWqTPPvvMt82pU6fqiSee0LfffqsOHTpY8bYAtCCOzAAIO+eff77v35GRkerUqZP69+/vW9alSxdJ0r59++r8388//1xDhw71W5aZmdlClQIIB4QZAGEnOjra77nD4fBb5nA4JEler7dV6wIQnggzANqUc889V2vXrvVbtnr1aouqAdAaCDMA2pRx48Zp69atmjJlikpKSrRgwQLNmzfP6rIAtCDCDIA2pXv37vrnP/+pN998UwMGDNDzzz+vmTNnWl0WgBbE1UwAbK2kpER9+/bV1q1b1bt3b6vLAWABjswAsK2Kigr94x//UGJiotLS0qwuB4BFuJ0BANsaO3as1q9fr9mzZys2NtbqcgBYhNNMAADA1jjNBAAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbI0wAwAAbO3/AwATy6yYDWegAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# plot the observations\n", "x_plot = \"mjd\"\n", @@ -608,7 +327,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "de462b92-3914-4091-b0af-bddd9e9c1ef1", "metadata": { "execution": { @@ -627,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "f92891c9-6ccf-4dac-8887-9545f633ba90", "metadata": { "execution": { @@ -646,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "db24432b-6d05-4ff2-9d98-e52d8c2e4342", "metadata": { "execution": { @@ -657,25 +376,14 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.976260Z" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pc_fit.model_function" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "9039e2e2-27d9-4d21-b2f6-9504a5b85ce4", "metadata": { "execution": { @@ -686,25 +394,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:14.994486Z" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pc_fit.FitModel(phase_angle = planetoid.Observations.phaseAngle * u.deg,\n", " reduced_mag = planetoid.Observations.reduced_mag * u.mag,\n", @@ -713,7 +403,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "5d4b7144-ee72-45e0-9606-c40f83c443c6", "metadata": { "execution": { @@ -724,18 +414,7 @@ "shell.execute_reply.started": "2024-02-29T16:09:15.024533Z" } }, - "outputs": [ - { - "data": { - "image/png": "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0qVLNqw8/z3wwANGuXLljIULFxqRkZHG3LlzjVKlShnPPvus9ZzidG/i4+ONv/76y/jrr78MwHj33XeNv/76yzojJyf3IiwszGjUqJGxadMmY+3atUa1atWM/v372+or5Znr3ZuUlBSjZ8+eRvny5Y3t27dn+vs5OTnZeo2idG8UZnLpww8/NCpUqGC4uLgYzZo1MzZu3GjrkgockOVj2rRp1nMuXbpkPPHEE0aJEiUMDw8P4+677zaioqJsV7QNXR1mivO9+eWXX4y6desarq6uRs2aNY3PPvss0+tms9kYN26cUaZMGcPV1dXo1KmTsX//fhtVW3Di4uKMp556yqhQoYLh5uZmVK5c2fjf//6X6QdQcbo3K1euzPLvmAceeMAwjJzdi7Nnzxr9+/c3vLy8DB8fH2PIkCFGfHy8Db5N3rrevYmMjMz27+eVK1dar1GU7o3JMK5YWlJERETEzmjMjIiIiNg1hRkRERGxawozIiIiYtcUZkRERMSuKcyIiIiIXVOYEREREbumMCMiIiJ2TWFGRERE7JrCjIjcskqVKjF58mRbl1Fg2rdvz4gRI2xdhoj8R2FGRIqU77//HkdHR8LDw21diogUEIUZESlSvvzyS5599lm+//57kpKSbF2OiBQAhRkRuaH27dsTERFBREQEvr6+lCpVinHjxnHl1m6JiYk89NBDeHt7U6FCBT777LNM1xgzZgzVq1fHw8ODypUrM27cOFJTU62v79ixgw4dOuDt7Y2Pjw9NmjThzz//tL6+du1a2rRpg7u7O8HBwQwfPpyEhIRMnxEZGcn69et57rnnqF69OnPnzs30+vTp0/Hz8+O3336jVq1aeHl5ERYWRlRUlPWctLQ0hg8fjp+fHyVLlmTMmDE88MAD9OrVK9v7k5yczDPPPEO5cuXw9PSkefPmrFq16mZusYjcAoUZEcmRr7/+GicnJzZv3sz777/Pu+++yxdffGF9/Z133qFp06b89ddfPPHEEwwbNoz9+/dbX/f29mb69Ons3buX999/n88//5z33nvP+vrAgQMpX748W7ZsYevWrTz33HM4OzsDcPjwYcLCwujTpw87d+5k9uzZrF27loiIiEw1Tps2jR49euDr68ugQYP48ssvr/keiYmJvP3223z77besWbOGY8eO8cwzz1hfnzRpEt999x3Tpk1j3bp1xMXF8fPPP1/33kRERLBhwwZmzZrFzp07ueeeewgLC+PgwYM3dY9FJJdsvGu3iNiBdu3aGbVq1TLMZrP12JgxY4xatWoZhmEYFStWNAYNGmR9zWw2GwEBAcaUKVOyveZbb71lNGnSxPrc29vbmD59epbnPvzww8Zjjz2W6dgff/xhODg4GJcuXTIMwzDS09ON4OBg4+effzYMwzBOnz5tuLi4GEeOHLG+Z9q0aQZgHDp0yHrs448/NsqUKWN9XqZMGeOtt96yPk9LSzMqVKhg3HXXXZnux1NPPWUYhmEcPXrUcHR0NE6cOJGpvk6dOhnPP/98tt9fRPKOWmZEJEduu+02TCaT9XmLFi04ePAg6enpANSvX9/6mslkIjAwkJiYGOux2bNn06pVKwIDA/Hy8uKFF17g2LFj1tdHjRrFI488QufOnXnjjTc4fPiw9bUdO3Ywffp0vLy8rI9u3bphNpuJjIwEYNmyZSQkJNC9e3cASpUqRZcuXfjqq68yfQ8PDw+qVKlifR4UFGStMzY2llOnTtGsWTPr646OjjRp0iTb+7Jr1y7S09OpXr16pvpWr16d6TuISP5xsnUBIlI0ZHQJZTCZTJjNZgA2bNjAwIEDeemll+jWrRu+vr7MmjWLd955x3r+hAkTGDBgAIsWLWLx4sWMHz+eWbNmcffdd3Px4kWGDh3K8OHDr/ncChUqAJaBv+fOncPd3d36mtlsZufOnbz00ks4ODhkW6dxxdifm3Xx4kUcHR3ZunUrjo6OmV7z8vLK9XVFJOcUZkQkRzZt2pTp+caNG6lWrdo1P8Czsn79eipWrMj//vc/67GjR49ec1716tWpXr06I0eOpH///kybNo27776bxo0bs3fvXqpWrZrl9c+ePcv8+fOZNWsWderUsR5PT0+ndevWLF26lLCwsBvW6evrS5kyZdiyZQtt27a1XmPbtm00bNgwy/c0atSI9PR0YmJiaNOmzQ0/Q0TynsKMiOTIsWPHGDVqFEOHDmXbtm18+OGHmVpWrqdatWocO3aMWbNmERoayqJFi5g3b5719UuXLjF69Gj69u1LSEgI//77L1u2bKFPnz6AZSbUbbfdRkREBI888gienp7s3buXZcuW8dFHH/Htt99SsmRJ7r333kxdYQDdu3fnyy+/zFGYAXjyySeZOHEiVatWpWbNmnz44YecP3/+mutmqF69OgMHDmTw4MG88847NGrUiNOnT7N8+XLq169Pjx49cvS5IpJ7CjMikiODBw/m0qVLNGvWDEdHR5566ikee+yxHL23Z8+ejBw5koiICJKTk+nRowfjxo1jwoQJgGVcytmzZxk8eDCnTp2iVKlS9O7dm5deegmwjMdZvXo1//vf/2jTpg2GYVClShXuu+8+AL766ivuvvvuLANHnz59uP/++zlz5kyOah0zZgzR0dEMHjwYR0dHHnvsMbp163bdFqhp06bx6quv8vTTT3PixAlKlSrFbbfdxh133JGjzxSRW2MybqWzWESKhfbt29OwYcNitWVBBrPZTK1atbj33nt55ZVXbF2OiGRBLTMiIlc4evQoS5cupV27diQnJ/PRRx8RGRnJgAEDbF2aiGRDU7NFRK7g4ODA9OnTCQ0NpVWrVuzatYvff/+dWrVq2bo0EcmGuplERETErqllRkREROyawoyIiIjYNYUZERERsWsKMyIiImLXFGZERETErinMiIiIiF1TmBERERG7pjAjIiIidu3/Iec8Vn6hm44AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# %matplotlib widget\n", "\n", @@ -766,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "b7f39ed4-8334-4e10-a97c-a9471105225b", "metadata": { "execution": { From f9a0a08e407fc24e5f45b347e7b2cafc8892099d Mon Sep 17 00:00:00 2001 From: jrob93 Date: Mon, 18 Mar 2024 17:19:11 +0000 Subject: [PATCH 7/9] black reformat --- tests/adler/science/test_PhaseCurve.py | 57 ++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/adler/science/test_PhaseCurve.py diff --git a/tests/adler/science/test_PhaseCurve.py b/tests/adler/science/test_PhaseCurve.py new file mode 100644 index 0000000..f95b10d --- /dev/null +++ b/tests/adler/science/test_PhaseCurve.py @@ -0,0 +1,57 @@ +from numpy.testing import assert_array_equal +import pytest + + +def test_PhaseCurve_init(): + import numpy as np + import astropy.units as u + from adler.science.PhaseCurve import PhaseCurve + + # test creating a model + H = 18.9 + G = 0.12 + pc = PhaseCurve(abs_mag=H * u.mag, phase_param=G, model_name="HG") + + assert pc.abs_mag.value == 18.9 + assert pc.abs_mag.unit == u.mag + assert pc.phase_param == 0.12 + assert pc.model_name == "HG" + + +def test_PhaseCurve_ReducedMag(): + import numpy as np + import astropy.units as u + from adler.science.PhaseCurve import PhaseCurve + + # define the phase angles + alpha = np.array([0, 10]) * u.deg + + # linear phase curve model + pc_lin = PhaseCurve(model_name="LinearPhaseFunc", abs_mag=18 * u.mag, phase_param=0.1 * (u.mag / u.deg)) + + # find the reduced mag + red_mag = pc_lin.ReducedMag(alpha) + + assert red_mag.unit == u.mag + assert_array_equal(red_mag.value, np.array([18.0, 19.0])) + + +def test_PhaseCurve_FitModel(): + import numpy as np + import astropy.units as u + from adler.science.PhaseCurve import PhaseCurve + + # define the observations + alpha = np.array([0, 10]) * u.deg + red_mag = np.array([18.0, 19.0]) * u.mag + + # empty linear phase curve model + pc_lin = PhaseCurve(model_name="LinearPhaseFunc") + + # fit the model to the data + pc_fit = pc_lin.FitModel(alpha, red_mag) + + assert pc_fit.H.unit == u.mag + assert pc_fit.H.value == 18.0 + assert pc_fit.S.unit == u.mag / u.deg + assert pc_fit.S.value == 0.1 From fb90a0b0f92f1c4835705f7e1a7bfa5f7a99e03e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 17:21:38 +0000 Subject: [PATCH 8/9] [pre-commit.ci lite] apply automatic fixes --- notebooks/adler_examples.ipynb | 53 +++++++++++++++++----------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/notebooks/adler_examples.ipynb b/notebooks/adler_examples.ipynb index 06bd39c..e594f29 100644 --- a/notebooks/adler_examples.ipynb +++ b/notebooks/adler_examples.ipynb @@ -21,7 +21,7 @@ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", - "import astropy.units as u\n" + "import astropy.units as u" ] }, { @@ -133,7 +133,7 @@ }, "outputs": [], "source": [ - "getattr(planetoid.Observations,\"phaseAngle\")" + "getattr(planetoid.Observations, \"phaseAngle\")" ] }, { @@ -156,14 +156,14 @@ "y_plot = \"reduced_mag\"\n", "\n", "x = getattr(planetoid.Observations, x_plot)\n", - "y = getattr(planetoid.Observations,y_plot)\n", + "y = getattr(planetoid.Observations, y_plot)\n", "xerr = planetoid.Observations.magErr\n", "\n", "fig = plt.figure()\n", "gs = gridspec.GridSpec(1, 1)\n", - "ax1 = plt.subplot(gs[0,0])\n", + "ax1 = plt.subplot(gs[0, 0])\n", "\n", - "ax1.errorbar(x,y,xerr, fmt = \"o\")\n", + "ax1.errorbar(x, y, xerr, fmt=\"o\")\n", "\n", "ax1.invert_yaxis()\n", "ax1.set_xlabel(x_plot)\n", @@ -188,9 +188,9 @@ "outputs": [], "source": [ "# define the phase curve\n", - "pc = PhaseCurve(abs_mag = planetoid.SSObject.r_H * u.mag,\n", - " phase_param = planetoid.SSObject.r_G12,\n", - " model_name = \"HG12_Pen16\")" + "pc = PhaseCurve(\n", + " abs_mag=planetoid.SSObject.r_H * u.mag, phase_param=planetoid.SSObject.r_G12, model_name=\"HG12_Pen16\"\n", + ")" ] }, { @@ -226,7 +226,7 @@ }, "outputs": [], "source": [ - "alpha = np.linspace(0,np.amax(planetoid.Observations.phaseAngle)) * u.deg\n", + "alpha = np.linspace(0, np.amax(planetoid.Observations.phaseAngle)) * u.deg\n", "alpha" ] }, @@ -271,16 +271,16 @@ "y_plot = \"reduced_mag\"\n", "\n", "x = getattr(planetoid.Observations, x_plot)\n", - "y = getattr(planetoid.Observations,y_plot)\n", + "y = getattr(planetoid.Observations, y_plot)\n", "xerr = planetoid.Observations.magErr\n", "\n", "fig = plt.figure()\n", "gs = gridspec.GridSpec(1, 1)\n", - "ax1 = plt.subplot(gs[0,0])\n", + "ax1 = plt.subplot(gs[0, 0])\n", "\n", - "ax1.errorbar(x,y,xerr, fmt = \"o\")\n", + "ax1.errorbar(x, y, xerr, fmt=\"o\")\n", "\n", - "ax1.plot(alpha.value,red_mag.value)\n", + "ax1.plot(alpha.value, red_mag.value)\n", "\n", "ax1.invert_yaxis()\n", "ax1.set_xlabel(x_plot)\n", @@ -309,14 +309,14 @@ "y_plot = \"reduced_mag\"\n", "\n", "x = getattr(planetoid.Observations, x_plot)\n", - "y = getattr(planetoid.Observations,y_plot)\n", + "y = getattr(planetoid.Observations, y_plot)\n", "xerr = planetoid.Observations.magErr\n", "\n", "fig = plt.figure()\n", "gs = gridspec.GridSpec(1, 1)\n", - "ax1 = plt.subplot(gs[0,0])\n", + "ax1 = plt.subplot(gs[0, 0])\n", "\n", - "ax1.errorbar(x,y,xerr, fmt = \"o\")\n", + "ax1.errorbar(x, y, xerr, fmt=\"o\")\n", "\n", "ax1.invert_yaxis()\n", "ax1.set_xlabel(x_plot)\n", @@ -359,8 +359,7 @@ }, "outputs": [], "source": [ - "pc_fit = PhaseCurve(abs_mag = pc.abs_mag,\n", - " model_name = \"HG\")" + "pc_fit = PhaseCurve(abs_mag=pc.abs_mag, model_name=\"HG\")" ] }, { @@ -396,9 +395,11 @@ }, "outputs": [], "source": [ - "pc_fit.FitModel(phase_angle = planetoid.Observations.phaseAngle * u.deg,\n", - " reduced_mag = planetoid.Observations.reduced_mag * u.mag,\n", - " mag_err = planetoid.Observations.magErr * u.mag)" + "pc_fit.FitModel(\n", + " phase_angle=planetoid.Observations.phaseAngle * u.deg,\n", + " reduced_mag=planetoid.Observations.reduced_mag * u.mag,\n", + " mag_err=planetoid.Observations.magErr * u.mag,\n", + ")" ] }, { @@ -423,17 +424,17 @@ "y_plot = \"reduced_mag\"\n", "\n", "x = getattr(planetoid.Observations, x_plot)\n", - "y = getattr(planetoid.Observations,y_plot)\n", + "y = getattr(planetoid.Observations, y_plot)\n", "xerr = planetoid.Observations.magErr\n", "\n", "fig = plt.figure()\n", "gs = gridspec.GridSpec(1, 1)\n", - "ax1 = plt.subplot(gs[0,0])\n", + "ax1 = plt.subplot(gs[0, 0])\n", "\n", - "ax1.errorbar(x,y,xerr, fmt = \"o\")\n", + "ax1.errorbar(x, y, xerr, fmt=\"o\")\n", "\n", - "ax1.plot(alpha.value,pc.ReducedMag(alpha).value, label = pc.model_name)\n", - "ax1.plot(alpha.value,pc_fit.ReducedMag(alpha).value, label = pc_fit.model_name)\n", + "ax1.plot(alpha.value, pc.ReducedMag(alpha).value, label=pc.model_name)\n", + "ax1.plot(alpha.value, pc_fit.ReducedMag(alpha).value, label=pc_fit.model_name)\n", "\n", "ax1.invert_yaxis()\n", "ax1.set_xlabel(x_plot)\n", From b2705ebb71cd8934c835f367563bd59cb0466a5a Mon Sep 17 00:00:00 2001 From: jrob93 Date: Tue, 19 Mar 2024 14:54:26 +0000 Subject: [PATCH 9/9] fix CLI call --- src/adler/adler.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/adler/adler.py b/src/adler/adler.py index b3f66b7..c327aa3 100644 --- a/src/adler/adler.py +++ b/src/adler/adler.py @@ -1,4 +1,5 @@ import argparse +import astropy.units as u from adler.dataclasses.AdlerPlanetoid import AdlerPlanetoid from adler.science.PhaseCurve import PhaseCurve @@ -10,8 +11,25 @@ def runAdler(args): planetoid.do_pretend_science() # now let's do some phase curves! - pc = PhaseCurve(abs_mag=planetoid.SSObject.r_H, phase_param=0.2, model_name="HG") + + # get the RSP r filter model + pc = PhaseCurve( + abs_mag=planetoid.SSObject.H[2] * u.mag, + phase_param=planetoid.SSObject.G12[2], + model_name="HG12_Pen16", + ) print(pc) + print(pc.abs_mag, pc.phase_param) + + # get the r filter observations + obs_r = planetoid.observations_in_filter("r") + alpha = obs_r.phaseAngle * u.deg + red_mag = obs_r.reduced_mag * u.mag + mag_err = obs_r.magErr * u.mag + + # do a simple fit to all data + pc_fit = pc.FitModel(alpha, red_mag, mag_err) + print(pc_fit) def main():