include include include include include # RSDPSDEX -- Convert CDBS/FOC spectrograph DE files to RSDP format images # # D. Giaretta, 01-Jan-1988 Original SPP version # Phil Hodge, 10-Jul-1991 get sampoff,lineoff instead of sampbeg,linebeg procedure rsdpsdex() char input[SZ_FNAME] # input image char output[SZ_FNAME] # output image char template[SZ_FNAME] # template image #-- pointer in, imgl2r() pointer out, impl2r() pointer temppt pointer immap() int i, npix, nlines, line pointer i_l, o_l real rtemp, datamin, datamax char temp[SZ_LINE] int imgeti(), nowhite(), junk begin call clgstr("input", input, SZ_FNAME) junk = nowhite(input, input, SZ_FNAME) in = immap( input, READ_ONLY, NULL) call clgstr("output", output, SZ_FNAME) junk = nowhite(output, output, SZ_FNAME) call clgstr( "template", template, SZ_FNAME) temppt = immap( template, READ_ONLY, 0) out = immap( output, NEW_COPY, temppt) IM_LEN(out, 1) = IM_LEN(in, 1) IM_LEN(out, 2) = IM_LEN(in, 2) IM_PIXTYPE(out) = IM_PIXTYPE(in) npix = IM_LEN(out,1) nlines = IM_LEN(out, 2) datamin = MAX_REAL datamax = -MAX_REAL for ( line =1; line <= nlines; line=line+1) { i_l = imgl2r(in, line) o_l = impl2r(out, line) call amovr ( Memr[i_l], Memr[o_l], npix] for (i=1; i<=npix; i=i+1) { rtemp = Memr[ i_l+i-1] if ( rtemp > datamax ) datamax = rtemp if ( rtemp < datamin ) datamin = rtemp } } # label the output image call imgstr( in, "PXFORMT", temp, SZ_LINE ) call impstr( out, "PXFORMT", temp) call imaddi( out, "OPTELT1", imgeti( in, "OPTELT1") ) call imaddi( out, "OPTELT2", imgeti( in, "OPTELT2") ) call imaddi( out, "SAMPBEG", imgeti( in, "SAMPOFF") + 1) call imaddi( out, "LINEBEG", imgeti( in, "LINEOFF") + 1) call add_headname( out, output, datamin, datamax) call imunmap( in) call imunmap(out) call imunmap(temppt) end