from Nbody import *
import RandomArray
'''
display the map (sigma vz)/(sigma vr)
'''
filter_name = 'convol'
filter_opts = [10,10,3,3]
view = 'xz'
shape = (256,256)
size = (30,30)
frsp = 0
mn = 0.2
mx = 0.4
scale = 'lin'
palette = 'rainbow4'
nb = Nbody('disk.dat')
# rotate the model
nb.rotate(axis='x',angle=pi/2.)
# compute the matrix for svz
# moment 0
m0 = nb.getmap(shape=shape,size=size,view=view,mode='m',frsp=frsp)
# moment 1 in vz
m1 = nb.getmap(shape=shape,size=size,view=view,mode='vz',frsp=frsp)
# moment 2 in vz
m2 = nb.getmap(shape=shape,size=size,view=view,mode='vz2',frsp=frsp)
# filter moments
m0 = apply_filter(m0,name=filter_name,opt=filter_opts)
m1 = apply_filter(m1,name=filter_name,opt=filter_opts)
m2 = apply_filter(m2,name=filter_name,opt=filter_opts)
# extract dispersion sz = m2/m0 - (m1/m0)^2
mat = where(m0==0,0,m2/m0) - (where(m0==0,0,m1/m0))**2
mat_sz = sqrt(clip(mat,0,1e10))
# compute the matrix for svr
# moment 0
m0 = nb.getmap(shape=shape,size=size,view=view,mode='m',frsp=frsp)
# moment 1 in vr
m1 = nb.getmap(shape=shape,size=size,view=view,mode='vxyr',frsp=frsp)
# moment 2 in vr
m2 = nb.getmap(shape=shape,size=size,view=view,mode='vxyr2',frsp=frsp)
# filter moments
m0 = apply_filter(m0,name=filter_name,opt=filter_opts)
m1 = apply_filter(m1,name=filter_name,opt=filter_opts)
m2 = apply_filter(m2,name=filter_name,opt=filter_opts)
# extract dispersion sr = m2/m0 - (m1/m0)^2
mat = where(m0==0,0,m2/m0) - (where(m0==0,0,m1/m0))**2
mat_sr = sqrt(clip(mat,0,1e10))
# divide both matrix
mat = where(mat_sr==0,0,mat_sz/mat_sr)
# set ranges
matint,mn,mx,cd = set_ranges(mat,scale=scale,mn=mn,mx=mx)
# create an image
image = get_image(matint,name=None,palette_name=palette)
# display
display(image)
See About this document... for information on suggesting changes.