Update supported versions [#419]: - Python >= 3.9 - numpy >= 1.26 - scipy >= 1.10
- Added functionality to sbpy.Names.from_packed() and sbpy.Names.to_packed() to handle new extended provisional designations to be implemented by the MPC in anticipation of higher asteroid discovery rates in the LSST survey era [#406]
- Deprecated sbpy.ginga_plugins in favor of using sbpy-ginga at https://github.com/NASA-Planetary-Science/sbpy-ginga [#413]
- New command-line script:
sbpy-ephem
. [#396]
- Replaced calls to the deprecated function scipy.integrate.romberg with scipy.integrate.quad. [#412]
- Fixed `sbpy.Names.to_packed()' to raise an error in cases of invalid cometary designations with fragment specifiers (e.g., "2024 A-A" and "2024 A-AA" now correctly raise TargetNameParseError exceptions) [#417]
- Fixed `sbpy.Names.parse_comet()' to raise an error in cases of a provisional asteroid designation submitted with no space after the year (e.g., "2015XN77"), which was previously being interpreted as a well-formed comet designation (i.e., with number=2015, type=X, and name=N77), but now raises a TargetNameParseError [#422]
- Fixed `sbpy.Names.parse_asteroid()' to raise an error in cases of a provisional comet designation submitted with no forward slash between the lead character and the year, and no space after the year (e.g., "P2015XN77"), which was previously being interpreted as a packed asteroid designation, but now raises a TargetNameParseError [#422]
- Revised required and optional packages:
- Only numpy and astropy are required; scipy, synphot, ads, and astroquery are now optional dependencies. [#383]
- Created an option to install a recommended list of packages, e.g.,
pip install sbpy[recommended]
. [#383] - Require astropy >= 5.3.3 to avoid a security vulnerability. [#400]
- New sbpy.activity.CircularAperture.from_coma_equivalent() to immediately create a CircularAperture from any other Aperture given a nominal coma surface brightness distribution. [#393]
- New class to encapsulate dynamical state vectors: sbpy.dynamics.state.State. [#394]
- New support for dynamical integrations: sbpy.dynamics.models. Three models are implemented: FreeExpansion, SolarGravity, and SolarGravityAndRadiationPressure. [#394]
- New ability to produce dust syndynes and synchrones: sbpy.dynamics.syndynes. [#394]
- New sub-module to support conversions to NAIF SPICE ephemeris time. [#394]
- New required_packages and optional_packages functions to test for the presence of required and optional packages. [#383]
- New requires and optionally_uses function decorators to simplify testing for required and optional packages. [#383]
- Deprecated
SynphotRequired
. Usesbpy.execptions.RequiredPackageUnavailable
. [#383]
sbpy.sources.SpectralSource
now correctly raisesRequiredPackageUnavailable
whensynphot
is not available, replacing a locally definedSynphotRequired
or the genericImportError
. [#383]- Fix sbpy.photometry.bandpass crash when reading in SDSS filter transmission curves using synphot 1.4. [#400]
- Fixed: the CALSPEC solar spectrum was missing from solar_sources. [#387]
- Updated minimum supported versions: - Python 3.8 - numpy 1.18 - astropy 4.3 - synphot 1.1 - astroquery 0.4.5
- Added
VectorialModel.binned_production
constructor for compatibility with time-dependent production implemented in the original FORTRAN vectorial model code by Festou. [#336] - Added
VMResult
,VMFragmentSputterPolar
,VMParams
,VMGridParams
,VMFragment
, andVMParent
dataclasses to expose details ofVectorialModel
results that may be of interest. [#336]
- Added a model spectrum of the Sun from STScI's CALSPEC database (Bohlin et al. 2014, PASP 126, 711, DOI:10.1086/677655). [#371]
- Added
Orbit.tisserand
to calculate the Tisserand parameter of small body's orbits with respect to planets. [#325] - Added
Orbit.D_criterion
to evaluate the D-criterion between two sets of orbital elements. [#325] - Added
DataClass.__contains__
to enable in operator forDataClass
objects. [#357] - Added
DataClass.add_row
,DataClass.vstack
methods. [#367]
- Added parameter constraints to the IAU disk-integrated phase function models,
such as
HG
,HG1G2
,HG12
, andHG12_Pen16
. [#366]
- Index page has been reorganized. [#337]
VectorialModel
now no longer takes anangular_substeps
parameter. [#336]
- IAU HG series functions moved from sbpy.photometry.core to sbpy.photometry.iau. [#354]
- Replaced
NonmonotonicPhaseFunctionWarning
withInvalidPhaseFunctionWarning
. [#366]
- Updated STScI URLs for solar spectra (Castelli and Kurucz models). [#345]
- Cometary magnitudes obtained via
Phys.from_sbdb
(i.e., M1 and M2) now have appropriate units. [#349] - Asteroids with A/ designations (e.g., A/2019 G2) are correctly identified by
Names
as asteroids. Improved handling of interstellar object (I/) designations: they do not parse as cometary or asteroidal. [#334, #340]
- New
VectorialModel
to implement the Festou (1981) model of the same name. The code reproduces tests based on the literature within 20%, but the causes of the differences are unknown. Help testing this new feature is appreciated. [#278, #305]
DataClass
fields are now checked for physically consistent units (e.g., heliocentric distance in units of length), or that they areTime
objects, as appropriate. [#275]
- Add ATLAS c and o bandpasses to
bandpass
. [#258]
- Add the ability to redden
SpectralSource
(such as theSun
model insbpy.calib
) with a new.redden()
method. [#289]
- Allow apertures to be astropy
Quantity
objects inGasComa
models, e.g.,Haser
. [#306]
- Corrected
Orbit.oo_propagate
units on angles from degrees to radians. [#262] - Corrected
Orbit
fields from openorb to use'Tp'
for perihelion date epochs as astropyTime
objects, instead of'Tp_jd'
. [#262] - Corrected
Name.from_packed
which could not unpack strings including "j". [#271] - Remove hard-coded URL for JPL Horizons and astroquery's
Horizons
objects. [#295] - NaNs no longer crash
Phys.from_sbdb
. [#297] - When units are not included in the
Phys.from_sbdb
results returned from NASA JPL, return unit-less values (and any description of the units, such as'density_sig'
) to the user. [#297] Names.parse_comet
now correctly parses Pan-STARRS if included in a comet name string, and corrected the label for fragment names in C/ objects:'fragm'
-->'fragment'
. [#279]- Preserve the order of the user's requested epochs in
Ephem.from_horizons
. [#318]
- Corrected PS1 filter wavelength units in
bandpass
from Å to nm. [#258] - Fix
HG1G2
to respect the units on phase angleph
or else assume radians. [#288]
DataClass.field_names
now returns a list of field names rather than a list of internal column names. [#275]
- Improved compatibility with Python 3.8 [#259]
- Added support for astropy 4.0, drop support for astropy 3. [#260, #322]
- Infrastructure updated to use contemporary astropy project standards. [#284]
- Tests may be run in parallel with pytest, e.g., using
-n auto
. [#297]
None
- Fix exception from
Haser
whenCircularAperture
in linear units is used. [#240]
DataClass.__getitem__
now always returns a new object of the same class, unless a single field name is provided in which case an astropy.Table.Column (no units provided) or astropy.units.Quantity (units provided) is returned. [#238]- Fixed
Ephem.from_horizons
to skip adding units to the'siderealtime'
field if it is missing. Now, the only required field is'epoch'
. [#242] Ephem.from_horizons
no longer modifies theepochs
parameter in-place. [#247]
- Fixed
HG12_Pen16
calculations, which were using the 2010 G1 and G2 definitions. [#233] - Use "Partner" under NASA logo. [#249]
None
- Test
Haser.column_density
output for angular apertures << lengthscale. [#243]
- Use HTTPS everywhere. [#244]
This version was not released.
This changelog tracks changes to sbpy starting with version v0.2. Recommended subsection titles: New Features, Bug Fixes, API Changes, and Other Changes and Additions. Recommended sub-sub-section titles: sbpy submodules, in alphabetical order.