Update supported versions [#419]: - Python >= 3.9 - numpy >= 1.26 - scipy >= 1.10
- Added active and quiet sun photolysis rates for H2O and CO2 from Huebner & Mukherjee 2015 to sbpy.activity.gas.photo_timescale. [#425]
- 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]
- Data source is now a required parameter for
sbpy.activity.gas.photo_lengthscale and sbpy.activity.gas.photo_timescale.
If the data source is
None, then a table of sources will be printed. [#425]
- Data source is now a required parameter for sbpy.activity.gas.productionrate.beta_factor. [#425]
- 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.SpectralSourcenow correctly raisesRequiredPackageUnavailablewhensynphotis not available, replacing a locally definedSynphotRequiredor 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_productionconstructor for compatibility with time-dependent production implemented in the original FORTRAN vectorial model code by Festou. [#336] - Added
VMResult,VMFragmentSputterPolar,VMParams,VMGridParams,VMFragment, andVMParentdataclasses to expose details ofVectorialModelresults 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.tisserandto calculate the Tisserand parameter of small body's orbits with respect to planets. [#325] - Added
Orbit.D_criterionto evaluate the D-criterion between two sets of orbital elements. [#325] - Added
DataClass.__contains__to enable in operator forDataClassobjects. [#357] - Added
DataClass.add_row,DataClass.vstackmethods. [#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]
VectorialModelnow no longer takes anangular_substepsparameter. [#336]
- IAU HG series functions moved from sbpy.photometry.core to sbpy.photometry.iau. [#354]
- Replaced
NonmonotonicPhaseFunctionWarningwithInvalidPhaseFunctionWarning. [#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
Namesas asteroids. Improved handling of interstellar object (I/) designations: they do not parse as cometary or asteroidal. [#334, #340]
- New
VectorialModelto 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]
DataClassfields are now checked for physically consistent units (e.g., heliocentric distance in units of length), or that they areTimeobjects, as appropriate. [#275]
- Add ATLAS c and o bandpasses to
bandpass. [#258]
- Add the ability to redden
SpectralSource(such as theSunmodel insbpy.calib) with a new.redden()method. [#289]
- Allow apertures to be astropy
Quantityobjects inGasComamodels, e.g.,Haser. [#306]
- Corrected
Orbit.oo_propagateunits on angles from degrees to radians. [#262] - Corrected
Orbitfields from openorb to use'Tp'for perihelion date epochs as astropyTimeobjects, instead of'Tp_jd'. [#262] - Corrected
Name.from_packedwhich could not unpack strings including "j". [#271] - Remove hard-coded URL for JPL Horizons and astroquery's
Horizonsobjects. [#295] - NaNs no longer crash
Phys.from_sbdb. [#297] - When units are not included in the
Phys.from_sbdbresults returned from NASA JPL, return unit-less values (and any description of the units, such as'density_sig') to the user. [#297] Names.parse_cometnow 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
bandpassfrom Å to nm. [#258] - Fix
HG1G2to respect the units on phase anglephor else assume radians. [#288]
DataClass.field_namesnow 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
HaserwhenCircularAperturein 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_horizonsto skip adding units to the'siderealtime'field if it is missing. Now, the only required field is'epoch'. [#242] Ephem.from_horizonsno longer modifies theepochsparameter in-place. [#247]
- Fixed
HG12_Pen16calculations, which were using the 2010 G1 and G2 definitions. [#233] - Use "Partner" under NASA logo. [#249]
None
- Test
Haser.column_densityoutput 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.