-
Notifications
You must be signed in to change notification settings - Fork 3
Description
For Mattias Lazda (@lazdam):
Code changes are needed in order for ch_util.tools.get_feed_positions(...) to work for pco and the other Outriggers. Here is a proposed plan for the software dev. required to get this to work (other suggested changes/ideas are welcome):
- Determine the feed positions relative to a fiducial position of the cassettes at
pco(see last line in code snippet below). In CHIME, this was calculated as (line 654-667 intools.py):
# Determine position
try:
pos = [0.0] * 3
for node in [rfl, foc, cas, slt]:
prop = lay.node_property(node)
for ind, dim in enumerate(["x_offset", "y_offset", "z_offset"]):
if dim in prop:
pos[ind] += float(prop[dim].value) # in metres
if "y_offset" not in lay.node_property(slt):
pos[1] += (float(slt.sn[-1]) - 1.5) * 0.3048
Here, rfl refers to reflector components, foc refers to the focal line slot (place that a cassette is located on the focal line, i.e. FSA_NN), cas is a cassette component, and slt is a cassette slot (place that a feed is located in a cassette). These are all components entered and tracked in layoutdb.
The cassette slots are numbered n = [0, 1, 2, 3]. CHIME has 4 slots, but there are 2 (n = [0, 1]) in the cassettes at pco. At CHIME, the positions of slt relative to the center of the cassette is (n - 1.5) * 0.3048 m. This needs to be defined for pco.
Task list:
- Measure the position offset between cassettes.
- Measure the positions of the feeds relative to the cassette center at
pco. - Decide if we are sticking with the convention of calculating feed positions using the
y_offsetproperty offoccomponents inlayoutdb, or if this will instead now be entered as a property of the feed/cassette instead. We could just query a value from the database instead of calculating it in the function, which could be a cleaner way to implement this. - If sticking with past conventions,
y_offsetvalues have been added as a property to focal line slot positions before. Add these tolayoutdbfor theFSA_NNcomponents atpcoand use them to calculate the cassette positions, as is done for CHIME above.
Currently, cyl == 6 is defined for pco in _get_input_props(...) (lines 740-745) [private function]. pos = None is set for all the pco feeds currently.
- Update the
poscalculation to return feed positions using an analogous calculation for feed positions used at CHIME, as described above. That is, change lines 740-745 accordingly. - Generalize the code for the other Outriggers, as needed.
Optional:
- Consider refactoring the code to implement cleaner logic for CHIME, Pathfiner, TONE, and Outriggers. This is not strictly necessary to push forward and complete this work, but we discussed this possibility before.