# helioviewer_grab Small script that downloads a full-disk sun image from [Helioviewer](https://helioviewer.org) for a given point in time. It looks up the Helioviewer API for the data source matching the given keyword (e.g. `hmi_continuum`), fetches the image closest to the requested time, and saves it as a PNG in the current directory. ## Usage ```bash ./helioviewer_grab.py 2026-08-12T18:18:00Z hmi_continuum ./helioviewer_grab.py --list # show all available data sources ./helioviewer_grab.py --sources # short explanation of the most useful ones ``` 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. The last column is a CLI value that is guaranteed to select exactly that row (`pick()` matches it as a substring, so shorter keywords work too, e.g. `hmi_continuum`): ```yaml 0 SOHO/EIT/171 EIT 171 soho_eit_171 1 SOHO/EIT/195 EIT 195 soho_eit_195 2 SOHO/EIT/284 EIT 284 soho_eit_284 3 SOHO/EIT/304 EIT 304 soho_eit_304 4 SOHO/LASCO/C2/white-light LASCO C2 soho_lasco_c2_white-light 5 SOHO/LASCO/C3/white-light LASCO C3 soho_lasco_c3_white-light 6 SOHO/MDI/magnetogram MDI Mag soho_mdi_magnetogram 7 SOHO/MDI/continuum MDI Int soho_mdi_continuum 8 SDO/AIA/94 AIA 94 sdo_aia_94 9 SDO/AIA/131 AIA 131 sdo_aia_131 10 SDO/AIA/171 AIA 171 sdo_aia_171 11 SDO/AIA/193 AIA 193 sdo_aia_193 12 SDO/AIA/211 AIA 211 sdo_aia_211 13 SDO/AIA/304 AIA 304 sdo_aia_304 14 SDO/AIA/335 AIA 335 sdo_aia_335 15 SDO/AIA/1600 AIA 1600 sdo_aia_1600 16 SDO/AIA/1700 AIA 1700 sdo_aia_1700 17 SDO/AIA/4500 AIA 4500 sdo_aia_4500 18 SDO/HMI/continuum HMI Int sdo_hmi_continuum 19 SDO/HMI/magnetogram HMI Mag sdo_hmi_magnetogram 20 STEREO_A/SECCHI/EUVI/171 EUVI-A 171 stereo_a_secchi_euvi_171 21 STEREO_A/SECCHI/EUVI/195 EUVI-A 195 stereo_a_secchi_euvi_195 22 STEREO_A/SECCHI/EUVI/284 EUVI-A 284 stereo_a_secchi_euvi_284 23 STEREO_A/SECCHI/EUVI/304 EUVI-A 304 stereo_a_secchi_euvi_304 24 STEREO_B/SECCHI/EUVI/171 EUVI-B 171 stereo_b_secchi_euvi_171 25 STEREO_B/SECCHI/EUVI/195 EUVI-B 195 stereo_b_secchi_euvi_195 26 STEREO_B/SECCHI/EUVI/284 EUVI-B 284 stereo_b_secchi_euvi_284 27 STEREO_B/SECCHI/EUVI/304 EUVI-B 304 stereo_b_secchi_euvi_304 28 STEREO_A/SECCHI/COR1/white-light COR1-A stereo_a_secchi_cor1_white-light 29 STEREO_A/SECCHI/COR2/white-light COR2-A stereo_a_secchi_cor2_white-light 30 STEREO_B/SECCHI/COR1/white-light COR1-B stereo_b_secchi_cor1_white-light 31 STEREO_B/SECCHI/COR2/white-light COR2-B stereo_b_secchi_cor2_white-light 32 PROBA2/SWAP/174 SWAP 174 proba2_swap_174 33 Yohkoh/SXT/AlMgMn SXT AlMgMn yohkoh_sxt_almgmn 34 Yohkoh/SXT/thin-Al SXT thin-Al yohkoh_sxt_thin-al 35 Yohkoh/SXT/white-light SXT white-light yohkoh_sxt_white-light 39 Hinode/XRT/Al_med/Al_thick XRT Al_med/Al_thick hinode_xrt_al_med_al_thick 40 Hinode/XRT/Al_med/Be_thick XRT Al_med/Be_thick hinode_xrt_al_med_be_thick 42 Hinode/XRT/Al_med/Open XRT Al_med/Open hinode_xrt_al_med_open 43 Hinode/XRT/Al_med/Ti_poly XRT Al_med/Ti_poly hinode_xrt_al_med_ti_poly 44 Hinode/XRT/Al_poly/Al_mesh XRT Al_poly/Al_mesh hinode_xrt_al_poly_al_mesh 45 Hinode/XRT/Al_poly/Al_thick XRT Al_poly/Al_thick hinode_xrt_al_poly_al_thick 46 Hinode/XRT/Al_poly/Be_thick XRT Al_poly/Be_thick hinode_xrt_al_poly_be_thick 48 Hinode/XRT/Al_poly/Open XRT Al_poly/Open hinode_xrt_al_poly_open 49 Hinode/XRT/Al_poly/Ti_poly XRT Al_poly/Ti_poly hinode_xrt_al_poly_ti_poly 54 Hinode/XRT/Be_med/Open XRT Be_med/Open hinode_xrt_be_med_open 60 Hinode/XRT/Be_thin/Open XRT Be_thin/Open hinode_xrt_be_thin_open 62 Hinode/XRT/C_poly/Al_mesh XRT C_poly/Al_mesh hinode_xrt_c_poly_al_mesh 63 Hinode/XRT/C_poly/Al_thick XRT C_poly/Al_thick hinode_xrt_c_poly_al_thick 66 Hinode/XRT/C_poly/Open XRT C_poly/Open hinode_xrt_c_poly_open 67 Hinode/XRT/C_poly/Ti_poly XRT C_poly/Ti_poly hinode_xrt_c_poly_ti_poly 69 Hinode/XRT/Open/Al_mesh XRT Open/Al_mesh hinode_xrt_open_al_mesh 70 Hinode/XRT/Open/Al_thick XRT Open/Al_thick hinode_xrt_open_al_thick 71 Hinode/XRT/Open/Be_thick XRT Open/Be_thick hinode_xrt_open_be_thick 74 Hinode/XRT/Open/Ti_poly XRT Open/Ti_poly hinode_xrt_open_ti_poly 75 TRACE/171 TRACE 171 trace_171 76 TRACE/195 TRACE 195 trace_195 77 TRACE/284 TRACE 284 trace_284 78 TRACE/1216 TRACE 1216 trace_1216 79 TRACE/1550 TRACE 1550 trace_1550 80 TRACE/1600 TRACE 1600 trace_1600 81 TRACE/1700 TRACE 1700 trace_1700 82 TRACE/white-light TRACE white-light trace_white-light 83 MLSO/COSMO/KCor/735 COSMO KCor mlso_cosmo_kcor_735 84 SOLO/EUI/FSI/174 EUI FSI 174 solo_eui_fsi_174 85 SOLO/EUI/FSI/304 EUI FSI 304 solo_eui_fsi_304 86 SOLO/EUI/HRI/174 EUI HRI 174 solo_eui_hri_174 87 SOLO/EUI/HRI/1216 EUI HRI 1216 solo_eui_hri_1216 88 IRIS/SJI/1330 IRIS SJI 1330 iris_sji_1330 89 IRIS/SJI/2796 IRIS SJI 2796 iris_sji_2796 90 IRIS/SJI/1400 IRIS SJI 1400 iris_sji_1400 92 IRIS/SJI/2832 IRIS SJI 2832 iris_sji_2832 94 GONG/GONG/H-alpha/6562 GONG H-alpha gong_gong_h-alpha_6562 95 RHESSI/3-6keV/Back Projection RHESSI rhessi_3-6kev_back_projection 96 RHESSI/6-12keV/Back Projection RHESSI rhessi_6-12kev_back_projection 97 RHESSI/12-25keV/Back Projection RHESSI rhessi_12-25kev_back_projection 98 RHESSI/25-50keV/Back Projection RHESSI rhessi_25-50kev_back_projection 99 RHESSI/50-100keV/Back Projection RHESSI rhessi_50-100kev_back_projection 100 RHESSI/100-300keV/Back Projection RHESSI rhessi_100-300kev_back_projection 101 RHESSI/3-6keV/Clean RHESSI rhessi_3-6kev_clean 102 RHESSI/6-12keV/Clean RHESSI rhessi_6-12kev_clean 103 RHESSI/12-25keV/Clean RHESSI rhessi_12-25kev_clean 104 RHESSI/25-50keV/Clean RHESSI rhessi_25-50kev_clean 105 RHESSI/50-100keV/Clean RHESSI rhessi_50-100kev_clean 106 RHESSI/100-300keV/Clean RHESSI rhessi_100-300kev_clean 107 RHESSI/3-6keV/Clean 59 RHESSI rhessi_3-6kev_clean_59 108 RHESSI/6-12keV/Clean 59 RHESSI rhessi_6-12kev_clean_59 109 RHESSI/12-25keV/Clean 59 RHESSI rhessi_12-25kev_clean_59 110 RHESSI/25-50keV/Clean 59 RHESSI rhessi_25-50kev_clean_59 111 RHESSI/50-100keV/Clean 59 RHESSI rhessi_50-100kev_clean_59 112 RHESSI/100-300keV/Clean 59 RHESSI rhessi_100-300kev_clean_59 113 RHESSI/3-6keV/MEM GE RHESSI rhessi_3-6kev_mem_ge 114 RHESSI/6-12keV/MEM GE RHESSI rhessi_6-12kev_mem_ge 115 RHESSI/12-25keV/MEM GE RHESSI rhessi_12-25kev_mem_ge 116 RHESSI/25-50keV/MEM GE RHESSI rhessi_25-50kev_mem_ge 117 RHESSI/50-100keV/MEM GE RHESSI rhessi_50-100kev_mem_ge 118 RHESSI/100-300keV/MEM GE RHESSI rhessi_100-300kev_mem_ge 119 RHESSI/3-6keV/VIS CS RHESSI rhessi_3-6kev_vis_cs 120 RHESSI/6-12keV/VIS CS RHESSI rhessi_6-12kev_vis_cs 121 RHESSI/12-25keV/VIS CS RHESSI rhessi_12-25kev_vis_cs 122 RHESSI/25-50keV/VIS CS RHESSI rhessi_25-50kev_vis_cs 123 RHESSI/50-100keV/VIS CS RHESSI rhessi_50-100kev_vis_cs 124 RHESSI/100-300keV/VIS CS RHESSI rhessi_100-300kev_vis_cs 125 RHESSI/3-6keV/VIS FWDFIT RHESSI rhessi_3-6kev_vis_fwdfit 126 RHESSI/6-12keV/VIS FWDFIT RHESSI rhessi_6-12kev_vis_fwdfit 127 RHESSI/12-25keV/VIS FWDFIT RHESSI rhessi_12-25kev_vis_fwdfit 128 RHESSI/25-50keV/VIS FWDFIT RHESSI rhessi_25-50kev_vis_fwdfit 129 RHESSI/50-100keV/VIS FWDFIT RHESSI rhessi_50-100kev_vis_fwdfit 130 RHESSI/100-300keV/VIS FWDFIT RHESSI rhessi_100-300kev_vis_fwdfit 131 PUNCH/WFI+NFI/Total Brightness PUNCH punch_wfi+nfi_total_brightness 132 GOES/CCOR-1/CCOR-1/white-light GOES CCOR-1 goes_ccor-1_ccor-1_white-light 134 PUNCH/WFI+NFI/Polarized Brightness PUNCH punch_wfi+nfi_polarized_brightness 2000 GOES/SUVI/94 SUVI 94 goes_suvi_94 2001 GOES/SUVI/131 SUVI 131 goes_suvi_131 2002 GOES/SUVI/171 SUVI 171 goes_suvi_171 2003 GOES/SUVI/195 SUVI 195 goes_suvi_195 2004 GOES/SUVI/284 SUVI 284 goes_suvi_284 2005 GOES/SUVI/304 SUVI 304 goes_suvi_304 10001 Hinode/XRT/Any/Any XRT Any/Any hinode_xrt_any_any 10002 Hinode/XRT/Any/Al_mesh XRT Any/Al_mesh hinode_xrt_any_al_mesh 10003 Hinode/XRT/Any/Al_thick XRT Any/Al_thick hinode_xrt_any_al_thick 10004 Hinode/XRT/Any/Be_thick XRT Any/Be_thick hinode_xrt_any_be_thick 10005 Hinode/XRT/Any/Gband XRT Any/Gband hinode_xrt_any_gband 10006 Hinode/XRT/Any/Open XRT Any/Open hinode_xrt_any_open 10007 Hinode/XRT/Any/Ti_poly XRT Any/Ti_poly hinode_xrt_any_ti_poly 10008 Hinode/XRT/Al_med/Any XRT Al_med/Any hinode_xrt_al_med_any 10009 Hinode/XRT/Al_poly/Any XRT Al_poly/Any hinode_xrt_al_poly_any 10010 Hinode/XRT/Be_med/Any XRT Be_med/Any hinode_xrt_be_med_any 10011 Hinode/XRT/Be_thin/Any XRT Be_thin/Any hinode_xrt_be_thin_any 10012 Hinode/XRT/C_poly/Any XRT C_poly/Any hinode_xrt_c_poly_any 10013 Hinode/XRT/Open/Any XRT Open/Any hinode_xrt_open_any ``` ## Requirements Only the Python standard library, no dependencies. With [devenv](https://devenv.sh), the right interpreter is available right away: ```bash devenv shell ``` ## Author Aaron Schmocker