pro calcdata, file_in, ndata, a, maxv, $
z_low, z_high, a_low, a_high, d_low, d_high, new_n
; Bo Milvang-Jensen, May 21, 1994.
if n_params() eq (0) then begin
print
print, 'Procedure calcdata'
print
print, 'Usage:'
print, 'calcdata, file_in, ndata, a, maxv, $'
print, ' z_low, z_high, a_low, a_high, d_low, d_high, new_n'
print
print, 'Description:'
print, 'This procedure converts an ascii data file, with alpha, delta, and'
print, 'redshift, to cartesian coordinates, stored in the array a'
print
print, 'file_in : name of data ascii input file with alpha, delta, redshift'
print, 'file_in: name of data ascii file with alpha, delta, redshift'
print, 'ndata : number of datapoint in file_in'
print, 'a : array which returns catesian coordinates'
print, 'mav : array which return maximum absolute values in x, y and z'
print, 'z_low : minimum redshift value'
print, 'z_high : maximum redshift value'
print, 'a_low : minimum alpha value'
print, 'a_high : maximum alpha value'
print, 'd_low : mimimum delta value'
print, 'd_high : maximum delta value'
print, 'new_n : number of data points left'
print
return
end
diam = 1. ; ball diameter
a=fltarr(3,ndata)
openr, lun, file_in, /GET_LUN
readf, lun, a
close, lun
free_lun, lun
a=shift(a,1,0) ; before: alpha, delta, redshift
; after : redshift, alpha, delta
b=reform(a,ndata,3) ; transpose
b(*,0) = a(0,*)
b(*,1) = a(1,*)
b(*,2) = a(2,*)
a=b
c = where(a(*,0) gt z_low, ndata2)
if ndata2 ne 0 then begin
d = a(c,*)
a = d
print, 'z low cut: ','before = ', ndata, ' after = ', ndata2
endif
ndata = ndata2
c = where(a(*,0) lt z_high, ndata2)
if ndata2 ne 0 then begin
d = a(c,*)
a = d
print, 'z high cut: ','before = ', ndata, ' after = ', ndata2
endif
ndata = ndata2
c = where(a(*,1) gt a_low, ndata2)
if ndata2 ne 0 then begin
d = a(c,*)
a = d
print, 'alpha low cut: ','before = ', ndata, ' after = ', ndata2
endif
ndata = ndata2
c = where(a(*,1) lt a_high, ndata2)
if ndata2 ne 0 then begin
d = a(c,*)
a = d
print, 'alpha high cut: ','before = ', ndata, ' after = ', ndata2
endif
ndata = ndata2
c = where(a(*,2) gt d_low, ndata2)
if ndata2 ne 0 then begin
d = a(c,*)
a = d
print, 'delta low cut: ','before = ', ndata, ' after = ', ndata2
endif
ndata = ndata2
c = where(a(*,2) lt d_high, ndata2)
if ndata2 ne 0 then begin
d = a(c,*)
a = d
print, 'delta high cut: ','before = ', ndata, ' after = ', ndata2
endif
ndata = ndata2
; NO scaling of redshift!!!
a(*,1) = (a(*,1)/180)*!pi ; conversion to radians
a(*,2) = (a(*,2)/180)*!pi ; conversion to radians
a=new_pol_to_cart(a) ; conversion to cartesian coordinates
maxv=fltarr(3)
maxv(0)=max(abs(a(*,0)),min=minx)
maxv(1)=max(abs(a(*,1)),min=miny)
maxv(2)=max(abs(a(*,2)),min=minz)
print
print, 'Maximum absolute values (maxv) are: ' ,maxv
new_n = ndata2
print, 'Number of data points left (new_n) = ', new_n
end