Main Fitting Interface#
- run_geko_fit(output, master_cat, line, parametric, save_runs_path, num_chains, num_warmup, num_samples, source_id, field, grism_filter='F444W', delta_wave_cutoff=0.005, factor=5, wave_factor=10, model_name='Disk', config=None, manual_psf_name=None, manual_theta_rot=None, manual_pysersic_file=None, manual_grism_file=None)#
Run geko fitting without requiring a YAML config file.
- Parameters:
output (str) – Name of output subfolder
master_cat (str) – Path to master catalog file
line (int) – Emission line wavelength in Angstroms (e.g., 6562 for H-alpha)
parametric (bool) – Use parametric morphology fitting
save_runs_path (str) – Base directory containing data files
num_chains (int) – Number of MCMC chains
num_warmup (int) – Number of warmup iterations
num_samples (int) – Number of MCMC samples
source_id (int) – Source ID number
field (str) – Field name: ‘GOODS-N’, ‘GOODS-N-CONGRESS’, ‘GOODS-S-FRESCO’, or ‘manual’
grism_filter (str, optional) – Grism filter name (default: ‘F444W’)
delta_wave_cutoff (float, optional) – Wavelength bin size cutoff in microns (default: 0.005)
factor (int, optional) – Spatial oversampling factor (default: 5)
wave_factor (int, optional) – Wavelength oversampling factor (default: 10)
model_name (str, optional) – Kinematic model type (default: ‘Disk’)
config (FitConfiguration, optional) – Optional configuration object to override priors
manual_psf_name (str, optional) – PSF filename (required if field=’manual’). Should be in save_runs_path/psfs/ directory
manual_theta_rot (float, optional) – Rotation angle in degrees (required if field=’manual’) Angle to rotate morphology to match grism orientation
manual_pysersic_file (str, optional) – PySersic results filename (required if field=’manual’ and parametric=True) Should be in save_runs_path/morph_fits/ directory
manual_grism_file (str, optional) – Grism spectrum filename (required if field=’manual’) Should be in save_runs_path/output/ directory
- Returns:
MCMC inference results
- Return type:
arviz.InferenceData
- class Fit_Numpyro(obs_map, obs_error, grism_object, kin_model, inference_data, parametric, config=None)#
- __init__(obs_map, obs_error, grism_object, kin_model, inference_data, parametric, config=None)#
Class to fit model to data
- Parameters:
obs_map (array-like) – Observed 2D grism spectrum
obs_error (array-like) – Error map for observations
grism_object (Grism) – Grism dispersion object
kin_model (KinModels) – Kinematic model object
inference_data (arviz.InferenceData or None) – Previous inference results
parametric (bool) – Whether to use parametric morphology
config (FitConfiguration, optional) – Configuration object with priors and settings
- run_inference(num_samples=None, num_warmup=None, high_res=False, median=True, step_size=1, adapt_step_size=True, target_accept_prob=None, max_tree_depth=None, num_chains=None, init_vals=None)#
Run MCMC inference using the NUTS sampler.
Performs Bayesian parameter estimation using Numpyro’s No-U-Turn Sampler (NUTS). MCMC settings are taken from the config object if provided, otherwise defaults are used.
- Parameters:
num_samples (int, optional) – Number of MCMC samples to draw (default: from config or 1000)
num_warmup (int, optional) – Number of warmup/burn-in samples (default: from config or 500)
high_res (bool, optional) – Use high resolution model (default: False)
median (bool, optional) – Initialize from median values (default: True)
step_size (float, optional) – NUTS step size (default: 1 or from config)
adapt_step_size (bool, optional) – Adapt step size during warmup (default: True)
target_accept_prob (float, optional) – Target acceptance probability (default: from config or 0.8)
max_tree_depth (int, optional) – Maximum NUTS tree depth (default: from config or 10)
num_chains (int, optional) – Number of MCMC chains (default: from config or 4)
init_vals (dict, optional) – Initial parameter values (default: None)
Notes
Results are stored in self.mcmc and printed to console. Creates a source mask automatically using photutils segmentation.
- run_inference_ns(num_samples=2000, num_warmup=2000, high_res=False, median=True, step_size=1, adapt_step_size=True, target_accept_prob=0.8, max_tree_depth=10, num_chains=5, init_vals=None)#
Run nested sampling inference (experimental).
Uses Numpyro’s NestedSampler for Bayesian inference. This is an alternative to MCMC that may be more efficient for certain problems.
- Parameters:
num_samples (int, optional) – Number of samples to draw (default: 2000)
num_warmup (int, optional) – Number of warmup iterations (default: 2000)
high_res (bool, optional) – Use high resolution model (default: False)
median (bool, optional) – Initialize from median (default: True)
step_size (float, optional) – Step size (default: 1)
adapt_step_size (bool, optional) – Adapt step size (default: True)
target_accept_prob (float, optional) – Target acceptance probability (default: 0.8)
max_tree_depth (int, optional) – Maximum tree depth (default: 10)
num_chains (int, optional) – Number of chains (default: 5)
init_vals (dict, optional) – Initial values (default: None)
Notes
This method is experimental and may not work for all models. Results are stored in self.ns.
- diverging_parameters(chain_number, divergence_number)#
Extract parameter values at divergent MCMC transitions.
Retrieves the parameter values for a specific divergent transition, useful for diagnosing MCMC sampling problems.
- Parameters:
- Returns:
fluxes (jax.numpy.ndarray) – Flux values at divergent point
PA (float) – Position angle at divergent point
i (float) – Inclination at divergent point
Va (float) – Asymptotic velocity at divergent point
r_t (float) – Turnover radius at divergent point
sigma0 (float) – Velocity dispersion at divergent point
Notes
Requires self.inference_data to be set with MCMC results. Used for debugging pathological MCMC behavior.
- create_mask()#
Create a source mask for the grism spectrum using photutils segmentation.
Detects sources in the observed grism spectrum and creates a mask that isolates the central source, excluding contaminating sources.
- Returns:
Binary mask array (1 for source, 0 for background) with same shape as obs_map
- Return type:
Notes
Uses photutils source detection with: - 2D Gaussian smoothing kernel (sigma=3.0, size=5x5) - Background estimation on 15x15 pixel boxes - Detection threshold of 5-sigma above background - Minimum source size of 10 pixels The mask selects only the source at the central pixel position.