desihub / desihub/fiberassign

auto-lookup sky locations instead of using sky catalog even for good positioners

Open
#335 6 comments 0 reactions 0 assignees View on GitHub
assignment algorithm
Dominant language
C++
Stars
9
Forks
10
Avg merge
2d 19h
Merged PRs (30d)
4

Description

Now that @dstndstn has implemented the on-the-fly lookup for whether stuck positioners are pointing at a blank sky location, this opens up the possibility of deprecating the DR9-based sky catalog and always looking up on the fly. Several cases:
1. stuck positioner at fixed (x,y) projected to fixed (ra,dec) -> sky or not?
2. bad phi motor, but can reliably rotate in theta: search a circle in (x,y) projected into an ellipse in (ra,dec) for sky locations that don't collide with neighbors
3. bad theta motor, but can reliably rotate in phi: search an arc in (x,y) projected into an ellipse in (ra,dec) for sky locations that don't collide with neighbors.
4. fully working positioner that isn't already assigned to a science target: instead of restricting its options to ~2 pre-selected sky targets that might not actually be reachable without causing neighboring collisions, let it search its entire non-colliding x,y space for options.

All of these would help us give more good fibers to science targets and reduce the number of genuinely unassigned fibers. I think we absolutely want/need to do (1) and (2) above and those are partially covered in other tickets. Item (4) is the new piece of this ticket.

If this was implemented, I think we could completely deprecate the DR9-based sky catalog, for which we currently spend a fair amount of I/O time, output disk space (listing targets that could have been covered), and (ra,dec) -> (x,y) mapping CPU time pre-calculating sky targets that we never use.

We would still need to support the Gaia-avoidance based "SUPP_SKY" target catalog for off-footprint tiles, or otherwise implement that version of "is this a sky" on the fly (thus bringing in the entire Gaia catalog as a input, which is non-trivial size).

@dstndstn @tskisner

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the existing on-the-fly blank-sky lookup for stuck positioners; no files or tests are named. Focus on case (4): searching reachable, non-colliding space for working positioners without science targets. Done means those positioners can obtain sky locations without DR9 preselected targets while preserving SUPP_SKY support for off-footprint tiles. Confirm scope with maintainers before starting, given the long inactivity.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance, robotics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.