skyan1002/mcs-morphology-labeler
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 (
0–5),Uto flag uncertain,Sto repeat the previous frame, - a frame is complete once it has both a category and a confidence rating;
Ftoggles 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
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_atWide — 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.
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
python3 -m http.server 8000 # then open http://localhost:8000No build step and no dependencies.
