Examples

This page contains various examples of how to use naimatic, starting from the same examples that you can find in the naima documentation pages.

Important

A general note on the configuration of parameters:
I preferred to give the user an interface that makes physical sense, so parameter initial values and priors are always defined by the physical quantity together with its unit, even if what is fit in the end is the base-10 exponent.
For example, the following snippet is equivalent to set a prior
logprob = naima.uniform_prior(pars[0], 0, np.inf)
for amplitude = 10 ** pars[0] / u.eV.
amplitude:
  freeze: false
  log10: true
  init_value: 1e30 eV-1
  prior:
  name: uniform
    min: 1 eV-1   # this is equivalent to 10**0 eV-1
    max: inf eV-1 # this is equivalent to 10**inf eV-1

Fitting a minimal radiative model

output_path: /where/you/want/to/save/your/data

data:
  hess: /path/to/RXJ1713_HESS_2007.dat

models:
- name: minimal_radiative_model
  overwrite: true
  distance: "1 kpc"
  particle_distribution:
  name: ExponentialCutoffPowerLaw
    amplitude:
      freeze: false
      init_value: 1e30 eV-1
      prior:
      name: uniform
        min: 0 eV-1
        max: inf eV-1
    e_0:
      freeze: true
      init_value: 10 TeV
    alpha:
      freeze: false
      init_value: 3.0
    e_cutoff:
      freeze: false
      log10: true
      init_value: 30 TeV
    beta:
      freeze: true
      init_value: 1.0
    radiative_processes:
    - name: InverseCompton
      seed_photon_fields:
        - "CMB"
    metadata:
      particle_distribution:
        save: true # if true save to blob metadata
        energy_range: np.logspace(11, 15, 100) * u.eV
      total_particle_energy:
        save: true # if true save to blob metadata
        e_min: 1 TeV

mcmc:
  nwalkers: 32
  nburn: 100
  nrun: 20
  threads: 4
  prefit: false
  interactive: false

Fitting IC emission from an electron distribution

output_path: /where/you/want/to/save/your/data

data:
  hess: /path/to/RXJ1713_HESS_2007.dat

models:
- name: inverse_compton
  overwrite: true
  sed: true
  distance: "1 kpc"
  particle_distribution:
  name: ExponentialCutoffPowerLaw
  amplitude:
    freeze: false
    init_value: 1e30 eV-1
    prior:
      name: uniform
      min: 0 eV-1
      max: inf eV-1
    e_0:
      freeze: true
      init_value: 10 TeV
    alpha:
      freeze: false
      init_value: 3.0
    e_cutoff:
      freeze: false
      log10: true
      init_value: 30 TeV
    beta:
      freeze: true
      init_value: 1.0
    radiative_processes:
      - name: InverseCompton
        seed_photon_fields:
        - "CMB"
        - ["FIR", "26.5 K", "0.415 eV cm-3"]
        Eemin: 100 GeV
    metadata:
      particle_distribution:
        save: true # if true save to blob metadata
        energy_range: np.logspace(11, 15, 100) * u.eV
      total_particle_energy:
        save: true # if true save to blob metadata
        e_min: 1 TeV

mcmc:
  nwalkers: 32
  nburn: 100
  nrun: 20
  threads: 4
  prefit: false
  interactive: false

Fitting Synchrotron and IC emission from an electron distribution

output_path:

data: # Data tables for the model (in order of increasing energy range!)
  suzaku: RXJ1713_Suzaku-XIS.dat
  hess: RXJ1713_HESS_2007.dat

models:
  - name: ElectronSynIC
    overwrite: true
    sed: true
    distance: "1 kpc"
    particle_distribution:
      name: ExponentialCutoffPowerLaw
      amplitude:
        freeze: false
        log10: true
        init_value: 1e33 eV-1
        prior:
          name: uniform
          min: 1 eV-1
          max: inf eV-1
      e_0:
        freeze: true
        init_value: 10 TeV
      alpha:
        freeze: false
        init_value: 2.5
        prior:
          name: uniform
          min: -1
          max: 5
      e_cutoff:
        freeze: false
        log10: true
        init_value: 48 TeV
      beta:
        freeze: true
        init_value: 1.0
    radiative_processes:
      - name: Synchrotron
        B:
          freeze: false
          estimate_from: ["suzaku", "hess"] # 1st soft X-ray, 2nd VHE data
          prior:
            name: uniform
            min: 0 uG
            max: inf uG
      - name: InverseCompton
        seed_photon_fields:
          - "CMB"
          - ["FIR", "26.5 K", "0.415 eV cm-3"]
        Eemin: 100 GeV
    metadata:
      total_particle_energy:
        save: true # if true save to blob metadata
        e_min: 1 TeV

mcmc:
  nwalkers: 32
  nburn: 100
  nrun: 20
  threads: 4
  prefit: true
  interactive: false

Fitting PionDecay emission from a proton distribution

output_path:

data:
  hess: RXJ1713_HESS_2007.dat

models:
  - name: PionDecay
    overwrite: true
    distance: "1.5 kpc"
    particle_distribution:
      name: ExponentialCutoffPowerLaw
      amplitude:
        freeze: false
        log10: true
        init_value: 1e45 TeV-1
        prior:
          name: uniform
          min: 1 TeV-1
          max: inf TeV-1
      e_0:
        freeze: true
        init_value: 1 TeV
      alpha:
        init_value: 1.6
        prior:
          name: uniform
          min: -1
          max: 5
      e_cutoff:
        log10: true
        init_value: 12 TeV
      beta:
        freeze: true
        init_value: 0.54
    radiative_processes:
      - name: PionDecay
        nh: "10 cm-3"
    metadata:
      particle_distribution:
        save: true # if true save to blob metadata
        energy_range: np.logspace(-3, 2, 50) * u.TeV
      total_particle_energy:
        save: true # if true save to blob metadata
        e_min: 1 TeV

mcmc:
  nwalkers: 32
  nburn: 100
  nrun: 20
  threads: 4
  prefit: true
  interactive: false