|
|
import os,os.path,sys
|
|
|
import traceback
|
|
|
|
|
|
"""testMadrigalBuild.py verifies whether Madrigal has been successfully built
|
|
|
|
|
|
Usage: python testMadrigalBuild.py [MADROOT]
|
|
|
|
|
|
If optional argument MADROOT given, search there for test Madrigal file to plot
|
|
|
|
|
|
$Id: testMadrigalBuild.py 3304 2011-01-17 15:25:59Z brideout $
|
|
|
"""
|
|
|
|
|
|
print """This script will attempt to plot some Madrigal test data.
|
|
|
If you see a Pcolor plot that shows electron density versus
|
|
|
altitude, the script succeeded. Close the display window
|
|
|
when you're done examining it. This may take a few minutes.\n"""
|
|
|
|
|
|
import warnings
|
|
|
warnings.filterwarnings('ignore', '.*', UserWarning)
|
|
|
|
|
|
try:
|
|
|
import numpy
|
|
|
import matplotlib.pylab
|
|
|
import madrigal
|
|
|
import madrigal._Madrec
|
|
|
import madrigal.ui.madrigalPlot
|
|
|
|
|
|
except:
|
|
|
traceback.print_exc()
|
|
|
print 'FAILURE: REQUIRED MADRIGAL MODULES NOT INSTALLED'
|
|
|
sys.exit(-1)
|
|
|
|
|
|
|
|
|
if len(sys.argv) > 2:
|
|
|
print 'FAILURE: Illegal usage %s' % (str(sys.argv))
|
|
|
sys.exit(-1)
|
|
|
|
|
|
if len(sys.argv) == 2:
|
|
|
madrootDir = sys.argv[1]
|
|
|
if not os.access(os.path.join(madrootDir, 'experiments'), os.R_OK):
|
|
|
print 'FAILURE: No experiments directory found in %s' % (madrootDir)
|
|
|
sys.exit(-1)
|
|
|
else:
|
|
|
madDB = madrigal.metadata.MadrigalDB()
|
|
|
madrootDir = madDB.getMadroot()
|
|
|
|
|
|
# get filename to read
|
|
|
filename = os.path.join(madrootDir, 'experiments/1998/mlh/20jan98/mil980120g.003')
|
|
|
if not os.access(filename, os.R_OK):
|
|
|
filename = os.path.join(madrootDir, 'experiments/1998/mlh/20jan98/mlh980120g.001')
|
|
|
if not os.access(filename, os.R_OK):
|
|
|
print 'FAILURE: Unable to find basic Madrigal test files installed in experiments/1998/mlh/20jan98'
|
|
|
sys.exit(-1)
|
|
|
|
|
|
# check that tmpfile can be created
|
|
|
if not os.access('/tmp/', os.W_OK):
|
|
|
print 'FAILURE: test cannot write to /tmp directory'
|
|
|
sys.exit(-1)
|
|
|
tmpfile = '/tmp/isprintTest.txt'
|
|
|
tmpplot = '/tmp/isprint.png'
|
|
|
|
|
|
try:
|
|
|
madrigal._Madrec.getIsprintReport(filename,
|
|
|
'',
|
|
|
['uth','gdalt','nel'],
|
|
|
['1'],
|
|
|
['uth'],
|
|
|
[None],
|
|
|
[1],
|
|
|
[0.0],
|
|
|
[24.0],
|
|
|
0,
|
|
|
0,
|
|
|
0,
|
|
|
'missing',
|
|
|
'assumed',
|
|
|
'knownBad',
|
|
|
tmpfile)
|
|
|
except:
|
|
|
traceback.print_exc()
|
|
|
print 'FAILURE: isprint failed'
|
|
|
sys.exit(-1)
|
|
|
|
|
|
# read isprint string
|
|
|
f = open(tmpfile)
|
|
|
isprintText = f.read()
|
|
|
f.close()
|
|
|
os.remove(tmpfile)
|
|
|
|
|
|
# produce pcolor plot
|
|
|
try:
|
|
|
madrigal.ui.madrigalPlot.madPcolorPlot(isprintText,
|
|
|
'Nel (log(m^-3)) - Millstone Hill - Test day Jan 20, 1998\nClose this Window if okay',
|
|
|
'Hours since midnight UT Jan 20, 1998',
|
|
|
'Altitude (km)',
|
|
|
tmpplot,
|
|
|
size = 'large',
|
|
|
minColormap = 9,
|
|
|
maxColormap = 12)
|
|
|
except:
|
|
|
traceback.print_exc()
|
|
|
print 'FAILURE: plotting failed'
|
|
|
sys.exit(-1)
|
|
|
|
|
|
os.system('display %s' % (tmpplot))
|
|
|
|
|
|
os.remove(tmpplot)
|
|
|
|
|
|
print 'SUCCESS - Madrigal build completed successfully'
|
|
|
|
|
|
|
|
|
|