{
  "schema_version": 1,
  "task": "jdp-tess-aperture",
  "source": {
    "label": "SYNTHETIC FIXTURE",
    "synthetic": true,
    "statement": "This run uses a synthetic fixture. It is not an observation, not a SPOC product, and must not be cited as one.",
    "tpf": {
      "path": "research/tess-timing/data/synthetic_tpf.fits",
      "filename": "synthetic_tpf.fits",
      "sha256": "c9b30da8a94a2c99995256a5a80f19389eeceb88ae8fc099e40f37bcf8eeb005",
      "size_bytes": 92160,
      "synthetic": true,
      "shape": {
        "cadences": 12,
        "rows": 21,
        "cols": 21
      },
      "metadata": {
        "OBJECT": "SYNTHETIC",
        "TELESCOP": "TESS"
      }
    },
    "lightcurve": {
      "path": "research/tess-timing/data/synthetic_tpf_lightcurve.fits",
      "filename": "synthetic_tpf_lightcurve.fits",
      "sha256": "d8b72185f204fd4c96f71dc5d827ca9f1f7bc4cd168f949e79ba7eb2b73a80f2",
      "size_bytes": 8640,
      "synthetic": true
    },
    "provenance": null
  },
  "config": {
    "threshold_fraction": 0.05,
    "inner_radius_pixels": 2.0,
    "outer_radius_pixels": 3.5,
    "time_tolerance_seconds": 60.0
  },
  "aperture": {
    "centroid_method": "flux_weighted_excess_on_threshold_aperture",
    "centroid_row": 10.0,
    "centroid_col": 10.0,
    "threshold_fraction_of_peak_excess": 0.05,
    "threshold_flux": 30.0,
    "background_flux": 10.0,
    "peak_excess_flux": 400.0,
    "aperture_pixel_count": 9,
    "aperture_mask": [
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]
    ],
    "aperture_rows": [
      9,
      9,
      9,
      10,
      10,
      10,
      11,
      11,
      11
    ],
    "aperture_cols": [
      9,
      10,
      11,
      9,
      10,
      11,
      9,
      10,
      11
    ],
    "aperture_bounds": {
      "row_min": 9,
      "row_max": 11,
      "col_min": 9,
      "col_max": 11
    },
    "aperture_touches_image_edge": false,
    "annulus_radii_pixels": {
      "inner": 2.0,
      "outer": 3.5,
      "inner_inclusive": true,
      "outer_inclusive": false
    },
    "annulus_pixel_count": 28,
    "annulus_excludes_aperture": true,
    "annulus_fallback_used": false,
    "annulus_rows": [
      7,
      7,
      7,
      8,
      8,
      8,
      8,
      8,
      9,
      9,
      9,
      9,
      10,
      10,
      10,
      10,
      11,
      11,
      11,
      11,
      12,
      12,
      12,
      12,
      12,
      13,
      13,
      13
    ],
    "annulus_cols": [
      9,
      10,
      11,
      8,
      9,
      10,
      11,
      12,
      7,
      8,
      12,
      13,
      7,
      8,
      12,
      13,
      7,
      8,
      12,
      13,
      8,
      9,
      10,
      11,
      12,
      9,
      10,
      11
    ]
  },
  "quality_mask": {
    "mask_value": 175,
    "bits": [
      1,
      2,
      4,
      8,
      32,
      128
    ],
    "policy": "A cadence is excluded when (QUALITY & mask_value) != 0."
  },
  "photometry": {
    "background_method": "per_cadence_sigma_clipped_annulus_median",
    "background_sigma_clip": 3.0,
    "background_sigma_iterations": 3,
    "minimum_annulus_pixels": 3,
    "background_counts": {
      "annulus_pixels_total": 28,
      "per_cadence_min": 28,
      "per_cadence_max": 28,
      "per_cadence_median": 28.0,
      "background_flux_min": 10.0,
      "background_flux_max": 10.0
    },
    "cadence_counts": {
      "input_cadences": 12,
      "quality_pass": 12,
      "retained": 12,
      "rejected_by_quality_mask": 0,
      "rejected_nonfinite_pixel": 0,
      "rejected_zero_weight_pixel": 0,
      "rejected_background": 0
    }
  },
  "comparison": {
    "common_mask": "TESS QUALITY passes the same mask on both inputs, the TPF photometry is valid, and TIME pairs within the stated tolerance.",
    "time_tolerance_seconds": 60.0,
    "matched_pairs": 12,
    "unmatched_aperture_cadences": 0,
    "unmatched_mission_cadences": 0,
    "max_time_offset_seconds": 0.0,
    "normalization": "The aperture series and each mission series are divided by their median on the common mask before the difference metrics. Raw mission medians come from the light-curve loader before that loader's own normalization.",
    "aperture_median_raw_flux": 1600.0,
    "sap_median_raw_flux": 1690.0,
    "pdcsap_median_raw_flux": 1690.0,
    "sap": {
      "n_points": 12,
      "mean_difference": 1.850371707708594e-17,
      "median_difference": 0.0,
      "rms_difference": 0.0007531314829206325,
      "max_abs_difference": 0.0010650887573964152,
      "pearson_r": 1.0,
      "r_squared": 1.0,
      "rms_difference_ppm": 753.1314829206325,
      "correlation_defined": true
    },
    "pdcsap": {
      "n_points": 12,
      "mean_difference": -9.25185853854297e-18,
      "median_difference": 0.0,
      "rms_difference": 0.00030063324748748273,
      "max_abs_difference": 0.00042312042615755274,
      "pearson_r": 0.9998469365377226,
      "r_squared": 0.9996938965038688,
      "rms_difference_ppm": 300.6332474874827,
      "correlation_defined": true
    }
  },
  "outputs": {
    "csv": "research/tess-timing/data/aperture-run/synthetic_tpf.csv",
    "json": "research/tess-timing/data/aperture-run/synthetic_tpf.json",
    "svg": "research/tess-timing/data/aperture-run/synthetic_tpf.svg"
  },
  "software": {
    "python": "3.12.1",
    "numpy": "1.26.4",
    "astropy": "7.2.0",
    "tess_timing": "0.1.0"
  },
  "limits": [
    "No detrending is applied.",
    "No transit is fitted and no mid-transit time is produced.",
    "No timing measurement or novelty claim is made.",
    "The comparison is a diagnostic on one common quality mask, not a validation of the SPOC pipeline.",
    "The synthetic fixture is test data, not an observation and not an archive product."
  ]
}
