Skip to content

Update tools.py so that get_feed_positions(...) works for Outriggers #31

@aaronpearlman

Description

@aaronpearlman

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 in tools.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_offset property of foc components in layoutdb, 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_offset values have been added as a property to focal line slot positions before. Add these to layoutdb for the FSA_NN components at pco and 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 pos calculation 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.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions