chime-experiment / chime-experiment/ch_util

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

Open
#31 14 comments 0 reactions 4 assignees Claimed by @lazdam View on GitHub
Dominant language
Python
Stars
5
Forks
3
Avg merge
35m
Merged PRs (30d)
1

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 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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.