source: trunk/fiins.py@ 39

Last change on this file since 39 was 39, checked in by JohnLightfoot, 10 years ago

cosmetic

File size: 2.4 KB
Line 
1from __future__ import absolute_import
2
3import collections
4import pp
5
6import beamsgenerator
7import doublefourier
8import fts
9import loadparameters
10import pointingerrors
11import renderer
12import skygenerator
13import uvmapgenerator
14
15
16class Fiins(object):
17 """FISICA simulator.
18 """
19 def __init__(self, sky_spreadsheet='SkySparams.xlsx', sky_sheet='1point'):
20 self.sky_spreadsheet = sky_spreadsheet
21 self.sky_sheet = sky_sheet
22 self.result = collections.OrderedDict()
23
24 # start parallel python (pp), find the number of CPUS available
25 ppservers = ()
26 self.job_server = pp.Server(ppservers=ppservers)
27 print 'fiins starting pp with %s workers' % \
28 self.job_server.get_ncpus()
29
30 def simulate(self):
31 # read parameters
32 loadparams = loadparameters.LoadParameters(
33 sky_spreadsheet=self.sky_spreadsheet,
34 sky_sheet=self.sky_sheet)
35 obs_specification = loadparams.run()
36 self.result['loadparameters'] = obs_specification
37
38 # generate UV map
39 uvmapgen = uvmapgenerator.UVMapGenerator(parameters=obs_specification)
40 self.result['uvmapgenerator'] = uvmapgen.run()
41
42 # generate information on the FTS
43 ftsd = fts.FTS(parameters=obs_specification)
44 self.result['fts'] = ftsd.run()
45 print ftsd
46
47 # generate primary beams
48 beamsgen = beamsgenerator.BeamsGenerator(
49 previous_results=self.result)
50 self.result['beamsgenerator'] = beamsgen.run()
51
52 # pointing errors
53 pointingerrs = pointingerrors.PointingErrors(
54 parameters=obs_specification)
55 self.result['pointingerrors'] = pointingerrs.run()
56
57 # construct sky
58 skygen = skygenerator.SkyGenerator(parameters=obs_specification,
59 previous_results=self.result)
60 self.result['skygenerator'] = skygen.run()
61
62 # calculate interferograms
63 doublef = doublefourier.DoubleFourier(parameters=obs_specification,
64 previous_results=self.result, job_server=self.job_server)
65 self.result['doublefourier'] = doublef.run()
66
67 # construct html description of result
68 self.render()
69
70 def import_result(self):
71 print 'does nothing'
72
73 def render(self):
74 htmlrenderer = renderer.Renderer(result=self.result)
75 htmlrenderer.run()
76
77 def __repr__(self):
78 return 'FISICA simulator'
79
Note: See TracBrowser for help on using the repository browser.