Page MenuHomec4science

splitgmov
No OneTemporary

File Metadata

Created
Fri, Feb 7, 13:38

splitgmov

#!/usr/bin/env python
import sys
import os
import getopt
from pNbody import Movie
from numpy import *
####################################################################################
def version():
####################################################################################
print 'version 1.0'
sys.exit(0)
####################################################################################
def help_message():
####################################################################################
print '''Usage : splitgmov -f input --nh=nh --nv=nv
Options: -h -- this help message
-f -- input movie
--nh -- number of horizontal images
--nv -- number of vertical images
--help -- this help message
--version -- displays version
'''
sys.exit(0)
####################################################################################
def check_arguments(options,xarguments):
####################################################################################
nh = 1
nv = 1
output = None
for a in options[:]:
if a[0] == '-h':
help_message()
if a[0] == '--help':
help_message()
if a[0] == '--version':
version()
if a[0] == '--info':
info = 1
if a[0] == '--nh':
if a[1] == '':
help_message()
else:
nh = a[1]
continue
if a[0] == '--nv':
if a[1] == '':
help_message()
else:
nv = a[1]
continue
if a[0] == '-f':
if a[1] == '':
help_message()
else:
output = a[1]
continue
if output == None:
help_message()
return nh, nv, output
####################################################################################
#
# MAIN
#
####################################################################################
try:
options, xarguments = getopt.getopt(sys.argv[1:],'f:h', ['info','help','version','nh=','nv='])
except getopt.error:
help_message()
sys.exit(0)
# check arguments
nh, nv, name = check_arguments(options,xarguments)
nh = int(nh)
nv = int(nv)
bname = os.path.split(os.path.splitext(name)[0])[1]
ext = os.path.splitext(name)[1]
film = Movie.Movie(name)
film.open()
n1 = nh # horizontal
n2 = nv # vertical
nmov = n1*n2
nh = film.numByte / n1 # sub movie horiz
nv = film.numLine / n2 # sub movie vert
#print film.numByte,n1,nh
#print film.numLine,n2,nv
dd = []
for i in range(1,n1+1):
for j in range(1,n2+1):
dd.append((i,j))
newfilms = []
for n in range(nmov):
dx,dy = dd[n]
newfilms.append(Movie.Movie('%s_%d%d%s'%(bname,dx,dy,ext)))
newfilms[n].new(nh,nv)
n = -1
while 1:
n = n + 1
mat = film.read_one("array")
if mat==None: break
print film.current_time
# sous image
for n in range(nmov):
dx,dy = dd[n]
smat = mat[nv*(dy-1):nv+(nv*(dy-1)),nh*(dx-1):nh+(nh*(dx-1))]
data = smat.tostring()
newfilms[n].write_pic(film.current_time,data)

Event Timeline