pro slicelines, file_out, z_low, z_high, a_low, a_high, d_low, d_high
; Bo Milvang-Jensen, May 21, 1994.
if n_params() eq (0) then begin
print
print, 'Procedure slicelines'
print
print, 'Usage:'
print, 'slicelines, file_out, z_low, z_high, a_low, a_high, d_low, d_high'
print
print, 'Description:'
print, 'This procedure makes a binary file suitable for the Explorer'
print, 'module Line2Geo'
print
print, 'file_out: output file name'
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
a = fltarr(8,3)
a(0,0) = z_low ; redshift - point 1
a(0,1) = a_low ; alpha
a(0,2) = d_low ; delta
a(1,0) = z_high ; point 2
a(1,1) = a_low
a(1,2) = d_low
a(2,0) = z_low ; point 3
a(2,1) = a_high
a(2,2) = d_low
a(3,0) = z_high ; point 4
a(3,1) = a_high
a(3,2) = d_low
a(4,0) = z_low ; point 5
a(4,1) = a_low
a(4,2) = d_high
a(5,0) = z_high ; point 6
a(5,1) = a_low
a(5,2) = d_high
a(6,0) = z_low ; point 7
a(6,1) = a_high
a(6,2) = d_high
a(7,0) = z_high ; point 8
a(7,1) = a_high
a(7,2) = d_high
a(*,1) = (a(*,1)/180)*!pi ; conversion to radians
a(*,2) = (a(*,2)/180)*!pi ; conversion to radians
a = new_pol_to_cart(a) ; convert to cartesian coordiantes
arcl = 6.0
nal = fix((d_high-d_low)/arcl)
al = fltarr(2*(2+nal),3) ; arcs with alpha = constant
for i=0, nal+1 do begin ; alpha = a_low
al(i,0) = z_high
al(i,1) = a_low
al(i,2) = d_low + (1.0*i/(nal+1)) * (d_high-d_low)
endfor
for i=0, nal+1 do begin ; alpha = a_high
al(i+nal+2,0) = z_high
al(i+nal+2,1) = a_high
al(i+nal+2,2) = d_low + (1.0*i/(nal+1)) * (d_high-d_low)
endfor
al(*,1) = (al(*,1)/180)*!pi ; conversion to radians
al(*,2) = (al(*,2)/180)*!pi ; conversion to radians
al = new_pol_to_cart(al) ; convert to cartesian coordiantes
nde = fix((a_high-a_low)/arcl)
de = fltarr(2*(2+nde),3) ; arcs with delta = constant
for i=0, nde+1 do begin ; delta = d_low
de(i,0) = z_high
de(i,1) = a_low + (1.0*i/(nde+1)) * (a_high-a_low)
de(i,2) = d_low
endfor
for i=0, nde+1 do begin ; delta = d_high
de(i+nde+2,0) = z_high
de(i+nde+2,1) = a_low + (1.0*i/(nde+1)) * (a_high-a_low)
de(i+nde+2,2) = d_high
endfor
de(*,1) = (de(*,1)/180)*!pi ; conversion to radians
de(*,2) = (de(*,2)/180)*!pi ; conversion to radians
de = new_pol_to_cart(de) ; convert to cartesian coordiantes
openw, lun, file_out, /get_lun
for i=0, 3 do begin
writeu, lun, 2L
writeu, lun, a(2*i+0,*) ; points 1, 3, 5 and 7
writeu, lun, a(2*i+1,*) ; points 2, 4, 6 and 8
writeu, lun, 0.50 ; R
writeu, lun, 0.50 ; G
writeu, lun, 0.50 ; B
endfor
for i=0, 1 do begin
writeu, lun, 1L*(nal+2)
for j=0, nal+1 do begin
writeu, lun, al(i*(nal+2)+j,*)
endfor
writeu, lun, 0.50 ; R
writeu, lun, 0.50 ; G
writeu, lun, 0.50 ; B
endfor
for i=0, 1 do begin
writeu, lun, 1L*(nde+2)
for j=0, nde+1 do begin
writeu, lun, de(i*(nde+2)+j,*)
endfor
writeu, lun, 0.50 ; R
writeu, lun, 0.50 ; G
writeu, lun, 0.50 ; B
endfor
writeu, lun, -1L
close, lun
free_lun, lun
end