{
  "generator": {
    "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/publication/build_mapping.py",
    "sha256": "385fb4e04bd82bc976aec88384f28d6419a11dc590e1d39abab3ab930717bc75"
  },
  "figures": [
    {
      "id": "f01_mapping",
      "title": "TESS-to-PS1 skycell coverage and pixel assignment",
      "status": "historical development",
      "caption": "(a) Nominal PS1 3\u03c0 footprint and Sector 24 camera footprints; (b) the 986 mapped PS1 skycells covering the Camera 2, CCD 2 science crop. (c) The same fixed cutout of skycell.2483.062, showing every destination, including partially visible TESS pixels at the edges. Each PS1 pixel is coloured by its native TESS destination after grouping stored F = 4 subpixel indices; white lines trace assignment changes along PS1 pixel edges. All 43,677 PS1 pixels in this cutout are assigned to 16 native TESS pixels; there are no unmapped entries here. Legend coordinates are full-FFI, zero-based. Elsewhere, stored -1 means no assignment in this particular skycell map, not necessarily missing TESS coverage: the location may lie outside the mapped region or an overlapping skycell may own it. Historical development geometry, not a newly computed or independently validated remap.",
      "inputs": [
        {
          "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/preparation/figure01_manifest.json",
          "sha256": "9968a1f8cf31e277822a24a82b6244b4cae304bc8df4a2e7fa90d18849354c1c"
        },
        {
          "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/preparation/figure01_skycell_polygons.json",
          "sha256": "8f83f66a02217d2edaa8324608323c3da8586c09ceef3bda8a998b2b9bd505cd"
        },
        {
          "path": "/astro/armin/koji/syndiff/data/s0024/c2/k2/mapping_tvwcs/oversampling_4/tess_s24_2_2_skycell.2483.062_os4.fits.fz",
          "sha256": "a71ad6d6414597e3e2cbeab2c12418d60edf8790b6e4c622634fdc4593ce7929"
        },
        {
          "path": "/home/kshukawa/syndiff_pipeline/syndiff_pipeline/template_creation/processing/pancakes.py",
          "sha256": "652bc7713ac80dc02ce5d6a9c6249379d2e39e8e12edc9f695c8fb07ad563957"
        },
        {
          "path": "/home/kshukawa/syndiff/mocpy_syndiff/python/mocpy/moc/moc.py",
          "sha256": "88f848eb6d275c75b981a935361dd32d72634150bfb5d61dc1677d8abeaa5aa5"
        },
        {
          "path": "/home/kshukawa/syndiff/mocpy_syndiff/src/lib.rs",
          "sha256": "ea541fceaa59e84fb1ff34f153738c4bc6e33d3808b1584ea34a12ead051f376"
        }
      ],
      "outputs": [
        {
          "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/report_20260929/publication/f01_mapping.png",
          "sha256": "5e39271b1b0fa1b0d55e6723412511d9515b283b473b3fd3b84a61a305a452f3",
          "bytes": 907809
        },
        {
          "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/report_20260929/publication/f01_mapping.pdf",
          "sha256": "a15d94a457e673863c0a98e10d6d174337221c9dd2e2f44a6834dfbfbf29576a",
          "bytes": 101608
        },
        {
          "path": "/home/kshukawa/syndiff_pipeline/dev/.worktrees/paper1-publication/paper/paper1_single_ffi/figures/report_20260929/publication/f01_mapping.svg",
          "sha256": "e1bf6b00dfd2bd1c5144805de7c0171845eacd341133f6d1952596995f8aa3a9",
          "bytes": 539743
        }
      ],
      "mapping": {
        "skycell": "skycell.2483.062",
        "XMIN": 36,
        "XMAX": 2100,
        "YMIN": -8,
        "YMAX": 2056,
        "MAPGRID": 3,
        "OVERSAMP": 4,
        "native_grid_width": 2064,
        "native_grid_height": 2064,
        "os_grid_width": 8256,
        "os_grid_height": 8256,
        "native_tess_xy_full_ffi": [
          [
            1746,
            1225
          ],
          [
            1747,
            1225
          ],
          [
            1748,
            1225
          ],
          [
            1749,
            1225
          ],
          [
            1746,
            1226
          ],
          [
            1747,
            1226
          ],
          [
            1748,
            1226
          ],
          [
            1749,
            1226
          ],
          [
            1746,
            1227
          ],
          [
            1747,
            1227
          ],
          [
            1748,
            1227
          ],
          [
            1749,
            1227
          ],
          [
            1746,
            1228
          ],
          [
            1747,
            1228
          ],
          [
            1748,
            1228
          ],
          [
            1749,
            1228
          ]
        ],
        "ps1_crop_xy_in_skycell": [
          569,
          427,
          780,
          634
        ],
        "ps1_pixels_per_native_tess_pixel_in_cutout": [
          17,
          2900,
          1234,
          19,
          1385,
          6508,
          6504,
          3295,
          3296,
          6505,
          6512,
          1369,
          18,
          1224,
          2875,
          16
        ],
        "cutout_ps1_pixel_count": 43677,
        "cutout_mapped_ps1_pixel_count": 43677,
        "cutout_unmapped_ps1_pixel_count": 0,
        "cutout_native_tess_pixel_count": 16,
        "all_cutout_assignments_displayed": true,
        "display_codes": {
          "0": [
            1746,
            1225
          ],
          "1": [
            1747,
            1225
          ],
          "2": [
            1748,
            1225
          ],
          "3": [
            1749,
            1225
          ],
          "4": [
            1746,
            1226
          ],
          "5": [
            1747,
            1226
          ],
          "6": [
            1748,
            1226
          ],
          "7": [
            1749,
            1226
          ],
          "8": [
            1746,
            1227
          ],
          "9": [
            1747,
            1227
          ],
          "10": [
            1748,
            1227
          ],
          "11": [
            1749,
            1227
          ],
          "12": [
            1746,
            1228
          ],
          "13": [
            1747,
            1228
          ],
          "14": [
            1748,
            1228
          ],
          "15": [
            1749,
            1228
          ]
        },
        "mapping_id_decode": "OS=4 row-major ID: os_y,os_x=divmod(id,os_grid_width); native full-FFI x=XMIN+os_x//4, y=YMIN+os_y//4",
        "unassigned_meaning": "Stored -1 means no assignment in this skycell map, not by itself a global TESS coverage hole. No such entries occur in this cutout.",
        "panel_layout": "a top; b bottom-left; c bottom-right",
        "mapping_fits_header": {
          "SECTOR": "N/A",
          "CAMERA": 2,
          "CCD": 2,
          "SKYCELL": "skycell.2483.062",
          "DATE-MOD": "2026-08-29",
          "MAPGRID": 3,
          "OVERSAMP": 4,
          "XMIN": 36,
          "XMAX": 2100,
          "YMIN": -8,
          "YMAX": 2056,
          "SCIXMIN": 44,
          "SCIXMAX": 2092,
          "SCIYMIN": 0,
          "SCIYMAX": 2048,
          "GEOMFP": "1a2c49ca2efcc40d645d0c6f"
        },
        "mocpy_version": "0.18.0 (local SynDiff fork)",
        "moc_candidate_filter": "Order-21 MOC candidate covers; expanded lon/lat bounding-box prefilter; overlaps resolved by nearest PS1 projection centre in TESS coordinates.",
        "pixel_assignment": "TESS subpixel corners transformed through both WCSs; enclosed PS1 pixel centres receive the stored TESS flat index; unassigned entries retain -1."
      }
    }
  ]
}
