Comments (4)
Flexible tile priorities are now implemented via a set of rules in a YAML file. These can either be left untouched (e.g., when running surveysims) or else adjusted any afternoon by the survey coordinator.
from desisurvey.
[apologies for commenting in one issue (#18) on a topic that I should have commented here...]
For BOSS we found it helpful to have a set of priorities that the survey coordinator could adjust that the automated algorithm would not override, on a tile-by-tile basis. e.g. to force a problematic tile to priority=0 and know it would be left there, or move a special tile to top priority until it was observed, even if the automated algorithm would have ranked it differently.
In the current scheme, the survey coordinator can update the global rules in the YAML file, but can that easily be done for individual tiles? They can also override it for an individual tile for an individual night via editing the plan.fits file, but that would get reset the following night, correct?
i.e. is there some easy way to set "sticky" priorities (low or high) on a per-tile basis?
from desisurvey.
I think the cleanest implementation is to extend the YAML syntax to support, e.g.
# Specify TILEID: PRIORITY pairs that override all other rules.
overrides:
123: 0.0
456: 99.9
I prefer this over a new mechanism since it simplifies record keeping (taking a snapshot of the rules each afternoon is sufficient to fully document how each night's priorities were set) and program logic (small perturbation to existing code and unit tests).
I guess tiles with an override directive should be removed from the group they would otherwise belong to, for the purposes of determining whether that group is "done"?
Note that the rules syntax already allows a group of tiles to forced to some priority. For example, adding the following to the top of the rules does what you would expect:
kill-sgc-pass0:
cap: S
passes: 0
rules:
kill-sgc-pass0(0): { START: 0 }
from desisurvey.
The tiles file includes a priority boost factor that is only changed by humans. That's enough to address anything we might want to do with it. We have not built much plumbing around it to make it easy to set priorities. If we end up setting a lot of special priorities, I'll put together such code. Closing this in the meantime as the base functionality exists.
from desisurvey.
Related Issues (20)
- RA, Dec mix up when calling desisurvey.ephem.get_object_interpolator HOT 1
- Found invalid plan_tiles in use_plan(). HOT 4
- Consider moving freeze_iers to desiutil HOT 3
- unit tests and surveyinit failing with new tile file HOT 4
- Make tile file more flexible to changes HOT 1
- Update default fiberassign cadence HOT 1
- HA optimizations should be made more flexible
- Consider alternative status file formats
- Change mechanism by which rules and tile file are specified in afternoon planning
- Remove simulate blocks from desisurvey
- should desisurvey depend on specsim? HOT 2
- Next tile to be chosen before previous exposure is saved to disc HOT 1
- unit tests failing on NERSC HOT 4
- revive tests with GitHub actions
- desisurvey broken with astropy 4.2 HOT 8
- reading horizons_2020_week1_moon.csv broken under astropy 4.2
- Unit tests failing with speclite error HOT 1
- desisurvey.ephem is broken in current DESI releases HOT 7
- survey simulations tutorial fails with AttributeError: 'Configuration' object has no attribute 'tiles_nogray' HOT 1
- Use exposures-daily and tiles-daily instead of tsnr-exposures & tiles
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from desisurvey.