DEFAULTS_MUSE#

muse.variables.DEFAULTS_MUSE = InstrumentDefaults(dx_pixel_CI=<Quantity 0.143 arcsec>, dy_pixel_CI=<Quantity 0.143 arcsec>, slit_sep_CI=<Quantity 27. pix>, full_well_depth_CI=<Quantity 120000. DN>, dx_pixel_SG=<Quantity 0.4 arcsec>, dy_pixel_SG=<Quantity 0.167 arcsec>, slit_sep_SG=None, pixels_SG=<Quantity 1024 pix>, number_of_slits_SG=35, pixels_between_slits=<Quantity 26.53 pix>, spectral_slit_separation_SG=<Quantity 0.39 Angstrom>, steps_per_raster_SG=11, mesh_transmission={284: 0.81}, oversample_x_SG=7, oversample_y_SG=3, center_diffraction=False, lpi={284: <Quantity 70. 1 / inch>}, psf_fwhm=<Quantity 0.5 arcsec>, psf_fwhm_x=<Quantity 0.25 arcsec>, psf_fwhm_y=<Quantity 0.5 arcsec>, data_compression=1, ccd_gain=<Quantity 10. electron / DN>, sum_over_dims_synthesis=('logT', 'vdop', 'slit'), main_lines_SG=(('Fe XIX 108.355', 'Fe XXI 108.117'), ('Fe IX 171.073',), ('Fe XV 284.163',)), main_lines_SG_wavelength={'Fe XIX 108.355': <Quantity 108.355 Angstrom>, 'Fe XXI 108.117': <Quantity 108.117 Angstrom>, 'Fe IX 171.073': <Quantity 171.073 Angstrom>, 'Fe XV 284.163': <Quantity 284.163 Angstrom>}, bands_SG=<Quantity [108., 108., 171., 284.] Angstrom>, fov_mode='wrap', fov_restype='match_res_tile', fov_sub_interpolation=2, exposure_times_SG={'QS': <Quantity [ 2.,  6., 18., 60.] s>, 'plage': <Quantity [ 1.,  2.,  8., 32.] s>, 'AR': <Quantity [ 1.,  2.,  8., 32.] s>, 'M-flare': <Quantity [0.1, 0.6, 1.8, 6. ] s>, 'X-flare': <Quantity [0.1, 0.6, 1.8, 6. ] s>}, exposure_times_CI={'QS': <Quantity [ 1.5,  3. ,  6. , 12. ] s>, 'plage': <Quantity [0.6, 1.2, 2.5, 5. ] s>, 'AR': <Quantity [0.6, 1.2, 2.5, 5. ] s>, 'M-flare': <Quantity [0.06, 0.15, 0.3 , 1.2 ] s>, 'X-flare': <Quantity [0.06, 0.15, 0.3 , 1.2 ] s>}, electron_density=<Quantity 1.e+09 1 / cm3>, electron_pressure=<Quantity 3.e+15 K / cm3>, response_logT_min=4.8, target_logT={'QS': array([4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6. ,        6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7]), 'AR': array([4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6. ,        6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7. , 7.1, 7.2]), 'FL': array([4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6. ,        6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7. , 7.1, 7.2, 7.3,        7.4, 7.5])}, target_vdop={'QS': <Quantity [-200., -180., -160., -140., -120., -100.,  -80.,  -60.,  -40.,             -20.,    0.,   20.,   40.,   60.,   80.,  100.,  120.,  140.,             160.,  180.,  200.] km / s>, 'AR': <Quantity [-300., -280., -260., -240., -220., -200., -180., -160., -140.,            -120., -100.,  -80.,  -60.,  -40.,  -20.,    0.,   20.,   40.,              60.,   80.,  100.,  120.,  140.,  160.,  180.,  200.,  220.,             240.,  260.,  280.,  300.] km / s>, 'FL': <Quantity [-500., -480., -460., -440., -420., -400., -380., -360., -340.,            -320., -300., -280., -260., -240., -220., -200., -180., -160.,            -140., -120., -100.,  -80.,  -60.,  -40.,  -20.,    0.,   20.,              40.,   60.,   80.,  100.,  120.,  140.,  160.,  180.,  200.,             220.,  240.,  260.,  280.,  300.,  320.,  340.,  360.,  380.,             400.,  420.,  440.,  460.,  480.,  500.] km / s>}, minimum_abundance=1e-21, response_method='linear', normalization=1e-27, num_lines_keep=2, sum_lines=False, initial_wavelength_SG=<xarray.DataArray (channel: 3)> Size: 24B <Quantity [107.68034, 170.62314, 283.01608] Angstrom> Coordinates:   * channel  (channel) int64 24B 108 171 284, channel_spectral_order=<xarray.DataArray (channel: 3)> Size: 24B array([2, 2, 1]) Coordinates:   * channel  (channel) int64 24B 108 171 284)#

Container of instrument properties used by functions and methods within the muse library; not a general-purpose instrument defaults class.

Every parameter is optional and defaults to None; populate the ones a given instrument needs (see muse.variables for the MUSE and AIA instances). Each field documents its meaning and the unit it is normalized to.

Fields are validated and normalized on construction. Instances prevent top-level attribute reassignment; create modified copies with attrs.evolve.

This is not a deeply immutable container. The converters copy input values and make common array buffers read-only, but some nested objects still expose mutable APIs:

  • xarray.DataArray fields can still have .data, coordinates, .attrs, and .encoding reassigned or mutated through xarray APIs.

  • Object-dtype arrays or custom objects stored inside mappings can still mutate their contained Python objects even when the outer array or mapping is read-only.

  • muse.variables_schema.FrozenDict prevents normal mapping mutation, but it is still a dict subclass for pickle compatibility.

Because nested state can change, instances are intentionally unhashable.