Example of a Simple PipelineΒΆ

Here you can see a small pipeline, which is reading in, deredding, change the resolution, convolving with PSF and filter and adding noise:

import numpy as np

from hyperion.model import ModelOutput
from hyperion.util.constants import pc

from fluxcompensator.cube import *
from fluxcompensator.psf import *
from fluxcompensator.utils.resolution import *

# read in from `Hyperion <http://www.hyperion-rt.org>`_
m = ModelOutput('hyperion_output.rtout')
array = m.get_image(group=0, inclination=0, distance=300*pc,
                    units='ergs/cm^2/s')

# initial FluxCompensator array
c = SyntheticCube(input_array=array, unit_out='ergs/cm^2/s',
                  name='test_cube')

# dered with provided extinction law
ext = c.extinction(A_v=20.)

# change resolution to 10-times of the initial
zoom = ext.change_resolution(new_resolution=10*ext.resolution['arcsec'],
                             grid_plot=True)

import fluxcompensator.database.missions as PSFs

# call object from the psf database
psf_object = getattr(PSFs, 'PACS1_PSF')

# convolve with PSF
psf = zoom.convolve_psf(psf_object)

import fluxcompensator.database.missions as filters

# call object from the filter database
filter_input = getattr(filters, 'PACS1_FILTER')

# convolve with filter
filtered = psf.convolve_filter(filter_input, plot_rebin=None,
                               plot_rebin_dpi=None)

# add noise
noise = filtered.add_noise(mu_noise=0, sigma_noise=5e-15, seed=2, diagnostics=None)

See Sections Post processing and Outputs to create SEDs, photometric fluxes and further outputs.