Routing File Format
Use a routing file to specify the rules for links in a chain associated with objects in a constellation or entries in a satellite collection subset. It is an ASCII text file with a *.routing extension that STK reads every time it computes a chain with the constellation or subset.
The file can have one or more of the following types of file sections :
- Outgoing rules - These rules govern which objects in the constellation or entries in the subset can be the source of the outgoing signal to another chain object, which can be inside or outside the constellation or subset.
- Incoming rules - These rules govern which objects in the constellation or entries in the subset can be the destination of an incoming signal from another chain object, which can be inside or outside the constellation or subset.
- Multihop rules - These rules govern the links between two or more objects within the constellation or between two or more entries within a subset. MultihopRules do not apply to objects outside of the constellation or subset.
See the Specific rules format section of this topic for more information on creating rules for each of these cases.
Routing file general format
The general format for a section is as follows:
Begin { OutgoingRules | MultihopRules | IncomingRules } DefaultRule { Always | Never | Access } Begin Rules List of rules for link pairs End Rules End { OutgoingRules | MultihopRules | IncomingRules }
First, STK applies the “DefaultRule” to all possible links between from/to objects related to the constellation or subset. Then the Begin Rules/End Rules part specifies the exceptions to that default rule.
For constellations, the link rules for pairs (Begin Rules/End Rules part) requires that you identify the specific object in the constellation for each rule.
For satellite collections, the link rules for pairs (Begin Rules/End Rules part) requires that for each rule you identify both the specific subset of the satellite collection and the specific entity within that subset. This is because the routing file applies to the entire satellite collection, not to a specific subset within the collection. For an example of satellite collection formatting, see the satellite collection multihop example section of this topic.
There is an example of a complete routing file — all three types of rules together — later in this topic.
Specific rules format
The general form of the Begin Rules/End Rules part enables you to identify link pairs to specifically call out how STK should determine their visibility. The format is as follows:
RuleType truncatedPath1 truncatedPath2
You can specify as many rules for links as are necessary. If there are two or more conflicting rules, the latest rule in the list of rules overrides earlier rules.
You can use wildcards in the truncated path names. Suppose you have a chain with a constellation of satellites followed by a constellation of places. The constellation of satellites is then considered the "outgoing" source. You could then create the following specific outgoing rules for the constellation of satellites:
Begin Rules Always Satellite/Satellite1 Satellite/Satellite2 Access Satellite/Satellite1 Place/Place* End Rules
The first rule says that Satellite1 can always see Satellite2. The second rule says that Satellite1 can see all Places during times of access.
The Incoming/Outgoing and Multihop sections do have slightly different options when specifying the link. In the Incoming/Outgoing sections, you can choose to specify only one path. In this case, STK assumes the other side of the link is a wildcard, so any other object will satisfy the link.
For example:
Begin OutgoingRules DefaultRule Never Begin Rules Access Satellite/Satellite1 End Rules End OutgoingRules
In this case, when the constellation of satellites is in the "from" (outgoing) position, Satellite1 is the only satellite that can "see" other objects and uses access to compute visibility times to whatever objects are in the "to" (incoming) position.
The multihop section must specify both sides of the link: the from (outgoing) and to (incoming) sides. For a multihop section, you can use the word “reciprocal” to mean that the link rule is applied in both directions when multihopping.
For example:
Begin MultihopRules DefaultRule Never Begin Rules Always Satellite/Satellite1 Satellite/Satellite2 Always Satellite/Satellite2 Satellite/Satellite3 Reciprocal End Rules End MultihopRules
For the case above, when multihopping within the constellation of satellites, Satellite1 can always communicate to Satellite2, but Satellite2 cannot communicate to Satellite1. In contrast, Satellite2 can communicate to Satellite3 and Satellite3 can communicate to Satellite2; the direction doesn’t matter.
If an entire section (outgoing, incoming, multihop) is not defined in the routing file, then the chain assumes that all objects in a constellation and all entities in a satellite collection subset are available when computing visibility between links in the chain based on the constellation and subset positions in the link.
Full routing file example
Here is an example of a complete routing file for a constellation of satellites:
Begin OutgoingRules DefaultRule Never Begin Rules Access Satellite/Satellite1 End Rules End OutgoingRules
Begin MultihopRules DefaultRule Never Begin Rules Always Satellite/Satellite1 Satellite/Satellite2 Always Satellite/Satellite2 Satellite/Satellite3 End Rules End MultihopRules Begin IncomingRules DefaultRule Never Begin Rules Access Satellite/Satellite3 End Rules End IncomingRules
Satellite collection multihop example
Here is an example of a routing file with just a multihop section for a satellite collection. It contains one default rule and one specific exception rule.
Begin MultihopRules DefaultRule Never Begin Rules Access "CollectionSubsetEntry SatelliteCollection/SatelliteCollection1/Subset/AllSatellites Shell_1_P*_S*" "CollectionSubsetEntry SatelliteCollection/SatelliteCollection1/Subset/AllSatellites Shell_2_P*_S*" reciprocal End Rules End MultihopRules
If subset "AllSatellites" from SatelliteCollection1 is part of a chain, this rule says that no entries will be able to talk to other entries in the subset (DefaultRule = Never) except for the Shell_1 entries using access to talk to the Shell_2 entries and vice versa (reciprocal).