Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F100640131
gorbit
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Feb 1, 10:05
Size
2 KB
Mime Type
text/x-python
Expires
Mon, Feb 3, 10:05 (2 d)
Engine
blob
Format
Raw Data
Handle
24004881
Attached To
rGTOOLS Gtools
gorbit
View Options
#!/home/revaz/local/bin/python
'''
Extract orbit from
a set of nbody files.
default file extension = .orb
Yves Revaz
mar jui 11 15:54:41 CEST 2006
'''
import sys,os
from numarray import *
import SM
from Nbody import *
from Nbody import io
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("-t",
action="store",
dest="ftype",
type="string",
default = 'gadget',
help="file type",
metavar=" FTYPE")
parser.add_option("-n",
action="store",
dest="number",
type="int",
default = 0,
help="particle number",
metavar=" INT")
parser.add_option("--numfile",
action="store",
dest="numfile",
type="string",
default = None,
help="file of particle number",
metavar=" FILE")
(options, args) = parser.parse_args()
return args,options
##########################################################
#
# MAIN
#
#########################################################
# get options
files,options = parse_options()
ftype = options.ftype
number = options.number
numfile = options.numfile
#############################
# read numfile if it exists
#############################
if numfile != None:
numbers = io.read_ascii(numfile,[0])
numbers = numbers[0].astype(Int)
else:
numbers = array([number],Int)
#############################
# open output files
#############################
fs = []
ofiles = []
for number in numbers:
ofile = "%08d.orb"%(number)
#f = open(ofile,'w')
#fs.append(f)
if os.path.exists(ofile):
os.remove(ofile)
ofiles.append(ofile)
#############################
# loops
#############################
for file in files:
nb = Nbody(file,ftype=ftype)
nb = nb.selectp(numbers)
i=0
for number in numbers:
index = argmax(nb.num==number)
x = nb.pos[index,0]
y = nb.pos[index,1]
z = nb.pos[index,2]
vx = nb.vel[index,0]
vy = nb.vel[index,1]
vz = nb.vel[index,2]
print "%s, %10.5f %10.5f %10.5f %10.5f %10.5f %10.5f %10.5f"%(os.path.basename(file),x,y,z,vx,vy,vz,nb.tnow)
#fs[i].write('%10.5f %10.5f %10.5f %10.5f %10.5f %10.5f %10.5f\n'%(x,y,z,vx,vy,vz,nb.tnow))
#fs[i].flush()
f = open(ofiles[i],'a')
f.write('%10.5f %10.5f %10.5f %10.5f %10.5f %10.5f %10.5f\n'%(x,y,z,vx,vy,vz,nb.tnow))
f.close()
i = i + 1
#############################
# close output files
#############################
#for f in fs:
# f.close()
Event Timeline
Log In to Comment