Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Keywords
astronomy
cplex
healpix
mixed-integer-programming
nasa
operations-research
optimization
satellite
scheduling-algorithms
telescope
ultraviolet
Last synced: 4 months ago
·
JSON representation
·
Repository
Multi-Mission Multi-Messenger Observation Planning Toolkit
Basic Info
- Host: GitHub
- Owner: m4opt
- Language: Python
- Default Branch: main
- Homepage: https://m4opt.readthedocs.io/
- Size: 2.17 MB
Statistics
- Stars: 18
- Watchers: 7
- Forks: 10
- Open Issues: 21
- Releases: 4
Topics
astronomy
cplex
healpix
mixed-integer-programming
nasa
operations-research
optimization
satellite
scheduling-algorithms
telescope
ultraviolet
Created about 4 years ago
· Last pushed 4 months ago
Metadata Files
Readme
Changelog
License
Citation
README.rst
Multi-Mission Multi-Messenger Observation Planning Toolkit
----------------------------------------------------------
.. image:: https://img.shields.io/pypi/v/m4opt
:target: https://pypi.org/project/m4opt/
:alt: Python Package Index status
.. image:: http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat
:target: http://www.astropy.org
:alt: Powered by Astropy Badge
.. image:: https://codecov.io/gh/m4opt/m4opt/branch/main/graph/badge.svg?token=L837JHNTUV
:target: https://codecov.io/gh/m4opt/m4opt
:alt: Code coverage status
.. image:: https://readthedocs.org/projects/m4opt/badge/?version=latest
:target: https://m4opt.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://m4opt.readthedocs.io/en/latest/_images/example.gif
:alt: Visualization of an example observing plan for UVEX generated M4OPT
M4OPT is an open-source toolkit for multi-facility scheduling of astrophysics
observing campaigns. It focuses on extremely rapid follow-up of gravitational
wave (GW) and neutrino events with heterogeneous networks of space and
ground-based observatories.
M4OPT uses the versatile mathematical framework of `mixed integer
programming`__ to model and solve complex observation scheduling problems.
Although M4OPT is open source, for the largest problems it can leverage two
industrial-strength commercial MIP solvers: `CPLEX`__ or `Gurobi`__. Both
solvers are available for free for academic users.
__ https://en.wikipedia.org/wiki/Integer_programming
__ https://www.ibm.com/products/ilog-cplex-optimization-studio
__ https://www.gurobi.com
M4OPT is designed from the `Astropy affiliated package`__ template, and is
meant to follow those standards, including interoperability with the
`Astropy`__ ecosystem. It also complies with `NASA Procedural Requirements
(NPR) 7150`__ for `Class C software`__ and is suitable for non-safety-critical
ground software applications for `Class D NASA payloads`__.
__ https://www.astropy.org/affiliated/
__ https://www.astropy.org
__ https://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7150&s=2C
__ https://nodis3.gsfc.nasa.gov/displayDir.cfm?Internal_ID=N_PR_7150_002C_&page_name=AppendixD
__ https://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=8705&s=4A
Features
--------
* **Global**: jointly and globally solves the problems of tiling (the set of
telescope boresight orientations and roll angles) and the scheduling (which
tile is observed at what time), rather than solving each sub-problem one at
a time
* **Optimal**: generally solves all the way to optimality, rather than
finding merely a "good enough" solution
* **Fast**: solve an entire orbit in about 5 minutes
* **General**: does not depend on heuristics of any kind
* **Flexible**: problem is formulated in the versatile framework of
`mixed integer programming `_
License
-------
This project is Copyright (c) M4OPT Developers and licensed under
the terms of the BSD 3-Clause license. This package is based upon
the `Astropy package template `_
which is licensed under the BSD 3-clause license. See the licenses folder for
more information.
How to Cite
-----------
If you use M4OPT in your research, then please cite the following paper:
Singer, L. P., Criswell, A. W., Leggio, S. C., et al. (2025). Optimal Follow-Up of Gravitational-Wave Events with the UltraViolet EXplorer (UVEX) (Version 1). https://doi.org/10.48550/ARXIV.2502.17560
Contributing
------------
We love contributions! m4opt is open source,
built on open source, and we'd love to have you hang out in our community.
**Imposter syndrome disclaimer**: We want your help. No, really.
There may be a little voice inside your head that is telling you that you're not
ready to be an open source contributor; that your skills aren't nearly good
enough to contribute. What could you possibly offer a project like this one?
We assure you - the little voice in your head is wrong. If you can write code at
all, you can contribute code to open source. Contributing to open source
projects is a fantastic way to advance one's coding skills. Writing perfect code
isn't the measure of a good developer (that would disqualify all of us!); it's
trying to create something, making mistakes, and learning from those
mistakes. That's how we all improve, and we are happy to help others learn.
Being an open source contributor doesn't just mean writing code, either. You can
help out by writing documentation, tests, or even giving feedback about the
project (and yes - that includes giving feedback about the contribution
process). Some of these contributions may be the most valuable to the project as
a whole, because you're coming to the project with fresh eyes, so you can see
the errors and assumptions that seasoned contributors have glossed over.
Note: This disclaimer was originally written by
`Adrienne Lowe `_ for a
`PyCon talk `_, and was adapted by
m4opt based on its use in the README file for the
`MetPy project `_.
Owner
- Name: m4opt
- Login: m4opt
- Kind: organization
- Repositories: 1
- Profile: https://github.com/m4opt
Citation (CITATION.cff)
cff-version: 1.2.0
message: Please cite the following works when using this software.
type: software
abstract: Multi-Mission Multi-Messenger Observation Planning Toolkit
authors:
- family-names: Singer
given-names: Leo
- name: pre-commit-ci[bot]
- name: dependabot[bot]
- family-names: Parazin
given-names: B
- family-names: Tollerud
given-names: Erik
- family-names: Bard
given-names: Chris
- family-names: Healy
given-names: Brian
- family-names: Bellm
given-names: Eric
- family-names: Kiendrébéogo
given-names: Ramodgwendé Weizmann
- family-names: Wagh
given-names: Yogesh
date-released: 2025-02-24
identifiers:
- type: url
value: https://github.com/m4opt/m4opt
title: m4opt/m4opt
url: https://github.com/m4opt/m4opt
version: v0.1.1
preferred-citation:
abstract: >-
The UltraViolet EXplorer (UVEX) is a wide-field ultraviolet space telescope
selected as a NASA Medium-Class Explorer (MIDEX) mission for launch in 2030.
UVEX will undertake deep, cadenced surveys of the entire sky to probe low
mass galaxies and explore the ultraviolet (UV) time-domain sky, and it will
carry the first rapidly deployable UV spectroscopic capability for a broad
range of science applications. One of UVEX's prime objectives is to follow
up gravitational wave (GW) binary neutron star mergers as targets of
opportunity (ToOs), rapidly scanning across their localization regions to
search for their kilonova (KN) counterparts. Early-time multiband
ultraviolet light curves of KNe are key to explaining the interplay between
jet and ejecta in binary neutron star mergers. Owing to high Galactic
extinction in the ultraviolet and the variation of GW distance estimates
over the sky, the sensitivity to kilonovae can vary significantly across the
GW localization and even across the footprint of a single image given UVEX's
large field of view. Good ToO observing strategies to trade off between area
and depth are neither simple nor obvious. We present an optimal strategy for
GW follow-up with UVEX in which exposure time is adjusted dynamically for
each field individually to maximize the overall probability of detection. We
model the scheduling problem using the expressive and powerful mathematical
framework of mixed integer linear programming (MILP), and employ a
state-of-the-art MILP solver to automatically generate observing plan
timelines that achieve high probabilities of kilonova detection. We have
implemented this strategy in an open-source astronomical scheduling software
package called the Multi-Mission Multi-Messenger Observation Planning
Toolkit (M4OPT), on GitHub at https://github.com/m4opt/m4opt.
authors:
- family-names: Singer
given-names: Leo P.
- family-names: Criswell
given-names: Alexander W.
- family-names: Leggio
given-names: Sydney C.
- family-names: Kiendrebeogo
given-names: R. Weizmann
- family-names: Coughlin
given-names: Michael W.
- family-names: Earnshaw
given-names: Hannah P.
- family-names: Gezari
given-names: Suvi
- family-names: Grefenstette
given-names: Brian W.
- family-names: Harrison
given-names: Fiona A.
- family-names: Kasliwal
given-names: Mansi M.
- family-names: Morris
given-names: Brett M.
- family-names: Tollerud
given-names: Erik
- family-names: Cenko
given-names: S. Bradley
doi: 10.48550/ARXIV.2502.17560
identifiers:
- type: doi
value: 10.48550/ARXIV.2502.17560
- type: url
value: https://arxiv.org/abs/2502.17560
title: >-
Optimal Follow-Up of Gravitational-Wave Events with the UltraViolet EXplorer
(UVEX)
url: https://arxiv.org/abs/2502.17560
version: '1'
date-published: 2025-01-01
year: 2025
publisher:
name: arXiv
type: article
GitHub Events
Total
- Create event: 38
- Release event: 4
- Issues event: 51
- Watch event: 7
- Delete event: 39
- Issue comment event: 261
- Push event: 252
- Pull request review event: 153
- Pull request review comment event: 183
- Pull request event: 284
- Fork event: 5
Last Year
- Create event: 38
- Release event: 4
- Issues event: 51
- Watch event: 7
- Delete event: 39
- Issue comment event: 261
- Push event: 252
- Pull request review event: 153
- Pull request review comment event: 183
- Pull request event: 284
- Fork event: 5
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 23
- Total pull requests: 95
- Average time to close issues: 6 days
- Average time to close pull requests: 2 days
- Total issue authors: 5
- Total pull request authors: 5
- Average comments per issue: 0.78
- Average comments per pull request: 0.89
- Merged pull requests: 69
- Bot issues: 1
- Bot pull requests: 38
Past Year
- Issues: 22
- Pull requests: 94
- Average time to close issues: 6 days
- Average time to close pull requests: 2 days
- Issue authors: 5
- Pull request authors: 5
- Average comments per issue: 0.82
- Average comments per pull request: 0.9
- Merged pull requests: 68
- Bot issues: 1
- Bot pull requests: 37
Top Authors
Issue Authors
- lpsinger (24)
- weizmannk (8)
- pllim (1)
- fziruo (1)
- Yogesh-wagha (1)
- dependabot[bot] (1)
- pre-commit-ci[bot] (1)
Pull Request Authors
- lpsinger (180)
- pre-commit-ci[bot] (39)
- dependabot[bot] (17)
- weizmannk (8)
- Yogesh-wagha (2)
- cbard (1)
- devas015 (1)
Top Labels
Issue Labels
NPR 7150 (2)
CI (2)
dependencies (1)
Pull Request Labels
dependencies (17)
github_actions (9)