DavidT3 / XGA

X-ray: Generate and Analyse is a module designed to make the analysis of XMM observations simple and efficient. It provides an interface with SAS for the creation of XMM data products, as well as a way to easily perform fits (scalable for multiple observations) and retrieve information about an object, all within a Python package.
BSD 3-Clause "New" or "Revised" License
30 stars 3 forks source link

Unstacked eROSITA XSPEC fits not working #1216

Open DavidT3 opened 1 month ago

DavidT3 commented 1 month ago

single_temp_apec(srcs, Quantity(1000, 'kpc'), stacked_spectra=False, lum_en=lum_en, freeze_temp=False)

KeyError Traceback (most recent call last) /tmp/ipykernel_165722/55123879.py in ----> 1 single_temp_apec(srcs, Quantity(1000, 'kpc'), stacked_spectra=False, lum_en=lum_en, freeze_temp=False)

/mnt/pact/dt237/code/PycharmProjects/XGA/xga/xspec/run.py in wrapper(*args, *kwargs) 152 # run_type describes the type of XSPEC script being run, for instance a fit or a fakeit run to measure 153 # countrate to luminosity conversion constants --> 154 script_list, paths, cores, run_type, src_inds, radii, timeout = xspec_func(args, **kwargs) 155 src_lookup = {repr(src): src_ind for src_ind, src in enumerate(sources)} 156 rel_src_repr = [repr(sources[src_ind]) for src_ind in src_inds]

/mnt/pact/dt237/code/PycharmProjects/XGA/xga/xspec/fit/general.py in single_temp_apec(sources, outer_radius, inner_radius, start_temp, start_met, lum_en, freeze_nh, freeze_met, freeze_temp, lo_en, hi_en, par_fit_stat, lum_conf, abund_table, fit_method, group_spec, min_counts, min_sn, over_sample, one_rmf, num_cores, spectrum_checking, timeout, stacked_spectra) 89 """ 90 ---> 91 sources, inn_rad_vals, out_rad_vals = _pregen_spectra(sources, outer_radius, inner_radius, group_spec, min_counts, 92 min_sn, over_sample, one_rmf, num_cores, stacked_spectra) 93 sources = _check_inputs(sources, lum_en, lo_en, hi_en, fit_method, abund_table, timeout)

/mnt/pact/dt237/code/PycharmProjects/XGA/xga/xspec/fit/_common.py in _pregen_spectra(sources, outer_radius, inner_radius, group_spec, min_counts, min_sn, over_sample, one_rmf, num_cores, stacked_spectra) 73 elif tel == 'erosita': 74 # This is the spectrum generation tool that is specific to eROSITA ---> 75 sources = srctool_spectrum(sources, outer_radius, inner_radius, group_spec, min_counts, min_sn, num_cores, 76 False, stacked_spectra) 77 else:

/mnt/pact/dt237/code/PycharmProjects/XGA/xga/generate/esass/run.py in wrapper(*args, **kwargs) 151 if product.type is not None and product.usable and prod_type_str != "annular spectrum set components": 152 # For each product produced for this source, we add it to the storage hierarchy --> 153 sources[ind].update_products(product) 154 elif product.type is not None and product.usable and prod_type_str == "annular spectrum set components": 155 # Really we're just re-creating the results dictionary here, but I want these products

/mnt/pact/dt237/code/PycharmProjects/XGA/xga/sources/base.py in update_products(self, prod_obj, update_inv) 2520 raise NotAssociatedError("{t}-{o} is not associated with source {n}.".format(t=tel, o=obs_id, 2521 n=self.name)) -> 2522 elif inst != "combined" and inst not in self.instruments[tel][obs_id]: 2523 raise NotAssociatedError("{i} is not associated with {t} observation " 2524 "{o} for source {n}.".format(i=inst, o=obs_id,

KeyError: 'combined'

DavidT3 commented 1 month ago

This also happens with eFEDS data.