// CONVERSION OF LGO AS-MEASURED GNSS BASELINES TO TMW'S RDE FORMAT // S RAWLING 2008-01-09 // THE LGO ASCII EXPORT FILE MUST HAVE THE FOLLOWING UNITS // OTHERWISE THE CONVERSION WILL NOT PROCEED // REFER TO LGO HELP FOR ASCII EXPORT SETTINGS AND FILE FORMAT GP(0) if ( match("@%Unit:|wm")>0) {goto ERROR1} L(1) if ( match("@%Coordinate type:|wCartesian") >0 ) {goto ERROR2} L(1) if ( match("@%Reference ellipsoid: WGS 1984") >0 ) {goto ERROR3} gp(0) if ( s("@+",noerr)==0) {goto ERROR4} // THE RELEVANT LINES OF DATA ARE REFORMATTED gp(0) repeat ( all) { s("@+",errbreak) dc(2) it("OCCUPIEDSTATION ") s("|w") dl(1) in(1) dc(2) it("REF ") r("|w"," GROUNDDELTAX ") r("|w"," GROUNDDELTAY ") r("|w"," GROUNDDELTAZ ") l(1) s("|w",advance) s("|w",advance) dl(-0) dc(-2) it(" COVXX ") s("|d") r("|w"," COVXY ") s("|d") r("|w"," COVYY ") s("|d") r("|w"," COVXZ ") s("|d") r("|w"," COVYZ ") s("|w") r("|w"," COVZZ ") l(1) dl(2) dc(2) it(" REM GNSS baseline. 1st common epoch is ") } // DATA LINES NOT USED ARE DELETED gp(0) repeat (all) { s("|<@",errbreak) c(1) c(-1) dl(1) } // THE TIME AND DATE REMARK IS MOVED TO THE 1ST LINE OF EACH BASELINE INFO SET gp(0) repeat (all) { s(" REM ",errbreak) c(1) l(0) bb(cp) eol() be(cp) rcb(1,bb,be) db(bb,be) l(-2) eol() ri(1) } // AN EXPLANATORY HEADER IS ADDED TO THE FILE GP(0) it("REM The following are WGS84/GDA94 cartesian baseline vectors post-processed and unadjusted by LGO ") in(2) //=========== // INPUT FILE'S EXTENSION IS CHANGED TO RDE AND "filename.rde' SAVED IN T REG 99 // old---- or(99) name_write(extra+nocr+nomsg) or(clear) bs(bf) ri(99) s(".",reverse) c(1) dl(1) it("rde") l(0) bb(cp) eol() be(cp) rcb(99,bb,be) bq(OK) bs(bpv) // THE FINISHED CONVERTED DATA IS COPIED TO THE CLIPBOARD AND THEN SAVED AS "filename.rde" // old----- bof() bb(cp) eof() be(cp) ccb(bb,be) fsa(@99,ok+nomsg) bq(OK) //================= // INPUT FILE'S EXTENSION IS CHANGED TO RDE AND "filename.rde' SAVED IN T REG 99 #103=Buf_Num // remember current buffer number Out_Reg(103) // use one of the temporary registers Name_Write(EXTRA+NOCR+NOMSG) Out_Reg(CLEAR) Buf_Switch(Buf_Free(EXTRA)) // use one of the extra buffers Reg_Ins(103) Search(".",REVERSE+ADVANCE) // advance past the found "." Del_Line(1) Ins_Text("rde") Begin_Of_File Reg_Copy_Block(103, Cur_Pos, EOL_Pos) Buf_Quit(OK) Buf_Switch(#103) // don't rely on Buf_Previous but take control by yourself // THE FINISHED CONVERTED DATA IS COPIED TO THE CLIPBOARD AND THEN SAVED AS "filename.rde" Clip_Copy_Block(0, File_Size) File_Save_As(@103, OK+NOMSG) Buf_Quit(OK) goto end // ERROR MESSAGES :error1: GN("LGO asc file format not in metres, hit any key to quit goto LGO and change export settings") qally :error2: GN("LGO asc file format not in cartesian coordinate format, hit any key to quit goto LGO and change export settings") qally :error3: GN("LGO asc file coordinates not on WGS 1984 ellipsoid, hit any key to quit goto LGO and change export settings") qally :error4: GN("no baseline information in current file, hit any key to quit goto LGO and change export settings from points to baselines") qally :end: // VEDIT IS CLOSED EXIT // an example of an input file and output file are here provided //first the input //@%Unit: m //@%Coordinate type: Cartesian //@%Reference ellipsoid: WGS 1984 //@#F5 -4572317.93475 2586724.42551 -3606176.11588 MEAN 0.0014 12 //@& 0.00093 1.01662051 -0.35770154 0.55443052 0.58670858 -0.31366125 0.73746111 //@E 0.00057508 0.00050573 1.57079633 0.00119486 //@#F5 -4572317.93308 2586724.42534 -3606176.11510 MEAS 0.0003 12 //@& 0.65397 0.00000011 -0.00000006 0.00000005 0.00000005 -0.00000003 0.00000008 //@E 0.00014457 0.00008975 0.02731658 0.00028169 //@+FIT1 -4571653.7699 2587715.55429 -3606311.9332 //@-FIT4 -99.89265 155.21027 236.43137 //@= 0.5205 0.00000020 -0.00000011 0.00000012 0.00000012 -0.00000009 0.00000023 //@: 1.26200 0.00000 //@; 1.39450 0.00000 //@*17.12.2007 09:37:16 //@E 0.0006 0.0004 0.0806 0.0013 //@+FIT1 -4571653.7699 2587715.55429 -3606311.9332 //@-FIT3 -66.59774 103.56066 157.49929 //@= 0.3110 0.00000048 -0.00000021 0.00000031 0.00000024 -0.00000014 0.00000044 //@: 1.26200 0.00000 //@; 1.34200 0.00000 //@*17.12.2007 09:37:16 //@E 0.0006 0.0004 0.0748 0.0014 // // // then the output //REM The following are WGS84/GDA94 cartesian baseline vectors post-processed and unadjusted by LGO // //OCCUPIEDSTATION FIT1 REM GNSS baseline. 1st common epoch is 17.12.2007 09:37:16 //REF FIT4 GROUNDDELTAX -99.89265 GROUNDDELTAY 155.21027 GROUNDDELTAZ 236.43137 COVXX 0.00000020 COVXY -0.00000011 COVYY 0.00000012 COVXZ 0.00000012 COVYZ -0.00000009 COVZZ 0.00000023 // //OCCUPIEDSTATION FIT1 REM GNSS baseline. 1st common epoch is 17.12.2007 09:37:16 //REF FIT3 GROUNDDELTAX -66.59774 GROUNDDELTAY 103.56066 GROUNDDELTAZ 157.49929 COVXX 0.00000048 COVXY -0.00000021 COVYY 0.00000031 COVXZ 0.00000024 COVYZ -0.00000014 COVZZ 0.00000044