desihub / fiberassign

Fiber assignment code for DESI
BSD 3-Clause "New" or "Revised" License
8 stars 8 forks source link

track unusable fibers that aren't broken fibers or stuck positioners #261

Open sbailey opened 4 years ago

sbailey commented 4 years ago

Add a category of positioners that are moveable but shouldn't be used for science targets, sky fibers, or standard stars, e.g. because the fiber lands on a hot column of the CCD and won't produce a useable spectrum.

These are different from broken fibers, because they can be back illuminated and safely moved to arbitrary positions; we just don't want to count that in the bookkeeping as a good assignment for a science/stdstar/sky.

These are different from stuck positioners, because they are moveable, e.g. to avoid collisions.

The implementation might be a mix of desimodel/data/focalplane/ and fiberassign code. The main point is to just assign them somewhere that doesn't collide with a good positioner, while not have it count against the NUMOBS bookkeeping or SKY/STDSTAR budget.

tskisner commented 4 years ago

Related to #194, these positioners should be placed at a non-colliding location.

tskisner commented 3 years ago

Currently desimodel syncs the focalplane dumps from the DB and has access to the following info:

DEVICE_CLASSIFIED_NONFUNCTIONAL --> state bit STUCK is set
FIBER_INTACT --> if False, state bit BROKEN is set
CLASSIFIED_AS_RETRACTED --> state bit RESTRICTED is set
CTRL_ENABLED --> transient flag (ignored by desimodel)

How should desimodel determine which positioners are "functional" but should not be used? Once this is decided, we could add a new bit to the state definitions in desimodel and fiberassign, and then do something with them.