Class AntennaKey

java.lang.Object
org.orekit.files.sinex.AntennaKey

public class AntennaKey extends Object
Key for antenna.
Since:
13.0
Author:
Luc Maisonobe
  • Field Details

    • OTHER_RADOME_CODE

      public static final String OTHER_RADOME_CODE
      Constant matching other radome codes.
      See Also:
    • ANY_SERIAL_NUMBER

      public static final String ANY_SERIAL_NUMBER
      Constant matching any serial numbers.
      See Also:
  • Constructor Details

    • AntennaKey

      public AntennaKey(String name, String radomeCode, String serialNumber)
      Simple constructor.

      The Sinex file specification uses a single 20 characters field named "Antenna type" and described as "Antenna name and model" (Antex specification is similar). In practice this field contains a variable length name and the last four characters are a radome code, which may be set to "NONE" for a catch-all entry. Here, we separate this field into its two components, so we can provide fuzzy matching by tweaking the radome code if needed.

      Parameters:
      name - antenna name
      radomeCode - radome code
      serialNumber - serial number
  • Method Details

    • matchingCandidates

      public List<AntennaKey> matchingCandidates()
      Get candidates for fuzzy matching of this antenna key.

      Some Sinex files use specific keys in the SITE/ANTENNA block and catch-all keys in the SITE/GPS_PHASE_CENTER, SITE/GAL_PHASE_CENTER blocks. As an example, file JAX0MGXFIN_20202440000_01D_000_SOL.SNX contains the following entries related to antenna type ASH700936D_M:

       SITE/ANTENNA
       AMU2  A ---- P 00:000:00000 00:000:00000 ASH700936D_M    SCIS 13569
       ARTU  A ---- P 00:000:00000 00:000:00000 ASH700936D_M    DOME CR130
       DRAG  A ---- P 00:000:00000 00:000:00000 ASH700936D_M    SNOW CR143
       PALM  A ---- P 00:000:00000 00:000:00000 ASH700936D_M    SCIS CR141
       SITE/GPS_PHASE_CENTER
       ASH700936D_M    NONE -----  .0910  .0004 -.0003  .1204 -.0001 -.0001 igs14_%Y%m
       ASH700936D_M    SCIS -----  .0879  .0005 -.0001  .1192  .0001 -.0001 igs14_%Y%m
       ASH700936D_M    SNOW -----  .0909  .0003 -.0002  .1192  .0001  .0001 igs14_%Y%m
       

      Apart from the obvious formatting error of the last field in SITE/GPS_PHASE_CENTER, it appears there are no phase center data for the antenna used at ARTU site, because no radome code match "DOME". We consider here that a "close enough" entry would be to use "NONE" as the radome code, and "-----" as the serial number.

      Another example is file ESA0OPSFIN_20241850000_01D_01D_SOL.SNX which contains the following entries related to antenna type ASH701945G_M:

       SITE/ANTENNA
       FAIR  A    1 P 24:184:86382 24:185:86382 ASH701945G_M    JPLA CR520    0
       KOKB  A    1 P 24:184:86382 24:185:86382 ASH701945G_M    NONE CR620    0
       SUTH  A    1 P 24:184:86382 24:185:86382 ASH701945G_M    NONE CR620    0
       SITE/GPS_PHASE_CENTER
       ASH701945G_M    NONE CR520 0.0895 0.0001 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       ASH701945G_M    NONE CR620 0.0895 0.0001 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       ASH701945G_M    NONE CR620 0.0895 0.0001 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       SITE/GAL_PHASE_CENTER
       ASH701945G_M    NONE CR520 0.0895 0.0001 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       ASH701945G_M    NONE CR520 0.1162 -.0007 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       ASH701945G_M    NONE CR520 0.1162 -.0007 -.0001                      IGS20_2317
       ASH701945G_M    NONE CR620 0.0895 0.0001 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       ASH701945G_M    NONE CR620 0.1162 -.0007 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       ASH701945G_M    NONE CR620 0.1162 -.0007 -.0001                      IGS20_2317
       ASH701945G_M    NONE CR620 0.0895 0.0001 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       ASH701945G_M    NONE CR620 0.1162 -.0007 -.0001 0.1162 -.0007 -.0001 IGS20_2317
       ASH701945G_M    NONE CR620 0.1162 -.0007 -.0001                      IGS20_2317
       

      Here, the phase centers for serial number CR620 appear twice (fortunately with the same values). There are no phase center data for the antenna used at FAIR site, because no radome code match "JPLA". We consider here that a "close enough" entry would be to use "NONE", and keep the provided serial number.

      The logic we adopted is to use the following candidates:

      Antenna key matching candidates
      ordernameradome codeserial number
      first candidate getName()getRadomeCode() getSerialNumber()
      second candidate getName()getRadomeCode() "-----"
      third candidate getName()"NONE" getSerialNumber()
      fourth candidate getName()"NONE" "-----"
      Returns:
      candidates for matching instance key, sorted from stricter to looser match
    • getName

      public String getName()
      Get the antenna name.
      Returns:
      antenna name
    • getRadomeCode

      public String getRadomeCode()
      Get the radome code.
      Returns:
      radome code
    • getSerialNumber

      public String getSerialNumber()
      Get the serial number.
      Returns:
      serial number
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object