Page MenuHomec4science

gsystem
No OneTemporary

File Metadata

Created
Sun, Oct 6, 05:06
#!/usr/bin/env python
'''
Extract and plot system values contained in the
output Gadget file called by default "system.txt".
Yves Revaz
Mon Jul 25 11:35:47 CEST 2005
'''
import sys
from numarray import *
import SM
from Nbody import *
try:
from optparse import OptionParser
except ImportError:
from optik import OptionParser
def parse_options():
usage = "usage: %prog [options] file"
parser = OptionParser(usage=usage)
# parser.add_option("-l", "--label",
# action="store_true",
# dest="label",
# default=0,
# help="display the movie")
parser.add_option("--minx",
action="store",
dest="mnx",
default=None,
help="min value in x")
parser.add_option("--maxx",
action="store",
dest="mxx",
default=None,
help="max value in x")
parser.add_option("--miny",
action="store",
dest="mny",
default=None,
help="min value in y")
parser.add_option("--maxy",
action="store",
dest="mxy",
default=None,
help="max value in y")
parser.add_option("-p",
action="store",
dest="ps",
type="string",
default = None,
help="postscript filename",
metavar=" FILE")
parser.add_option("-o",
action="store",
dest="obs",
type="string",
default = 'mom',
help="observable name",
metavar=" NAME")
parser.add_option("--relative",
action="store_true",
dest="relative",
default = 0,
help="plot relative value")
parser.add_option("-c",
action="store",
dest="colors",
type="string",
default = None,
help="colors",
metavar=" 0,64,192")
(options, args) = parser.parse_args()
if options.colors!=None:
exec("options.colors = array([%s])"%(options.colors))
if len(args) == 0:
print "you must specify a filename"
sys.exit(0)
files = args
return files,options
#############################
# dic of observables
#############################
iobs = {'tnow':0,
'momx':1,
'momy':2,
'momz':3,
'mom':4,
'lx':5,
'ly':6,
'lz':7,
'l':8,
'cmx':9,
'cmy':10,
'cmz':11,
'cm':12}
#############################
# graph
#############################
# get options
files,options = parse_options()
ps = options.ps
mnx = options.mnx
mxx = options.mxx
mny = options.mny
mxy = options.mxy
obs = options.obs
rel = options.relative
col = options.colors
# open sm
if ps==None:
g = SM.plot("x11 -bg white -fg black ")
else:
g = SM.plot("postencap %s"%ps)
# some init
g.palette('bgyrw')
g.expand(0.999)
# set colors
colors = {}
i = 0
for file in files:
if col!=None:
colors[file]=col[i]
else:
colors[file] = i*255/len(files)
i = i + 1
# read file
for file in files:
t,x=g.read(file,[0,iobs[obs]])
if rel:
x = 100*(fabs(x-x[0]))/x[0]
if file == files[0]:
# set limits
if mnx==None:
mnx = min(t)
if mxx==None:
mxx = max(t)
if mny==None:
mny = min(x)
if mxy==None:
mxy = max(x)
g.limits(mnx,mxx,mny,mxy)
g.box()
# draw line
g.ctype(colors[file])
g.connect(t,x)
# labels
g.ctype(0)
g.xlabel('T')
g.ylabel('%s'%obs)
# -- end ---
if ps==None:
g.show()
else:
g.write()
g.clean()

Event Timeline