Suffix Explanation

Column Name SuffixDescription
_mergedBest single value for this source, computed by weighted averaging (photometry) or priority selection (redshift, morphology). This is the column you should use for science.
_allJSON array of ALL values from every matched catalog for this source, e.g. [1.234, 1.237, 1.240]. Preserves full provenance — useful for checking agreement across surveys. Values are homogenized to the AGN-DB unit system, not reproduced in the units each catalog published: magnitudes are converted to AB, and the X-ray (xf*) and IR/radio (rf*) flux families are stored as log10, in the same units as their _merged counterparts (sections 5 and 10). The per-catalog decomposition is what _all preserves; _origin identifies which catalog each entry came from.
_originJSON array of integer catalog IDs (matching _all order), identifying which catalog contributed each value. Catalog ID mapping is in index2ds.pickle.
_sub_allJSON array of sub-classifications (morphology only), providing finer detail than the main class label.
e_Prefix indicating measurement uncertainty (error) on the quantity that follows. E.g., e_U_mag_merged is the error on U_mag_merged.

Missing Data

  • NaN (Not a Number) indicates no measurement is available.
  • Inside an e_*_all error-provenance array, the bare JSON token `null` appears in slots where the contributing catalog reported the value but no error for it (e.g., e_W1_mag_all = [null, null, null, 2.718]). Index alignment with the matching *_all and *_origin arrays is preserved. Parse with json.loads().

Identification & Coordinates

Column NameDescription
AGN-DB_IDStable integer source identifier
AGN-DB_nameUnique coordinate-based source identifier following the IAU designation convention (1AGNDB JHHMMSS.sss±DDMMSS.sss, e.g. 1AGNDB J095608.945+024220.318)
RARight Ascension (J2000) [degrees, 0–360]
DECDeclination (J2000) [degrees, -90 to +90]
pos_errorCombined positional uncertainty of the error-weighted mean position (RA, DEC), in arcseconds. For matched sources this is (sum of 1/sigma_i^2)^(-1/2) over the member entries; for single-catalog sources it is the input catalog's positional error. Input uncertainties that are missing or unphysical (NaN/inf/<=0) are replaced at ingestion with the median positional uncertainty of the valid entries of the same catalog (or, if a catalog has no valid entries, with its angular resolution).
originPython-tuple-repr string of catalog IDs that contributed to this source after LYRA cross-matching, e.g. "(21, 32, 81)". Parse with ast.literal_eval().
ra_allJSON array of the original per-catalog Right Ascensions (J2000, degrees) of the constituent entries, ordered by ascending catalog ID (same ordering as `origin`), e.g. [149.037269, 149.039382]. Together with dec_all this allows any association to be decomposed into its constituent catalog entries. Values rounded to 1e-6 deg (3.6 mas).
dec_allJSON array of the original per-catalog Declinations (J2000, degrees), same ordering and conventions as ra_all.
in_galactic_planeBoolean flag: True if the source lies within |b| < 10 degrees of the Galactic plane. Sources near the plane are more likely to suffer from stellar contamination, high extinction, and source confusion. Users building clean extragalactic samples should filter on in_galactic_plane == False.
galaxy_only_flagBoolean flag (stage 7.52): True when the source has at least one "galaxy" classification and NO AGN-type classification (type1, type2, generic_agn, blazar, lens_system, dual/merger) in any tier. These may be obscured/buried AGN where nuclear activity is undetected.
unknown_only_flagBoolean flag (stage 7.52): True when the source carries no usable classification — either every reported value across all five tiers is "unknown", or no tier reports any classification at all (2026-07-11 change; before that date the flag covered only the all-"unknown" case). The raw class arrays preserve the distinction: empty arrays mean nothing was reported, explicit "unknown" entries mean a catalog attempted a classification without reaching a conclusion.
star_flag

Categorical (stage 7.5). One of:

  • 'confirmed' — spec_class contains 'star' and no non-star spec_class. Spectroscopic star call; treat as definitive.
  • 'likely' — no spec_class, all non-spec classifications (SED/xray/image/gen) say 'star', and no X-ray detection in any xf*_all column. Photometric star call with no rescue signal. Caveat: a null X-ray flux can also mean no X-ray coverage at that position, not just a non-detection.
  • 'unlikely' — non-spec classifications all say 'star' BUT at least one xf*_all is non-null. The X-ray detection overrides the photometric star call, suggesting a misclassified AGN.
  • 'none' — not flagged as a star (any non-star classification in any tier, no classification at all, or every classification is 'unknown'). No rows are removed by stage 7.5.

Typical filters:

df.star_flag == 'none'# strict
df.star_flag != 'confirmed'# permissive
df.star_flag.isin(['none','unlikely'])# matches legacy behaviour
close_intra_dup_arcsecFloat (stage 7.53): separation in arcseconds to the nearest *intra-catalog* neighbor within 1.0", or NaN when none exists. Two merged sources are intra-catalog neighbors when at least one source-catalog contributed to both (set(origin_A) & set(origin_B) ≠ ∅). LYRA forbids merging two detections from the same catalog, so a small value here reflects a catalog-side data quality artifact, NOT a LYRA assignment failure. Typical filter for "trust this source is well isolated": df.close_intra_dup_arcsec.isna() | (df.close_intra_dup_arcsec > 0.1).
close_intra_dup_partnerInt64 nullable (stage 7.53): row index in this same table of the intra-catalog neighbor recorded in close_intra_dup_arcsec, or "NA". Use to inspect the counterpart directly: df.iloc[partner_idx].

Crossmatch Quality

Column NameDescription
match_quality_tierMatched sources (>= 2 catalogs) are tiered on match_probability_relative (P_rel), tested in order: 'secure' — P_rel >= 0.9, or >= 0.5 for >= 3 catalogs; 'reliable' — P_rel >= 0.5, or >= 0.1 for >= 3 catalogs; 'possible' — all remaining accepted matches. Unmatched, single-catalog sources get 'unsure' (a candidate association was evaluated and rejected) or 'isolated' (no counterpart was ever found within the search radius).
match_probabilityFloat in (0, 1]. P_match = O/(1+O), where O is the posterior odds of the accepted hypothesis. NaN for single-catalog sources.
match_probability_relativeFloat in (0, 1]. Relative probability P_rel of the accepted hypothesis, normalized over the conflicting hypotheses (those sharing at least one source) within its spatial group; the quantity on which the quality tiers are based. NaN for single-catalog sources.
astrometry_attachedBoolean. True when the match includes entries added by the post-greedy astrometric reattachment step (unmatched source within 0.1″ of a winning match, normalized separation within ~1σ).

Redshift

Redshift Types

Column NameDescription
spec_Z_allSpectroscopic redshift — all values [JSON array]
spec_Z_originCatalog IDs for spec_Z values [JSON array]
e_spec_Z_allErrors on spectroscopic redshifts [JSON array]
phot_Z_allPhotometric redshift — all values [JSON array]
phot_Z_originCatalog IDs for phot_Z values [JSON array]
e_phot_Z_allErrors on photometric redshifts [JSON array]
min_phot_Z_allLower bound of photo-z confidence interval [JSON]
max_phot_Z_allUpper bound of photo-z confidence interval [JSON]
Z_allGeneric redshift (type unspecified) — all values
Z_originCatalog IDs for Z values [JSON array]

Best redshift values

Column NameDescription
best_Z_allBest redshift, selected by priority: 1st = spectroscopic (most reliable), 2nd = photometric, 3rd = generic. Stored as JSON array (first element is the best).
best_Z_mergedScalar best redshift value [float]: the MEAN of the values stored in best_Z_all. Averaging is always confined to the winning category — a spectroscopic redshift is never averaged with a photometric or generic one. For 77.6% of sources the winning category holds a single value and best_Z_merged is simply that value; for the remaining 22.4% it is the mean over the catalogs contributing to that one category. This is the column you should use for science when you want a single numeric redshift per source; use best_Z_all if you need the individual measurements.
best_Z_originCatalog ID of the best redshift [JSON array]
f_best_ZFlag indicating best redshift type [float]: 1.0 = spectroscopic, 2.0 = photometric, 3.0 = generic

Classification

Label scheme

  • type1: Broad-line AGN (Seyfert 1, QSO Type 1, BLAGN)
  • type2: Narrow-line AGN (Seyfert 2, NLAGN, Sy1.5–1.9)
  • generic_agn: AGN without type specification
  • blazar: Blazars (BL Lac, FSRQ)
  • galaxy: Non-AGN galaxies (elliptical, spiral, starburst, etc.)
  • star: Stars, white dwarfs, CVs, X-ray binaries
  • lens_system: Gravitational lens systems
  • dual/merger: Dual AGN, merging pairs, interactions
  • cluster: Galaxy clusters and groups
  • unknown: Unclassifiable or insufficient data
Column NameDescription
spec_class_allSpectroscopic classification — all values
spec_class_originCatalog IDs [JSON array]
spec_class_sub_allSub-classification detail (e.g. "sy1.5", "bllac")
gen_class_allGeneric classification — all values
gen_class_originCatalog IDs [JSON array] (Note: gen_class has no _sub_all column; the other four tiers do.)
SED_class_allSED-fitting classification — all values
SED_class_originCatalog IDs [JSON array]
SED_class_sub_allSub-classification detail
xray_class_allX-ray classification (point-like vs extended)
xray_class_originCatalog IDs [JSON array]
xray_class_sub_allSub-classification detail
image_class_allVisual/image-based classification — all values
image_class_originCatalog IDs [JSON array]
image_class_sub_allSub-classification detail
best_class_allBest classification, selected by priority: spec_class > SED_class > xray_class > image_class > gen_class
best_class_originCatalog ID of the best classification
best_class_sub_allSub-classification of the best class

Photometry — UV/Optical/Near-IR Magnitudes

All magnitudes are in the AB system (after unit conversion). Each band has 5 columns: {band}_merged, e_{band}_merged, {band}_all, e_{band}_all, and {band}_origin.

BandWavelengthSystem / Instrument
FUV_mag1539 ÅGALEX Far Ultraviolet
NUV_mag2316 ÅGALEX Near Ultraviolet
1450Mag1450 Å1450 Å absolute magnitude
1450mag1450 Å1450 Å apparent magnitude
u_mag3557 ÅSDSS u
U_mag3652 ÅJohnson U
B_mag4448 ÅJohnson B
g_mag4825 ÅSDSS g
GBP_mag5320 ÅGaia Blue BP
V_mag5505 ÅJohnson V
r_mag6261 ÅSDSS r
R_mag6581 ÅCousins R
G_mag6730 ÅGaia broad G
i_mag7672 ÅSDSS i
GRP_mag7970 ÅGaia Red (RP)
I_mag8059 ÅCousins I
z_mag9097 ÅSDSS z
Y_mag1.02 µmY band
J_mag1.24 µmJ band
H_mag1.65 µmH band
K_mag2.16 µmK band
W1_mag3.4 µmWISE band 1
W2_mag4.6 µmWISE band 2
W3_mag12 µmWISE band 3
W4_mag22 µmWISE band 4

Photometry — Infrared & Radio Fluxes [log10 mJy]

All IR and radio flux densities are stored as log10(flux density in mJy) in the merged columns. Each band has 5 columns: {band}_merged, e_{band}_merged, {band}_all, e_{band}_all, and {band}_origin.

Note:

rf1–rf4, rf9, rf13, and rf17 are defined in the schema but may not appear in the final table if no data were merged for those bands.

NameWavelength / FrequencySystem/instrument
rf520 cm / 1.4 GHzRadio (e.g., VLA FIRST)
rf724 µmMid-IR (e.g., Spitzer MIPS)
rf8250 µmFar-IR (e.g., Herschel SPIRE)
rf103.6 µmMid-IR (e.g., Spitzer IRAC)
rf11350 µmSub-mm (e.g., Herschel SPIRE)
rf124.5 µmMid-IR (e.g., Spitzer IRAC)
rf14500 µmSub-mm (e.g., Herschel SPIRE)
rf158.0 µmMid-IR (e.g., Spitzer IRAC)
rf165.8 µmMid-IR (e.g., Spitzer IRAC)
rf1820 GHz / 1.5 cmRadio (e.g., ATCA)
rf198 GHz / 3.7 cmRadio (e.g., ATCA)
rf205 GHz / 6 cmRadio (e.g., VLA)
rf212.1 m / 144 MHzRadio (e.g., LOFAR LoTSS)

Photometry — X-ray Fluxes [erg/s/cm²]

All X-ray fluxes are stored as log10(flux) in the merged columns. Each band has 5 columns: {band}_merged, e_{band}_merged, {band}_all, e_{band}_all, and {band}_origin.

X-ray count rates (xcr*) and photon counts (counts*) are also released where available, in the same energy bands as the fluxes above — e.g. xcr2 and counts2 correspond to the same band as xf2.

BandEnergy RangeSystem/instrument
xf10.1–2.4 keVe.g., ROSAT
xf20.2–12 keVe.g., XMM-Newton
xf32–12 keVXMM-Newton Slew (hard)
xf40.5–10 keVe.g., XMM-Newton, Chandra
xf50.5–2 keVe.g., XMM-Newton, eROSITA
xf60.5–4.5 keVe.g., XMM-Newton
xf70.5–7 keVe.g., Chandra
xf814–195 keVe.g., Swift
xf92–10 keVe.g., XMM-Newton, Chandra
xf100.2–2 keVXMM-Newton Slew (soft)
xf112–7 keVe.g., Chandra
xf12100 MeV – 100 GeVe.g., Fermi
xf134.5–7.5 keVe.g., XMM-Newton
xf140.2–0.5 keVe.g., XMM-Newton
xf150.5–1 keVe.g., eROSITA, XMM-Newton
xf161–2 keVe.g., eROSITA, XMM-Newton
xf172–4.5 keVe.g., XMM-Newton
xf184.5–12 keVe.g., XMM-Newton
xf201.2–2.0 keVChandra CSC medium band
xf210.5–1.2 keVChandra CSC soft band
xf220.2–0.5 keVChandra CSC ultrasoft band
xf23~0.1–10.0 keVChandra CSC wide band
xf2418–55 keVe.g., Swift, INTEGRAL
xf252.3–5 keVe.g., eROSITA
xf270.2–2.3 keVe.g., eROSITA
xf282–5 keVe.g., eROSITA
xf295–8 keVe.g., eROSITA
xf303–8 keVe.g., NuSTAR
xf318–24 keVe.g., NuSTAR
xf323–24 keVe.g., NuSTAR

Hardness Ratios [dimensionless]

Hardness ratios quantify the spectral shape: higher values indicate harder (more energetic) X-ray spectra.

Defined as (H-S)/(H+S) where H and S are counts in hard and soft bands respectively.

NameRatio NameInstrument / Catalog
HR1Hardness ratio 1XMM-Newton source catalog
HR2Hardness ratio 2XMM-Newton source catalog
HR3Hardness ratio 3XMM-Newton source catalog
HR4Hardness ratio 4XMM-Newton source catalog
HR5Hard/Medium counts ratio (HRhm)Chandra source catalog
HR6Hard/Soft counts ratio (HRhs)Chandra source catalog
HR7Medium/Soft counts ratio (HRms)Chandra source catalog
HR8(2–4.5 keV) / (0.5–2 keV)Mixed
HR9(2–7 keV) / (0.5–2 keV)Mixed