Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
43a3f58
Fix variable name and runtime error
wei-lingfeng Feb 21, 2025
96ec523
Merge branch 'astropy:main' into main
wei-lingfeng Mar 18, 2025
e88571f
Add random generator support
wei-lingfeng Apr 26, 2025
fd875c5
Suppress divided by zero warnings
wei-lingfeng Apr 26, 2025
bb49170
Add verbose control
wei-lingfeng Apr 26, 2025
ce64564
Major Update: Accelerate generating resolved cluster by vectorization
wei-lingfeng Apr 26, 2025
d29717c
Merge remote-tracking branch 'origin' into dev
wei-lingfeng Apr 26, 2025
3a9abd4
Added verbose control in IsochronePhot; Switched to super init
wei-lingfeng May 15, 2025
446c225
Merge branch 'astropy:dev' into dev
wei-lingfeng May 15, 2025
a452fa7
Raise informative error message for age and metallicity ranges
wei-lingfeng Oct 9, 2025
8704f54
Add confirmation before generating isochrone when verbose=True; Chang…
wei-lingfeng Oct 9, 2025
ff7015b
adding euclid VIS
Jan 26, 2026
d8391c9
Update filters.rst
hustonm Jan 26, 2026
1906efe
Merge branch 'dev' of https://github.com/astropy/SPISEA into dev
wei-lingfeng Jan 30, 2026
d43fbf1
Passed all tests after merging with masked array companion mass updat…
wei-lingfeng Feb 2, 2026
50d3def
Merge branch 'main' of https://github.com/astropy/SPISEA into dev
wei-lingfeng Feb 2, 2026
1279e31
Fixed evo model error in test, passed all tests
wei-lingfeng Feb 2, 2026
e8e2ab7
Merge pull request #136 from astropy/euclid_vis
mwhosek Feb 4, 2026
9d051cb
Nothing but remove trailing white spaces
wei-lingfeng Feb 6, 2026
4cccd8c
Complete missing docstring
wei-lingfeng Feb 6, 2026
3237c57
Added IRTF NSFCam L filter, updated filters.py and synthetic.py
Rocketpack23 Feb 11, 2026
c100459
Edited filters.py to include irtf/nsfcam
Rocketpack23 Feb 11, 2026
e3f520c
Edited synthetic.py to include irtf/nsfcam
Rocketpack23 Feb 11, 2026
cde187d
Add random state testing
wei-lingfeng Feb 12, 2026
1d845f3
Revert back to np.random.seed and check companion consistency
wei-lingfeng Feb 19, 2026
7fcfb2f
Added star system random state test with the main branch
wei-lingfeng Feb 19, 2026
bd5591e
Merge pull request #138 from wei-lingfeng/dev_reproduce
mwhosek Feb 20, 2026
a81ad27
Updating to next version
Feb 20, 2026
fbdbb11
updating changelog
Feb 20, 2026
604319a
small cleanup, using np.isclose for reasonable value comparison tests
Feb 20, 2026
4e2407f
adding tests/isochrones/ so not tracked
Feb 21, 2026
5f36da8
removing test isochrones from git tracking
Feb 21, 2026
984e34f
fixing typo bug
Feb 21, 2026
2beaf10
adding v2.3 work
Feb 21, 2026
a6c0a02
Merge pull request #139 from astropy/dev
mwhosek Feb 21, 2026
e384cf1
add ST mag conversion
hustonm Feb 23, 2026
a7f2fe5
Merge branch 'dev' into photom_systems
hustonm Feb 23, 2026
5f29990
store verbose variable in IsochronePhot
hustonm Feb 23, 2026
b6c47af
Trim trailing white spaces
wei-lingfeng Feb 24, 2026
941dc92
Fixed minor typos and missing import
wei-lingfeng Feb 24, 2026
c42b10f
Added backward compatibility for isochrone file names
wei-lingfeng Feb 24, 2026
02c0feb
Added isochrone folder into gitignore
wei-lingfeng Feb 24, 2026
9283afd
Fixed r string warnings
wei-lingfeng Feb 24, 2026
67228f1
Adjusted check save file order
wei-lingfeng Feb 24, 2026
21bc2b3
Changed global random seed to random generator; Updated star systems …
wei-lingfeng Feb 24, 2026
5fd75f5
Remove unnecessary checkings
wei-lingfeng Feb 24, 2026
e753199
Added documentation on random number generator behavior; Added suppor…
wei-lingfeng Feb 25, 2026
fa230c6
Merge branch 'main' of https://github.com/astropy/SPISEA into dev
wei-lingfeng Feb 25, 2026
2b9e77e
Moved IMF testing under spisea/tests
wei-lingfeng Feb 26, 2026
138ca29
Optimized import and removed unused imports
wei-lingfeng Feb 26, 2026
bf01acb
Removed the extra parameter rng in generate_cluster and calc_multi, a…
wei-lingfeng Feb 26, 2026
b2ea3fb
started interp_AKs_grid setup with kwargs and variables
hustonm Feb 26, 2026
fc5b408
add Gaia EDR3 filters
hustonm Feb 26, 2026
6bcc972
Added missing blank line in docstring code block
wei-lingfeng Feb 26, 2026
1d9cdc2
updated filters.rst and dictionary in synthetic.py
Rocketpack23 Mar 5, 2026
382121b
Merge branch 'dev' into dev
mwhosek Mar 20, 2026
3ef3e50
Merge pull request #137 from Rocketpack23/dev
mwhosek Mar 20, 2026
374602d
Merge branch 'dev' into photom_systems
mwhosek Mar 20, 2026
8607236
Merge pull request #141 from astropy/photom_systems
mwhosek Mar 20, 2026
5da97c8
adding nsfcam,L to test_filters
Mar 20, 2026
9832414
Merge branch 'dev' into dev
mwhosek Mar 20, 2026
ec70d2d
Merge pull request #143 from wei-lingfeng/dev
mwhosek Mar 20, 2026
1eb0a8c
Merge branch 'dev' of https://github.com/astropy/SPISEA into dev
Mar 20, 2026
6198d8c
Merge branch 'grid_interp_AKs' into dev
hustonm Mar 20, 2026
c958a0a
resolve merge mistakes
Mar 20, 2026
8bfbbde
fixed assert euqal to isclose
Mar 20, 2026
4b3ebb0
updating version
Mar 20, 2026
83b2fd9
updating contributors
Mar 20, 2026
4cf9e28
adding irtf
Mar 20, 2026
e774eda
updating changelog
Mar 20, 2026
3c1440c
adding conversion funcs, docs about mag systems
Mar 20, 2026
39bafec
fixing links
Mar 20, 2026
7139c2c
Merge pull request #147 from astropy/dev
mwhosek Mar 20, 2026
fb3cdc2
update doc string
Mar 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# SPISEA-generated isochrones from test functions
spisea/tests/isochrones/

# Compiled files
*.py[co]
*.a
Expand Down Expand Up @@ -51,4 +54,7 @@ distribute-*.tar.gz

# OS Generated Files
.DS_Store
._*
._*

# Test files generated
spisea/tests/isochrones
6 changes: 4 additions & 2 deletions docs/add_filters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ If the user wants to add new photometric filters to SPISEA, there are 4 main ste
call the new function in ``filters.py`` when the new filter
string is called.
4) Edit the ``get_obs_str()`` function in ``synthetic.py`` to
convert between column name and filter string (e.g input string
for get_filter_info) for the new filters.
convert between column name and filter string (e.g input string
for get_filter_info) for the new filters.
5) Add the filter to the ``filt_list`` in the ``test_filters()`` function in ``tests/test_models.py`` to
ensure the filter can be loaded properly.

Additional documentation on this is coming soon. In the meantime, let us know on the Github `issue tracker
<https://github.com/astropy/SPISEA/issues>`_ if you'd like to
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@
author = 'Matthew Hosek Jr, Jessica R. Lu, Casey Y. Lam'

# The short X.Y version
version = '2.2'
version = '2.4'
# The full version, including alpha/beta/rc tags
release = '2.2'
release = '2.4'



Expand Down
10 changes: 8 additions & 2 deletions docs/contributors.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,14 @@ what operating system is used

Sage Hironaka Remulla -- added Rubin Observatory filters

Lingfeng Wei -- bugfix to improve creation of iso_dir in IsochronePhot
Lingfeng Wei -- bugfix to improve creation of iso_dir in
IsochronePhot, implemented faster cluster generation and test
functions for primary and companion star mass generation (v2.3),
updated random state generators (v2.4)

Macy Huston -- New metallicity bound + isochrone filter checks,
imf_mass_lim bugfix, roman filter bugfix, added Euclid filters, Synthpop compatibility
updates (v2.2)
updates (v2.2), improvements for reading in/updated existing isochrone
files, Vega mag to ST mag conversion function (v2.4)

Anna Pusack -- Added IRTF L-band filter support
30 changes: 20 additions & 10 deletions docs/filters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ Photometric Filters
The user can specify what filters are used for synthetic photometry
when defining the :ref:`isochrone_objects`. Each filter is
identified by a unique string, and an array of such strings
are passed into the Isochrone call.
are passed into the Isochrone call.

For example::

# Use the HST WFC3-IR F127M and F153M filters, along with NIRC2 Kp
filt_list = ['wfc3,ir,f127m', 'wfc3,ir,f153m', 'nirc2,Kp']
my_iso = synthetic.IsochronePhot(logAge, AKs, dist, metallicity=0,
evo_model=evo_model, atm_func=atm_func,
red_law=red_law, filters=filt_list)

These strings follow the format ``<telescope/filter_set>,<filter>``.
Note that there is no space after the comma, and case matters.

Expand All @@ -35,24 +35,25 @@ Available filters:
* GAIA
* HAWK-I
* Hubble Space Telescope
* IRTF
* Johnson-Cousins
* Johnson-Glass
* JWST
* Keck NIRC
* Keck NIRC2
* NACO
* NACO
* PanStarrs 1
* Roman Space Telescope
* UKIRT
* Vera C. Rubin Observatory
* VISTA
* ZTF


Filter Sets
------------


**2MASS**

`Two-Micron Sky Survey <https://old.ipac.caltech.edu/2mass/>`_
Expand Down Expand Up @@ -83,9 +84,10 @@ Example: ``'decam,r'``

**Euclid**

`Euclid (NISP) space telescope filters <https://doi.org/10.5270/esa-kx8w57c>`_
Euclid space telescope `NISP filters <https://doi.org/10.5270/esa-kx8w57c>`_
and `VIS single filter <https://svo2.cab.inta-csic.es/svo/theory/fps/index.php?id=Euclid/VIS.vis>`_

Filters: Y, J, H
Filters: VIS, Y, J, H

Example: ``'euclid,Y'``

Expand Down Expand Up @@ -145,10 +147,10 @@ Example: ``'jg,K'``

JWST NIRCam filters, downloaded from `NIRCam website <https://jwst-docs.stsci.edu/display/JTI/NIRCam+Filters#NIRCamFilters-filt_trans>`_. The filter functions in the nircam_throughputs/modAB_mean/nrc_plus_ote folder is used.

Filters: F070W, F090W, F115W, F140M, F150W, F150W2, F162M, F164N, F182M, F187N, F200W, F210M, F212N, F250M, F277W, F300M, F322W2, F323N, F335M, F356W, F360M, F405N, F410M, F430M, F444W, F460M, F466N, F470N, F480M
Filters: F070W, F090W, F115W, F140M, F150W, F150W2, F162M, F164N, F182M, F187N, F200W, F210M, F212N, F250M, F277W, F300M, F322W2, F323N, F335M, F356W, F360M, F405N, F410M, F430M, F444W, F460M, F466N, F470N, F480M

Example: ``'jwst,F356W'``


**Keck NIRC**

Expand Down Expand Up @@ -236,3 +238,11 @@ Example: ``'vista,Y'``
Filters: g, r, i

Example: ``'ztf,g'``

**IRTF**

`IRTF NSFCam <https://irtfweb.ifa.hawaii.edu/~nsfcam2/Filter_Profiles.html>`_

Filters: L

Example: ``'nsfcam,L'``
21 changes: 21 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,27 @@ releases will be co-authors in future SPISEA software papers.

Change Log
----------
2.4 (2026-03-20)
* Added backward compatibility for isochrone file names created
before v2.3
* When reading isochrone from existing file, only keep user
requested filters in resulting table.
* Changed the global random seed to a random generator within each class,
but still retaining the reproducibility. Test cluster files in
test_data also updated accordingly for testing purposes
* Added filter support for IRTF L-band
* Added conversion function between ST mags and Vega mags

2.3 (2026-02-10)
* Achieves faster cluster generation (factor of about 2x) by using
replacing ragged arrays with masked arrays when calculating
multiplicity properties
* Added new test functions (and associated test data files) ensuring
that the primary mass and companion
mass distibutions remain the same as generated with SPISEA <= v2.2
* Added support to Euclid VIS filter


2.2 (2026-01-16)
* Compatibility updates for SPISEA to work with `SynthPop
<https://synthpop.readthedocs.io/en/latest/>`_. Updates include:
Expand Down
27 changes: 16 additions & 11 deletions docs/make_isochrone.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ total extinction, and metallicity, along with the :ref:`atmo_models`,
:ref:`evo_models`, and :ref:`ext_law`.

If the IsochronePhot sub-class is used then synthetic photometry
will be produced. The :ref:`filters` are defined as additional inputs.
will be produced. The :ref:`filters` are defined as additional
inputs. The output photometry is in terms of vega mags, but the user
can also calculate the required conversion to AB mags or ST mags using
the functions in :ref:`Photometry Conversion Functions <phot_conversions>`.

An example of making an IsochronePhot object::

Expand Down Expand Up @@ -76,10 +79,9 @@ Tips and Tricks: The IsochronePhot Object

* **WARNING**: When IsochronePhot checks to see if the desired
isochrone table already exists, it checks all isochrone properties
except for the photometric filters (evolution models, atmosphere
models, and reddening law are encoded in the table meta-data).
(evolution models, atmosphere models, and reddening law are encoded in the table meta-data).
If any of these parameters do not match, then the isochrone will
be re-calculated.
be re-calculated.

However, to keep the isochrone filenames reasonable, only the
age, extinction, distance, and metallicity are encoded in the
Expand All @@ -91,13 +93,6 @@ Tips and Tricks: The IsochronePhot Object
that users specify different iso_dir paths when making isochrones
with different evolution models, atmosphere models, or reddening
laws.*

* **WARNING**: IsochronePhot does not check existing
isochrone tables to see if the photometric filters match
those specified by the user. *So, if the user wishes to generate an
isochrone with different filters, we recommend either using a
different iso_dir path or setting the keyword recomp=True (see
docs below).*

Base Isochrone Class
----------------------------
Expand All @@ -112,3 +107,13 @@ Isochrone Sub-classes
.. autoclass:: synthetic.IsochronePhot
:show-inheritance:
:members: make_photometry, plot_CMD, plot_mass_magnitude


Photometry Conversion Functions
-----------------------------
.. _phot_conversions:

.. autofunction:: synthetic.calc_ab_vega_filter_conversion

.. autofunction:: synthetic.calc_st_vega_filter_conversion

Loading