Skip to content

Releases: vortex-exoplanet/HEEPS

HEEPS v1.0.0 ELT/METIS FDR release

05 Aug 01:05
Compare
Choose a tag to compare

This is the ELT/METIS FDR release addressing major improvements, such as the implementation of new features in the software architecture, multiple updates to the configuration parameters, some bug fixes, the addition of numerous analysis Jupyter Notebooks, and a full documentation update, including the README, the list of references and dependencies, and a quick start.

Bug fixes

  • fixed NAN-masking in util/freq_decomp/spatial
  • util/mas2rms forced to ndarray
  • util/coord forced to float32
  • fixed tiptilt mas2rms calculation, now using diam_ext instead of pupil_img_size
  • RAP now requires r_ravc > 0
  • RAP analytic calculation now requires diam_int > 0
  • apodizer must be larger than M1 pupil (margin is twice as big as all-glass diam)
  • in pupil/pupil wavefront definition: setting wf beam diameter to diam_ext
  • vortex_init (back-propagation) now covers the full pupil image
  • fixed apodizer preloading option (when no drift) to only occur for RAVC (not APP)
  • pupil/create_pupil always oversamples
  • fixed rare bug in coord (arange -> linspace)
  • fixed rare bug in util/img_processing/crop_img for crop size larger than img size
  • chromatic leakage only applies to VC
  • pupil/create_pupil: rms of the segment reflectivities, in intensity (not in amplitude)

Changes in software modules/architecture

Pupil module

  • updates:
    • pupil/create_pupil
      • added dx/dy percentage misalignments
    • pupil/pupil
      • added 'load data array' option
      • removed petal option (now only used in the create_pupil notebook)
  • new function:
    • pupil/create_stop

Optics module

  • updates:
    • optics/lens
      • added 'light_trap' option
    • optics/vortex_init
      • added ramp_oversamp
      • added diam_norm: normalized pupil image size
      • new calibration file name contains diam_norm
    • optics/apodizer
      • added save_ring option
    • optics/lyot_stop
      • added 'load data array' option
      • now calling pupil/create_stop
      • optional: can return Lyot stop array, instead of applying to wavefront

Wavefront module

  • new functions:
    • wavefront/add_errors
      • called by propagate_one
    • wavefront/propagate (new features)
      • major verbose updates
      • add vortex chromatic leakage (at vortex plane or at detector plane)
      • add any zernike value
      • add LS misalignment (constant or drift)
      • preload Lyot stop, if no LS drift
      • off-axis PSF : nframes (with errors) averaged
  • some 'tools' moved to 'wavefront':
    • wavefront/atmospheric_disp_sim
    • wavefront/create_cube_app
    • wavefront/create_cube_scao
    • wavefront/create_cube_ncpa (previously create_cube_all_effects)

Contrast module

  • updates:
    • contrast/cc_adi (previously adi_one)
      • added multi-processing on ADI derotation
      • added call to sim_heeps (scopesim-heeps interface)
      • photutils is now required for VIP
    • contrast/cc_raw
      • removed obsolete functions: draw_contrast_curves, edit_hdu, draw_cc
  • new function:
    • contrast/sim_heeps

Utilities

  • updates:
    • util/coord: added dx/dy percentage misalignments
    • util/save2fits: improved header for compatibility with ScopeSim interface
    • util/multiCPU : nout (int) replaced by multi_out (bool)
  • new utilities:
    • util/multiCPU -> used in propagate_cube, create_cube, resize_cube, crop_cube
    • util/freq_decomp -> fit_zer, get_zernike, remove_zernike, psd_spatial_zernike, psd_temporal
    • util/img_processing -> get_piston, get_rms, is_odd, oversamp
    • util/coord -> rms2mas
    • util/round2 -> round2even
    • util/lamD
    • util/paralang
    • util/psf_template

Jupyter Notebooks (renamed: tools -> notebooks)

  • updates:
    • demo
    • ravc_optim
    • create_finite_size -> resolved_stars
  • new notebooks:
    • check_versions
    • post_processing
    • psf_non_coro
    • pupil_blurring
    • chrom_beam_wander
    • light_trap
    • planet_scene
    • create_4d_cube
    • huygens_psfs
  • new folders:
    • create_errors: petal_piston (moved), remove_tiptilt_petal_piston, create_all_ncpa, create_CBW_ncpa, create_CBW_talbot, create_petal_piston
    • create_pupils: create_lyotstops (moved), create_pupil (moved), create_appstops, create_apo_drift
    • hci_modes: app_strehl, cvc_ls_design, offaxis_tran, ravc_optim (moved), throughputs, instantaneous_psf, centroid_displacement
    • tests: test_resize, test_fft, test_prop_begin, test_tiptilt, test_multi, test_scaling, test_diam_norm, test_npupil, test_zernike, test_vip_frame_shift, test psf_off_template, test_amp_vs_intensity,test_scopesim
    • vortex_center_glow: vortex_center_glow_consistency_check, ELT-METIS, VLT-VISIR
    • water_vapor: temporal_rms_matisse, closed_loop_control, create_wv_cube, custom

Configuration parameters

renamed parameters

  • file_* -> f_*: f_pupil, f_lyot_stop, f_vc_trans, f_app_trans, f_app_amp, f_app_phase, f_phase, f_amp, f_point_err, f_ravc_amp, f_ravc_phase, f_scao_screens, f_mask, f_ncpa_frame, f_ncpa_screens, f_petal_screens
  • rms_phase_* -> ncpa_*: ncpa_sta, ncpa_qlsf, ncpa_qhsf, ncpa_dyn
  • rms_point_* -> point_*: point_qsta, point_dyn
  • ptv_drift -> apo_drift

updated default values:

f_pupil = 'pupil/ELT_fullM1.fits',  # entrance pupil file
spi_width = 0.54,                   # spider width in m
ravc_calc = False,                  # calculate RAP params (Mawet2013)
ravc_t = 0.7909,                    # (calc=False) RAP amplitude trans
ravc_r = 0.5190,                    # (calc=False) RAP radius wrt allglass
f_lyot_stop = '',                   # lyot stop file
ls_dRext = 0.0477,                  # LS Rext undersize (% diam ext)
ls_dRint = 0.04,                    # LS Rint oversize (% diam ext)
ls_dRspi = 0.0249,                  # LS spider oversize (% diam ext)
f_app_amp = 'optics/app/METIS_IMG_L_amp_ROF.fits', # APP amplitude
f_app_phase = 'optics/app/METIS_IMG_L_phase_ROF.fits', # APP phase
app_strehl = 0.6,                   # APP Strehl ratio

new parameters:

call_ScopeSim = False,              # true if interfacing ScopeSim
duration = 3600,                    # duration of the ADI sequence in s
dit = 0.3,                          # detector integration time in s
ls_ext_circ = False,                # circular LS external diameter
ls_int_circ = False,                # circular LS internal diameter
ls_misalign = None,                 # constant lyot stop misalignment
lt_dist = 0,                        # lith trap distance in m (36.67)
lt_diam = 0,                        # lith trap norm diameter (0.3837)
vc_chrom_leak = 2e-3,               # vortex chromatic leakage
add_cl_vort = False,                # add chromatic leakage at the vortex plane
add_cl_det = False,                 # add chromatic leakage at the detector plane
apo_misalign = None,                # constant apodizer misalignment
f_oat = 'optics/oat_L_RAVC.fits',   # vortex off-axis transmission
nframes_avg = 10,                   # number of frames averaged for off-axis psf
zern = None,                        # constant Zernike, e.g. astigmatism 30 nm rms,
                                    # zern = [5, 30e-9]
add_ls_drift = False,               # Lyot stop drift
ls_drift = 0.02,                    # (% ptv)

HEEPS v0.1.1

15 Mar 10:11
Compare
Choose a tag to compare

This is a delta-release addressing minor issues mainly due to a bug in the writing of vortex initialization files.

This release adds:

  • Bug fix in writing of vortex initialization files
  • Bug fix in ADI starphot normalization
  • Implementation of VPM and APP transmittance
  • New tools:
    • clocking_error.ipynb
    • qacits_oap.ipynb
    • test_starphot.ipynb
    • demo.ipynb
      ADI_contrast_curve
  • Updates to existing jupyter notebook tools:
    • create_lyotstops.ipynb
    • ravc_optim.ipynb

HEEPS v0.1 - METIS CM13

08 Jan 10:41
Compare
Choose a tag to compare
update to lyotmask (adding init function)

Classical Lyot Coronagraph

16 Oct 13:29
Compare
Choose a tag to compare
  • Adding Classical Lyot (CL) focal-plane mask in lyot.py.
  • Adding figures in example.py saved in .fits and .png for quick visualization. This feature will be off-loaded to the util folder in the future.

HEEPS v0.0.0

16 Oct 12:44
Compare
Choose a tag to compare
  • HEEPS: High-contrast End-to-End Performance Simulator
  • Architecture improved in 70858bc, portions of code (routines) have been converted to functions and saved in separate files, thereby adding clarity and allowing flexibility.
  • Main files for quick run are 'example.py' and 'ADI.py'.
  • Most features from Brunella's PhD work in IDL are included. A thorough cross-validation is needed.