diff --git a/.github/workflows/joss-compile.yml b/.github/workflows/joss-compile.yml new file mode 100644 index 00000000..eecf0d13 --- /dev/null +++ b/.github/workflows/joss-compile.yml @@ -0,0 +1,23 @@ +on: [push] + +jobs: + paper: + runs-on: ubuntu-latest + name: Paper Draft + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@master + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: paper/paper.md + - name: Upload + uses: actions/upload-artifact@v1 + with: + name: paper + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper/paper.pdf diff --git a/docs/index.rst b/docs/index.rst index a6ae3821..54f5f8c5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -55,6 +55,14 @@ User Guide: Changelog: ++++++++++ +**3.1.0 (2024-9-09)** + +- JOSS paper published! (@sblunt et al) + +**3.0.1 (2024-8-19)** + +- bugfix for issue #370 involving saving and loading hipparcos.py objects (@sblunt) + **3.0.0 (2024-4-15)** - implementation of Hipparcos-Gaia catalog of accelerations fitting! (@semaphoreP) diff --git a/docs/installation.rst b/docs/installation.rst index cb69ee3b..e7ab5c92 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -87,7 +87,8 @@ of the repo: .. code-block:: bash - $ pip install -r requirements.txt -e . + $ pip install -r requirements.txt + $ pip install -e . --upgrade Issues? +++++++ diff --git a/orbitize/__init__.py b/orbitize/__init__.py index 4f31da90..1eff7b10 100644 --- a/orbitize/__init__.py +++ b/orbitize/__init__.py @@ -1,6 +1,6 @@ import os -__version__ = "3.0.0" +__version__ = "3.1.0" # set Python env variable to keep track of example data dir orbitize_dir = os.path.dirname(__file__) diff --git a/orbitize/results.py b/orbitize/results.py index ba502574..cecacaff 100644 --- a/orbitize/results.py +++ b/orbitize/results.py @@ -197,7 +197,7 @@ def load_results(self, filename, append=False): iad_data = hf.get("IAD_datafile") if iad_data is not None: - tmpfile = 'thisisprettyhackysorrylmao' + tmpfile = 'tmpfile_OkToDeleteAfterFitFinishes' with open(tmpfile, 'w+') as f: try: for l in np.array(iad_data): @@ -218,8 +218,6 @@ def load_results(self, filename, append=False): renormalize_errors, ) - os.system('rm {}'.format(tmpfile)) - # load Gaia data try: gaia_num = int(hf.attrs['gaia_num']) @@ -232,14 +230,14 @@ def load_results(self, filename, append=False): gaiagost_data = hf.get("Gaia_GOST") if gaiagost_data is not None: - tmpfile = 'thisisprettyhackysorrylmao' + tmpfile = 'tmpfile_OkToDeleteAfterFitFinishes' tmptbl = table.Table(np.array(gaiagost_data)) tmptbl.write(tmpfile, format="ascii", overwrite=True) gaia = orbitize.gaia.HGCALogProb(int(hip_num), hipparcos_IAD, tmpfile) hipparcos_IAD = None # HGCA handles hipparocs, so don't want to pass Hipparcos also into the system - os.system('rm {}'.format(tmpfile)) + else: hipparcos_IAD = None gaia = None diff --git a/paper/paper.bib b/paper/paper.bib new file mode 100644 index 00000000..e311971e --- /dev/null +++ b/paper/paper.bib @@ -0,0 +1,306 @@ +@ARTICLE{Blunt:2020, + author = {{Blunt}, Sarah and {Wang}, Jason J. and {Angelo}, Isabel and {Ngo}, Henry and {Cody}, Devin and {De Rosa}, Robert J. and {Graham}, James R. and {Hirsch}, Lea and {Nagpal}, Vighnesh and {Nielsen}, Eric L. and {Pearce}, Logan and {Rice}, Malena and {Tejada}, Roberto}, + title = "{orbitize!: A Comprehensive Orbit-fitting Software Package for the High-contrast Imaging Community}", + journal = {The Astronomical Journal}, + keywords = {Open source software, Orbit determination, 1866, 1175, Astrophysics - Earth and Planetary Astrophysics}, + year = 2020, + month = mar, + volume = {159}, + number = {3}, + eid = {89}, + pages = {89}, + doi = {10.3847/1538-3881/ab6663}, +archivePrefix = {arXiv}, + eprint = {1910.01756}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020AJ....159...89B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Thompson:2023, + author = {{Thompson}, William and {Lawrence}, Jensen and {Blakely}, Dori and {Marois}, Christian and {Wang}, Jason and {Giordano}, Mos{\'e} and {Brandt}, Timothy and {Johnstone}, Doug and {Ruffio}, Jean-Baptiste and {Ammons}, S. Mark and {Crotts}, Katie A. and {Do {\'O}}, Clarissa R. and {Gonzales}, Eileen C. and {Rice}, Malena}, + title = "{Octofitter: Fast, Flexible, and Accurate Orbit Modeling to Detect Exoplanets}", + journal = {The Astronomical Journal}, + keywords = {Exoplanet detection methods, Bayesian statistics, Direct imaging, 489, 1900, 387, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2023, + month = oct, + volume = {166}, + number = {4}, + eid = {164}, + pages = {164}, + doi = {10.3847/1538-3881/acf5cc}, +archivePrefix = {arXiv}, + eprint = {2402.01971}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2023AJ....166..164T}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{Brandt:2021, + author = {{Brandt}, Timothy D. and {Dupuy}, Trent J. and {Li}, Yiting and {Brandt}, G. Mirek and {Zeng}, Yunlin and {Michalik}, Daniel and {Bardalez Gagliuffi}, Daniella C. and {Raposo-Pulido}, Virginia}, + title = "{orvara: An Efficient Code to Fit Orbits Using Radial Velocity, Absolute, and/or Relative Astrometry}", + journal = {The Astronomical Journal}, + keywords = {Orbit determination, Keplerian orbit, Astronomy software, Exoplanet astronomy, Astrometric exoplanet detection, Radial velocity, 1175, 884, 1855, 486, 2130, 1332, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Solar and Stellar Astrophysics}, + year = 2021, + month = nov, + volume = {162}, + number = {5}, + eid = {186}, + pages = {186}, + doi = {10.3847/1538-3881/ac042e}, +archivePrefix = {arXiv}, + eprint = {2105.11671}, + primaryClass = {astro-ph.IM}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021AJ....162..186B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{ONeil:2019, + author = {{O'Neil}, K. Kosmo and {Martinez}, G.~D. and {Hees}, A. and {Ghez}, A.~M. and {Do}, T. and {Witzel}, G. and {Konopacky}, Q. and {Becklin}, E.~E. and {Chu}, D.~S. and {Lu}, J.~R. and {Matthews}, K. and {Sakai}, S.}, + title = "{Improving Orbit Estimates for Incomplete Orbits with a New Approach to Priors: with Applications from Black Holes to Planets}", + journal = {The Astronomical Journal}, + keywords = {Galaxy: center, Galaxy: fundamental parameters, methods: statistical, planets and satellites: fundamental parameters, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Astrophysics of Galaxies}, + year = 2019, + month = jul, + volume = {158}, + number = {1}, + eid = {4}, + pages = {4}, + doi = {10.3847/1538-3881/ab1d66}, +archivePrefix = {arXiv}, + eprint = {1809.05490}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019AJ....158....4O}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Bryan:2020, + author = {{Bryan}, Marta L. and {Chiang}, Eugene and {Bowler}, Brendan P. and {Morley}, Caroline V. and {Millholland}, Sarah and {Blunt}, Sarah and {Ashok}, Katelyn B. and {Nielsen}, Eric and {Ngo}, Henry and {Mawet}, Dimitri and {Knutson}, Heather A.}, + title = "{Obliquity Constraints on an Extrasolar Planetary-mass Companion}", + journal = {The Astronomical Journal}, + keywords = {Exoplanet systems, High resolution spectroscopy, Direct imaging, Photometry, 484, 2096, 387, 1234, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Solar and Stellar Astrophysics}, + year = 2020, + month = apr, + volume = {159}, + number = {4}, + eid = {181}, + pages = {181}, + doi = {10.3847/1538-3881/ab76c6}, +archivePrefix = {arXiv}, + eprint = {2002.11131}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020AJ....159..181B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Ferrer-Chavez:2021, + author = {{Ferrer-Ch{\'a}vez}, Rodrigo and {Blunt}, Sarah and {Wang}, Jason J.}, + title = "{Algorithmic Speedups and Posterior Biases from Orbit Fitting of Directly Imaged Exoplanets in Cartesian Coordinates}", + journal = {Research Notes of the American Astronomical Society}, + keywords = {Exoplanets, Exoplanet astronomy, Direct imaging, Exoplanet detection methods, Bayesian statistics, Posterior distribution, Markov chain Monte Carlo, Affine invariant, 498, 486, 387, 489, 1900, 1926, 1889, 1890}, + year = 2021, + month = jul, + volume = {5}, + number = {7}, + eid = {162}, + pages = {162}, + doi = {10.3847/2515-5172/ac151d}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021RNAAS...5..162F}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@article{Surti:2023, + abstract = {The exoplanet orbit-fitting software package orbitize! was initially designed to fit the orbits of directly imaged planets with relative astrometric measurements using a Markov Chain Monte Carlo (MCMC) algorithm. Since the publication of orbitize! v1.0, the ability to jointly fit radial velocities and astrometry has been incorporated. We first implemented a Basis class into orbitize! that enables users to add and fit in various orbit parameterizations. We then introduced a radial velocity-focused parameterization of the Keplerian orbital elements for the joint radial velocity and astrometry fits. We compared MCMC convergence speeds of the new radial velocity-focused basis to the original orbitize! standard basis for the system HD 190771, which has full orbital coverage in radial velocity data. We found a 16% faster convergence in time with the radial velocity-focused basis. We encourage users to consider using this basis when doing joint radial velocity and astrometry fits.}, + author = {Tirth Surti and Lea Hirsch and Tabassom Madayen and Ziyyad Ali and Eric Nielsen and Sarah Blunt and Jason Wang and Rodrigo Ferrer-Ch{\'a}vez and Bruce Macintosh}, + doi = {10.3847/2515-5172/acdc29}, + journal = {Research Notes of the American Astronomical Society}, + month = {jun}, + number = {6}, + pages = {121}, + publisher = {The American Astronomical Society}, + title = {Improving MCMC Convergence for Joint Astrometry and Radial Velocity Orbit-fits Through Reparameterization}, + url = {https://dx.doi.org/10.3847/2515-5172/acdc29}, + volume = {7}, + year = {2023}, + bdsk-url-1 = {https://dx.doi.org/10.3847/2515-5172/acdc29}} + + +@ARTICLE{Covarrubias:2022, + author = {{Covarrubias}, Sofia and {Blunt}, Sarah and {Wang}, Jason J.}, + title = "{N-body Interactions will be Detectable in the HR-8799 System within 5 yr with VLTI-GRAVITY}", + journal = {Research Notes of the American Astronomical Society}, + keywords = {Astrometric exoplanet detection, Exoplanet dynamics, Exoplanet systems, 2130, 490, 484, Astrophysics - Earth and Planetary Astrophysics}, + year = 2022, + month = mar, + volume = {6}, + number = {3}, + eid = {66}, + pages = {66}, + doi = {10.3847/2515-5172/ac61d8}, +archivePrefix = {arXiv}, + eprint = {2204.03679}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2022RNAAS...6...66C}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{Speagle:2020, + author = {{Speagle}, Joshua S.}, + title = "{DYNESTY: a dynamic nested sampling package for estimating Bayesian posteriors and evidences}", + journal = {Monthly Notices of the Royal Astronomical Society}, + keywords = {methods: data analysis, methods: statistical, Astrophysics - Instrumentation and Methods for Astrophysics, Statistics - Computation}, + year = 2020, + month = apr, + volume = {493}, + number = {3}, + pages = {3132-3158}, + doi = {10.1093/mnras/staa278}, +archivePrefix = {arXiv}, + eprint = {1904.02180}, + primaryClass = {astro-ph.IM}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020MNRAS.493.3132S}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{Nielsen:2020, + author = {{Nielsen}, Eric L. and {De Rosa}, Robert J. and {Wang}, Jason J. and {Sahlmann}, Johannes and {Kalas}, Paul and {Duch{\^e}ne}, Gaspard and {Rameau}, Julien and {Marley}, Mark S. and {Saumon}, Didier and {Macintosh}, Bruce and {Millar-Blanchaer}, Maxwell A. and {Nguyen}, Meiji M. and {Ammons}, S. Mark and {Bailey}, Vanessa P. and {Barman}, Travis and {Bulger}, Joanna and {Chilcote}, Jeffrey and {Cotten}, Tara and {Doyon}, Rene and {Esposito}, Thomas M. and {Fitzgerald}, Michael P. and {Follette}, Katherine B. and {Gerard}, Benjamin L. and {Goodsell}, Stephen J. and {Graham}, James R. and {Greenbaum}, Alexandra Z. and {Hibon}, Pascale and {Hung}, Li-Wei and {Ingraham}, Patrick and {Konopacky}, Quinn and {Larkin}, James E. and {Maire}, J{\'e}r{\^o}me and {Marchis}, Franck and {Marois}, Christian and {Metchev}, Stanimir and {Oppenheimer}, Rebecca and {Palmer}, David and {Patience}, Jennifer and {Perrin}, Marshall and {Poyneer}, Lisa and {Pueyo}, Laurent and {Rajan}, Abhijith and {Rantakyr{\"o}}, Fredrik T. and {Ruffio}, Jean-Baptiste and {Savransky}, Dmitry and {Schneider}, Adam C. and {Sivaramakrishnan}, Anand and {Song}, Inseok and {Soummer}, Remi and {Thomas}, Sandrine and {Wallace}, J. Kent and {Ward-Duong}, Kimberly and {Wiktorowicz}, Sloane and {Wolff}, Schuyler}, + title = "{The Gemini Planet Imager Exoplanet Survey: Dynamical Mass of the Exoplanet {\ensuremath{\beta}} Pictoris b from Combined Direct Imaging and Astrometry}", + journal = {The Astronomical Journal}, + keywords = {Astrometry, Direct imaging, Exoplanets, Coronagraphic imaging, Orbit determination, 80, 387, 498, 313, 1175, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Solar and Stellar Astrophysics}, + year = 2020, + month = feb, + volume = {159}, + number = {2}, + eid = {71}, + pages = {71}, + doi = {10.3847/1538-3881/ab5b92}, +archivePrefix = {arXiv}, + eprint = {1911.11273}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020AJ....159...71N}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{Blunt:2023a, + author = {{Blunt}, Sarah and {Balmer}, W.~O. and {Wang}, J.~J. and {Lacour}, S. and {Petrus}, S. and {Bourdarot}, G. and {Kammerer}, J. and {Pourr{\'e}}, N. and {Rickman}, E. and {Shangguan}, J. and {Winterhalder}, T. and {Abuter}, R. and {Amorim}, A. and {Asensio-Torres}, R. and {Benisty}, M. and {Berger}, J. -P. and {Beust}, H. and {Boccaletti}, A. and {Bohn}, A. and {Bonnefoy}, M. and {Bonnet}, H. and {Brandner}, W. and {Cantalloube}, F. and {Caselli}, P. and {Charnay}, B. and {Chauvin}, G. and {Chavez}, A. and {Choquet}, E. and {Christiaens}, V. and {Cl{\'e}net}, Y. and {Du Foresto}, V. Coud{\'e} and {Cridland}, A. and {Dembet}, R. and {Drescher}, A. and {Duvert}, G. and {Eckart}, A. and {Eisenhauer}, F. and {Feuchtgruber}, H. and {Garcia}, P. and {Garcia Lopez}, R. and {Gendron}, E. and {Genzel}, R. and {Gillessen}, S. and {Girard}, J.~H. and {Haubois}, X. and {Hei{\ss}el}, G. and {Henning}, Th. and {Hinkley}, S. and {Hippler}, S. and {Horrobin}, M. and {Houll{\'e}}, M. and {Hubert}, Z. and {Jocou}, L. and {Keppler}, M. and {Kervella}, P. and {Kreidberg}, L. and {Lagrange}, A. -M. and {Lapeyr{\`e}re}, V. and {Le Bouquin}, J. -B. and {L{\'e}na}, P. and {Lutz}, D. and {Maire}, A. -L. and {Mang}, F. and {Marleau}, G. -D. and {M{\'e}rand}, A. and {Molli{\`e}re}, P. and {Monnier}, J.~D. and {Mordasini}, C. and {Mouillet}, D. and {Nasedkin}, E. and {Nowak}, M. and {Ott}, T. and {Otten}, G.~P.~P.~L. and {Paladini}, C. and {Paumard}, T. and {Perraut}, K. and {Perrin}, G. and {Pfuhl}, O. and {Pueyo}, L. and {Rameau}, J. and {Rodet}, L. and {Rustamkulov}, Z. and {Shimizu}, T. and {Sing}, D. and {Stolker}, T. and {Straubmeier}, C. and {Sturm}, E. and {Tacconi}, L.~J. and {van Dishoeck}, E.~F. and {Vigan}, A. and {Vincent}, F. and {Ward-Duong}, K. and {Widmann}, F. and {Wieprecht}, E. and {Wiezorrek}, E. and {Woillez}, J. and {Yazici}, S. and {Young}, A. and {Exogravity Collaboration}}, + title = "{First VLTI/GRAVITY Observations of HIP 65426 b: Evidence for a Low or Moderate Orbital Eccentricity}", + journal = {The Astronomical Journal}, + keywords = {Exoplanets, Exoplanet formation, Astrometry, Optical interferometry, 498, 492, 80, 1168, Astrophysics - Earth and Planetary Astrophysics}, + year = 2023, + month = dec, + volume = {166}, + number = {6}, + eid = {257}, + pages = {257}, + doi = {10.3847/1538-3881/ad06b7}, +archivePrefix = {arXiv}, + eprint = {2310.00148}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2023AJ....166..257B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + + +@ARTICLE{Bowler:2016, + author = {{Bowler}, Brendan P.}, + title = "{Imaging Extrasolar Giant Planets}", + journal = {Publications of the Astronomical Society of the Pacific}, + keywords = {Astrophysics - Earth and Planetary Astrophysics}, + year = 2016, + month = oct, + volume = {128}, + number = {968}, + pages = {102001}, + doi = {10.1088/1538-3873/128/968/102001}, +archivePrefix = {arXiv}, + eprint = {1605.02731}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2016PASP..128j2001B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Brandt:2021, + author = {{Brandt}, Timothy D.}, + title = "{The Hipparcos-Gaia Catalog of Accelerations: Gaia EDR3 Edition}", + journal = {The Astrophysical Journal Supplement Series}, + keywords = {Astrometry, Astrometric exoplanet detection, Astrometric binary stars, 80, 2130, 79, Astrophysics - Astrophysics of Galaxies, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Solar and Stellar Astrophysics}, + year = 2021, + month = jun, + volume = {254}, + number = {2}, + eid = {42}, + pages = {42}, + doi = {10.3847/1538-4365/abf93c}, +archivePrefix = {arXiv}, + eprint = {2105.11662}, + primaryClass = {astro-ph.GA}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021ApJS..254...42B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Lacour:2021, + author = {{Lacour}, S. and {Wang}, J.~J. and {Rodet}, L. and {Nowak}, M. and {Shangguan}, J. and {Beust}, H. and {Lagrange}, A. -M. and {Abuter}, R. and {Amorim}, A. and {Asensio-Torres}, R. and {Benisty}, M. and {Berger}, J. -P. and {Blunt}, S. and {Boccaletti}, A. and {Bohn}, A. and {Bolzer}, M. -L. and {Bonnefoy}, M. and {Bonnet}, H. and {Bourdarot}, G. and {Brandner}, W. and {Cantalloube}, F. and {Caselli}, P. and {Charnay}, B. and {Chauvin}, G. and {Choquet}, E. and {Christiaens}, V. and {Cl{\'e}net}, Y. and {Coud{\'e} Du Foresto}, V. and {Cridland}, A. and {Dembet}, R. and {Dexter}, J. and {de Zeeuw}, P.~T. and {Drescher}, A. and {Duvert}, G. and {Eckart}, A. and {Eisenhauer}, F. and {Gao}, F. and {Garcia}, P. and {Garcia Lopez}, R. and {Gendron}, E. and {Genzel}, R. and {Gillessen}, S. and {Girard}, J.~H. and {Haubois}, X. and {Hei{\ss}el}, G. and {Henning}, Th. and {Hinkley}, S. and {Hippler}, S. and {Horrobin}, M. and {Houll{\'e}}, M. and {Hubert}, Z. and {Jocou}, L. and {Kammerer}, J. and {Keppler}, M. and {Kervella}, P. and {Kreidberg}, L. and {Lapeyr{\`e}re}, V. and {Le Bouquin}, J. -B. and {L{\'e}na}, P. and {Lutz}, D. and {Maire}, A. -L. and {M{\'e}rand}, A. and {Molli{\`e}re}, P. and {Monnier}, J.~D. and {Mouillet}, D. and {Nasedkin}, E. and {Ott}, T. and {Otten}, G.~P.~P.~L. and {Paladini}, C. and {Paumard}, T. and {Perraut}, K. and {Perrin}, G. and {Pfuhl}, O. and {Rickman}, E. and {Pueyo}, L. and {Rameau}, J. and {Rousset}, G. and {Rustamkulov}, Z. and {Samland}, M. and {Shimizu}, T. and {Sing}, D. and {Stadler}, J. and {Stolker}, T. and {Straub}, O. and {Straubmeier}, C. and {Sturm}, E. and {Tacconi}, L.~J. and {van Dishoeck}, E.~F. and {Vigan}, A. and {Vincent}, F. and {von Fellenberg}, S.~D. and {Ward-Duong}, K. and {Widmann}, F. and {Wieprecht}, E. and {Wiezorrek}, E. and {Woillez}, J. and {Yazici}, S. and {Young}, A. and {Gravity Collaboration}}, + title = "{The mass of {\ensuremath{\beta}} Pictoris c from {\ensuremath{\beta}} Pictoris b orbital motion}", + journal = {Astronomy \& Astrophysics}, + keywords = {planets and satellites: detection, astrometry, instrumentation: interferometers, instrumentation: high angular resolution, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2021, + month = oct, + volume = {654}, + eid = {L2}, + pages = {L2}, + doi = {10.1051/0004-6361/202141889}, +archivePrefix = {arXiv}, + eprint = {2109.10671}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021A&A...654L...2L}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Bowler:2020, + author = {{Bowler}, Brendan P. and {Blunt}, Sarah C. and {Nielsen}, Eric L.}, + title = "{Population-level Eccentricity Distributions of Imaged Exoplanets and Brown Dwarf Companions: Dynamical Evidence for Distinct Formation Channels}", + journal = {The Astronomical Journal}, + keywords = {Exoplanet formation, Brown dwarfs, Extrasolar gaseous giant planets, 492, 185, 509, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Solar and Stellar Astrophysics}, + year = 2020, + month = feb, + volume = {159}, + number = {2}, + eid = {63}, + pages = {63}, + doi = {10.3847/1538-3881/ab5b11}, +archivePrefix = {arXiv}, + eprint = {1911.10569}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020AJ....159...63B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + + +@software{orbitize, + author = {Sarah Blunt and Jason Wang and Henry Ngo and isabelangelo and Devin Cody and TirthDS and vighneshnagpal and Sofia Covarrubias and thea-mckenna and jorgellop and Robert De Rosa and Mireya Arora and Rodrigo Ferrer-Ch{\'a}vez and Malena Rice and William O Balmer and Lea Hirsch and Adam J. R. W. Smith and Dino Chih-Chun Hsu and Michael Poon and Ryan Rubenzahl and Arya Das and Clarissa Rizzo Credidio Do O and hgallamore and Logan Pearce and MissingBrainException and Saanikachoudhary and Tomas Stolker and William Thompson and wcroberson}, + date-modified = {2024-08-21 11:28:42 -0700}, + doi = {10.5281/zenodo.1475226}, + month = aug, + publisher = {Zenodo}, + title = {{sblunt/orbitize: Hotfix for hipparcos saving/loading bug}}, + url = {https://doi.org/10.5281/zenodo.1475226}, + version = {v3.0.1}, + year = 2024, + bdsk-url-1 = {https://doi.org/10.5281/zenodo.1475226}} + diff --git a/paper/paper.md b/paper/paper.md new file mode 100644 index 00000000..fb4d4b1f --- /dev/null +++ b/paper/paper.md @@ -0,0 +1,199 @@ +--- +title: 'orbitize! v3: Orbit fitting for the High-contrast Imaging Community' +tags: + - Python + - astronomy + - Orbit fitting + - exoplanets + - high-contrast imaging +authors: + - name: Sarah Blunt + orcid: 0000-0002-3199-2888 + corresponding: true + affiliation: "1,2" + - name: Jason Jinfei Wang + orcid: 0000-0003-0774-6502 + affiliation: "1" + - name: Lea Hirsch + affiliation: "11" + - name: Roberto Tejada + affiliation: "12" + - name: Vighnesh Nagpal + orcid: 0000-0001-5909-4433 + affiliation: "13" + - name: Tirth Dharmesh Surti + affiliation: "5" + - name: Sofia Covarrubias + orcid: 0000-0003-1858-561X + affiliation: "2" + - name: Thea McKenna + orcid: 0009-0008-0290-2143 + affiliation: "1,6,7,8" + - name: Rodrigo Ferrer Chávez + affiliation: "1" + - name: Jorge Llop-Sayson + orcid: 0000-0002-3414-784X + affiliation: "4" + - name: Mireya Arora + affiliation: "14" + - name: Amanda Chavez + affiliation: "1" + - name: Devin Cody + orcid: 0000-0002-7713-5937 + affiliation: "9" + - name: Saanika Choudhary + affiliation: "1" + - name: Adam Smith + affiliation: "15" + - name: William Balmer + affiliation: "16" + - name: Tomas Stolker + orcid: 0000-0002-5823-3072 + affiliation: "3" + - name: Hannah Gallamore + affiliation: "15" + - name: Clarissa R. Do Ó + orcid: 0000-0001-5173-2947 + affiliation: "10" + - name: Eric L. Nielsen + affiliation: "15" + - name: Robert J. De Rosa + orcid: 0000-0002-4918-0247 + affiliation: "17" + +affiliations: + - name: Center for Interdisciplinary Exploration and Research in Astrophysics (CIERA), Northwestern University + index: 1 + - name: California Institute of Technology + index: 2 + - name: Leiden Observatory, Leiden University + index: 3 + - name: Jet Propulsion Laboratory, California Institute of Technology + index: 4 + - name: Department of Physics/Kavli Institute for Particle Astrophysics and Cosmology, Stanford University + index: 5 + - name: Southeastern Universities Research Association + index: 6 + - name: Astronomy Department, Cornell University + index: 7 + - name: NASA Goddard Space Flight Center, Code 698 + index: 8 + - name: Google LLC + index: 9 + - name: Department of Astronomy & Astrophysics, University of California San Diego + index: 10 + - name: Department of Chemical & Physical Sciences, University of Toronto Mississauga + index: 11 + - name: Department of Astrophysical Sciences, Princeton University + index: 12 + - name: University of California, Berkeley + index: 13 + - name: University of Michigan + index: 14 + - name: New Mexico State University + index: 15 + - name: Johns Hopkins University + index: 16 + - name: European Southern Observatory + index: 17 + + +date: 14 March 2024 +bibliography: paper.bib + +--- + +# Summary + +`orbitize!` is a package for Bayesian modeling of the orbital parameters of resolved binary +objects from time series measurements. It was developed with the needs of the high-contrast +imaging community in mind, and has since also become widely used in the binary star community. +A generic `orbitize!` use case involves translating relative astrometric time series, optionally +combined with radial velocity or astrometric time series, into a set of derived orbital posteriors. + +This paper is published alongside the release of `orbitize!` version 3.0, which +has seen significant enhancements in functionality and accessibility since the +release of version 1.0 [@Blunt:2020]. + +# Statement of need + +The orbital parameters of directly-imaged planets and binary stars can tell us about +their present-day dynamics and formation histories [@Bowler:2016], as well as about +their inherent physical characteristics (particularly mass, generally called "dynamical +mass" when derived from orbital constraints, e.g. @Brandt:2021, @Lacour:2021). + +`orbitize!` is widely used in the exoplanet imaging and binary star communities to translate astrometric data to information about eccentricities [@Bowler:2020], obliquities [@Bryan:2020], +dynamical masses [@Lacour:2021], and more. + +Each new released version of the `orbitize!` source code is automatically archived on Zenodo [@orbitize]. + +# Major features added since v1 + +For a detailed overview of the `orbitize!` API, core functionality (including information +about our Kepler solver), and initial verification, we refer the reader to @Blunt:2020. +This section lists major new features that have been added to the +code since the release of version 1.0 and directs the reader to more information about each of them. +A full descriptive list of modifications to the code is maintained in our +[changelog](https://orbitize.readthedocs.io/en/latest/#changelog). + +Major new features since v1 include: + +1. The functionality to jointly fit the radial velocity (RV) time series for the primary star together with the secondary companion (see Section 3 of @Blunt:2023a). For the primary star, the RV data can either be directly input into orbitize! (as explained in the [Radial Velocity Tutorial](https://orbitize.readthedocs.io/en/latest/tutorials/RV_MCMC_Tutorial.html)) or be fitted separately and then used as priors (as detailed in the [Non-orbitize! Posteriors as Priors Tutorial](https://orbitize.readthedocs.io/en/latest/tutorials/Using_nonOrbitize_Posteriors_as_Priors.html)). + +2. The ability to jointly fit absolute astrometry of the primary star. `orbitize!` can fit + the Hipparcos-Gaia catalog of accelerations (@Brandt:2021; see the [HGCA Tutorial](https://orbitize.readthedocs.io/en/latest/tutorials/HGCA_tutorial.html)), as well as Hipparcos intermediate astrometric data and Gaia + astrometry, following @Nielsen:2020 (see the [Hipparcos IAD Tutorial](https://orbitize.readthedocs.io/en/latest/tutorials/Hipparcos_IAD.html)). It can also handle arbitrary absolute astrometry (see the [Fitting Arbitrary Astrometry Tutorial](https://orbitize.readthedocs.io/en/latest/tutorials/abs_astrometry.html)). + +3. In addition to the MCMC and OFTI posterior computation algorithms documented in @Blunt:2020, + `orbitize!` version 3 also implements a nested sampling backend, via `dynesty` (@Speagle:2020; see the [`dynesty` Tutorial](https://github.com/sblunt/orbitize/blob/main/docs/tutorials/dynesty_tutorial.ipynb).) + +4. `orbitize!` version 3 implements two prescriptions for handling multi-planet effects. + Keplerian epicyclic motion of the primary star due to multiple orbiting bodies, + following @Lacour:2021, is discussed in the [Multi-planet Tutorial](https://orbitize.readthedocs.io/en/latest/tutorials/Multiplanet_Tutorial.html), and N-body interactions are discussed in @Covarrubias:2022. The Keplerian epicyclic motion + prescription only accounts for star-planet interactions, treating the motion of the star as a sum of Keplerian orbit signals, + while the N-body prescription models this effect as well as planet-planet interactions. + +5. The ability to fit in different orbital bases (@Ferrer-Chavez:2021, @Surti:2023; see the + [Changing Bases](https://orbitize.readthedocs.io/en/latest/tutorials/Changing_bases_tutorial.html) tutorial), as well + as the ability to apply the observation-based priors derived in @ONeil:2019 (see the [Observation-based Priors Tutorial](https://github.com/sblunt/orbitize/blob/main/docs/tutorials/ONeil-ObsPriors.ipynb)). + +# Verification and Documentation + +`orbitize!` implements a full stack of automated testing and documentation building +practices. We use GitHub Actions to automatically run a suite of unit tests, maintained in [orbitize/tests](https://github.com/sblunt/orbitize/tree/main/tests), +each time code is committed to the public repository or a pull request is opened. The Jupyter notebook +tutorials, maintained in [orbitize/docs/tutorials](https://github.com/sblunt/orbitize/tree/main/docs/tutorials), are also run automatically when a +pull request to the `main` branch is opened. Documentation is built using `sphinx`, and hosted +on readthedocs.org at [orbitize.info](https://orbitize.readthedocs.io/en/latest/). We also +maintain a set of longer-running tests in [orbitize/tests/end-to-end-tests](https://github.com/sblunt/orbitize/tree/main/tests/end-to-end-tests) that show real +scientific use cases of the code. These tests are not automatically run. + +`orbitize!` is documented through API docstrings describing individual functions, which are accessible on [our readthedocs page](https://orbitize.readthedocs.io/en/latest/api.html), a set of [Jupyter notebook tutorials](https://orbitize.readthedocs.io/en/latest/tutorials.html) walking the user through a particular application, a set of [frequently asked questions](https://orbitize.readthedocs.io/en/latest/faq.html), +and an in-progress ["manual"](https://orbitize.readthedocs.io/en/orbitize-manual/manual.html) describing orbit fitting with `orbitize!` from first principles. + +# Comparison to Similar Packages + +Since the release of `orbitize!` version 1, other open source packages have been released that have +similar goals to `orbitize!`, notably `orvara` [@Brandt:2021] and `octofitter` [@Thompson:2023]. This is a wonderful development, as all packages benefit from open sharing of knowledge! `orbitize!`, `orvara`, and `octofitter` can +do many similar things, but each has unique features and strengths; as an example, `octofitter` is +extraordinarily fast, and enables joint astrometry extraction and orbit modeling, while `orbitize!` has unique +abilities to fit arbitrary absolute astrometry (i.e. not from Hipparcos or Gaia) and model data using an N-body backend. +`orvara` analytically marginalizes over parallax assuming a prior informed by Gaia, a significant speed advantage, while +`orbitize!` allows different parallax priors to be used. We recommend that users of each package compare the implementations +of the particular features they wish to use. + +Best practices for orbit fitting, particularly using radial velocities, for which the treatment of stellar +activity is an active area of research, and absolute astrometry with Gaia and Hipparcos, for which the treatment of +correlated errors is an active area of research, evolve quickly. The philosophy of `orbitize!` +is to, as much as possible, implement multiple approaches to a problem, evidenced by our multiple +implementations of radial velocity joint fitting and absolute astrometry joint fitting (described above). +For detailed information about our particular implementations, we refer the reader to our [documentation](https://orbitize.readthedocs.io/en/latest/). + +# Acknowledgements + +Our team gratefully acknowledges support from the Heising-Simons Foundation. S.B. and J.J.W. are supported by NASA Grant 80NSSC23K0280. E.L.N. is supported by NASA Grants 21-ADAP21-0130 and 80NSSC21K0958. + + +This paper describes additions made to `orbitize!` between versions 1.0.0 and 3.0.0. We are extremely grateful to Isabel Angelo, Henry Ngo, James Graham, Logan Pearce, and Malena Rice, who contribtued code to version 1.0.0, and are included as authors in @Blunt:2020. + +# References diff --git a/tests/test_hipparcos.py b/tests/test_hipparcos.py index cb39df40..08299835 100644 --- a/tests/test_hipparcos.py +++ b/tests/test_hipparcos.py @@ -258,7 +258,10 @@ def test_save_load_2021(): myResults = results.Results() myResults.load_results(filename) - os.system("rm tmp*.hdf5") + filename = "tmp3.hdf5" + myResults.save_results(filename) + + os.system("rm tmp*") if __name__ == "__main__":