feature(helioviewer): add documentation about sources to the script and update the readme

This commit is contained in:
2026-08-25 12:10:29 +02:00
parent 6726b586a5
commit 8acdbb4e58
2 changed files with 178 additions and 10 deletions
+152 -10
View File
@@ -1,25 +1,167 @@
# helioviewer_grab # helioviewer_grab
Kleines Skript, das ein Sonnen-Vollscheibenbild von [Helioviewer](https://helioviewer.org) Small script that downloads a full-disk sun image from
zu einem gewünschten Zeitpunkt herunterlädt. [Helioviewer](https://helioviewer.org) for a given point in time.
Es sucht in der Helioviewer-API die Datenquelle passend zum angegebenen It looks up the Helioviewer API for the data source matching the given
Stichwort (z.B. `hmi_continuum`), holt das dem Zeitpunkt am nächsten liegende keyword (e.g. `hmi_continuum`), fetches the image closest to the requested
Bild und speichert es als PNG im aktuellen Verzeichnis. time, and saves it as a PNG in the current directory.
## Nutzung ## Usage
```bash ```bash
./helioviewer_grab.py 2026-08-12T18:18:00Z hmi_continuum ./helioviewer_grab.py 2026-08-12T18:18:00Z hmi_continuum
./helioviewer_grab.py --list # verfügbare Datenquellen anzeigen ./helioviewer_grab.py --list # show all available data sources
./helioviewer_grab.py --sources # short explanation of the most useful ones
``` ```
Ohne Argumente werden Beispielwerte verwendet (siehe Docstring im Skript). Without arguments, example values are used (see the docstring in the script).
`--sources` prints a curated, human-readable description for the most
commonly used sources (AIA wavelengths, HMI, GONG H-alpha), what each one
shows and roughly how detailed it is. For full-disk imaging, SDO/HMI
(0.5"/px) and SDO/AIA (0.6"/px) offer the highest resolution among the
continuously available sources.
Here's a list of all available sources:
```yaml
0 SOHO/EIT/171 EIT 171
1 SOHO/EIT/195 EIT 195
2 SOHO/EIT/284 EIT 284
3 SOHO/EIT/304 EIT 304
4 SOHO/LASCO/C2/white-light LASCO C2
5 SOHO/LASCO/C3/white-light LASCO C3
6 SOHO/MDI/magnetogram MDI Mag
7 SOHO/MDI/continuum MDI Int
8 SDO/AIA/94 AIA 94
9 SDO/AIA/131 AIA 131
10 SDO/AIA/171 AIA 171
11 SDO/AIA/193 AIA 193
12 SDO/AIA/211 AIA 211
13 SDO/AIA/304 AIA 304
14 SDO/AIA/335 AIA 335
15 SDO/AIA/1600 AIA 1600
16 SDO/AIA/1700 AIA 1700
17 SDO/AIA/4500 AIA 4500
18 SDO/HMI/continuum HMI Int
19 SDO/HMI/magnetogram HMI Mag
20 STEREO_A/SECCHI/EUVI/171 EUVI-A 171
21 STEREO_A/SECCHI/EUVI/195 EUVI-A 195
22 STEREO_A/SECCHI/EUVI/284 EUVI-A 284
23 STEREO_A/SECCHI/EUVI/304 EUVI-A 304
24 STEREO_B/SECCHI/EUVI/171 EUVI-B 171
25 STEREO_B/SECCHI/EUVI/195 EUVI-B 195
26 STEREO_B/SECCHI/EUVI/284 EUVI-B 284
27 STEREO_B/SECCHI/EUVI/304 EUVI-B 304
28 STEREO_A/SECCHI/COR1/white-light COR1-A
29 STEREO_A/SECCHI/COR2/white-light COR2-A
30 STEREO_B/SECCHI/COR1/white-light COR1-B
31 STEREO_B/SECCHI/COR2/white-light COR2-B
32 PROBA2/SWAP/174 SWAP 174
33 Yohkoh/SXT/AlMgMn SXT AlMgMn
34 Yohkoh/SXT/thin-Al SXT thin-Al
35 Yohkoh/SXT/white-light SXT white-light
39 Hinode/XRT/Al_med/Al_thick XRT Al_med/Al_thick
40 Hinode/XRT/Al_med/Be_thick XRT Al_med/Be_thick
42 Hinode/XRT/Al_med/Open XRT Al_med/Open
43 Hinode/XRT/Al_med/Ti_poly XRT Al_med/Ti_poly
44 Hinode/XRT/Al_poly/Al_mesh XRT Al_poly/Al_mesh
45 Hinode/XRT/Al_poly/Al_thick XRT Al_poly/Al_thick
46 Hinode/XRT/Al_poly/Be_thick XRT Al_poly/Be_thick
48 Hinode/XRT/Al_poly/Open XRT Al_poly/Open
49 Hinode/XRT/Al_poly/Ti_poly XRT Al_poly/Ti_poly
54 Hinode/XRT/Be_med/Open XRT Be_med/Open
60 Hinode/XRT/Be_thin/Open XRT Be_thin/Open
62 Hinode/XRT/C_poly/Al_mesh XRT C_poly/Al_mesh
63 Hinode/XRT/C_poly/Al_thick XRT C_poly/Al_thick
66 Hinode/XRT/C_poly/Open XRT C_poly/Open
67 Hinode/XRT/C_poly/Ti_poly XRT C_poly/Ti_poly
69 Hinode/XRT/Open/Al_mesh XRT Open/Al_mesh
70 Hinode/XRT/Open/Al_thick XRT Open/Al_thick
71 Hinode/XRT/Open/Be_thick XRT Open/Be_thick
74 Hinode/XRT/Open/Ti_poly XRT Open/Ti_poly
75 TRACE/171 TRACE 171
76 TRACE/195 TRACE 195
77 TRACE/284 TRACE 284
78 TRACE/1216 TRACE 1216
79 TRACE/1550 TRACE 1550
80 TRACE/1600 TRACE 1600
81 TRACE/1700 TRACE 1700
82 TRACE/white-light TRACE white-light
83 MLSO/COSMO/KCor/735 COSMO KCor
84 SOLO/EUI/FSI/174 EUI FSI 174
85 SOLO/EUI/FSI/304 EUI FSI 304
86 SOLO/EUI/HRI/174 EUI HRI 174
87 SOLO/EUI/HRI/1216 EUI HRI 1216
88 IRIS/SJI/1330 IRIS SJI 1330
89 IRIS/SJI/2796 IRIS SJI 2796
90 IRIS/SJI/1400 IRIS SJI 1400
92 IRIS/SJI/2832 IRIS SJI 2832
94 GONG/GONG/H-alpha/6562 GONG H-alpha
95 RHESSI/3-6keV/Back Projection RHESSI
96 RHESSI/6-12keV/Back Projection RHESSI
97 RHESSI/12-25keV/Back Projection RHESSI
98 RHESSI/25-50keV/Back Projection RHESSI
99 RHESSI/50-100keV/Back Projection RHESSI
100 RHESSI/100-300keV/Back Projection RHESSI
101 RHESSI/3-6keV/Clean RHESSI
102 RHESSI/6-12keV/Clean RHESSI
103 RHESSI/12-25keV/Clean RHESSI
104 RHESSI/25-50keV/Clean RHESSI
105 RHESSI/50-100keV/Clean RHESSI
106 RHESSI/100-300keV/Clean RHESSI
107 RHESSI/3-6keV/Clean 59 RHESSI
108 RHESSI/6-12keV/Clean 59 RHESSI
109 RHESSI/12-25keV/Clean 59 RHESSI
110 RHESSI/25-50keV/Clean 59 RHESSI
111 RHESSI/50-100keV/Clean 59 RHESSI
112 RHESSI/100-300keV/Clean 59 RHESSI
113 RHESSI/3-6keV/MEM GE RHESSI
114 RHESSI/6-12keV/MEM GE RHESSI
115 RHESSI/12-25keV/MEM GE RHESSI
116 RHESSI/25-50keV/MEM GE RHESSI
117 RHESSI/50-100keV/MEM GE RHESSI
118 RHESSI/100-300keV/MEM GE RHESSI
119 RHESSI/3-6keV/VIS CS RHESSI
120 RHESSI/6-12keV/VIS CS RHESSI
121 RHESSI/12-25keV/VIS CS RHESSI
122 RHESSI/25-50keV/VIS CS RHESSI
123 RHESSI/50-100keV/VIS CS RHESSI
124 RHESSI/100-300keV/VIS CS RHESSI
125 RHESSI/3-6keV/VIS FWDFIT RHESSI
126 RHESSI/6-12keV/VIS FWDFIT RHESSI
127 RHESSI/12-25keV/VIS FWDFIT RHESSI
128 RHESSI/25-50keV/VIS FWDFIT RHESSI
129 RHESSI/50-100keV/VIS FWDFIT RHESSI
130 RHESSI/100-300keV/VIS FWDFIT RHESSI
131 PUNCH/WFI+NFI/Total Brightness PUNCH
132 GOES/CCOR-1/CCOR-1/white-light GOES CCOR-1
134 PUNCH/WFI+NFI/Polarized Brightness PUNCH
2000 GOES/SUVI/94 SUVI 94
2001 GOES/SUVI/131 SUVI 131
2002 GOES/SUVI/171 SUVI 171
2003 GOES/SUVI/195 SUVI 195
2004 GOES/SUVI/284 SUVI 284
2005 GOES/SUVI/304 SUVI 304
10001 Hinode/XRT/Any/Any XRT Any/Any
10002 Hinode/XRT/Any/Al_mesh XRT Any/Al_mesh
10003 Hinode/XRT/Any/Al_thick XRT Any/Al_thick
10004 Hinode/XRT/Any/Be_thick XRT Any/Be_thick
10005 Hinode/XRT/Any/Gband XRT Any/Gband
10006 Hinode/XRT/Any/Open XRT Any/Open
10007 Hinode/XRT/Any/Ti_poly XRT Any/Ti_poly
10008 Hinode/XRT/Al_med/Any XRT Al_med/Any
10009 Hinode/XRT/Al_poly/Any XRT Al_poly/Any
10010 Hinode/XRT/Be_med/Any XRT Be_med/Any
10011 Hinode/XRT/Be_thin/Any XRT Be_thin/Any
10012 Hinode/XRT/C_poly/Any XRT C_poly/Any
10013 Hinode/XRT/Open/Any XRT Open/Any
```
## Requirements ## Requirements
Nur die Python-Standardbibliothek, keine Dependencies. Only the Python standard library, no dependencies.
Mit [devenv](https://devenv.sh) steht der passende Interpreter direkt bereit: With [devenv](https://devenv.sh), the right interpreter is available right away:
```bash ```bash
devenv shell devenv shell
+26
View File
@@ -6,6 +6,7 @@ Holt ein Sonnen-Vollscheibenbild von Helioviewer zu einem Zeitpunkt.
Beispiel: Beispiel:
./helioviewer_grab.py 2026-08-12T18:18:00Z hmi_continuum ./helioviewer_grab.py 2026-08-12T18:18:00Z hmi_continuum
./helioviewer_grab.py --list ./helioviewer_grab.py --list
./helioviewer_grab.py --sources
""" """
import json import json
@@ -15,6 +16,26 @@ import urllib.request
API = "https://api.helioviewer.org/v2" API = "https://api.helioviewer.org/v2"
# Kuratierte Kurzerklaerung der gebraeuchlichsten Quellen (sourceId -> Text).
# Nur eine Auswahl, keine vollstaendige Doku -- fuer alle IDs siehe --list.
SOURCE_INFO = {
8: "AIA 94 - hot flare plasma (~6 MK)",
9: "AIA 131 - flaring regions (~10 MK)",
10: "AIA 171 - quiet corona, coronal loops (~0.8 MK)",
11: "AIA 193 - corona, coronal holes (~1.2 MK)",
12: "AIA 211 - active region corona (~2 MK)",
13: "AIA 304 - chromosphere/transition region, prominences (~0.05 MK)",
14: "AIA 335 - active region corona (~2.5 MK)",
15: "AIA 1600 - upper photosphere/transition region, flare ribbons",
16: "AIA 1700 - photosphere/temperature minimum",
17: "AIA 4500 - near-visible continuum, sunspots",
18: "HMI continuum - white-light photosphere: sunspots, granulation "
"(highest full-disk resolution, 0.5\"/px)",
19: "HMI magnetogram - photospheric magnetic field map",
94: "GONG H-alpha - chromosphere: filaments, plage, flare ribbons "
"(ground-based network)",
}
def call(endpoint, **params): def call(endpoint, **params):
"""GET auf die Helioviewer-API. Gibt (content_type, bytes) zurueck.""" """GET auf die Helioviewer-API. Gibt (content_type, bytes) zurueck."""
@@ -64,6 +85,11 @@ def main():
print(f"{sid:4d} {'/'.join(path):40s} {nick}") print(f"{sid:4d} {'/'.join(path):40s} {nick}")
return return
if "--sources" in sys.argv:
for sid, desc in sorted(SOURCE_INFO.items()):
print(f"{sid:4d} {desc}")
return
date = sys.argv[1] if len(sys.argv) > 1 else "2026-08-12T18:18:00Z" date = sys.argv[1] if len(sys.argv) > 1 else "2026-08-12T18:18:00Z"
what = sys.argv[2] if len(sys.argv) > 2 else "continuum" what = sys.argv[2] if len(sys.argv) > 2 else "continuum"