08.06.2013 Views

Bernese GPS Software Version 5.0 - Bernese GNSS Software

Bernese GPS Software Version 5.0 - Bernese GNSS Software

Bernese GPS Software Version 5.0 - Bernese GNSS Software

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

19. <strong>Bernese</strong> Processing Engine (BPE)<br />

37: unlink $lstFil if $startcount == 1;<br />

38:<br />

39: # Run program<br />

40: # -----------<br />

41: my $PGMNAM = "HELMR1";<br />

42: $bpe->RUN_PGMS($PGMNAM);<br />

43:<br />

44: # Check whether datum definition accepted or not<br />

45: # ----------------------------------------------<br />

46: if (-s $lstFil and $startcount == 1) {<br />

47: prtMess($bpe,"Inconsistent fiducial station(s) detected");<br />

48: prtGoto($bpe,$param2);<br />

49: }<br />

50:<br />

51: }<br />

The program HELMR1 is started in lines 41–42. A useful method is called on line 31:<br />

$bpe–>getKeys takes a list of keywords and assigns their values to user script variables<br />

(see Section 19.6.5.1). Any variable that is available in the menu may be obtained in this<br />

way. In lines 47 and 48 two BPE utility functions are called (see Section 19.6.5.4). The<br />

corresponding module is loaded in lines 21–22. The first function writes a message into the<br />

BPE protocol file and the second function initiates a jump of the BPE processing sequence<br />

with the action NEXTJOB to the PID specified by PARAM2.<br />

19.6.4 Parallel User Scripts<br />

The examples in this section show a master and slave user script for parallel processing of<br />

individual files. In the first example the relevant lines of the script <strong>GPS</strong>QIFAP are shown that<br />

prepares the baseline-wise processing of <strong>GPS</strong>EST for ambiguity resolution:<br />

01: my ( $dirPSH, $extPSH, $sess, ) =<br />

02: $bpe->getKeys(’DIR_PSH’,’EXT_PSH’,’$S+0’ );<br />

03: ...<br />

04:<br />

05: # Get the list of files to be processed<br />

06: # -------------------------------------<br />

07: my @pshLst = glob("${dirPSH}????${sess}.${extPSH}");<br />

08:<br />

09: # Put the files in the parallelization file<br />

10: # -----------------------------------------<br />

11: open(TMP," > $$bpe{CONTROL_FILE}");<br />

12: foreach my $file (@pshLst) {<br />

13: $file = File::Basename::basename($file}); # remove the path<br />

14: $file = substr($file,0,4); # get the baseline ID<br />

15: print TMP "$file\n";<br />

16: }<br />

17: close TMP;<br />

In line 7 the script gets the list of all phase baseline files for the current session in the<br />

campaign directory. In line 11 the control file is opened whose name is available through the<br />

variable $$bpe{CONTROL FILE}. In the loop 12–16 the first four characters of each filename<br />

are written as separate lines into the control file. After termination of the script the control<br />

file contains the following lines based on the files available in the BPE processing example:<br />

01: BRFF<br />

02: BRON<br />

Page 400 AIUB

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!