{
  "schema": 1,
  "snapshot": "2026-10-01",
  "generator": {
    "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/publication/build_masking.py",
    "sha256": "98fed808a93485cd2afb90899be2039e93ec9c707eb7d5cec1c1d65eb3cc4b0d",
    "bytes": 14290
  },
  "figures": [
    {
      "id": "f06_masking",
      "title": "Figure 6a \u00b7 Stellar-wing masking",
      "section": "3.2",
      "status": "single-FFI method-development result",
      "caption": "Single-FFI method-development result for F1 (S24 C2K2; tess2020120182919-s0024-2-2). (a) The background-estimator input, science minus convolved template (ks_d + ks_b), in a 47 \u00d7 47 pixel cutout around a T=8.29 star selected by maximum catalogue-neighbour separation among T=8\u20139 candidates, not by background residual. The nearest other 7.5\u2264T<13 catalogue star is 22.4 px away; fainter neighbours are not excluded by this selection. The image has its local 20\u201322 px annulus median removed for display, not as a verified empty-sky estimate. Dashed cyan traces the actual base background-fit exclusion; yellow traces its union with the saved Method A exclusion. These contours include neighbouring masks. The central star's nominal radii are 9 px and 18 px, respectively; the Method A disk is centred at the fractional catalogue position. The displayed stamp is an observed single-star image, not the fitted average wing profile from which the radii were measured. (b) Median background estimate at scene-star positions minus nearby empty-sky medians, measured with the same harmonic-fill estimator and the current fit mask (control) or Method A's magnitude-sized exclusions; bars are robust standard errors (1.2533 \u00d7 1.4826 \u00d7 MAD / \u221aN). Bin edges and counts are recorded in the metadata. The saved background map is ks_b; each star is compared to at least five eligible reference pixels within 60 px, at least 16 px from the experiment's scene-star positions. The Method A radius table uses the worst-sector fitted stellar wing and a 0.1 e\u207b s\u207b\u00b9 edge threshold; it expands the background-fit exclusion while leaving the shared mask, Hotpants fit pixels, and scene inputs unchanged. Across this F1 frame, the median lift falls from 0.70 to 0.22 e\u207b s\u207b\u00b9 in T=7.5\u20139 and from 0.27 to 0.19 e\u207b s\u207b\u00b9 in T=12.5\u201313. A residual lift near 0.2 e\u207b s\u207b\u00b9 remains when all stars are pooled; the experiment attributes much of that floor in crowded regions to neighbour wings that single-star masks cannot remove. This is an F1-only controlled estimator comparison, not a completed multi-CCD validation or a claim that the mask eliminates all background bias.",
      "inputs": [
        {
          "path": "/astro/armin/koji/syndiff/data/s0024/c2/k2/diff_linear/ks_d/tess2020120182919-s0024-2-2_ks_d.fits.fz",
          "sha256": "550964724e3a18bce53f0e2c482b0c15e686d1d5a8aed6c522c6b7a7d9558f21",
          "bytes": 15972480
        },
        {
          "path": "/astro/armin/koji/syndiff/data/s0024/c2/k2/diff_linear/ks_b/tess2020120182919-s0024-2-2_ks_b.fits.fz",
          "sha256": "5ea1586f3ffa0fc4cd26955248c728d2bb67ed9739fa674c84544edd74f60925",
          "bytes": 13487040
        },
        {
          "path": "/astro/armin/koji/syndiff/data/s0024/c2/k2/diff_linear/gaia_catalog_pipeline.csv",
          "sha256": "c7bc1670bb81193eaf631147d6b1517eec38557d22990d0602b3fe06e27d9c5a",
          "bytes": 88231925
        },
        {
          "path": "/astro/armin/koji/syndiff/data/s0024/c2/k2/diff_linear/shared_mask.fits.fz",
          "sha256": "8c11042f074a6e9f68ff5a76ad18e9de55cf48e1cd8c1e8858f5bab67469d570",
          "bytes": 1618560
        },
        {
          "path": "/astro/armin/koji/syndiff/dev_runs/maskfoot_20261001/score_ksb.json",
          "sha256": "b2e4e90dbed7f47a869c0d51742cbc79e164fe3d97487ea598c18d1cd066c027",
          "bytes": 7668
        },
        {
          "path": "/astro/armin/koji/syndiff/dev_runs/maskfoot_20261001/README.md",
          "sha256": "ac4a08d05b241ee25c43ebe9d7a221b3ee217b25a1c84b994b2aa33ec2cb352c",
          "bytes": 8325
        },
        {
          "path": "/astro/armin/koji/syndiff/dev_runs/maskfoot_20261001/wingfit.npz",
          "sha256": "f40b5fa23a98e20f3835a3f6cdb5998deaefb28754497f2cddfea687f5b094d4",
          "bytes": 24390
        },
        {
          "path": "/astro/armin/koji/syndiff/dev_runs/maskfoot_20261001/v/A_table/extra_exclude.npy",
          "sha256": "aba31ff56690315327aa1d66238b777978a3f9382f9e252f4700444d703469b0",
          "bytes": 4194432
        },
        {
          "path": "/astro/armin/koji/syndiff/dev_runs/maskfoot_20261001/v/a_harm0/extra_exclude.npy",
          "sha256": "f03577595ab0a9ebbd54233bd62b95d7204d86034bee777ec5c21c8a2fb38366",
          "bytes": 4194432
        },
        {
          "path": "/astro/armin/koji/syndiff/dev_runs/maskfoot_20261001/score_ksb.py",
          "sha256": "43813fc5f13b5f74265ce1685b972fca0deafc8e13bb58b6c9c93ef6d015e8b1",
          "bytes": 2817
        },
        {
          "path": "/astro/armin/koji/syndiff/dev_runs/maskfoot_20261001/bkg_kw.py",
          "sha256": "6f8bfd96c9300726e034d2edc550dcc82cd69545748da567a509af61bb1b2aa3",
          "bytes": 4604
        },
        {
          "path": "/astro/armin/koji/syndiff/data/s0024/c2/k2/diff_linear/mask_settings.yaml",
          "sha256": "101f73e1b9b52991463a520ef506978b0f8dccece7fd082d143ddb63a980123a",
          "bytes": 418
        },
        {
          "path": "/home/kshukawa/syndiff_pipeline/syndiff_pipeline/resources/mask_geometry.yaml",
          "sha256": "000275d04ed3657a63b3fff3efd9e3148cff05daa1e643bfaf3303cd0312031b",
          "bytes": 1159
        }
      ],
      "outputs": [
        {
          "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/report_20260929/publication/f06_masking.png",
          "sha256": "aa6ebcf839c1dd3a79a98ea4484907e1182783d933a8c7c3fb2428dc84fc1720",
          "bytes": 217832,
          "format": "png",
          "dpi": 300
        },
        {
          "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/report_20260929/publication/f06_masking.pdf",
          "sha256": "054a57e7aaeb7832282a1a675d11cd006722e86a7fd059ae63f86f78fab55d30",
          "bytes": 31738,
          "format": "pdf",
          "dpi": null
        },
        {
          "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/report_20260929/publication/f06_masking.svg",
          "sha256": "a4a53c38520e4168ae6d20fd961fc6ae6a43521289a4a4a6c79f18d831324673",
          "bytes": 61405,
          "format": "svg",
          "dpi": null
        }
      ],
      "observation": "tess2020120182919-s0024-2-2",
      "star_example": {
        "science_crop_xy": [
          1358.3674389050057,
          353.1363418843249
        ],
        "tess_mag": 8.292765414165052,
        "nearest_other_7p5_le_T_lt_13_star_px": 22.42696321595767,
        "current_shared_mask_radius_px": 9,
        "method_a_background_fit_exclusion_radius_px": 18,
        "display_local_sky_electrons_s": 62.76695251464844,
        "contours": "actual base-fit exclusion and union with saved Method A exclusion",
        "method_a_contains_expected_star_disk": true
      },
      "method_a": {
        "tau_electrons_s": 0.1,
        "radius_table_mag_hi_radius_px": [
          [
            6.15,
            30
          ],
          [
            7.1,
            25
          ],
          [
            7.7,
            21
          ],
          [
            8.45,
            18
          ],
          [
            8.9,
            16
          ],
          [
            9.45,
            14
          ],
          [
            9.8,
            12
          ],
          [
            10.1,
            11
          ],
          [
            10.4,
            10
          ],
          [
            10.85,
            9
          ],
          [
            11.45,
            8
          ],
          [
            12.25,
            7
          ],
          [
            13.0,
            6
          ]
        ],
        "pad_px": 0,
        "scope": "background-fit pixel exclusion only",
        "fill_method": "harmonic",
        "shared_mask_hotpants_and_scene_inputs_changed": false
      },
      "comparison": {
        "control_values": {
          "x": [
            8.25,
            9.5,
            10.25,
            10.75,
            11.25,
            11.75,
            12.25,
            12.75
          ],
          "y": [
            0.701263427734375,
            0.38042259216308594,
            0.3500862121582031,
            0.2930889129638672,
            0.30490875244140625,
            0.262359619140625,
            0.28565311431884766,
            0.268646240234375
          ],
          "err": [
            0.028929240928072468,
            0.015659115899855882,
            0.01983713635013652,
            0.01410678554480502,
            0.013695370997359404,
            0.01146119882794335,
            0.009732941834140084,
            0.008290700679119575
          ],
          "n": [
            445,
            748,
            665,
            980,
            1338,
            1895,
            2764,
            3787
          ]
        },
        "method_a_values": {
          "x": [
            8.25,
            9.5,
            10.25,
            10.75,
            11.25,
            11.75,
            12.25,
            12.75
          ],
          "y": [
            0.2210235595703125,
            0.19376087188720703,
            0.2154541015625,
            0.20073318481445312,
            0.19620895385742188,
            0.1985015869140625,
            0.19197845458984375,
            0.1903533935546875
          ],
          "err": [
            0.020914602974458615,
            0.013788411394041813,
            0.018037421094936657,
            0.013135758133022153,
            0.012897962431976785,
            0.010299325139620995,
            0.008910847030412821,
            0.0074583824276077525
          ],
          "n": [
            445,
            748,
            665,
            980,
            1338,
            1895,
            2764,
            3787
          ]
        },
        "bin_edges_mag": [
          [
            7.5,
            9
          ],
          [
            9,
            10
          ],
          [
            10,
            10.5
          ],
          [
            10.5,
            11
          ],
          [
            11,
            11.5
          ],
          [
            11.5,
            12
          ],
          [
            12,
            12.5
          ],
          [
            12.5,
            13
          ]
        ],
        "metric": "per-star ks_b minus median ks_b at nearby empty positions",
        "reference": "same harmonic-fill estimator with current production fit mask",
        "method_a": "same estimator with magnitude-sized star disks excluded from fit pixels",
        "error": "1.2533 \u00d7 1.4826 \u00d7 MAD / sqrt(n)",
        "f1_only": true,
        "crowded_star_lift_floor_electrons_s": [
          0.15,
          0.2
        ]
      },
      "limitations": [
        "Method A's radius table and controlled estimator comparison were derived on F1 only.",
        "A residual lift remains at crowded stars because neighboring stellar wings overlap.",
        "The cutout visualizes one observed star; radii were set by a joint fitted wing profile.",
        "Method A changes the background-fit mask only; it does not change the shared mask, Hotpants fit pixels, or scene inputs.",
        "This does not validate a global photometric or multi-CCD improvement."
      ]
    }
  ]
}
