CoolFace
Apppublic

skyan1002/mcs-morphology-labeler

sourceHugging Facemitupdated 2mo agoView on Hugging Face
1likes
App README

MCS Morphology Labeling Platform

A browser-based platform for the project AI-Based Classification of MCS Morphology. It presents the project objective, the labeling guidance, and an interactive tool for assigning a morphology class to each radar snapshot of a tracked mesoscale convective system.

What it does

  • Overview — project objective, dataset summary, the six morphology categories.
  • Guide — the full labeling guidance: procedure, decision tree, category definitions, rules for the hard cases, and quality-control checklist.
  • Label — the interactive tool:
  • two-panel radar figure (SL3D mask + composite reflectivity) per frame,
  • a motion badge showing the direction and speed of system movement, which is what "leading" / "trailing" / "upstream" / "downstream" are defined against,
  • one-key labeling (05), U to flag uncertain, S to repeat the previous frame,
  • a frame is complete once it has both a category and a confidence rating; F toggles fast mode, where one key per frame is enough and confidence is skipped,
  • playback (Space) to loop a track — necessary for back-building and leading stratiform, which are hard to judge from a single image,
  • an optional confidence rating (1–5) and a free-text note per frame,
  • a filmstrip showing at a glance which frames are labeled and with what,
  • optional reference labels from a trained labeler, for self-training.
  • Progress — where model development stands. Each stage shows a short summary and its headline numbers, and opens into the technical settings behind the result: how the inputs were built, what the baselines were, hyperparameters, evaluation protocol, figures and caveats. Driven by data/progress.json, which is generated from the actual result files rather than written by hand.
  • Progress & Export — running counts, class distribution, CSV/JSON export, resume from a previous session, and an agreement/confusion table against the reference labels.

Labels

codekeyname
0NLNonlinear
1TSTrailing Stratiform
2PSParallel Stratiform
3LSLeading Stratiform
4TL/ASTrailing Line / Adjoining Stratiform
5BBBack-Building
UUncertain / review needed

Export formats

Long — one row per labeled image, the analysis-ready form:

labeler, year, track, seq, filename, valid_time, label_code, label_key,
label_name, uncertain, confidence, note, labeled_at

Wide — the track × frame matrix used by the existing project spreadsheets (Storm Track in the first column, frame index across the top), so exports drop straight into the current workflow.

Data

Labels live in the browser's localStorage and are written on every action; nothing is uploaded anywhere. Export regularly and keep the CSV.

Every frame that does not yet carry a morphology label is available here — 31,816 frames across 1,841 tracks, selectable from the dropdown above the track list. 2004 is fully labeled and 270 of the 370 tracks in 2005 are labeled, so neither appears as unlabeled work.

yeartracksframeswith motion
20051001,790100
20063776,567377
20073976,723397
20084297,241429
20094107,216405
2010951,81866
20112320
201281093
20133450
2016101380
20174640
2018160
20215670
total1,84131,8161,777

Images are served from the companion dataset repo `skyan1002/mcs-morphology-frames` rather than from this Space: at ~32k files they would make every future deploy slow, and a dataset repo is the right home for them. The Space holds only the code and the per-year manifests, and each manifest carries the base URL its images load from.

A track marked no motion in the list has a missing or incompletely written track file, so its motion badge stays blank. The tracking itself is fine — only the metadata export failed. Judge the direction of travel from playback (Space) before making any leading/trailing call on those, or flag them U. Four plot files across the archive are zero-byte and were skipped; surviving frames keep their original frame numbers.

To label a year that is not bundled, use Load a local year folder in the Label tab and select a year directory from your own copy of the archive — the files are read in your browser and never leave your machine. Motion metadata is not available for locally loaded folders, since it comes from the per-track NetCDF files.

Local development

bash
python3 -m http.server 8000    # then open http://localhost:8000

No build step and no dependencies.