feature(helioviewer): add documentation about sources to the script and update the readme
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user