include include include include # RTODBX -- Convert CDBS/FOC reseau files to IRAF text list # x y xref yref # ready to read into IRAF geometric correction programs # # D. Giaretta, 01-Aug-1987 Original SPP version procedure t_rtodbx() char input1[SZ_FNAME] char entry[SZ_R_ENTNAME] char input2[SZ_FNAME] char refentry[SZ_R_ENTNAME] char output[SZ_FNAME] pointer rs_open(), fd, open() pointer rentp1, rentp2, rp1, rp2 pointer rs_template(), rlist int rs_list(), rs_readr() int nrows, ncols, k bool streq() begin call clgstr("input1", input1, SZ_FNAME) call clgstr( "entry", entry, SZ_R_ENTNAME) rp1 = rs_open( input1, READ_ONLY, NULL) call rs_alloc( rp1, TY_REAL, rentp1) rlist = rs_template( rp1, entry) if ( rs_readr(rp1, rentp1, EOS, rs_list( rlist) ) == RES_F_NONEXTENTRY) call error ( 0, " cannot read entry ") call clgstr("input2", input2, SZ_FNAME) call clgstr( "refentry", refentry, SZ_R_ENTNAME) if (streq( input1, input2) || input2[1] == EOS ) { rp2 = rp1 } else { rp2 = rs_open( input2, READ_ONLY, NULL) } call rs_alloc( rp2, TY_REAL, rentp2) rlist = rs_template( rp2, refentry) if ( rs_readr(rp2, rentp2, EOS, rs_list( rlist) ) == RES_F_NONEXTENTRY) call error ( 0, " cannot read reference entry ") call clgstr("output", output, SZ_FNAME) fd = open( output, NEW_FILE, TEXT_FILE) nrows = RES_NROWS(rp1) ncols = RES_NCOLS(rp1) do k = 1, nrows*ncols { call fprintf(fd, " %g %g %g %g \n") call pargr( Memr[RES_XPT(rentp1)+k-1] ) call pargr( Memr[RES_YPT(rentp1)+k-1] ) call pargr( Memr[RES_XPT(rentp2)+k-1] ) call pargr( Memr[RES_YPT(rentp2)+k-1] ) } call rs_close(rp1) call rs_close(rp2) call close(fd) end