Communitygithub.com

d3v-null/wsclean-skill

Eine umfassende Cursor-Agent-Fähigkeit für die WSClean-Radiointerferometrie-Bildgebung.

Was ist wsclean-skill?

Dieses Skill befähigt KI-Agenten wie Cursor, Claude Code oder Codex, mit WSClean zu arbeiten, einem leistungsstarken Tool zur Bildgebung in der Radiointerferometrie. Es ermöglicht die Erstellung von gereinigten Bildern aus Measurement Sets (.ms), die von Observatorien wie LOFAR, MWA, VLA, ASKAP oder SKA stammen. Der Skill deckt wesentliche Arbeitsabläufe ab, darunter Standard-CLEAN-Dekonvolution, Multi-Skalen-Reinigung für ausgedehnte Quellen, Multi-Frequenz-Synthese für Breitbanddaten, polarimetrische Bildgebung und Imaging für Selbstkalibrierschleifen. Er enthält Docker-Befehle zur einfachen Ausführung von WSClean, eine detaillierte Dokumentation der wichtigsten Parameter mit typischen Werten und praktische Workflow-Beispiele. Das Skill behandelt zudem häufige Probleme wie divergierende Reinigung, Speicherüberläufe und fehlgeschlagene Selbstkalibrierung mit konkreten Lösungsvorschlägen. Entwickler und Forscher können dieses Skill nutzen, um komplexe Bildgebungsaufgaben in der Radioastronomie über natürliche Sprachbefehle zu automatisieren oder zu vereinfachen, ohne sich alle Parameterdetails merken zu müssen.

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add d3v-null/wsclean-skill

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

WSClean Skill

WSClean ist ein Radiointerferometrie-Bildgebungswerkzeug, das gereinigte Bilder aus Measurement Sets erstellt. Verwenden Sie dieses Skill, wenn Sie mit Radioastronomiedaten von Teleskopen wie LOFAR, MWA, VLA, ASKAP oder SKA arbeiten.

Verwendungshinweise

  • Bildgebung von Radiointerferometriedaten aus Measurement Set (.ms) Dateien
  • CLEAN-Dekonvolution von Sichtbarkeitsdaten
  • Multi-Skalen-Reinigung für ausgedehnte Quellen
  • Multi-Frequenz-Synthese (Breitband-Bildgebung)
  • Polarimetrische Bildgebung
  • Facettenbasierte Bildgebung mit richtungsabhängigen Korrekturen
  • Selbstkalibrierungszyklen (Modellgenerierung)

Docker-Zugriff

WSClean ist aufwändig zu kompilieren. Verwenden Sie Docker:

docker run --rm -it d3vnull0/rapthor-mildtec:smoke wsclean [Optionen] <input.ms>

Datenverzeichnisse einbinden: -v /host/pfad:/container/pfad:rw

Grundlegender Befehlsaufbau

wsclean [Optionen] <input-ms> [<2nd-ms> [...]]

Wichtig: Mehrere Measurement Sets MÜSSEN auf dieselbe Position phasenrotiert sein.

Wesentliche Parameter

Bildeinstellungen (immer erforderlich)

  • -size <b> <h> - Bildabmessungen in Pixeln (muss gerade sein)
  • -scale <wert> - Pixelgröße (z.B. 2asec, 1amin, 0.01deg)
  • -name <präfix> - Ausgabedateinamen-Präfix (Standard: 'wsclean')

Dekonvolutionssteuerung

  • -niter <n> - Maximale Iterationen (hoch einstellen, z.B. 1000000)
  • -auto-threshold <sigma> - Stopp bei Sigma×RMS (empfohlen: 1-5)
  • -mgain <gain> - Hauptschleifenverstärkung: 0,85 (sicher), 0,95 (aggressiv)
    • Wichtig: mgain=1.0 verhindert Selbstkalibrierung (keine MODEL_DATA-Updates)
  • -auto-mask <sigma> - Auto-Masking-Schwelle (empfohlen mit -auto-threshold)

Gewichtung

  • -weight briggs <robust> - Briggs-Gewichtung (-2 bis +2, üblich: -0,5, 0, 0,5)
  • -weight uniform - Maximale Auflösung
  • -weight natural - Maximale Empfindlichkeit

Erweiterte Funktionen

  • -multiscale - Multi-Skalen-CLEAN für ausgedehnte Quellen
  • -channels-out <n> - Bandbreite in N Bilder aufteilen
  • -join-channels - Multi-Frequenz-Dekonvolution
  • -pol <liste> - Polarisationen: I, Q, U, V oder XX, XY, YX, YY
  • -join-polarizations - Polarimetrische Dekonvolution

Übliche Arbeitsabläufe

1. Schnelles Dirt-Bild (ohne Reinigung)

docker run --rm -v $(pwd):/data:rw d3vnull0/rapthor-mildtec:smoke \
  wsclean -size 2048 2048 -scale 5asec -name quick /data/obs.ms

2. Standard-Reinigung

wsclean -size 4096 4096 -scale 2asec \
  -niter 100000 -auto-threshold 3 \
  -weight briggs 0 -mgain 0.85 \
  -name standard obs.ms

3. Tiefe Multi-Skalen-Reinigung (beste Qualität)

wsclean -size 8192 8192 -scale 1asec \
  -multiscale -multiscale-scale-bias 0.7 \
  -niter 1000000 -auto-threshold 1 -auto-mask 5 \
  -weight briggs -0.5 -mgain 0.85 \
  -name deep obs.ms

4. Multi-Frequenz-Synthese (4 Kanäle)

wsclean -size 4096 4096 -scale 2asec \
  -channels-out 4 -join-channels \
  -multiscale -niter 500000 \
  -auto-threshold 3 -mgain 0.85 \
  -name mfs obs.ms

5. Polarimetrische Bildgebung

wsclean -size 4096 4096 -scale 2asec \
  -pol xx,yy -join-polarizations \
  -niter 100000 -auto-threshold 3 \
  -mgain 0.85 -name pol obs.ms

6. Selbstkalibrierungs-Bildgebung

# WICHTIG: mgain < 1.0, um MODEL_DATA zu aktualisieren
wsclean -size 4096 4096 -scale 2asec \
  -niter 100000 -auto-threshold 3 \
  -mgain 0.85 -multiscale -auto-mask 5 \
  -name selfcal obs.ms

Ausgabedateien

Mit -name myimage:

  • myimage-dirty.fits - Dirt-Bild
  • myimage-image.fits - Gereinigtes/wiederhergestelltes Bild
  • myimage-model.fits - Modell (CLEAN-Komponenten)
  • myimage-residual.fits - Residuale nach der Reinigung
  • myimage-psf.fits - Punktspreizfunktion

Mehrkanal: myimage-0000-image.fits, myimage-0001-image.fits, usw. Mehrfach-Pol: myimage-I-image.fits, myimage-Q-image.fits, usw.

Kurzreferenz - Wichtige Parameter

ParameterZweckTypische Werte
-niterMaximale Iterationen100000-1000000
-auto-thresholdStopp bei N×sigma1-5 (niedriger = tiefer)
-mgainHauptschleifenverstärkung0,85 (sicher), 0,95 (schnell)
-auto-maskMaskierungsschwelle3-5 sigma
-weight briggsRobustheit der Gewichtung-0,5 (Auflösung), 0 (ausgewogen), 0,5 (Empfindlichkeit)
-multiscale-scale-biasSkalenpräferenz0,6-0,7
-channels-outAusgabekanäle4-16 typisch
-jCPU-ThreadsStandard: alle Kerne

Häufige Probleme

Reinigung divergiert

  • Senken Sie -mgain auf 0,7 oder 0,8
  • Verwenden Sie -multiscale-gain 0,1 bei Multi-Skalen
  • Versuchen Sie -major-iteration-mode single

Speichermangel

  • Verwenden Sie -abs-mem 32 (oder entsprechend GB)
  • Reduzieren Sie -size oder erhöhen Sie -scale
  • Verwenden Sie -deconvolution-channels für spektrale Bildgebung

Selbstkalibrierung nicht möglich

  • Stellen Sie sicher, dass mgain < 1.0 (nicht 1.0!)
  • Die MODEL_DATA-Spalte wird nur bei mgain < 1 aktualisiert

Schlechte Bildqualität

  • Verwenden Sie -multiscale für ausgedehnte Quellen
  • Fügen Sie -auto-mask 5 für tiefe Reinigung hinzu
  • Überprüfen Sie die Gewichtung: versuchen Sie -weight briggs 0

Wann detaillierte Referenzen zu konsultieren sind

Für komplexe Szenarien lesen Sie die Referenzdateien in diesem Verzeichnis:

  • reference/parameters.md - Vollständige Parameterdokumentation
  • reference/workflows.md - Erweiterte Arbeitsabläufe (Facetten, Primärstrahl, etc.)
  • reference/troubleshooting.md - Detaillierte Fehlerbehebungsanleitung

Verwenden Sie das Read-Werkzeug, um bei Bedarf auf diese Dateien zuzugreifen.

Best Practices

  1. Verwenden Sie immer -auto-threshold (nicht absolute Schwelle)
  2. Setzen Sie hohe -niter und lassen Sie die Schwelle die Reinigung beenden
  3. Verwenden Sie mgain 0,85 für robuste Cotton-Schwab-Reinigung
  4. Multi-Skalen für ausgedehnte Quellen - immer besser als Högbom
  5. Kombinieren Sie -auto-mask 5 mit -auto-threshold 1 für tiefe Reinigung
  6. Bildabmessungen müssen gerade sein - vorzugsweise Potenz von 2
  7. ~5-6 Pixel pro synthetisiertem Strahl für ordnungsgemäße Abtastung

Dokumentation

Verwandte Skills