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 Summary
Fields Modifier and Type Field Description static String
ANY_SERIAL_NUMBER
Constant matching any serial numbers.static String
OTHER_RADOME_CODE
Constant matching other radome codes.
-
Constructor Summary
Constructors Constructor Description AntennaKey(String name, String radomeCode, String serialNumber)
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object object)
String
getName()
Get the antenna name.String
getRadomeCode()
Get the radome code.String
getSerialNumber()
Get the serial number.int
hashCode()
List<AntennaKey>
matchingCandidates()
Get candidates for fuzzy matching of this antenna key.
-
-
-
Field Detail
-
OTHER_RADOME_CODE
public static final String OTHER_RADOME_CODE
Constant matching other radome codes.- See Also:
- Constant Field Values
-
ANY_SERIAL_NUMBER
public static final String ANY_SERIAL_NUMBER
Constant matching any serial numbers.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
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 providefuzzy matching
by tweaking the radome code if needed.- Parameters:
name
- antenna nameradomeCode
- radome codeserialNumber
- serial number
-
-
Method Detail
-
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 order name radome code serial 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
-
-