from __future__ import absolute_import import collections import beamsgenerator import doublefourier import fts import loadparameters import pointingerrors import renderer import skygenerator import uvmapgenerator class Fiins(object): """FISICA simulator. """ def __init__(self, sky_spreadsheet='SkySparams.xlsx', sky_sheet='1point'): self.sky_spreadsheet = sky_spreadsheet self.sky_sheet = sky_sheet self.result = collections.OrderedDict() def simulate(self): # read parameters loadparams = loadparameters.LoadParameters( sky_spreadsheet=self.sky_spreadsheet, sky_sheet=self.sky_sheet) obs_specification = loadparams.run() self.result['loadparameters'] = obs_specification # generate UV map uvmapgen = uvmapgenerator.UVMapGenerator(parameters=obs_specification) self.result['uvmapgenerator'] = uvmapgen.run() # generate information on the FTS ftsd = fts.FTS(parameters=obs_specification) self.result['fts'] = ftsd.run() # generate primary beams beamsgen = beamsgenerator.BeamsGenerator( previous_results=self.result) self.result['beamsgenerator'] = beamsgen.run() # pointing errors pointingerrs = pointingerrors.PointingErrors( parameters=obs_specification) self.result['pointingerrors'] = pointingerrs.run() # construct sky skygen = skygenerator.SkyGenerator(parameters=obs_specification, previous_results=self.result) self.result['skygenerator'] = skygen.run() # calculate interferograms doublef = doublefourier.DoubleFourier(parameters=obs_specification, previous_results=self.result) self.result['doublefourier'] = doublef.run() # construct html description of result self.render() def import_result(self): print 'does nothing' def render(self): htmlrenderer = renderer.Renderer(result=self.result) htmlrenderer.run() def __repr__(self): return 'FISICA simulator'