-
Install uv.
We use uv to manage the installation of the dependencies. Install uv by running the command in the [official uv installation instructions]:
curl -LsSf https://astral.sh/uv/install.sh | shThen log out, and log back in.
-
Clone this repository:
git clone https://github.com/m4opt/uvex-scheduler.git cd uvex-scheduler -
Use uv to create a virtual environment and install all of the Python dependencies inside it by running the following command:
uv sync -
Install CPLEX inside the project's uv virtual environment by following M4OPT's instructions to install CPLEX.
Run the following Jupyter notebooks, in order. To run a notebook interactively from your command line environment, just run uv run jupyter execute path/to/notebook.ipynb.
- notebooks/fov.ipynb: This saves the UVEX field of view geometry to region files in the fov directory. It also generates some visualizations of the field of view.
- notebooks/skygrid.ipynb: This generates some visualizations of the sky grid, including evaluating the sky coverage fraction.
- notebooks/survey-footprints.ipynb: This generates a visualization of the survey footprint regions defined in the survey-footprints directory.
- notebooks/skyblocks.ipynb: This groups the sky grid fields into blocks, assigns each block to a survey, and saves the field and block tables. It also generates visualizations of the expected number of visits and the sky blocks.
- notebooks/main.ipynb: This runs the scheduler to produce the reference science timeline.
- notebooks/report.ipynb: This generates summary visualizations of the schedule, including time utilization, cadence, sky coverage, and slew angle distributions.
- notebooks/animate.ipynb: This renders a movie of the cumulative sky visit map and survey completion over the course of the schedule.
Or, to run all of the notebooks automatically, you can run the following single command (note, require GNU Make):
uv run make
notebooks/*.ipynb: Jupyter notebooks that generate the data files below.notebooks/survey.py: Survey configuration. Edit this to adjust survey footprints, required visits, cadence constraints, etc.tables/fields.ecsv: Working field grid and block definitionstables/plan.ecsv: Reference science timeline for a 2-year prime missionfov/chips.ds9: Region file for detector footprint accounting for chip gapsfov/bounding-rectangle.ds9: Region file for bounding rectangle enclosing all chipsfov/inscribed-circle.ds9: Region file for circle inscribed within the bounding rectanglesurvey-footprints/*.ds9: Regions that define survey footprints. Note that polygon edges are treated as great circle arcs, so if there are long straight edges in RA or Dec they must be subdivided into multiple edges.