Skip to content

Split upload: archive contents don't match the documented design (duplicated timelapse, missing CALSTARS) #952

Description

@Cybis320

With upload_split: true, the night is uploaded as two archives, and the config documents the intent (.config:401-409):

If upload_split is true, two archives will be created. One archive, suffix _imgdata, contains the images. The other archive, suffix _metadata will only contain the data derived from the images, including the timelapse. The metadata archive is much smaller than the imagedata archive, and can be extracted very quickly.

The actual archive contents diverge from this in both directions:

  1. Heavyweight derived products are duplicated into _imgdata — including the timelapse, so stations upload it twice every night.
  2. _imgdata is missing the one small file that would make it self-contained for calibration work: CALSTARS.

Cause

In RMS/ArchiveDetections.py, the split predicate is a filename test:

imgdata_set = (set([item for item in file_list if item.startswith("FF") and item.endswith(".fits")]) |
               set([item for item in file_list if item.startswith("FR") and item.endswith(".bin")]))
metadata_set = set([item for item in file_list if item not in imgdata_set])

...but both archiveDir() calls then receive the full extra_files list, and Misc.archiveDir() copies those files into each archive directory. extra_files (assembled in RMS/Reprocess.py:536-576) is not just the small calibration files — it includes the timelapse.mp4, the FT timestamps tarball, flux products, and sky-model .npz files.

Meanwhile CALSTARS and FTPdetectinfo are not in extra_files; they ride in the generic night file list as TXT files and therefore land in _metadata only.

Observed contents of a real production archive

CA000Q_20260604_013355_478445_imgdata.tar.bz2 (station on upload_mode with restricted FF upload) contains:

8x  FF_*.fits                          <- the actual image payload
7x  FR_*.bin
    .config                            (extra_files duplication - good)
    mask.bmp                           (good)
    platepar_cmn2010.cal               (good)
    platepars_all_recalibrated.json    (good)
    platepars_flux_recalibrated.json
    CA000Q_..._timelapse.mp4           <- documented as _metadata content; duplicated
    CA000Q_20260603-154_FT.tar.bz2     <- duplicated
    flux_*.json (x3)                   <- duplicated
    CA000Q-{25,70,100}km.kml           <- duplicated
    CA000Q_..._observation_summary.{json,txt}
    CA000Q_..._config_audit_report.txt
    CA000Q_..._ff_intervals.png

Not present: CALSTARS_*.txt, FTPdetectinfo_*.txt.

Why it matters

Wasted bandwidth. The timelapse is typically the second-largest file of the night. Duplicating it (plus FT tar and npz products) into _imgdata doubles their upload cost across the fleet, on the archive that is already the big one — directly against the stated purpose of the split.

_imgdata is not self-contained for calibration. Downloading _imgdata is the natural thing to do to open a night in SkyFit2 — and it opens fine (images, config, platepar, mask are all there). But without CALSTARS the detected-star are missing, and the user has to go back for _metadata — for ~1 MB of compressed text missing from a multi-hundred-MB archive.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions