def make_x3dplot(instrument):
    keeppos = simulator.KeepCol('pos')
    instrument.postprocess_steps = [keeppos]
    target = SkyCoord(30., 30., unit='deg')
    star = source.PointSource(coords=target, energy=.5, flux=1.)
    pointing = source.FixedPointing(coords=target)
    photons = star.generate_photons(5000)
    photons = pointing(photons)
    photons = instrument(photons)
    ind = (photons['probability'] >= 0) & (photons['facet'] >= 0)
    posdat = keeppos.format_positions()[ind, :, :]
    pp = photons[ind]
    fig = mlab.figure()
    plot_object(instrument, viewer=fig)
    plot_rays(posdat, scalar=pp['order'])
    return fig
Exemplo n.º 2
0
 def plot(self):
     ind = (self.photons['probability'] > 0)
     posdat = self.keeppos.format_positions()[ind, :, :]
     fig = mlab.figure()
     obj = plot_object(self.instrument, viewer=fig)
     rays = plot_rays(posdat, scalar=self.photons[self.plot_col_color][ind])
     mlab.savefig(os.path.join(self.outpath, self.filename + '.x3d'))
Exemplo n.º 3
0
 def plot(self):
     self.myboom.elements[0].display['color'] = 'blue'
     ind = (self.photons['probability'] > 0)
     posdat = self.keeppos.format_positions()[ind, :, :]
     fig = mlab.figure()
     obj = plot_object(self.instrument, viewer=fig)
     obj = plot_object(self.myboom, viewer=fig)
     rays = plot_rays(posdat,
                      scalar=np.asarray(self.photons[self.plot_col_color],
                                        dtype=float)[ind])
     mlab.savefig(os.path.join(self.outpath, self.filename + '.x3d'))
Exemplo n.º 4
0
mypointing = DefaultPointing()

mysource = DefaultSource(energy=e)

photons = mysource.generate_photons(n_photons)
photons = mypointing(photons)

instrum = Arcus()
photons = instrum(photons)


ind = (photons['probability'] > 0)
posdat = visualization.utils.format_saved_positions(arcus.arcus.keeppos4)[ind, :, :]
fig = mlab.figure()
obj = plot_object(arcus.arcus.arcus4, viewer=fig)
rays = plot_rays(posdat, scalar=photons['energy'][ind])


d = np.dstack(keeppos.data)
d = np.swapaxes(d, 1, 2)
d = h2e(d)

marxs.visualization.mayavi.plot_rays(d, scalar=photons['order'], viewer=fig)
arcus.arcus.plot(format="mayavi", viewer=fig)

theta, phi = np.mgrid[-0.2 + np.pi:0.2 + np.pi:60j, -1:1:60j]
arcus.rowland.plot(theta=theta, phi=phi, viewer=fig, format='mayavi')


photonsm = mysource.generate_photons(n_photons)
photonsm = mypointing(photonsm)
Exemplo n.º 5
0
star = source.PointSource(coords=SkyCoord(30., 30., unit='deg'),
                          energy=1.,
                          flux=1.)
pointing = source.FixedPointing(coords=SkyCoord(30., 30., unit='deg'))
photons = star.generate_photons(100)
photons = pointing(photons)
photons = instrum(photons)
ind = (photons['probability'] > 0) & (photons['facet'] >= 0)
posdat = pos.format_positions()[ind, :, :]

fig = mlab.figure(bgcolor=(1, 1, 1))
obj = plot_object(instrum, viewer=fig)
rays = plot_rays(posdat,
                 scalar=photons['colorid'][ind],
                 kwargssurface={
                     'opacity': .5,
                     'line_width': 1,
                     'colormap': 'blue-red'
                 })

mlab.view(45, 54, 15000, [7200., -400, -900])
rowland.display['coo2'] = np.linspace(-.2, .2, 60)
obj = plot_object(rowland, viewer=fig)

mlab.savefig('../subaper3d.png')
mlab.savefig('../web/subaper.x3d')

photons = star.generate_photons(4000)
photons = pointing(photons)
photons = instrum(photons)
ind = (photons['probability'] > 0) & (photons['facet'] >= 0)
Exemplo n.º 6
0
# display is usually set for all objects of a class.
# To change only one mirror, make a copy of this dictionary first.
m2.display = copy(m2.display)
m2.display['color'] = 'blue'
det = FlatDetector(position=[50, 0, 2e2], zoom=[1., 20., 20.])

# Make an object that keeps the photon position after every simulation step
# for later plotting of photon paths.
pos = KeepCol('pos')
experiment = Sequence(elements=[m1, m2, det], postprocess_steps=[pos])
from mayavi import mlab
from marxs.visualization.mayavi import plot_object, plot_rays
fig = mlab.figure()
for i, angle in enumerate(np.arange(0, .5, .15) * np.pi):
    rotmat = np.eye(4)
    rotmat[:3, :3] = euler.euler2mat(angle, 0, 0, 'szxy')
    light.position = np.dot(rotmat, light_pos)
    light.dir = np.dot(rotmat, light_dir)
    m1.pos4d = np.dot(rotmat, m1pos4d)
    rays = light(100)
    pos.data = []
    pos(rays)
    rays = experiment(rays)
    # Now do the plotting
    obj = plot_object(experiment, viewer=fig)
    rout = plot_rays(pos.format_positions())

mlab.view(-60, 140., 525, [70., 60., 60.], roll=250)
mlab.savefig('../3dpol.pdf')
mlab.savefig('../web/3dpol.x3d')