Data Model

pydantic model tdemocracy.model.NuclearTransientReport[source]

Data model for LSST alert reports from Ampel.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "tdemocracy.model.Host"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>Host</b></td></tr><tr><td>name</td><td port="name">str | None</td></tr><tr><td>primary_source</td><td port="primary_source">str</td></tr><tr><td>ra</td><td port="ra">float</td></tr><tr><td>dec</td><td port="dec">float</td></tr><tr><td>sources</td><td port="sources">str | list[str]</td></tr><tr><td>redshift</td><td port="redshift">float | None</td></tr><tr><td>redshift_error</td><td port="redshift_error">float | None</td></tr><tr><td>distance</td><td port="distance">float</td></tr><tr><td>info</td><td port="info">str | dict[str, dict[str, str | int]] | None</td></tr></table>>,
      tooltip="tdemocracy.model.Host&#xA;&#xA;Host identified through catalog matching&#xA;"];
   "tdemocracy.model.MeanPosition"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>MeanPosition</b></td></tr><tr><td>mean_ra</td><td port="mean_ra">float</td></tr><tr><td>mean_dec</td><td port="mean_dec">float</td></tr><tr><td>circularized_error</td><td port="circularized_error">float</td></tr><tr><td>std</td><td port="std">float</td></tr></table>>,
      tooltip="tdemocracy.model.MeanPosition&#xA;&#xA;Mean position of the transient calculated as the&#xA;weighted sum of the diaSource positions \
contributing to the diaSource.&#xA;"];
   "tdemocracy.model.NuclearTransientReport"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>NuclearTransientReport</b></td></tr><tr><td>version</td><td port="version">str</td></tr><tr><td>model_version</td><td port="model_version">str</td></tr><tr><td>object</td><td port="object">Object</td></tr><tr><td>state</td><td port="state">int</td></tr><tr><td>photometry</td><td port="photometry">Sequence[PhotometricPoint]</td></tr><tr><td>host</td><td port="host">Host | None</td></tr><tr><td>mean_position</td><td port="mean_position">MeanPosition</td></tr><tr><td>template_fluxes</td><td port="template_fluxes">TemplateFluxes</td></tr></table>>,
      tooltip="tdemocracy.model.NuclearTransientReport&#xA;&#xA;Data model for LSST alert reports from Ampel.&#xA;"];
   "tdemocracy.model.NuclearTransientReport":host:e -> "tdemocracy.model.Host":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.NuclearTransientReport":mean_position:e -> "tdemocracy.model.MeanPosition":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.Object"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>Object</b></td></tr><tr><td>id</td><td port="id">int</td></tr><tr><td>external_id</td><td port="external_id">str | None</td></tr><tr><td>ra</td><td port="ra">float</td></tr><tr><td>ra_err</td><td port="ra_err">float | None</td></tr><tr><td>dec</td><td port="dec">float</td></tr><tr><td>dec_err</td><td port="dec_err">float | None</td></tr><tr><td>ra_dec_cov</td><td port="ra_dec_cov">float | None</td></tr><tr><td>source</td><td port="source">str</td></tr></table>>,
      tooltip="tdemocracy.model.Object&#xA;&#xA;Object associated with an LSST alert report (diaObject)&#xA;"];
   "tdemocracy.model.NuclearTransientReport":object:e -> "tdemocracy.model.Object":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.PhotometricPoint"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>PhotometricPoint</b></td></tr><tr><td>id</td><td port="id">int</td></tr><tr><td>source</td><td port="source">Literal['LSST_DP', 'LSST_FP']</td></tr><tr><td>time</td><td port="time">float</td></tr><tr><td>flux</td><td port="flux">float</td></tr><tr><td>fluxerr</td><td port="fluxerr">float</td></tr><tr><td>band</td><td port="band">str</td></tr><tr><td>zp</td><td port="zp">float</td></tr><tr><td>zpsys</td><td port="zpsys">str</td></tr></table>>,
      tooltip="tdemocracy.model.PhotometricPoint&#xA;&#xA;Observed photometric point in an LSST alert report.&#xA;Forced photometry (diaForcedSource) \
takes preference over alert photometry (diaSource).&#xA;"];
   "tdemocracy.model.NuclearTransientReport":photometry:e -> "tdemocracy.model.PhotometricPoint":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "tdemocracy.model.TemplateFluxes"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>TemplateFluxes</b></td></tr><tr><td>u</td><td port="u">TemplateFlux | None</td></tr><tr><td>g</td><td port="g">TemplateFlux | None</td></tr><tr><td>r</td><td port="r">TemplateFlux | None</td></tr><tr><td>i</td><td port="i">TemplateFlux | None</td></tr><tr><td>z</td><td port="z">TemplateFlux | None</td></tr><tr><td>y</td><td port="y">TemplateFlux | None</td></tr></table>>,
      tooltip="tdemocracy.model.TemplateFluxes&#xA;&#xA;Median of the templateFlux of all diaSources contributing to the diaObject.&#xA;"];
   "tdemocracy.model.NuclearTransientReport":template_fluxes:e -> "tdemocracy.model.TemplateFluxes":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.TemplateFlux"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>TemplateFlux</b></td></tr><tr><td>band</td><td port="band">str</td></tr><tr><td>median</td><td port="median">float</td></tr><tr><td>perc5</td><td port="perc5">float</td></tr><tr><td>perc95</td><td port="perc95">float</td></tr></table>>,
      tooltip="tdemocracy.model.TemplateFlux&#xA;&#xA;Median and 90th percentile of the templateFlux of all diaSources&#xA;contributing to the \
diaObject in a single band.&#xA;"];
   "tdemocracy.model.TemplateFluxes":g:e -> "tdemocracy.model.TemplateFlux":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.TemplateFluxes":i:e -> "tdemocracy.model.TemplateFlux":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.TemplateFluxes":r:e -> "tdemocracy.model.TemplateFlux":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.TemplateFluxes":u:e -> "tdemocracy.model.TemplateFlux":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.TemplateFluxes":y:e -> "tdemocracy.model.TemplateFlux":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "tdemocracy.model.TemplateFluxes":z:e -> "tdemocracy.model.TemplateFlux":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
}

Show JSON schema
{
   "title": "NuclearTransientReport",
   "description": "Data model for LSST alert reports from Ampel.",
   "type": "object",
   "properties": {
      "version": {
         "title": "Version",
         "type": "string"
      },
      "model_version": {
         "title": "Model Version",
         "type": "string"
      },
      "object": {
         "$ref": "#/$defs/Object"
      },
      "state": {
         "title": "State",
         "type": "integer"
      },
      "photometry": {
         "items": {
            "$ref": "#/$defs/PhotometricPoint"
         },
         "title": "Photometry",
         "type": "array"
      },
      "host": {
         "anyOf": [
            {
               "$ref": "#/$defs/Host"
            },
            {
               "type": "null"
            }
         ]
      },
      "mean_position": {
         "$ref": "#/$defs/MeanPosition"
      },
      "template_fluxes": {
         "$ref": "#/$defs/TemplateFluxes"
      }
   },
   "$defs": {
      "Host": {
         "description": "Host identified through catalog matching",
         "properties": {
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "title": "Name"
            },
            "primary_source": {
               "title": "Primary Source",
               "type": "string"
            },
            "ra": {
               "title": "Ra",
               "type": "number"
            },
            "dec": {
               "title": "Dec",
               "type": "number"
            },
            "sources": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "items": {
                        "type": "string"
                     },
                     "type": "array"
                  }
               ],
               "title": "Sources"
            },
            "redshift": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "title": "Redshift"
            },
            "redshift_error": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Redshift Error"
            },
            "distance": {
               "title": "Distance",
               "type": "number"
            },
            "info": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "additionalProperties": {
                        "additionalProperties": {
                           "anyOf": [
                              {
                                 "type": "string"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        "type": "object"
                     },
                     "type": "object"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Info"
            }
         },
         "required": [
            "name",
            "primary_source",
            "ra",
            "dec",
            "sources",
            "redshift",
            "distance"
         ],
         "title": "Host",
         "type": "object"
      },
      "MeanPosition": {
         "description": "Mean position of the transient calculated as the\nweighted sum of the diaSource positions contributing to the diaSource.",
         "properties": {
            "mean_ra": {
               "title": "Mean Ra",
               "type": "number"
            },
            "mean_dec": {
               "title": "Mean Dec",
               "type": "number"
            },
            "circularized_error": {
               "title": "Circularized Error",
               "type": "number"
            },
            "std": {
               "title": "Std",
               "type": "number"
            }
         },
         "required": [
            "mean_ra",
            "mean_dec",
            "circularized_error",
            "std"
         ],
         "title": "MeanPosition",
         "type": "object"
      },
      "Object": {
         "description": "Object associated with an LSST alert report (diaObject)",
         "properties": {
            "id": {
               "title": "Id",
               "type": "integer"
            },
            "external_id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "External Id"
            },
            "ra": {
               "title": "Ra",
               "type": "number"
            },
            "ra_err": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Ra Err"
            },
            "dec": {
               "title": "Dec",
               "type": "number"
            },
            "dec_err": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Dec Err"
            },
            "ra_dec_cov": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Ra Dec Cov"
            },
            "source": {
               "title": "Source",
               "type": "string"
            }
         },
         "required": [
            "id",
            "ra",
            "dec",
            "source"
         ],
         "title": "Object",
         "type": "object"
      },
      "PhotometricPoint": {
         "description": "Observed photometric point in an LSST alert report.\nForced photometry (diaForcedSource) takes preference over alert photometry (diaSource).",
         "properties": {
            "id": {
               "title": "Id",
               "type": "integer"
            },
            "source": {
               "enum": [
                  "LSST_DP",
                  "LSST_FP"
               ],
               "title": "Source",
               "type": "string"
            },
            "time": {
               "title": "Time",
               "type": "number"
            },
            "flux": {
               "title": "Flux",
               "type": "number"
            },
            "fluxerr": {
               "title": "Fluxerr",
               "type": "number"
            },
            "band": {
               "title": "Band",
               "type": "string"
            },
            "zp": {
               "title": "Zp",
               "type": "number"
            },
            "zpsys": {
               "title": "Zpsys",
               "type": "string"
            }
         },
         "required": [
            "id",
            "source",
            "time",
            "flux",
            "fluxerr",
            "band",
            "zp",
            "zpsys"
         ],
         "title": "PhotometricPoint",
         "type": "object"
      },
      "TemplateFlux": {
         "description": "Median and 90th percentile of the templateFlux of all diaSources\ncontributing to the diaObject in a single band.",
         "properties": {
            "band": {
               "title": "Band",
               "type": "string"
            },
            "median": {
               "title": "Median",
               "type": "number"
            },
            "perc5": {
               "title": "Perc5",
               "type": "number"
            },
            "perc95": {
               "title": "Perc95",
               "type": "number"
            }
         },
         "required": [
            "band",
            "median",
            "perc5",
            "perc95"
         ],
         "title": "TemplateFlux",
         "type": "object"
      },
      "TemplateFluxes": {
         "description": "Median of the templateFlux of all diaSources contributing to the diaObject.",
         "properties": {
            "u": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/TemplateFlux"
                  },
                  {
                     "type": "null"
                  }
               ]
            },
            "g": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/TemplateFlux"
                  },
                  {
                     "type": "null"
                  }
               ]
            },
            "r": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/TemplateFlux"
                  },
                  {
                     "type": "null"
                  }
               ]
            },
            "i": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/TemplateFlux"
                  },
                  {
                     "type": "null"
                  }
               ]
            },
            "z": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/TemplateFlux"
                  },
                  {
                     "type": "null"
                  }
               ]
            },
            "y": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/TemplateFlux"
                  },
                  {
                     "type": "null"
                  }
               ]
            }
         },
         "required": [
            "u",
            "g",
            "r",
            "i",
            "z",
            "y"
         ],
         "title": "TemplateFluxes",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "version",
      "model_version",
      "object",
      "state",
      "photometry",
      "host",
      "mean_position",
      "template_fluxes"
   ]
}

Config:
  • extra: str = forbid

field host: Host | None [Required]
field mean_position: MeanPosition [Required]
field model_version: str [Required]

Version of the TDEmocracy nuclear filter data model

field object: Object [Required]
field photometry: Sequence[PhotometricPoint] [Required]
field state: int [Required]

unique identifier for underlying collection of data points in AMPEL

field template_fluxes: TemplateFluxes [Required]
field version: str [Required]

Version of the TDEmocracy nuclear filter

pydantic model tdemocracy.model.PhotometricPoint[source]

Observed photometric point in an LSST alert report. Forced photometry (diaForcedSource) takes preference over alert photometry (diaSource).

Show JSON schema
{
   "title": "PhotometricPoint",
   "description": "Observed photometric point in an LSST alert report.\nForced photometry (diaForcedSource) takes preference over alert photometry (diaSource).",
   "type": "object",
   "properties": {
      "id": {
         "title": "Id",
         "type": "integer"
      },
      "source": {
         "enum": [
            "LSST_DP",
            "LSST_FP"
         ],
         "title": "Source",
         "type": "string"
      },
      "time": {
         "title": "Time",
         "type": "number"
      },
      "flux": {
         "title": "Flux",
         "type": "number"
      },
      "fluxerr": {
         "title": "Fluxerr",
         "type": "number"
      },
      "band": {
         "title": "Band",
         "type": "string"
      },
      "zp": {
         "title": "Zp",
         "type": "number"
      },
      "zpsys": {
         "title": "Zpsys",
         "type": "string"
      }
   },
   "required": [
      "id",
      "source",
      "time",
      "flux",
      "fluxerr",
      "band",
      "zp",
      "zpsys"
   ]
}

field band: str [Required]

band

field flux: float [Required]

psfFlux

field fluxerr: float [Required]

psfFluxErr

field id: int [Required]

diaSourceId or diaForcedSourceId

field source: Literal['LSST_DP', 'LSST_FP'] [Required]

id source

field time: float [Required]

midpointMjdTai

field zp: float [Required]

Photometric zero point

field zpsys: str [Required]

Zero point system

pydantic model tdemocracy.model.Object[source]

Object associated with an LSST alert report (diaObject)

Show JSON schema
{
   "title": "Object",
   "description": "Object associated with an LSST alert report (diaObject)",
   "type": "object",
   "properties": {
      "id": {
         "title": "Id",
         "type": "integer"
      },
      "external_id": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "External Id"
      },
      "ra": {
         "title": "Ra",
         "type": "number"
      },
      "ra_err": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ra Err"
      },
      "dec": {
         "title": "Dec",
         "type": "number"
      },
      "dec_err": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Dec Err"
      },
      "ra_dec_cov": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ra Dec Cov"
      },
      "source": {
         "title": "Source",
         "type": "string"
      }
   },
   "required": [
      "id",
      "ra",
      "dec",
      "source"
   ]
}

field dec: float [Required]

Declination (dec; deg)

field dec_err: float | None = None

Declination uncertainty (decErr; deg)

field external_id: str | None = None

External Object ID

field id: int [Required]

diaObjectId

field ra: float [Required]

Right ascension (ra; deg)

field ra_dec_cov: float | None = None

Right ascension/declination covariance (ra_dec_Doc; deg2)

field ra_err: float | None = None

Right ascension uncertainty (raErr; deg)

field source: str [Required]

Data source

pydantic model tdemocracy.model.Host[source]

Host identified through catalog matching

Show JSON schema
{
   "title": "Host",
   "description": "Host identified through catalog matching",
   "type": "object",
   "properties": {
      "name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "title": "Name"
      },
      "primary_source": {
         "title": "Primary Source",
         "type": "string"
      },
      "ra": {
         "title": "Ra",
         "type": "number"
      },
      "dec": {
         "title": "Dec",
         "type": "number"
      },
      "sources": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "items": {
                  "type": "string"
               },
               "type": "array"
            }
         ],
         "title": "Sources"
      },
      "redshift": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "title": "Redshift"
      },
      "redshift_error": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Redshift Error"
      },
      "distance": {
         "title": "Distance",
         "type": "number"
      },
      "info": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "additionalProperties": {
                  "additionalProperties": {
                     "anyOf": [
                        {
                           "type": "string"
                        },
                        {
                           "type": "integer"
                        }
                     ]
                  },
                  "type": "object"
               },
               "type": "object"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Info"
      }
   },
   "required": [
      "name",
      "primary_source",
      "ra",
      "dec",
      "sources",
      "redshift",
      "distance"
   ]
}

field dec: float [Required]

Declination (deg)

field distance: float [Required]

Distance in arcsec

field info: str | dict[str, dict[str, str | int]] | None = None

Type info if included in the matching catalogs, catalog name -> type key -> type value

field name: str | None [Required]

Name of the identifying ampel unit

field primary_source: str [Required]

Name of the catalog with the closest entry

field ra: float [Required]

Right ascension (deg)

field redshift: float | None [Required]

Mean of the best redshift category for all catalog sources containing redshifts (see https://github.com/AmpelAstro/Ampel-HU-astro/blob/main/ampel/contrib/hu/t2/T2DigestRedshifts.py)

field redshift_error: float | None = None

Precision of the redshift category

field sources: str | list[str] [Required]

Names of catalogs with entries close to the one in primary_source

pydantic model tdemocracy.model.TemplateFlux[source]

Median and 90th percentile of the templateFlux of all diaSources contributing to the diaObject in a single band.

Show JSON schema
{
   "title": "TemplateFlux",
   "description": "Median and 90th percentile of the templateFlux of all diaSources\ncontributing to the diaObject in a single band.",
   "type": "object",
   "properties": {
      "band": {
         "title": "Band",
         "type": "string"
      },
      "median": {
         "title": "Median",
         "type": "number"
      },
      "perc5": {
         "title": "Perc5",
         "type": "number"
      },
      "perc95": {
         "title": "Perc95",
         "type": "number"
      }
   },
   "required": [
      "band",
      "median",
      "perc5",
      "perc95"
   ]
}

field band: str [Required]

Band name

field median: float [Required]

Median template flux

field perc5: float [Required]

5th percentile template flux

field perc95: float [Required]

95th percentile template flux

pydantic model tdemocracy.model.MeanPosition[source]

Mean position of the transient calculated as the weighted sum of the diaSource positions contributing to the diaSource.

Show JSON schema
{
   "title": "MeanPosition",
   "description": "Mean position of the transient calculated as the\nweighted sum of the diaSource positions contributing to the diaSource.",
   "type": "object",
   "properties": {
      "mean_ra": {
         "title": "Mean Ra",
         "type": "number"
      },
      "mean_dec": {
         "title": "Mean Dec",
         "type": "number"
      },
      "circularized_error": {
         "title": "Circularized Error",
         "type": "number"
      },
      "std": {
         "title": "Std",
         "type": "number"
      }
   },
   "required": [
      "mean_ra",
      "mean_dec",
      "circularized_error",
      "std"
   ]
}

field circularized_error: float [Required]

Geometric mean of sqrt(raErr^2 + decErr^2) in arcsec

field mean_dec: float [Required]

The mean Dec (deg)

field mean_ra: float [Required]

The mean RA (deg)

field std: float [Required]

Standard deviation of the datapoint distance to the mean position in arcsec