pro galcount, file_in, f_outpre, ndata, n_box,$ z_low, z_high, a_low, a_high, d_low, d_high ; Bo Milvang-Jensen, May 20, 1994. if n_params() eq (0) then begin print print, 'Procedure galcount' print print, 'Description:' print, 'This procedure counts the number of galaxies (datapoints) in a box' print, 'which encompasses the data, and which is of size n_box**3' print, 'The output is suitable for an Explorer isosurface' print print, 'Usage:' print, 'galcount, file_in, f_outpre, ndata, n_box,$ print, ' z_low, z_high, a_low, a_high, d_low, d_high print print, 'file_in : name of data ascii input file with alpha, delta, redshift' print, 'f_outpre: prefix of output files -' print, ' binary output file will get suffix .dat' print, ' header output file will get suffix .idl' print, 'ndata : number of datapoint in file_in' print, 'n_box : size of 3D box (e.g. 128)' 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 return end n_data_before = ndata calcdata, file_in, ndata, a, maxv,$ z_low, z_high, a_low, a_high, d_low, d_high, new_n box=fltarr(n_box,n_box,n_box) L = 2 * max(maxv) dL = L/n_box for t=0L, ndata-1 do begin x = a(t,0) y = a(t,1) z = a(t,2) i = fix((x+L/2)/dL) j = fix((y+L/2)/dL) k = fix((z+L/2)/dL) if (i eq n_box) then i=i-1 if (j eq n_box) then j=j-1 if (k eq n_box) then k=k-1 ; print, t, x, y, z, i, j, k box(i,j,k) = box(i,j,k)+1. endfor dat_name = f_outpre + '.dat' ; binary output file (.dat) openw, lun, dat_name, /GET_LUN writeu, lun, box close, lun free_lun, lun idl_name = f_outpre + '.idl' ; header output file (.idl) openw, lun, idl_name, /GET_LUN printf, lun, '# IDL field description file' printf, lun, '#' printf, lun, '#' printf, lun, '# Created by IDL procedure: galcount' spawn, 'date', date_result printf, lun, '#' printf, lun, '# Created date: ', date_result printf, lun, '#' spawn, 'pwd', pwd_result printf, lun, '# IDL pwd was: ', pwd_result printf, lun, '#' printf, lun, '# Input ascii data file: ', file_in printf, lun, '# Number of data point herein: ', n_data_before printf, lun, '#' printf, lun, '# z low cut:', z_low printf, lun, '# z high cut:', z_high printf, lun, '# alpha low cut:', a_low printf, lun, '# alpha high cut:', a_high printf, lun, '# delta low cut:', d_low printf, lun, '# delta high cut:', d_high printf, lun, '#' printf, lun, '# Number of data points left after cuts: ', new_n printf, lun, '# Maximum absolute values (x,y,z): ', maxv printf, lun, '#' printf, lun, '#' printf, lun, 'ndim=3' printf, lun, '' printf, lun, 'dim1=', n_box printf, lun, 'dim2=', n_box printf, lun, 'dim3=', n_box printf, lun, '' printf, lun, 'veclen=1' printf, lun, '' printf, lun, 'data=float' printf, lun, 'field=uniform' printf, lun, '' printf, lun, 'frames=1' printf, lun, 'file="', dat_name, '"' close, lun free_lun, lun end