Bring your Own Grid¶
Whilst Synference by default utilizes Synthesizer to create model libraries, it is also possible to bring your own pre-computed grid of models. This can be useful if you have a custom set of models that you wish to use for inference.
We provide a LibraryCreator class that allows you to create a grid from your own data and save it in the required HDF5 format.
[1]:
import os
import numpy as np
from astropy.table import Table
from synference import LibraryCreator
/opt/hostedtoolcache/Python/3.10.19/x64/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
For this example we will build a grid from the SPHINX public data release, which can be found here, and contains mock observations of 1380 galaxies from 10 different orientations at z=4.6 to 10 from the radiation-hydrodynamic cosmological simulation SPHINX.
[2]:
file = "https://raw.githubusercontent.com/HarleyKatz/SPHINX-20-data/refs/heads/main/data/all_basic_data.csv"
if not os.path.exists("all_basic_data.csv"):
os.system(f"wget {file}")
sphinx = Table.read("all_basic_data.csv")
--2025-11-13 20:03:12-- https://raw.githubusercontent.com/HarleyKatz/SPHINX-20-data/refs/heads/main/data/all_basic_data.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.110.133, 185.199.111.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25929930 (25M) [text/plain]
Saving to: ‘all_basic_data.csv’
0K .......... .......... .......... .......... .......... 0% 86.9M 0s
50K .......... .......... .......... .......... .......... 0% 48.2M 0s
100K .......... .......... .......... .......... .......... 0% 39.5M 0s
150K .......... .......... .......... .......... .......... 0% 250M 0s
200K .......... .......... .......... .......... .......... 0% 328M 0s
250K .......... .......... .......... .......... .......... 1% 311M 0s
300K .......... .......... .......... .......... .......... 1% 38.0M 0s
350K .......... .......... .......... .......... .......... 1% 143M 0s
400K .......... .......... .......... .......... .......... 1% 124M 0s
450K .......... .......... .......... .......... .......... 1% 239M 0s
500K .......... .......... .......... .......... .......... 2% 134M 0s
550K .......... .......... .......... .......... .......... 2% 301M 0s
600K .......... .......... .......... .......... .......... 2% 143M 0s
650K .......... .......... .......... .......... .......... 2% 144M 0s
700K .......... .......... .......... .......... .......... 2% 266M 0s
750K .......... .......... .......... .......... .......... 3% 36.4M 0s
800K .......... .......... .......... .......... .......... 3% 30.9M 0s
850K .......... .......... .......... .......... .......... 3% 311M 0s
900K .......... .......... .......... .......... .......... 3% 122M 0s
950K .......... .......... .......... .......... .......... 3% 136M 0s
1000K .......... .......... .......... .......... .......... 4% 307M 0s
1050K .......... .......... .......... .......... .......... 4% 124M 0s
1100K .......... .......... .......... .......... .......... 4% 21.5M 0s
1150K .......... .......... .......... .......... .......... 4% 264M 0s
1200K .......... .......... .......... .......... .......... 4% 322M 0s
1250K .......... .......... .......... .......... .......... 5% 284M 0s
1300K .......... .......... .......... .......... .......... 5% 267M 0s
1350K .......... .......... .......... .......... .......... 5% 268M 0s
1400K .......... .......... .......... .......... .......... 5% 181M 0s
1450K .......... .......... .......... .......... .......... 5% 220M 0s
1500K .......... .......... .......... .......... .......... 6% 296M 0s
1550K .......... .......... .......... .......... .......... 6% 97.7M 0s
1600K .......... .......... .......... .......... .......... 6% 180M 0s
1650K .......... .......... .......... .......... .......... 6% 147M 0s
1700K .......... .......... .......... .......... .......... 6% 268M 0s
1750K .......... .......... .......... .......... .......... 7% 22.3M 0s
1800K .......... .......... .......... .......... .......... 7% 204M 0s
1850K .......... .......... .......... .......... .......... 7% 301M 0s
1900K .......... .......... .......... .......... .......... 7% 292M 0s
1950K .......... .......... .......... .......... .......... 7% 318M 0s
2000K .......... .......... .......... .......... .......... 8% 258M 0s
2050K .......... .......... .......... .......... .......... 8% 316M 0s
2100K .......... .......... .......... .......... .......... 8% 160M 0s
2150K .......... .......... .......... .......... .......... 8% 294M 0s
2200K .......... .......... .......... .......... .......... 8% 290M 0s
2250K .......... .......... .......... .......... .......... 9% 25.3M 0s
2300K .......... .......... .......... .......... .......... 9% 284M 0s
2350K .......... .......... .......... .......... .......... 9% 43.2M 0s
2400K .......... .......... .......... .......... .......... 9% 311M 0s
2450K .......... .......... .......... .......... .......... 9% 327M 0s
2500K .......... .......... .......... .......... .......... 10% 255M 0s
2550K .......... .......... .......... .......... .......... 10% 309M 0s
2600K .......... .......... .......... .......... .......... 10% 281M 0s
2650K .......... .......... .......... .......... .......... 10% 237M 0s
2700K .......... .......... .......... .......... .......... 10% 182M 0s
2750K .......... .......... .......... .......... .......... 11% 210M 0s
2800K .......... .......... .......... .......... .......... 11% 170M 0s
2850K .......... .......... .......... .......... .......... 11% 23.6M 0s
2900K .......... .......... .......... .......... .......... 11% 254M 0s
2950K .......... .......... .......... .......... .......... 11% 318M 0s
3000K .......... .......... .......... .......... .......... 12% 331M 0s
3050K .......... .......... .......... .......... .......... 12% 344M 0s
3100K .......... .......... .......... .......... .......... 12% 301M 0s
3150K .......... .......... .......... .......... .......... 12% 250M 0s
3200K .......... .......... .......... .......... .......... 12% 302M 0s
3250K .......... .......... .......... .......... .......... 13% 298M 0s
3300K .......... .......... .......... .......... .......... 13% 342M 0s
3350K .......... .......... .......... .......... .......... 13% 263M 0s
3400K .......... .......... .......... .......... .......... 13% 160M 0s
3450K .......... .......... .......... .......... .......... 13% 22.1M 0s
3500K .......... .......... .......... .......... .......... 14% 130M 0s
3550K .......... .......... .......... .......... .......... 14% 162M 0s
3600K .......... .......... .......... .......... .......... 14% 128M 0s
3650K .......... .......... .......... .......... .......... 14% 192M 0s
3700K .......... .......... .......... .......... .......... 14% 182M 0s
3750K .......... .......... .......... .......... .......... 15% 193M 0s
3800K .......... .......... .......... .......... .......... 15% 257M 0s
3850K .......... .......... .......... .......... .......... 15% 221M 0s
3900K .......... .......... .......... .......... .......... 15% 348M 0s
3950K .......... .......... .......... .......... .......... 15% 174M 0s
4000K .......... .......... .......... .......... .......... 15% 42.5M 0s
4050K .......... .......... .......... .......... .......... 16% 106M 0s
4100K .......... .......... .......... .......... .......... 16% 188M 0s
4150K .......... .......... .......... .......... .......... 16% 310M 0s
4200K .......... .......... .......... .......... .......... 16% 189M 0s
4250K .......... .......... .......... .......... .......... 16% 195M 0s
4300K .......... .......... .......... .......... .......... 17% 269M 0s
4350K .......... .......... .......... .......... .......... 17% 228M 0s
4400K .......... .......... .......... .......... .......... 17% 185M 0s
4450K .......... .......... .......... .......... .......... 17% 207M 0s
4500K .......... .......... .......... .......... .......... 17% 192M 0s
4550K .......... .......... .......... .......... .......... 18% 283M 0s
4600K .......... .......... .......... .......... .......... 18% 290M 0s
4650K .......... .......... .......... .......... .......... 18% 180M 0s
4700K .......... .......... .......... .......... .......... 18% 183M 0s
4750K .......... .......... .......... .......... .......... 18% 320M 0s
4800K .......... .......... .......... .......... .......... 19% 262M 0s
4850K .......... .......... .......... .......... .......... 19% 334M 0s
4900K .......... .......... .......... .......... .......... 19% 307M 0s
4950K .......... .......... .......... .......... .......... 19% 284M 0s
5000K .......... .......... .......... .......... .......... 19% 239M 0s
5050K .......... .......... .......... .......... .......... 20% 292M 0s
5100K .......... .......... .......... .......... .......... 20% 158M 0s
5150K .......... .......... .......... .......... .......... 20% 265M 0s
5200K .......... .......... .......... .......... .......... 20% 74.9M 0s
5250K .......... .......... .......... .......... .......... 20% 258M 0s
5300K .......... .......... .......... .......... .......... 21% 50.5M 0s
5350K .......... .......... .......... .......... .......... 21% 164M 0s
5400K .......... .......... .......... .......... .......... 21% 198M 0s
5450K .......... .......... .......... .......... .......... 21% 227M 0s
5500K .......... .......... .......... .......... .......... 21% 284M 0s
5550K .......... .......... .......... .......... .......... 22% 231M 0s
5600K .......... .......... .......... .......... .......... 22% 137M 0s
5650K .......... .......... .......... .......... .......... 22% 200M 0s
5700K .......... .......... .......... .......... .......... 22% 269M 0s
5750K .......... .......... .......... .......... .......... 22% 47.4M 0s
5800K .......... .......... .......... .......... .......... 23% 39.1M 0s
5850K .......... .......... .......... .......... .......... 23% 289M 0s
5900K .......... .......... .......... .......... .......... 23% 301M 0s
5950K .......... .......... .......... .......... .......... 23% 285M 0s
6000K .......... .......... .......... .......... .......... 23% 189M 0s
6050K .......... .......... .......... .......... .......... 24% 142M 0s
6100K .......... .......... .......... .......... .......... 24% 210M 0s
6150K .......... .......... .......... .......... .......... 24% 91.3M 0s
6200K .......... .......... .......... .......... .......... 24% 60.9M 0s
6250K .......... .......... .......... .......... .......... 24% 167M 0s
6300K .......... .......... .......... .......... .......... 25% 279M 0s
6350K .......... .......... .......... .......... .......... 25% 168M 0s
6400K .......... .......... .......... .......... .......... 25% 146M 0s
6450K .......... .......... .......... .......... .......... 25% 195M 0s
6500K .......... .......... .......... .......... .......... 25% 291M 0s
6550K .......... .......... .......... .......... .......... 26% 221M 0s
6600K .......... .......... .......... .......... .......... 26% 238M 0s
6650K .......... .......... .......... .......... .......... 26% 44.7M 0s
6700K .......... .......... .......... .......... .......... 26% 91.1M 0s
6750K .......... .......... .......... .......... .......... 26% 278M 0s
6800K .......... .......... .......... .......... .......... 27% 306M 0s
6850K .......... .......... .......... .......... .......... 27% 241M 0s
6900K .......... .......... .......... .......... .......... 27% 191M 0s
6950K .......... .......... .......... .......... .......... 27% 108M 0s
7000K .......... .......... .......... .......... .......... 27% 188M 0s
7050K .......... .......... .......... .......... .......... 28% 282M 0s
7100K .......... .......... .......... .......... .......... 28% 291M 0s
7150K .......... .......... .......... .......... .......... 28% 212M 0s
7200K .......... .......... .......... .......... .......... 28% 182M 0s
7250K .......... .......... .......... .......... .......... 28% 212M 0s
7300K .......... .......... .......... .......... .......... 29% 52.2M 0s
7350K .......... .......... .......... .......... .......... 29% 37.3M 0s
7400K .......... .......... .......... .......... .......... 29% 175M 0s
7450K .......... .......... .......... .......... .......... 29% 162M 0s
7500K .......... .......... .......... .......... .......... 29% 197M 0s
7550K .......... .......... .......... .......... .......... 30% 224M 0s
7600K .......... .......... .......... .......... .......... 30% 198M 0s
7650K .......... .......... .......... .......... .......... 30% 322M 0s
7700K .......... .......... .......... .......... .......... 30% 170M 0s
7750K .......... .......... .......... .......... .......... 30% 28.6M 0s
7800K .......... .......... .......... .......... .......... 31% 264M 0s
7850K .......... .......... .......... .......... .......... 31% 318M 0s
7900K .......... .......... .......... .......... .......... 31% 281M 0s
7950K .......... .......... .......... .......... .......... 31% 328M 0s
8000K .......... .......... .......... .......... .......... 31% 331M 0s
8050K .......... .......... .......... .......... .......... 31% 270M 0s
8100K .......... .......... .......... .......... .......... 32% 219M 0s
8150K .......... .......... .......... .......... .......... 32% 124M 0s
8200K .......... .......... .......... .......... .......... 32% 156M 0s
8250K .......... .......... .......... .......... .......... 32% 316M 0s
8300K .......... .......... .......... .......... .......... 32% 258M 0s
8350K .......... .......... .......... .......... .......... 33% 51.9M 0s
8400K .......... .......... .......... .......... .......... 33% 65.4M 0s
8450K .......... .......... .......... .......... .......... 33% 321M 0s
8500K .......... .......... .......... .......... .......... 33% 331M 0s
8550K .......... .......... .......... .......... .......... 33% 202M 0s
8600K .......... .......... .......... .......... .......... 34% 243M 0s
8650K .......... .......... .......... .......... .......... 34% 155M 0s
8700K .......... .......... .......... .......... .......... 34% 144M 0s
8750K .......... .......... .......... .......... .......... 34% 110M 0s
8800K .......... .......... .......... .......... .......... 34% 234M 0s
8850K .......... .......... .......... .......... .......... 35% 200M 0s
8900K .......... .......... .......... .......... .......... 35% 94.4M 0s
8950K .......... .......... .......... .......... .......... 35% 20.0M 0s
9000K .......... .......... .......... .......... .......... 35% 253M 0s
9050K .......... .......... .......... .......... .......... 35% 235M 0s
9100K .......... .......... .......... .......... .......... 36% 298M 0s
9150K .......... .......... .......... .......... .......... 36% 297M 0s
9200K .......... .......... .......... .......... .......... 36% 217M 0s
9250K .......... .......... .......... .......... .......... 36% 120M 0s
9300K .......... .......... .......... .......... .......... 36% 148M 0s
9350K .......... .......... .......... .......... .......... 37% 227M 0s
9400K .......... .......... .......... .......... .......... 37% 190M 0s
9450K .......... .......... .......... .......... .......... 37% 33.2M 0s
9500K .......... .......... .......... .......... .......... 37% 58.8M 0s
9550K .......... .......... .......... .......... .......... 37% 313M 0s
9600K .......... .......... .......... .......... .......... 38% 223M 0s
9650K .......... .......... .......... .......... .......... 38% 317M 0s
9700K .......... .......... .......... .......... .......... 38% 297M 0s
9750K .......... .......... .......... .......... .......... 38% 55.0M 0s
9800K .......... .......... .......... .......... .......... 38% 208M 0s
9850K .......... .......... .......... .......... .......... 39% 107M 0s
9900K .......... .......... .......... .......... .......... 39% 244M 0s
9950K .......... .......... .......... .......... .......... 39% 300M 0s
10000K .......... .......... .......... .......... .......... 39% 91.0M 0s
10050K .......... .......... .......... .......... .......... 39% 230M 0s
10100K .......... .......... .......... .......... .......... 40% 230M 0s
10150K .......... .......... .......... .......... .......... 40% 142M 0s
10200K .......... .......... .......... .......... .......... 40% 154M 0s
10250K .......... .......... .......... .......... .......... 40% 177M 0s
10300K .......... .......... .......... .......... .......... 40% 263M 0s
10350K .......... .......... .......... .......... .......... 41% 181M 0s
10400K .......... .......... .......... .......... .......... 41% 137M 0s
10450K .......... .......... .......... .......... .......... 41% 187M 0s
10500K .......... .......... .......... .......... .......... 41% 66.2M 0s
10550K .......... .......... .......... .......... .......... 41% 56.2M 0s
10600K .......... .......... .......... .......... .......... 42% 257M 0s
10650K .......... .......... .......... .......... .......... 42% 306M 0s
10700K .......... .......... .......... .......... .......... 42% 308M 0s
10750K .......... .......... .......... .......... .......... 42% 293M 0s
10800K .......... .......... .......... .......... .......... 42% 202M 0s
10850K .......... .......... .......... .......... .......... 43% 171M 0s
10900K .......... .......... .......... .......... .......... 43% 261M 0s
10950K .......... .......... .......... .......... .......... 43% 229M 0s
11000K .......... .......... .......... .......... .......... 43% 189M 0s
11050K .......... .......... .......... .......... .......... 43% 130M 0s
11100K .......... .......... .......... .......... .......... 44% 235M 0s
11150K .......... .......... .......... .......... .......... 44% 109M 0s
11200K .......... .......... .......... .......... .......... 44% 54.0M 0s
11250K .......... .......... .......... .......... .......... 44% 331M 0s
11300K .......... .......... .......... .......... .......... 44% 215M 0s
11350K .......... .......... .......... .......... .......... 45% 275M 0s
11400K .......... .......... .......... .......... .......... 45% 212M 0s
11450K .......... .......... .......... .......... .......... 45% 316M 0s
11500K .......... .......... .......... .......... .......... 45% 361M 0s
11550K .......... .......... .......... .......... .......... 45% 222M 0s
11600K .......... .......... .......... .......... .......... 46% 198M 0s
11650K .......... .......... .......... .......... .......... 46% 122M 0s
11700K .......... .......... .......... .......... .......... 46% 175M 0s
11750K .......... .......... .......... .......... .......... 46% 143M 0s
11800K .......... .......... .......... .......... .......... 46% 300M 0s
11850K .......... .......... .......... .......... .......... 46% 30.0M 0s
11900K .......... .......... .......... .......... .......... 47% 317M 0s
11950K .......... .......... .......... .......... .......... 47% 365M 0s
12000K .......... .......... .......... .......... .......... 47% 267M 0s
12050K .......... .......... .......... .......... .......... 47% 304M 0s
12100K .......... .......... .......... .......... .......... 47% 270M 0s
12150K .......... .......... .......... .......... .......... 48% 227M 0s
12200K .......... .......... .......... .......... .......... 48% 263M 0s
12250K .......... .......... .......... .......... .......... 48% 340M 0s
12300K .......... .......... .......... .......... .......... 48% 169M 0s
12350K .......... .......... .......... .......... .......... 48% 171M 0s
12400K .......... .......... .......... .......... .......... 49% 129M 0s
12450K .......... .......... .......... .......... .......... 49% 28.5M 0s
12500K .......... .......... .......... .......... .......... 49% 297M 0s
12550K .......... .......... .......... .......... .......... 49% 174M 0s
12600K .......... .......... .......... .......... .......... 49% 307M 0s
12650K .......... .......... .......... .......... .......... 50% 228M 0s
12700K .......... .......... .......... .......... .......... 50% 218M 0s
12750K .......... .......... .......... .......... .......... 50% 124M 0s
12800K .......... .......... .......... .......... .......... 50% 280M 0s
12850K .......... .......... .......... .......... .......... 50% 159M 0s
12900K .......... .......... .......... .......... .......... 51% 146M 0s
12950K .......... .......... .......... .......... .......... 51% 75.7M 0s
13000K .......... .......... .......... .......... .......... 51% 198M 0s
13050K .......... .......... .......... .......... .......... 51% 312M 0s
13100K .......... .......... .......... .......... .......... 51% 251M 0s
13150K .......... .......... .......... .......... .......... 52% 220M 0s
13200K .......... .......... .......... .......... .......... 52% 183M 0s
13250K .......... .......... .......... .......... .......... 52% 169M 0s
13300K .......... .......... .......... .......... .......... 52% 162M 0s
13350K .......... .......... .......... .......... .......... 52% 339M 0s
13400K .......... .......... .......... .......... .......... 53% 223M 0s
13450K .......... .......... .......... .......... .......... 53% 214M 0s
13500K .......... .......... .......... .......... .......... 53% 47.6M 0s
13550K .......... .......... .......... .......... .......... 53% 134M 0s
13600K .......... .......... .......... .......... .......... 53% 301M 0s
13650K .......... .......... .......... .......... .......... 54% 234M 0s
13700K .......... .......... .......... .......... .......... 54% 344M 0s
13750K .......... .......... .......... .......... .......... 54% 275M 0s
13800K .......... .......... .......... .......... .......... 54% 210M 0s
13850K .......... .......... .......... .......... .......... 54% 326M 0s
13900K .......... .......... .......... .......... .......... 55% 179M 0s
13950K .......... .......... .......... .......... .......... 55% 220M 0s
14000K .......... .......... .......... .......... .......... 55% 150M 0s
14050K .......... .......... .......... .......... .......... 55% 111M 0s
14100K .......... .......... .......... .......... .......... 55% 303M 0s
14150K .......... .......... .......... .......... .......... 56% 295M 0s
14200K .......... .......... .......... .......... .......... 56% 48.0M 0s
14250K .......... .......... .......... .......... .......... 56% 24.0M 0s
14300K .......... .......... .......... .......... .......... 56% 246M 0s
14350K .......... .......... .......... .......... .......... 56% 283M 0s
14400K .......... .......... .......... .......... .......... 57% 219M 0s
14450K .......... .......... .......... .......... .......... 57% 304M 0s
14500K .......... .......... .......... .......... .......... 57% 195M 0s
14550K .......... .......... .......... .......... .......... 57% 141M 0s
14600K .......... .......... .......... .......... .......... 57% 145M 0s
14650K .......... .......... .......... .......... .......... 58% 297M 0s
14700K .......... .......... .......... .......... .......... 58% 194M 0s
14750K .......... .......... .......... .......... .......... 58% 23.2M 0s
14800K .......... .......... .......... .......... .......... 58% 134M 0s
14850K .......... .......... .......... .......... .......... 58% 288M 0s
14900K .......... .......... .......... .......... .......... 59% 295M 0s
14950K .......... .......... .......... .......... .......... 59% 292M 0s
15000K .......... .......... .......... .......... .......... 59% 182M 0s
15050K .......... .......... .......... .......... .......... 59% 175M 0s
15100K .......... .......... .......... .......... .......... 59% 288M 0s
15150K .......... .......... .......... .......... .......... 60% 301M 0s
15200K .......... .......... .......... .......... .......... 60% 52.6M 0s
15250K .......... .......... .......... .......... .......... 60% 37.1M 0s
15300K .......... .......... .......... .......... .......... 60% 282M 0s
15350K .......... .......... .......... .......... .......... 60% 248M 0s
15400K .......... .......... .......... .......... .......... 61% 300M 0s
15450K .......... .......... .......... .......... .......... 61% 281M 0s
15500K .......... .......... .......... .......... .......... 61% 134M 0s
15550K .......... .......... .......... .......... .......... 61% 278M 0s
15600K .......... .......... .......... .......... .......... 61% 153M 0s
15650K .......... .......... .......... .......... .......... 62% 211M 0s
15700K .......... .......... .......... .......... .......... 62% 40.4M 0s
15750K .......... .......... .......... .......... .......... 62% 40.4M 0s
15800K .......... .......... .......... .......... .......... 62% 299M 0s
15850K .......... .......... .......... .......... .......... 62% 265M 0s
15900K .......... .......... .......... .......... .......... 62% 302M 0s
15950K .......... .......... .......... .......... .......... 63% 297M 0s
16000K .......... .......... .......... .......... .......... 63% 170M 0s
16050K .......... .......... .......... .......... .......... 63% 153M 0s
16100K .......... .......... .......... .......... .......... 63% 295M 0s
16150K .......... .......... .......... .......... .......... 63% 194M 0s
16200K .......... .......... .......... .......... .......... 64% 173M 0s
16250K .......... .......... .......... .......... .......... 64% 160M 0s
16300K .......... .......... .......... .......... .......... 64% 163M 0s
16350K .......... .......... .......... .......... .......... 64% 48.0M 0s
16400K .......... .......... .......... .......... .......... 64% 55.8M 0s
16450K .......... .......... .......... .......... .......... 65% 282M 0s
16500K .......... .......... .......... .......... .......... 65% 259M 0s
16550K .......... .......... .......... .......... .......... 65% 269M 0s
16600K .......... .......... .......... .......... .......... 65% 285M 0s
16650K .......... .......... .......... .......... .......... 65% 294M 0s
16700K .......... .......... .......... .......... .......... 66% 142M 0s
16750K .......... .......... .......... .......... .......... 66% 52.2M 0s
16800K .......... .......... .......... .......... .......... 66% 139M 0s
16850K .......... .......... .......... .......... .......... 66% 232M 0s
16900K .......... .......... .......... .......... .......... 66% 290M 0s
16950K .......... .......... .......... .......... .......... 67% 279M 0s
17000K .......... .......... .......... .......... .......... 67% 155M 0s
17050K .......... .......... .......... .......... .......... 67% 173M 0s
17100K .......... .......... .......... .......... .......... 67% 118M 0s
17150K .......... .......... .......... .......... .......... 67% 156M 0s
17200K .......... .......... .......... .......... .......... 68% 118M 0s
17250K .......... .......... .......... .......... .......... 68% 172M 0s
17300K .......... .......... .......... .......... .......... 68% 170M 0s
17350K .......... .......... .......... .......... .......... 68% 57.6M 0s
17400K .......... .......... .......... .......... .......... 68% 275M 0s
17450K .......... .......... .......... .......... .......... 69% 333M 0s
17500K .......... .......... .......... .......... .......... 69% 274M 0s
17550K .......... .......... .......... .......... .......... 69% 234M 0s
17600K .......... .......... .......... .......... .......... 69% 325M 0s
17650K .......... .......... .......... .......... .......... 69% 131M 0s
17700K .......... .......... .......... .......... .......... 70% 302M 0s
17750K .......... .......... .......... .......... .......... 70% 114M 0s
17800K .......... .......... .......... .......... .......... 70% 53.4M 0s
17850K .......... .......... .......... .......... .......... 70% 46.5M 0s
17900K .......... .......... .......... .......... .......... 70% 236M 0s
17950K .......... .......... .......... .......... .......... 71% 248M 0s
18000K .......... .......... .......... .......... .......... 71% 258M 0s
18050K .......... .......... .......... .......... .......... 71% 146M 0s
18100K .......... .......... .......... .......... .......... 71% 147M 0s
18150K .......... .......... .......... .......... .......... 71% 286M 0s
18200K .......... .......... .......... .......... .......... 72% 293M 0s
18250K .......... .......... .......... .......... .......... 72% 131M 0s
18300K .......... .......... .......... .......... .......... 72% 47.7M 0s
18350K .......... .......... .......... .......... .......... 72% 41.8M 0s
18400K .......... .......... .......... .......... .......... 72% 234M 0s
18450K .......... .......... .......... .......... .......... 73% 279M 0s
18500K .......... .......... .......... .......... .......... 73% 295M 0s
18550K .......... .......... .......... .......... .......... 73% 262M 0s
18600K .......... .......... .......... .......... .......... 73% 203M 0s
18650K .......... .......... .......... .......... .......... 73% 170M 0s
18700K .......... .......... .......... .......... .......... 74% 151M 0s
18750K .......... .......... .......... .......... .......... 74% 130M 0s
18800K .......... .......... .......... .......... .......... 74% 78.3M 0s
18850K .......... .......... .......... .......... .......... 74% 319M 0s
18900K .......... .......... .......... .......... .......... 74% 358M 0s
18950K .......... .......... .......... .......... .......... 75% 313M 0s
19000K .......... .......... .......... .......... .......... 75% 278M 0s
19050K .......... .......... .......... .......... .......... 75% 284M 0s
19100K .......... .......... .......... .......... .......... 75% 266M 0s
19150K .......... .......... .......... .......... .......... 75% 291M 0s
19200K .......... .......... .......... .......... .......... 76% 322M 0s
19250K .......... .......... .......... .......... .......... 76% 295M 0s
19300K .......... .......... .......... .......... .......... 76% 232M 0s
19350K .......... .......... .......... .......... .......... 76% 311M 0s
19400K .......... .......... .......... .......... .......... 76% 283M 0s
19450K .......... .......... .......... .......... .......... 77% 140M 0s
19500K .......... .......... .......... .......... .......... 77% 67.0M 0s
19550K .......... .......... .......... .......... .......... 77% 180M 0s
19600K .......... .......... .......... .......... .......... 77% 297M 0s
19650K .......... .......... .......... .......... .......... 77% 335M 0s
19700K .......... .......... .......... .......... .......... 77% 141M 0s
19750K .......... .......... .......... .......... .......... 78% 169M 0s
19800K .......... .......... .......... .......... .......... 78% 156M 0s
19850K .......... .......... .......... .......... .......... 78% 127M 0s
19900K .......... .......... .......... .......... .......... 78% 157M 0s
19950K .......... .......... .......... .......... .......... 78% 51.8M 0s
20000K .......... .......... .......... .......... .......... 79% 72.8M 0s
20050K .......... .......... .......... .......... .......... 79% 188M 0s
20100K .......... .......... .......... .......... .......... 79% 345M 0s
20150K .......... .......... .......... .......... .......... 79% 349M 0s
20200K .......... .......... .......... .......... .......... 79% 144M 0s
20250K .......... .......... .......... .......... .......... 80% 192M 0s
20300K .......... .......... .......... .......... .......... 80% 227M 0s
20350K .......... .......... .......... .......... .......... 80% 191M 0s
20400K .......... .......... .......... .......... .......... 80% 154M 0s
20450K .......... .......... .......... .......... .......... 80% 217M 0s
20500K .......... .......... .......... .......... .......... 81% 280M 0s
20550K .......... .......... .......... .......... .......... 81% 109M 0s
20600K .......... .......... .......... .......... .......... 81% 85.6M 0s
20650K .......... .......... .......... .......... .......... 81% 320M 0s
20700K .......... .......... .......... .......... .......... 81% 206M 0s
20750K .......... .......... .......... .......... .......... 82% 361M 0s
20800K .......... .......... .......... .......... .......... 82% 237M 0s
20850K .......... .......... .......... .......... .......... 82% 237M 0s
20900K .......... .......... .......... .......... .......... 82% 265M 0s
20950K .......... .......... .......... .......... .......... 82% 300M 0s
21000K .......... .......... .......... .......... .......... 83% 36.9M 0s
21050K .......... .......... .......... .......... .......... 83% 270M 0s
21100K .......... .......... .......... .......... .......... 83% 194M 0s
21150K .......... .......... .......... .......... .......... 83% 331M 0s
21200K .......... .......... .......... .......... .......... 83% 79.8M 0s
21250K .......... .......... .......... .......... .......... 84% 286M 0s
21300K .......... .......... .......... .......... .......... 84% 260M 0s
21350K .......... .......... .......... .......... .......... 84% 170M 0s
21400K .......... .......... .......... .......... .......... 84% 218M 0s
21450K .......... .......... .......... .......... .......... 84% 195M 0s
21500K .......... .......... .......... .......... .......... 85% 315M 0s
21550K .......... .......... .......... .......... .......... 85% 235M 0s
21600K .......... .......... .......... .......... .......... 85% 154M 0s
21650K .......... .......... .......... .......... .......... 85% 281M 0s
21700K .......... .......... .......... .......... .......... 85% 231M 0s
21750K .......... .......... .......... .......... .......... 86% 152M 0s
21800K .......... .......... .......... .......... .......... 86% 65.0M 0s
21850K .......... .......... .......... .......... .......... 86% 285M 0s
21900K .......... .......... .......... .......... .......... 86% 42.7M 0s
21950K .......... .......... .......... .......... .......... 86% 345M 0s
22000K .......... .......... .......... .......... .......... 87% 325M 0s
22050K .......... .......... .......... .......... .......... 87% 337M 0s
22100K .......... .......... .......... .......... .......... 87% 240M 0s
22150K .......... .......... .......... .......... .......... 87% 184M 0s
22200K .......... .......... .......... .......... .......... 87% 176M 0s
22250K .......... .......... .......... .......... .......... 88% 343M 0s
22300K .......... .......... .......... .......... .......... 88% 165M 0s
22350K .......... .......... .......... .......... .......... 88% 46.6M 0s
22400K .......... .......... .......... .......... .......... 88% 45.7M 0s
22450K .......... .......... .......... .......... .......... 88% 243M 0s
22500K .......... .......... .......... .......... .......... 89% 219M 0s
22550K .......... .......... .......... .......... .......... 89% 240M 0s
22600K .......... .......... .......... .......... .......... 89% 204M 0s
22650K .......... .......... .......... .......... .......... 89% 55.3M 0s
22700K .......... .......... .......... .......... .......... 89% 230M 0s
22750K .......... .......... .......... .......... .......... 90% 53.5M 0s
22800K .......... .......... .......... .......... .......... 90% 266M 0s
22850K .......... .......... .......... .......... .......... 90% 80.8M 0s
22900K .......... .......... .......... .......... .......... 90% 298M 0s
22950K .......... .......... .......... .......... .......... 90% 325M 0s
23000K .......... .......... .......... .......... .......... 91% 252M 0s
23050K .......... .......... .......... .......... .......... 91% 196M 0s
23100K .......... .......... .......... .......... .......... 91% 167M 0s
23150K .......... .......... .......... .......... .......... 91% 184M 0s
23200K .......... .......... .......... .......... .......... 91% 115M 0s
23250K .......... .......... .......... .......... .......... 92% 243M 0s
23300K .......... .......... .......... .......... .......... 92% 182M 0s
23350K .......... .......... .......... .......... .......... 92% 342M 0s
23400K .......... .......... .......... .......... .......... 92% 26.9M 0s
23450K .......... .......... .......... .......... .......... 92% 173M 0s
23500K .......... .......... .......... .......... .......... 93% 270M 0s
23550K .......... .......... .......... .......... .......... 93% 295M 0s
23600K .......... .......... .......... .......... .......... 93% 276M 0s
23650K .......... .......... .......... .......... .......... 93% 296M 0s
23700K .......... .......... .......... .......... .......... 93% 292M 0s
23750K .......... .......... .......... .......... .......... 93% 252M 0s
23800K .......... .......... .......... .......... .......... 94% 295M 0s
23850K .......... .......... .......... .......... .......... 94% 216M 0s
23900K .......... .......... .......... .......... .......... 94% 287M 0s
23950K .......... .......... .......... .......... .......... 94% 291M 0s
24000K .......... .......... .......... .......... .......... 94% 294M 0s
24050K .......... .......... .......... .......... .......... 95% 119M 0s
24100K .......... .......... .......... .......... .......... 95% 289M 0s
24150K .......... .......... .......... .......... .......... 95% 290M 0s
24200K .......... .......... .......... .......... .......... 95% 227M 0s
24250K .......... .......... .......... .......... .......... 95% 248M 0s
24300K .......... .......... .......... .......... .......... 96% 305M 0s
24350K .......... .......... .......... .......... .......... 96% 291M 0s
24400K .......... .......... .......... .......... .......... 96% 298M 0s
24450K .......... .......... .......... .......... .......... 96% 310M 0s
24500K .......... .......... .......... .......... .......... 96% 279M 0s
24550K .......... .......... .......... .......... .......... 97% 257M 0s
24600K .......... .......... .......... .......... .......... 97% 219M 0s
24650K .......... .......... .......... .......... .......... 97% 309M 0s
24700K .......... .......... .......... .......... .......... 97% 297M 0s
24750K .......... .......... .......... .......... .......... 97% 294M 0s
24800K .......... .......... .......... .......... .......... 98% 180M 0s
24850K .......... .......... .......... .......... .......... 98% 143M 0s
24900K .......... .......... .......... .......... .......... 98% 301M 0s
24950K .......... .......... .......... .......... .......... 98% 298M 0s
25000K .......... .......... .......... .......... .......... 98% 205M 0s
25050K .......... .......... .......... .......... .......... 99% 281M 0s
25100K .......... .......... .......... .......... .......... 99% 295M 0s
25150K .......... .......... .......... .......... .......... 99% 298M 0s
25200K .......... .......... .......... .......... .......... 99% 310M 0s
25250K .......... .......... .......... .......... .......... 99% 295M 0s
25300K .......... .......... .. 100% 219M=0.2s
2025-11-13 20:03:21 (139 MB/s) - ‘all_basic_data.csv’ saved [25929930/25929930]
For the purposes of simplicity we will only use one direction (0) from the data release, but you could of course use all 10 directions if desired.
We will create simple arrays containing the parameter and observation names we wish to use from the data release. In this case we will store redshift, stellar mass, stellar metallicity, mass-weighted age, SFR on 3 different timescales, and the dust E(B-V). For the observations we will use JWST NIRCam photometry.
We will also save some units information for the parameters, but this is optional.
[3]:
dir = 0 # Choose direction 0 for this example
parameter_columns = [
"redshift",
"stellar_mass",
"stellar_metallicity",
"mean_stellar_age_mass",
"sfr_3",
"sfr_10",
"sfr_100",
f"ebmv_dir_{dir}",
]
parameter_units = [
"dimensionless",
"log10(Msun)",
"dimensionless",
"Myr",
"Msun/yr",
"Msun/yr",
"Msun/yr",
"dimensionless",
]
feature_names = [
f"F070W_dir_{dir}",
f"F090W_dir_{dir}",
f"F115W_dir_{dir}",
f"F140M_dir_{dir}",
f"F150W_dir_{dir}",
f"F162M_dir_{dir}",
f"F182M_dir_{dir}",
f"F200W_dir_{dir}",
f"F210M_dir_{dir}",
f"F250M_dir_{dir}",
f"F277W_dir_{dir}",
f"F300M_dir_{dir}",
f"F335M_dir_{dir}",
f"F356W_dir_{dir}",
f"F360M_dir_{dir}",
f"F410M_dir_{dir}",
f"F430M_dir_{dir}",
f"F444W_dir_{dir}",
f"F460M_dir_{dir}",
f"F480M_dir_{dir}",
]
We now want to make a numpy array for the parameters and observations from the table. we want to make sure that the shape of these arrays matches the expected input for the GridCreator class, which is (n_models, n_parameters) and (n_models, n_observations) respectively. Therefore we need to transpose the arrays after converting them from the pandas dataframe. ```python
[4]:
parameters = sphinx[parameter_columns].to_pandas().to_numpy().T
features = sphinx[feature_names].to_pandas().to_numpy().T
If we wish we can also store some ‘supplementary’ parameters, which will not be inferred by default when we use the grid for inference, but can be accessed later if desired. This is useful for derived parameters or other quantities of interest. Here we will store the escape fraction, UV slope, and absolute UV magnitude.
[5]:
supplementary_columns = [f"fesc_dir_{dir}", f"beta_dir_{dir}_sn", f"MAB_1500_dir_{dir}"]
supplementary_units = ["dimensionless", "dimensionless", "AB"]
supplementary_data = sphinx[supplementary_columns].to_pandas().to_numpy().T
We will set nicer names for our features, and also define a feature transform function to convert the magnitudes to fluxes. The SPHINX data release provides magnitudes, but we will set input to be in nanoJanskys.
[6]:
override_feature_names = [f"JWST/NIRCam.{filter.split('_dir_')[0]}" for filter in feature_names]
def _feature_transform(features: np.ndarray) -> np.ndarray:
# Convert AB mag to nJy
flux = 10 ** (-0.4 * (features - 31.4))
flux[features == 0] = 0 # Avoid division by zero
flux[~np.isfinite(flux)] = 0 # Handle non-finite values
return flux
features = _feature_transform(features)
Now we can create the grid using the LibraryCreator class. We will specify an output folder and set overwrite=True to overwrite any existing files.
[7]:
LibraryCreator(
model_name="SPHINX_JWST",
parameter_grid=parameters,
observation_grid=features,
observation_names=override_feature_names,
observation_units="nJy",
parameter_names=parameter_columns,
parameter_units=parameter_units,
supplementary_parameters=supplementary_data,
supplementary_parameter_names=supplementary_columns,
supplementary_parameter_units=supplementary_units,
out_folder=".",
overwrite=True,
)
2025-11-13 20:03:22,693 | synference | INFO | Number of parameters: 8
2025-11-13 20:03:22,698 | synference | INFO | Number of observations: 20
2025-11-13 20:03:22,699 | synference | INFO | Num rows in parameter library: 1380
2025-11-13 20:03:22,701 | synference | INFO | Num rows in observation library: 1380
2025-11-13 20:03:22,717 | synference | INFO | Library saved to ./library_SPHINX_JWST.h5
[7]:
<synference.library.LibraryCreator at 0x7f9aceeff220>
Now let’s quickly check that the grid was saved correctly by loading it back in using the SBI_Fitter class.
[8]:
from synference import SBI_Fitter
fitter = SBI_Fitter.init_from_hdf5(model_name="SPHINX_JWST", hdf5_path="./library_SPHINX_JWST.h5")
[9]:
print(fitter.raw_observation_names)
print(fitter.parameter_names)
print(fitter.parameter_units)
['JWST/NIRCam.F070W' 'JWST/NIRCam.F090W' 'JWST/NIRCam.F115W'
'JWST/NIRCam.F140M' 'JWST/NIRCam.F150W' 'JWST/NIRCam.F162M'
'JWST/NIRCam.F182M' 'JWST/NIRCam.F200W' 'JWST/NIRCam.F210M'
'JWST/NIRCam.F250M' 'JWST/NIRCam.F277W' 'JWST/NIRCam.F300M'
'JWST/NIRCam.F335M' 'JWST/NIRCam.F356W' 'JWST/NIRCam.F360M'
'JWST/NIRCam.F410M' 'JWST/NIRCam.F430M' 'JWST/NIRCam.F444W'
'JWST/NIRCam.F460M' 'JWST/NIRCam.F480M']
['redshift' 'stellar_mass' 'stellar_metallicity' 'mean_stellar_age_mass'
'sfr_3' 'sfr_10' 'sfr_100' 'ebmv_dir_0']
['dimensionless' 'log10(Msun)' 'dimensionless' 'Myr' 'Msun/yr' 'Msun/yr'
'Msun/yr' 'dimensionless']
As we can see the grid has been loaded correctly with the expected parameter and observation names and units, and we could now proceed to use this grid for inference as normal.
This class provides a flexible way to bring your own model grids into Synference for inference.