SVOM¶
SVOM parsers cover GRM, ECLAIRs, MXT, and generic retraction VOEvent notices. Retractions are detected from the notice payload and parsed into their own model.
The exact GCN topics covered by the parsers are:
gcn.notices.svom.voevent.grmgcn.notices.svom.voevent.eclairsgcn.notices.svom.voevent.mxt
Classes¶
SvomEclairs
¶
Bases: BaseModel
Parsed SVOM ECLAIRs VOEvent notice (N1e).
Covers all ECLAIRs notice types: wake-up (202), catalog trigger (203),
slewing (204), and not-slewing (205). The specific notice type is
identified by packet_type.
Attributes:
| Name | Type | Description |
|---|---|---|
author_contact_name |
str
|
Contact name of the notice author. |
author_email |
str
|
Email address of the notice author. |
alert_datetime |
Annotated[datetime, ISO8601]
|
UTC datetime when the notice was issued (ISO-8601). |
ivorn |
str
|
Raw VOEvent IVORN identifying this notice instance. |
packet_type |
SvomPacket
|
ECLAIRs notice type identifier. |
pkt_ser_num |
int
|
Serial number for this packet type. |
instrument |
str
|
Instrument involved ( |
notice_level |
str
|
SVOM notice level ( |
burst_id |
str
|
Identifier of the alert sequence ( |
snr |
Annotated[float, sigma]
|
Signal-to-noise ratio in the reconstructed ECLAIRs image (sigma). |
timescale |
Annotated[float, s]
|
Time window in which the burst was detected (s). |
time_window_start |
Annotated[datetime, ISO8601]
|
Start time of the detection time window (ISO-8601). |
time_window_end |
Annotated[datetime, ISO8601]
|
End time of the detection time window (ISO-8601). |
lower_energy_bound |
Annotated[int, keV]
|
Lower energy bound of the detection range (keV). |
upper_energy_bound |
Annotated[int, keV]
|
Upper energy bound of the detection range (keV). |
trigger_type |
str
|
Type of trigger ( |
galactic_lon |
Annotated[float, deg]
|
Galactic longitude of the target (deg). |
galactic_lat |
Annotated[float, deg]
|
Galactic latitude of the target (deg). |
moon_angle |
Annotated[float, deg]
|
Angular distance between the target and the Moon (deg). |
sun_angle |
Annotated[float, deg]
|
Angular distance between the target and the Sun (deg). |
slew_status |
str
|
Slew status of the SVOM platform. |
attitude_ra |
Annotated[float, deg]
|
Platform attitude Right Ascension (deg). |
attitude_dec |
Annotated[float, deg]
|
Platform attitude Declination (deg). |
attitude_roll |
Annotated[float, deg]
|
Platform attitude Roll angle (deg). |
sat_longitude |
Annotated[float | None, deg]
|
Satellite geodetic longitude (deg). |
sat_latitude |
Annotated[float | None, deg]
|
Satellite geodetic latitude (deg). |
sat_altitude |
Annotated[float | None, km]
|
Satellite altitude (km). |
burst_datetime |
Annotated[datetime, ISO8601]
|
UTC time of the trigger event (ISO-8601). |
ra |
Annotated[float, deg]
|
Right Ascension of the detection (deg). |
dec |
Annotated[float, deg]
|
Declination of the detection (deg). |
error_radius |
Annotated[float, deg]
|
R90 uncertainty radius of the localisation (deg). |
description |
str | None
|
Description of the notice. |
reference_uri |
str | None
|
URL to the ECLAIRs instrument description. |
alert_seq_t0 |
Annotated[datetime | None, ISO8601]
|
Time of the alert sequence T0 (ISO-8601). |
onboard_catalog_id |
int | None
|
Identifier of the source in the ECLAIRs on-board
catalogue. |
source_name |
str | None
|
Name of the source in the ECLAIRs on-board catalogue.
|
followups |
tuple[str, ...]
|
IVORNs of previously published notices for the same event. |
Source code in gcn_parser/svom/svom_eclairs.py
SvomGrm
¶
Bases: BaseModel
Parsed SVOM GRM trigger notice (N1g, Packet_Type=201).
Issued when at least 2 out of the 3 Gamma-Ray Detectors (GRDs) are
triggered. If only 2 GRDs trigger, only the trigger time is provided
and no localisation or target fields are available (ra, dec,
error_radius, galactic targets are None). With all 3 GRDs,
localisation is provided but the error radius is set to -1 (not
computable on-board).
Attributes:
| Name | Type | Description |
|---|---|---|
author_contact_name |
str
|
Contact name of the notice author. |
author_email |
str
|
Email address of the notice author. |
alert_datetime |
Annotated[datetime, ISO8601]
|
UTC datetime when the notice was issued (ISO-8601). |
ivorn |
str
|
Raw VOEvent IVORN identifying this notice instance. |
packet_type |
SvomPacket
|
GCN packet type identifier (201 for GRM trigger). |
pkt_ser_num |
int
|
Serial number for this packet type. |
instrument |
str
|
Instrument involved ( |
notice_level |
str
|
SVOM notice level ( |
burst_id |
str
|
Identifier of the alert sequence ( |
alert_seq_t0 |
Annotated[datetime | None, ISO8601]
|
Time of the alert sequence T0 (ISO-8601). |
snr |
Annotated[float, sigma]
|
Signal-to-noise ratio of the detection (sigma). |
timescale |
Annotated[float, s]
|
Time window in which the burst was detected (s). |
time_window_start |
Annotated[datetime, ISO8601]
|
Start time of the detection time window (ISO-8601). |
time_window_end |
Annotated[datetime, ISO8601]
|
End time of the detection time window (ISO-8601). |
lower_energy_bound |
Annotated[float, keV]
|
Lower energy bound of the detection range (keV). |
upper_energy_bound |
Annotated[float, keV]
|
Upper energy bound of the detection range (keV). |
triggered_grds |
str
|
Trigger status of the 3 GRDs (e.g. |
galactic_lon |
Annotated[float | None, deg]
|
Galactic longitude of the target (deg). |
galactic_lat |
Annotated[float | None, deg]
|
Galactic latitude of the target (deg). |
moon_angle |
Annotated[float | None, deg]
|
Angular distance between the target and the Moon (deg).
|
sun_angle |
Annotated[float | None, deg]
|
Angular distance between the target and the Sun (deg).
|
attitude_ra |
Annotated[float, deg]
|
Platform attitude Right Ascension (deg). |
attitude_dec |
Annotated[float, deg]
|
Platform attitude Declination (deg). |
attitude_roll |
Annotated[float, deg]
|
Platform attitude Roll angle (deg). |
sat_longitude |
Annotated[float, deg]
|
Satellite geodetic longitude (deg). |
sat_latitude |
Annotated[float, deg]
|
Satellite geodetic latitude (deg). |
sat_altitude |
Annotated[float, km]
|
Satellite altitude (km). |
burst_datetime |
Annotated[datetime, ISO8601]
|
UTC time of the trigger event (ISO-8601). |
ra |
Annotated[float | None, deg]
|
Right Ascension of the detection (deg). |
dec |
Annotated[float | None, deg]
|
Declination of the detection (deg). |
error_radius |
Annotated[float | None, deg]
|
R90 uncertainty radius (deg). Set to -1 when all 3
GRDs trigger but no error can be computed; |
description |
str
|
Description of the notice. |
reference_uri |
str
|
URL to the GRM instrument description. |
Source code in gcn_parser/svom/svom_grm.py
SvomMxt
¶
Bases: BaseModel
Parsed SVOM MXT notice.
Covers both packet-209 initial notices and packet-210 update notices.
The raw VOEvent identity is preserved in ivorn.
Attributes:
| Name | Type | Description |
|---|---|---|
author_contact_name |
str
|
Contact name of the notice author. |
author_email |
str
|
Email address of the notice author. |
alert_datetime |
Annotated[datetime, ISO8601]
|
UTC datetime when the notice was issued (ISO-8601). |
ivorn |
str
|
Raw VOEvent IVORN identifying this notice instance. |
packet_type |
SvomPacket
|
MXT notice type identifier: 209 for the first detection, 210 when the detection quality factor improves. |
pkt_ser_num |
int
|
Serial number for this packet type. |
instrument |
str
|
Instrument involved ( |
notice_level |
str
|
SVOM notice level ( |
burst_id |
str
|
Identifier of the alert sequence ( |
alert_seq_t0 |
Annotated[datetime | None, ISO8601]
|
Time of the alert sequence T0 (ISO-8601). |
snr |
Annotated[float, sigma]
|
Signal-to-noise ratio of the MXT detection (sigma), saturating at 255. |
mean_flux |
float
|
Mean flux of the detected source (erg.cm^-2.s^-1). |
flux_error |
float
|
Mean flux error of the detection (erg.cm^-2.s^-1). |
within_eclairs_r90 |
bool
|
Whether the MXT source is compatible with the ECLAIRs R90 localisation. |
eclairs_angle |
Annotated[float, arcmin]
|
Angular distance between the MXT and ECLAIRs localisations (arcmin). |
galactic_lon |
Annotated[float, deg]
|
Galactic longitude of the target (deg). |
galactic_lat |
Annotated[float, deg]
|
Galactic latitude of the target (deg). |
moon_angle |
Annotated[float, deg]
|
Angular distance between the target and the Moon (deg). |
sun_angle |
Annotated[float, deg]
|
Angular distance between the target and the Sun (deg). |
use_vt_attitude |
bool
|
Whether the platform is in high-stability mode using VT attitude instead of the platform star tracker. |
attitude_ra |
Annotated[float, deg]
|
Platform attitude Right Ascension (deg). |
attitude_dec |
Annotated[float, deg]
|
Platform attitude Declination (deg). |
attitude_roll |
Annotated[float, deg]
|
Platform attitude Roll angle (deg). |
sat_longitude |
Annotated[float, deg]
|
Satellite geodetic longitude (deg). |
sat_latitude |
Annotated[float, deg]
|
Satellite geodetic latitude (deg). |
sat_altitude |
Annotated[float, km]
|
Satellite altitude (km). |
burst_datetime |
Annotated[datetime, ISO8601]
|
UTC time of the MXT detection event (ISO-8601). |
ra |
Annotated[float, deg]
|
Right Ascension of the MXT localisation (deg). |
dec |
Annotated[float, deg]
|
Declination of the MXT localisation (deg). |
error_radius |
Annotated[float, deg]
|
R90 uncertainty radius of the MXT localisation (deg). |
description |
str
|
Description of the notice. |
reference_uri |
str
|
URL to the MXT instrument description. |
followups |
tuple[str, ...]
|
IVORNs of previously published notices for the same event. |
Source code in gcn_parser/svom/svom_mxt.py
SvomRetraction
¶
Bases: BaseModel
Parsed generic SVOM packet-219 retraction notice.
Retractions are modeled as their own document shape and preserve the raw
cited IVORNs in retractions.
Attributes:
| Name | Type | Description |
|---|---|---|
author_contact_name |
str
|
Contact name of the notice author. |
author_email |
str
|
Email address of the notice author. |
alert_datetime |
Annotated[datetime, ISO8601]
|
UTC datetime when the retraction notice was issued (ISO-8601). |
ivorn |
str
|
Raw VOEvent IVORN identifying this retraction notice instance. |
packet_type |
SvomPacket
|
SVOM retraction notice type identifier (219). |
pkt_ser_num |
int
|
Serial number for this packet type. |
instrument |
str
|
Instrument associated with the retracted alert sequence. |
notice_level |
str
|
SVOM notice level for the retraction. |
burst_id |
str
|
Identifier of the alert sequence ( |
alert_seq_t0 |
Annotated[datetime | None, ISO8601]
|
Time of the alert sequence T0 (ISO-8601). |
snr |
Annotated[float, sigma]
|
Signal-to-noise ratio of the original detection (sigma). |
timescale |
Annotated[float, s]
|
Time window in which the original burst was detected (s). |
time_window_start |
Annotated[datetime, ISO8601]
|
Start time of the original detection time window (ISO-8601). |
time_window_end |
Annotated[datetime, ISO8601]
|
End time of the original detection time window (ISO-8601). |
lower_energy_bound |
Annotated[int, keV]
|
Lower energy bound of the original detection range (keV). |
upper_energy_bound |
Annotated[int, keV]
|
Upper energy bound of the original detection range (keV). |
trigger_type |
str | None
|
Type of original ECLAIRs trigger, when present. |
galactic_lon |
Annotated[float | None, deg]
|
Galactic longitude of the retracted target (deg).
|
galactic_lat |
Annotated[float | None, deg]
|
Galactic latitude of the retracted target (deg).
|
moon_angle |
Annotated[float | None, deg]
|
Angular distance between the target and the Moon (deg).
|
sun_angle |
Annotated[float | None, deg]
|
Angular distance between the target and the Sun (deg).
|
slew_status |
str | None
|
Slew status of the SVOM platform, when present. |
attitude_ra |
Annotated[float, deg]
|
Platform attitude Right Ascension (deg). |
attitude_dec |
Annotated[float, deg]
|
Platform attitude Declination (deg). |
attitude_roll |
Annotated[float, deg]
|
Platform attitude Roll angle (deg). |
sat_longitude |
Annotated[float | None, deg]
|
Satellite geodetic longitude (deg). |
sat_latitude |
Annotated[float | None, deg]
|
Satellite geodetic latitude (deg). |
sat_altitude |
Annotated[float | None, km]
|
Satellite altitude (km). |
burst_datetime |
Annotated[datetime, ISO8601]
|
UTC time of the original trigger event (ISO-8601). |
ra |
Annotated[float | None, deg]
|
Right Ascension of the retracted localisation (deg). |
dec |
Annotated[float | None, deg]
|
Declination of the retracted localisation (deg). |
error_radius |
Annotated[float | None, deg]
|
R90 uncertainty radius of the retracted localisation
(deg). |
description |
str | None
|
Human-readable reason for the retraction. |
reference_uri |
str | None
|
URL to the instrument description. |
retractions |
tuple[str, ...]
|
IVORNs of previously published notices retracted by this notice. |
Source code in gcn_parser/svom/svom_retraction.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | |
SvomPacket
¶
Bases: IntEnum
SVOM ECLAIRs notice packet type identifiers.
Source code in gcn_parser/svom/_svom.py
Functions¶
parse_svom_eclairs(value)
¶
Parses an SVOM ECLAIRs VOEvent notice from bytes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
bytes
|
Raw XML bytes of the VOEvent notice. |
required |
Returns:
| Type | Description |
|---|---|
SvomEclairs
|
Parsed ECLAIRs notice model. |
Raises:
| Type | Description |
|---|---|
ParseError
|
If the XML document cannot be parsed, the
|
FieldParseError
|
If a specific field cannot be extracted from the notice. |
Source code in gcn_parser/svom/svom_eclairs.py
parse_svom_grm_trigger(value)
¶
Parses an SVOM GRM trigger notice from bytes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
bytes
|
Raw XML bytes of the VOEvent notice. |
required |
Returns:
| Type | Description |
|---|---|
SvomGrm
|
Parsed GRM trigger notice model. |
Raises:
| Type | Description |
|---|---|
ParseError
|
If the XML document cannot be parsed or model validation fails. |
FieldParseError
|
If a specific field cannot be extracted from the notice. |
Source code in gcn_parser/svom/svom_grm.py
parse_svom_mxt(value)
¶
Parses an SVOM MXT notice from bytes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
bytes
|
Raw XML bytes of the VOEvent notice. |
required |
Returns:
| Type | Description |
|---|---|
SvomMxt
|
Parsed MXT notice model. |
Raises:
| Type | Description |
|---|---|
ParseError
|
If the XML document cannot be parsed or model validation fails. |
FieldParseError
|
If a specific field cannot be extracted from the notice. |
Source code in gcn_parser/svom/svom_mxt.py
parse_svom_retraction(value)
¶
Parses a generic SVOM retraction notice from bytes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
bytes
|
Raw XML bytes of the VOEvent notice. |
required |
Returns:
| Type | Description |
|---|---|
SvomRetraction
|
Parsed retraction notice model. |
Raises:
| Type | Description |
|---|---|
ParseError
|
If the XML document cannot be parsed or model validation fails. |
FieldParseError
|
If a specific field cannot be extracted from the notice. |
Source code in gcn_parser/svom/svom_retraction.py
is_svom_retraction(value)
¶
Checks whether the notice is a SVOM retraction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
bytes
|
Raw XML bytes of the VOEvent notice. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if the notice is a SVOM retraction. |