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)
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)
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)
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
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())
def getGradient(self, position): print 'bar' return radiopropa.Vector3d(np.cos(position.x), 0, 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)
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)
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()
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)