import volume import sys import os from mod_python import apache def generateRayTrace(req): form_values = req.form req.content_type="text/html" sys.stdout=req antennaDepthFound=False startAngleFound=False endAngleFound=False angleStepFound=False highFreqFound=False lowFreqFound=False showerEnergyFound=False thermalFloorFound=False # default to not displaying rays that exit the firn showFirnExit=False objs = form_values.list for obj in objs: if(obj.name=="antennaDepth"): antennaDepthFound=True antennaDepth = float(obj.value) elif(obj.name=="startAngle"): startAngleFound=True startAngle=float(obj.value) elif(obj.name=="endAngle"): endAngleFound=True endAngle=float(obj.value) elif(obj.name=="angleStep"): angleStepFound=True angleStep=float(obj.value) elif(obj.name=="showerEnergy"): showerEnergyFound=True showerEnergy=float(obj.value) elif(obj.name=="thermalFloor"): thermalFloorFound=True thermalFloor=float(obj.value) elif(obj.name=="lowFreq"): lowFreqFound=True lowFreq=float(obj.value) elif(obj.name=="highFreq"): highFreqFound=True highFreq=float(obj.value) else: print "Bad or incorrect field in the html form that called this method '%s'" % obj.name return apache.OK if(not antennaDepthFound or not startAngleFound or not endAngleFound or not angleStepFound or not thermalFloorFound or not highFreqFound or not lowFreqFound or not showerEnergyFound): print "Error required variable not set by the html form that called this method" return apache.OK print "
"
    print "Found all required variables in this form!"

    print "Antenna Depth: %f" % antennaDepth
    print "Start Angle: %f" % startAngle
    print "End Angle: %f" % endAngle
    print "Angle Step: %f" % angleStep
    print "Shower Energy: %f" % showerEnergy
    print "Thermal Noise Floor: %f" % thermalFloor
    print "high freq: %f" % highFreq
    print "low freq: %f" % lowFreq
    
    if(startAngle" % (baseDir, baseDir)
    
    
def generateRayTraceForm(req):
    form_values=req.form
    req.content_type="text/html"

    defaultAntennaDepth = 1500.0
    defaultStartAngle = 180.0
    defaultEndAngle = 0.0
    defaultAngleStep = 10.0
    defaultAttenuationCutoff = 0.005
    defaultThermalNoiseFloor = 100.0
    defaultShowerEnergy=17.0
    defaultLowFreq = 150.0
    defaultHighFreq = 1000.0
    
    # print will work after this line
    sys.stdout=req

    print ""
    print ""
    print ""
    print ""
    print "Ray Trace - Version A"
    print ""

    print "

Version A - Web based ray tracing

" print """
2800) { alert('The antenna depth must be between 2 and 2800 meters!'); return false; }; if(Number(this.startAngle.value)==NaN){ alert('You have to enter a floating point number in the starting angle field!'); return false; }; if(Number(this.endAngle.value)==NaN){ alert('You have to enter a floating point number in the ending angle field!'); return false; }; if(Number(this.angleStep.value)==NaN){ alert('You have to enter a floating point number in the angle step size'); return false; }; if(Number(this.antennaDepth)<0 || Number(this.anntennaDepth)>2800.0){ alert('The antenna must be between a depth of 0 and 2800 meters!'); return false; }; if(Number(this.startAngle.value)<0 || Number(this.startAngle.value)>180){ alert('The starting angle must be between 0 and 180 degrees!'); return false; }; if(Number(this.endAngle.value)<0 || Number(this.startAngle.value)>180){ alert('The ending angle must be between 0 and 180 degrees!'); return false; }; if(Number(this.startAngle.value)21) { alert('The shower energy must be a number >=15 and <=21'); return false; }; if(Number(this.thermalFloor.value)==NaN || Number(this.thermalFloor.value)<20 || Number(this.thermalFloor.value)>2000) { alert('The thermal noise floor must be a number >=20 and <=2000'); return false; }; if(Number(this.highFreq.value)==NaN || Number(this.highFreq.value)<30 || Number(this.highFreq.value)>2000) { alert('The high frequency must be >=30 MHz and <=2000MHz'); return false; }; if(Number(this.lowFreq.value)==NaN || Number(this.lowFreq.value)<30 || Number(this.lowFreq.value)>2000) { alert('The low frequency must be >=30 MHz and <=2000MHz'); return false; }; if(Number(this.lowFreq.value)>Number(this.highFreq.value)) { alert('The low frequency must be less than the high frequency'); return false; }; \">""" print "Antenna Depth:
" % defaultAntennaDepth print "Starting Angle:
" % defaultStartAngle print "Ending Angle:
" % defaultEndAngle print "Angle StepSize:
" % defaultAngleStep print "Thermal Noise Floor (µV/Meter):
" % defaultThermalNoiseFloor print "Shower Energy ( Log 10 eV ):
" % defaultShowerEnergy print "High Frequency ( MHz ):
" % defaultHighFreq print "Low Frequency ( MHz ):
" % defaultLowFreq print "
" print "" print "Please be warned this is beta software. Yes, it is very verbose, you may find a lot of debugging information. It will be better with feedback. Write mnewcomb AT wisc.edu" print ""