[teqc] Magellan AC12 binary formats

Lou Estey lou at unavco.org
Wed May 28 08:11:12 MDT 2008


Jed,

> I have L1 data with carrier phase and ephemeris from a Magellan AC12.  This
> doesn't seem to be a supported format, but it should be easy enough to add.  The
> formats are given in Table 7.2 (page 140, logical 120) and Table 7.4 (page 143,
> logical 123) of this document:
> 
> ftp://ftp.magellangps.com/OEM,%20Sensor%20&%20ADU/A12,%20%20B12,%20&%20AC12/Reference%20Material/A12,%20B12%20&%20AC12%20RM%20rev%20E.pdf
> 
> I've attached the first 10 KiB of a raw file.  Carrier phase responses start
> with '$PASHR,MCA,' followed by a 37 byte binary field, followed by '\r\n', one
> for each tracked satellite.  The ephemeris responses start with '$PASHR,SNV,'
> followed by 132 bytes, followed by '\r\n'.  Command acknowledgement messages
> (only at the beginning) are '$PASHR,ACK,...\r\n' and should be ignored.  It is,
> of course, trivial to split this into two pure binary files if teqc would prefer
> that.  In the attached file, the sample rate was too high for the serial data
> rate so most SNV responses are missing.  I'll record another file today with
> more reasonable data rate.
> 
> Presumably it is not difficult to add this file format, however I don't have
> source.  It would be great if someone has time to implement this, but I'm
> willing to do it if I can get the source.
> 
> 
> We are using these boards for flow measurements near the terminus of Jakobshavn
> Isbrae where the devices are unrecoverable, but data can be downloaded via
> wireless.  This part of the field campaign starts in the beginning of July so it
> would be great to be able to process data by then.

The ability to read Ashtech stream MCA records was added to teqc a long time ago,
but detection of MCA records was apparently accidentally dropped due to a coding
error and wasn't corrected until 19 Dec 2007 (see
http://facility.unavco.org/software/teqc/log.html ).

At any rate, the problem with the file that you sent is a missing PBEN record at
the end of each epoch.  This is absolutely necessary for conversion into RINEX.
 From a different AC12 stream file:

[1414] teqc -week 1457 +diag +mds -ash s tes* 2>&1 | more
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000000 = 0x00000000 = 00000000   type= SNV,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000221 = 0x00000091 = 00000145   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000303 = 0x000000c3 = 00000195   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000365 = 0x000000f5 = 00000245   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000447 = 0x00000127 = 00000295   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000531 = 0x00000159 = 00000345   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000613 = 0x0000018b = 00000395   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000675 = 0x000001bd = 00000445   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000757 = 0x000001ef = 00000495   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001041 = 0x00000221 = 00000545   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001123 = 0x00000253 = 00000595   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001205 = 0x00000285 = 00000645   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001267 = 0x000002b7 = 00000695   type= PBN,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001374 = 0x000002fc = 00000764   type= SNV,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001615 = 0x0000038d = 00000909   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001677 = 0x000003bf = 00000959   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001761 = 0x000003f1 = 00001009   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002043 = 0x00000423 = 00001059   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002125 = 0x00000455 = 00001109   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002207 = 0x00000487 = 00001159   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002271 = 0x000004b9 = 00001209   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002353 = 0x000004eb = 00001259   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002435 = 0x0000051d = 00001309   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002517 = 0x0000054f = 00001359   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002601 = 0x00000581 = 00001409   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00002663 = 0x000005b3 = 00001459   type= PBN,
...

and this translates in RINEX just fine:

[1416] teqc -week 1457 -O.rt "ASHTECH AC12" -ash s tes* 2> /dev/null | more
      2.11           OBSERVATION DATA    G (GPS)             RINEX VERSION / TYPE
teqc  2008May28     Lou Estey           20080528 14:05:35UTCPGM / RUN BY / DATE
Solaris 5.10|UltraSparc IIIi|cc -xarch=v9 SC5.8|=+|*Sparc   COMMENT
BIT 2 OF LLI FLAGS DATA COLLECTED UNDER A/S CONDITION       COMMENT
-Unknown-                                                   MARKER NAME
tes1                                                        MARKER NUMBER
-Unknown-           -Unknown-                               OBSERVER / AGENCY
-Unknown-           ASHTECH AC12        -Unknown-           REC # / TYPE / VERS
-Unknown-           -Unknown-                               ANT # / TYPE
   3800679.1465   882079.2823  5028790.0765                  APPROX POSITION XYZ
         0.0000        0.0000        0.0000                  ANTENNA: DELTA H/E/N
      1     1                                                WAVELENGTH FACT L1/2
      4    L1    C1    D1    S1                              # / TYPES OF OBSERV
  SNR is mapped to RINEX snr flag value [0-9]                COMMENT
   L1 & L2: min(max(int(snr_dBHz/6), 0), 9)                  COMMENT
pseudorange smoothing corrections not applied               COMMENT
   2007    12    12    11    21   30.0000000     GPS         TIME OF FIRST OBS
                                                             END OF HEADER
  07 12 12 11 21 30.0000000  0 11G 5G10G31G18G24G 6G30G 3G16G21G13
  236029029.403 6  25571552.276       -3855.406          41.000
  247009231.438 8  23553204.390       -1038.138          49.000
  230250248.847 8  23065518.081       -2963.547          50.000
  254745142.130 8  25338624.567        3360.072          48.000
  239123972.044 9  21092872.930       -1405.212          55.000
  220143429.005 8  21214120.024       -1907.788          53.000
  232339327.086 8  24009483.926       -3809.051          51.000
  255609271.005 8  24925094.520        3551.697          49.000
  236340997.285 8  21541923.112        2209.132          52.000
  228857893.254 9  20983951.545        1428.322          56.000
  253623670.897 7  24953373.385        -840.881          44.000
  07 12 12 11 22  0.0000000  0 11G 5G10G31G18G24G 6G30G 3G16G21G13
...

BTW, I added detection of the ACK messages which were in your file, so for the
next version of teqc:

[1417] teqc +diag +mds -ash s ac12-output 2>&1 | more
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000000 = 0x00000000 = 00000000   type= ACK*
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000017 = 0x0000000f = 00000015   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000101 = 0x00000041 = 00000065   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000163 = 0x00000073 = 00000115   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000245 = 0x000000a5 = 00000165   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000327 = 0x000000d7 = 00000215   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000411 = 0x00000109 = 00000265   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000473 = 0x0000013b = 00000315   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000555 = 0x0000016d = 00000365   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000637 = 0x0000019f = 00000415   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00000721 = 0x000001d1 = 00000465   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001003 = 0x00000203 = 00000515   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001065 = 0x00000235 = 00000565   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001147 = 0x00000267 = 00000615   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001231 = 0x00000299 = 00000665   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001313 = 0x000002cb = 00000715   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001375 = 0x000002fd = 00000765   type= MCA,
Ashtech MBEN/DBEN frame $PASHR, @ 0o00001457 = 0x0000032f = 00000815   type= ACK*
...

Hope this helps.

cheers,
--lou

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Louis H. Estey, Ph.D.              office:  [+001] 303-381-7456
UNAVCO, 6350 Nautilus Drive           FAX:  [+001] 303-381-7451
Boulder, CO  80301-5554            e-mail:  lou  unavco.org
    WWW:  http://www.unavco.org   http://jules.unavco.org

"If the universe is the answer, what is the question?"
                                                -- Leon Lederman
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


More information about the teqc mailing list