Ejemplo n.º 1
0
import radiopropa
import numpy as np

iceModel = radiopropa.GorhamIceModel()

if __name__ == "__main__":
    # simulation setup
    sim = radiopropa.ModuleList()
    sim.add(radiopropa.PropagationCK(iceModel, 1E-8, .001, 1.))

    # Observer to stop imulation at =0m and z=300m
    obs = radiopropa.Observer()
    obsz = radiopropa.ObserverSurface(
        radiopropa.Plane(radiopropa.Vector3d(0, 0, 0),
                         radiopropa.Vector3d(0, 0, 1)))
    obs.add(obsz)
    obs.setDeactivateOnDetection(True)
    sim.add(obs)

    obs2 = radiopropa.Observer()
    obsz2 = radiopropa.ObserverSurface(
        radiopropa.Plane(radiopropa.Vector3d(0, 0, -300),
                         radiopropa.Vector3d(0, 0, 1)))
    obs.add(obsz2)
    obs2.setDeactivateOnDetection(True)
    sim.add(obs2)

    # Output
    output = radiopropa.HDF5Output('output_traj.h5',
                                   radiopropa.Output.Trajectory3D)
    output.setLengthScale(radiopropa.meter)
Ejemplo n.º 2
0
    sim.add(obs)

    obs2 = radiopropa.Observer()
    obsz2 = ObserverZ(-300.0)
    obs.add(obsz2)
    obs2.setDeactivateOnDetection(True)
    sim.add(obs2)

    # Output
    output = radiopropa.HDF5Output('output_traj.h5',
                                   radiopropa.Output.Trajectory3D)
    output.setLengthScale(radiopropa.meter)
    output.enable(radiopropa.Output.SerialNumberColumn)
    sim.add(output)

    # Source
    source = radiopropa.Source()
    source.add(radiopropa.SourcePosition(radiopropa.Vector3d(0, 0, -240.)))
    source.add(radiopropa.SourceParticleType(radiopropa.nucleusId(1, 1)))
    source.add(radiopropa.SourceAmplitude(1))
    source.add(radiopropa.SourceFrequency(1E6))

    #Start rays from 0 - 90 deg
    for phi in np.linspace(0, 90):
        z = np.cos(phi * radiopropa.deg)
        x = np.sin(phi * radiopropa.deg)
        print('Ray Direction {} deg = ({}, 0, {})'.format(phi, x, z))
        source.add(radiopropa.SourceDirection(radiopropa.Vector3d(x, 0, z)))
        sim.setShowProgress(True)
        sim.run(source, 1)
Ejemplo n.º 3
0
import radiopropa

n0 = 2.
a = 1.
iceModel = radiopropa.n2linear(n0, a)

if __name__ == "__main__":
    sim = radiopropa.ModuleList()
    sim.add(radiopropa.PropagationCK(iceModel, 1E-8, .001, .01))

    output = radiopropa.HDF5Output('output_traj.h5',
                                   radiopropa.Output.Trajectory3D)
    output.setLengthScale(radiopropa.meter)
    sim.add(output)

    source = radiopropa.Source()
    source.add(radiopropa.SourcePosition(radiopropa.Vector3d(0, 0, 0.)))
    source.add(radiopropa.SourceParticleType(radiopropa.nucleusId(1, 1)))
    source.add(radiopropa.SourceAmplitude(1))
    source.add(radiopropa.SourceFrequency(1E6))

    sim.add(radiopropa.MaximumTrajectoryLength(100 * radiopropa.meter))

    sim.setShowProgress(True)
    source.add(radiopropa.SourceDirection(radiopropa.Vector3d(1., 0, 1.)))
    sim.run(source, 1)
Ejemplo n.º 4
0
            V = candidate.current.getDirection()
            u = self.__normal * (V.dot(self.__normal))
            candidate.current.setDirection(V - 2 * u)


# simulation setup
sim = radiopropa.ModuleList()
sim.add(
    radiopropa.SimplePropagation(1 * radiopropa.meter, 100 * radiopropa.meter))

#obs = radiopropa.Observer()
#obs.add(ObserverPlane(np.asarray([0.,0., 3. * kilo*radiopropa.meter]),np.asarray([10.,0, 0]), np.asarray([0,10., 0])))

obs = radiopropa.Observer()
obs.add(
    radiopropa.ObserverLargeSphere(radiopropa.Vector3d(0, 0, 0),
                                   99 * radiopropa.meter))
output = radiopropa.HDF5Output('output.h5', radiopropa.Output.Event3D)
output.enableProperty('frequency', 0., 'Frequency for RadioPropa')

obs.onDetection(output)
#obs.setDeactivateOnDetection(True)
sim.add(obs)

source = radiopropa.Source()

source.add(radiopropa.SourcePosition(radiopropa.Vector3d(0, 0, 0)))
source.add(radiopropa.SourceParticleType(radiopropa.nucleusId(1, 1)))
source.add(radiopropa.SourceAmplitude(1))
source.add(radiopropa.SourceIsotropicEmission())
# Not constructiong this outside the add method will cause segfault
Ejemplo n.º 5
0
import radiopropa
import numpy as np
#from ObserverPlane import ObserverPlane

# simulation setup
sim = radiopropa.ModuleList()

field = radiopropa.LinearIncrease(1E9, radiopropa.Vector3d(0, 0, -1))
sim.add(radiopropa.PropagationCK(field, 1E-20, .0001, 1.))

#obs = radiopropa.Observer()
#obs.add(ObserverPlane(np.asarray([0.,0., 3. * kilo*radiopropa.meter]),np.asarray([10.,0, 0]), np.asarray([0,10., 0])))

#obs = radiopropa.Observer()
#obs.add(radiopropa.ObserverLargeSphere(radiopropa.Vector3d(0,0,0), 99*radiopropa.meter))
output = radiopropa.HDF5Output('output_traj.h5',
                               radiopropa.Output.Trajectory3D)
output.setLengthScale(radiopropa.meter)
#output.enableProperty('frequency', 0., 'Frequency for RadioPropa')

#obs.onDetection(output)
#obs.setDeactivateOnDetection(True)
sim.add(output)

source = radiopropa.Source()

source.add(radiopropa.SourcePosition(radiopropa.Vector3d(0, 0, 0)))
source.add(radiopropa.SourceParticleType(radiopropa.nucleusId(1, 1)))
source.add(radiopropa.SourceAmplitude(1))

#source.add(radiopropa.SourceIsotropicEmission())
Ejemplo n.º 6
0
 def getGradient(self, position):
     print 'bar'
     return radiopropa.Vector3d(np.cos(position.x), 0, 0)
Ejemplo n.º 7
0
#obs = radiopropa.Observer()
#obs.add(ObserverPlane(np.asarray([0.,0., 3. * kilo*radiopropa.meter]),np.asarray([10.,0, 0]), np.asarray([0,10., 0])))

#obs = radiopropa.Observer()
#obs.add(radiopropa.ObserverLargeSphere(radiopropa.Vector3d(0,0,0), 99*radiopropa.meter))
output = radiopropa.HDF5Output('output_traj.h5', radiopropa.Output.Trajectory3D)
#output.enableProperty('frequency', 0., 'Frequency for RadioPropa')

#obs.onDetection(output)
#obs.setDeactivateOnDetection(True)
sim.add(output)

source = radiopropa.Source()

source.add(radiopropa.SourcePosition(radiopropa.Vector3d(0, 0, 0)))
source.add(radiopropa.SourceParticleType(radiopropa.nucleusId(1, 1)))
source.add(radiopropa.SourceAmplitude(1))


#source.add(radiopropa.SourceIsotropicEmission())
source.add(radiopropa.SourceDirection(radiopropa.Vector3d(.3,0,1)))


# Not constructiong this outside the add method will cause segfault
source.add(radiopropa.SourceFrequency(1E6))

#Two transmissive layers at +/- 10 m
L1 = TransmissiveLayer(radiopropa.Vector3d(0,0,5),radiopropa.Vector3d(1,0,0),radiopropa.Vector3d(0,1,0), .2)
L2 = TransmissiveLayer(radiopropa.Vector3d(0,0,-5),radiopropa.Vector3d(1,0,0),radiopropa.Vector3d(0,1,0), .2)
Ejemplo n.º 8
0
import h5py
import radiopropa

#from Ice import iceModel

#Plot Ice model
z = linspace(-300, 0)

n = zeros_like(z)
dn = zeros_like(z)

position = radiopropa.Vector3d(0, 0, 0)

#for i,vz in enumerate(z):
#    position.z = vz
#    n[i] = iceModel.getValue(position)
#    dn[i] = iceModel.getGradient(position).z
#
#
#figure()
#plot(n, z)
#xlabel('Index of Refracton')
#ylabel('Z [m]')

# plot simulated data
f = h5py.File('output_traj.h5')
d = f['Trajectory3D']

figure()
s1 = subplot(111)
Ejemplo n.º 9
0
import radiopropa
import numpy as np

#Setup a simulation with source and observer in vacuum, layer with humid atmosphere above

#use implemented cloud model
cloud_h = 1000
#atmosphere as propagation medium with clouds from 1000 to 1500 m, weather at the ground: 300 Kelvin, 1000 mbar, 5% humidity
atmModel = radiopropa.CloudModel_atm(cloud_h, 1500, 300, 1000, 0.05)
n_clouds = atmModel.getValue(radiopropa.Vector3d(0, 0, cloud_h + 0.01))
n_air = atmModel.getValue(radiopropa.Vector3d(0, 0, cloud_h - 0.01))
airBoundary = radiopropa.Discontinuity(
    radiopropa.Plane(radiopropa.Vector3d(0, 0, cloud_h),
                     radiopropa.Vector3d(0, 0, 1)), n_air,
    n_clouds)  #air topped with clouds

if __name__ == "__main__":
    #simulation setup
    sim = radiopropa.ModuleList()
    sim.add(radiopropa.PropagationCK(atmModel, 1e-5, 0.1, 10))

    #create telescope as spherical observer
    obs = radiopropa.Observer()
    obs_surface = radiopropa.ObserverSurface(
        radiopropa.Sphere(radiopropa.Vector3d(17600, 0, 0), 100))
    obs.add(obs_surface)
    obs.setDeactivateOnDetection(True)
    sim.add(obs)

    #cut off all rays going into earth, too high and behind detector
    end_planes = radiopropa.Observer()
Ejemplo n.º 10
0
import radiopropa
import numpy as np

iceModel = radiopropa.GorhamIceModel(z0=-10.)
airBoundary = radiopropa.Discontinuity(
    radiopropa.Plane(radiopropa.Vector3d(0, 0, 0),
                     radiopropa.Vector3d(0, 0, 1)), 1.5, 1.)
firnLayer = radiopropa.Discontinuity(
    radiopropa.Plane(radiopropa.Vector3d(0, 0, -10.),
                     radiopropa.Vector3d(0, 0, 1)),
    iceModel.getValue(radiopropa.Vector3d(0, 0, -10.001)), 1.5)

if __name__ == "__main__":
    # simulation setup
    sim = radiopropa.ModuleList()
    sim.add(radiopropa.PropagationCK(iceModel, 1E-8, .001, 1.))

    sim.add(airBoundary)
    sim.add(firnLayer)

    sim.add(radiopropa.MinimumAmplitude(.05))
    sim.add(radiopropa.MaximumTrajectoryLength(1500 * radiopropa.meter))

    # Observer to stop imulation at = 30m and z=300m
    obs = radiopropa.Observer()
    obsz = radiopropa.ObserverSurface(
        radiopropa.Plane(radiopropa.Vector3d(0, 0, 30),
                         radiopropa.Vector3d(0, 0, 1)))
    obs.add(obsz)
    obs.setDeactivateOnDetection(True)
    sim.add(obs)