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.20/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")
--2026-06-24 09:49:37--  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.108.133, 185.199.109.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25929930 (25M) [text/plain]
Saving to: ‘all_basic_data.csv’

     0K .......... .......... .......... .......... ..........  0% 39.1M 1s
    50K .......... .......... .......... .......... ..........  0% 48.8M 1s
   100K .......... .......... .......... .......... ..........  0%  101M 0s
   150K .......... .......... .......... .......... ..........  0% 61.6M 0s
   200K .......... .......... .......... .......... ..........  0%  118M 0s
   250K .......... .......... .......... .......... ..........  1% 61.2M 0s
   300K .......... .......... .......... .......... ..........  1% 33.9M 0s
   350K .......... .......... .......... .......... ..........  1% 33.7M 0s
   400K .......... .......... .......... .......... ..........  1% 34.4M 0s
   450K .......... .......... .......... .......... ..........  1%  319M 0s
   500K .......... .......... .......... .......... ..........  2%  180M 0s
   550K .......... .......... .......... .......... ..........  2% 42.7M 0s
   600K .......... .......... .......... .......... ..........  2% 65.2M 0s
   650K .......... .......... .......... .......... ..........  2%  115M 0s
   700K .......... .......... .......... .......... ..........  2%  297M 0s
   750K .......... .......... .......... .......... ..........  3% 53.9M 0s
   800K .......... .......... .......... .......... ..........  3% 85.7M 0s
   850K .......... .......... .......... .......... ..........  3% 72.0M 0s
   900K .......... .......... .......... .......... ..........  3%  261M 0s
   950K .......... .......... .......... .......... ..........  3%  159M 0s
  1000K .......... .......... .......... .......... ..........  4% 96.9M 0s
  1050K .......... .......... .......... .......... ..........  4%  219M 0s
  1100K .......... .......... .......... .......... ..........  4%  132M 0s
  1150K .......... .......... .......... .......... ..........  4%  239M 0s
  1200K .......... .......... .......... .......... ..........  4%  196M 0s
  1250K .......... .......... .......... .......... ..........  5%  224M 0s
  1300K .......... .......... .......... .......... ..........  5%  206M 0s
  1350K .......... .......... .......... .......... ..........  5%  174M 0s
  1400K .......... .......... .......... .......... ..........  5%  219M 0s
  1450K .......... .......... .......... .......... ..........  5% 21.9M 0s
  1500K .......... .......... .......... .......... ..........  6% 86.0M 0s
  1550K .......... .......... .......... .......... ..........  6%  182M 0s
  1600K .......... .......... .......... .......... ..........  6%  268M 0s
  1650K .......... .......... .......... .......... ..........  6%  329M 0s
  1700K .......... .......... .......... .......... ..........  6%  326M 0s
  1750K .......... .......... .......... .......... ..........  7%  268M 0s
  1800K .......... .......... .......... .......... ..........  7%  303M 0s
  1850K .......... .......... .......... .......... ..........  7%  326M 0s
  1900K .......... .......... .......... .......... ..........  7% 77.1M 0s
  1950K .......... .......... .......... .......... ..........  7%  308M 0s
  2000K .......... .......... .......... .......... ..........  8%  139M 0s
  2050K .......... .......... .......... .......... ..........  8% 35.5M 0s
  2100K .......... .......... .......... .......... ..........  8%  274M 0s
  2150K .......... .......... .......... .......... ..........  8%  304M 0s
  2200K .......... .......... .......... .......... ..........  8%  295M 0s
  2250K .......... .......... .......... .......... ..........  9%  264M 0s
  2300K .......... .......... .......... .......... ..........  9%  226M 0s
  2350K .......... .......... .......... .......... ..........  9%  289M 0s
  2400K .......... .......... .......... .......... ..........  9%  278M 0s
  2450K .......... .......... .......... .......... ..........  9%  272M 0s
  2500K .......... .......... .......... .......... .......... 10% 36.7M 0s
  2550K .......... .......... .......... .......... .......... 10%  205M 0s
  2600K .......... .......... .......... .......... .......... 10%  179M 0s
  2650K .......... .......... .......... .......... .......... 10%  303M 0s
  2700K .......... .......... .......... .......... .......... 10%  185M 0s
  2750K .......... .......... .......... .......... .......... 11%  299M 0s
  2800K .......... .......... .......... .......... .......... 11%  194M 0s
  2850K .......... .......... .......... .......... .......... 11%  262M 0s
  2900K .......... .......... .......... .......... .......... 11%  224M 0s
  2950K .......... .......... .......... .......... .......... 11%  117M 0s
  3000K .......... .......... .......... .......... .......... 12%  230M 0s
  3050K .......... .......... .......... .......... .......... 12%  303M 0s
  3100K .......... .......... .......... .......... .......... 12%  295M 0s
  3150K .......... .......... .......... .......... .......... 12% 78.4M 0s
  3200K .......... .......... .......... .......... .......... 12%  137M 0s
  3250K .......... .......... .......... .......... .......... 13% 22.6M 0s
  3300K .......... .......... .......... .......... .......... 13%  307M 0s
  3350K .......... .......... .......... .......... .......... 13%  222M 0s
  3400K .......... .......... .......... .......... .......... 13%  295M 0s
  3450K .......... .......... .......... .......... .......... 13%  346M 0s
  3500K .......... .......... .......... .......... .......... 14%  328M 0s
  3550K .......... .......... .......... .......... .......... 14%  279M 0s
  3600K .......... .......... .......... .......... .......... 14%  333M 0s
  3650K .......... .......... .......... .......... .......... 14%  222M 0s
  3700K .......... .......... .......... .......... .......... 14%  290M 0s
  3750K .......... .......... .......... .......... .......... 15%  252M 0s
  3800K .......... .......... .......... .......... .......... 15%  289M 0s
  3850K .......... .......... .......... .......... .......... 15%  311M 0s
  3900K .......... .......... .......... .......... .......... 15%  133M 0s
  3950K .......... .......... .......... .......... .......... 15% 28.3M 0s
  4000K .......... .......... .......... .......... .......... 15%  207M 0s
  4050K .......... .......... .......... .......... .......... 16%  240M 0s
  4100K .......... .......... .......... .......... .......... 16%  245M 0s
  4150K .......... .......... .......... .......... .......... 16%  238M 0s
  4200K .......... .......... .......... .......... .......... 16%  174M 0s
  4250K .......... .......... .......... .......... .......... 16%  218M 0s
  4300K .......... .......... .......... .......... .......... 17%  173M 0s
  4350K .......... .......... .......... .......... .......... 17%  172M 0s
  4400K .......... .......... .......... .......... .......... 17%  226M 0s
  4450K .......... .......... .......... .......... .......... 17%  289M 0s
  4500K .......... .......... .......... .......... .......... 17%  142M 0s
  4550K .......... .......... .......... .......... .......... 18% 34.6M 0s
  4600K .......... .......... .......... .......... .......... 18% 80.0M 0s
  4650K .......... .......... .......... .......... .......... 18%  227M 0s
  4700K .......... .......... .......... .......... .......... 18%  290M 0s
  4750K .......... .......... .......... .......... .......... 18%  161M 0s
  4800K .......... .......... .......... .......... .......... 19%  213M 0s
  4850K .......... .......... .......... .......... .......... 19%  297M 0s
  4900K .......... .......... .......... .......... .......... 19% 28.1M 0s
  4950K .......... .......... .......... .......... .......... 19%  248M 0s
  5000K .......... .......... .......... .......... .......... 19%  176M 0s
  5050K .......... .......... .......... .......... .......... 20%  284M 0s
  5100K .......... .......... .......... .......... .......... 20%  288M 0s
  5150K .......... .......... .......... .......... .......... 20%  258M 0s
  5200K .......... .......... .......... .......... .......... 20%  206M 0s
  5250K .......... .......... .......... .......... .......... 20%  158M 0s
  5300K .......... .......... .......... .......... .......... 21%  148M 0s
  5350K .......... .......... .......... .......... .......... 21%  299M 0s
  5400K .......... .......... .......... .......... .......... 21%  343M 0s
  5450K .......... .......... .......... .......... .......... 21% 34.4M 0s
  5500K .......... .......... .......... .......... .......... 21% 68.6M 0s
  5550K .......... .......... .......... .......... .......... 22%  273M 0s
  5600K .......... .......... .......... .......... .......... 22%  277M 0s
  5650K .......... .......... .......... .......... .......... 22%  152M 0s
  5700K .......... .......... .......... .......... .......... 22%  230M 0s
  5750K .......... .......... .......... .......... .......... 22%  114M 0s
  5800K .......... .......... .......... .......... .......... 23% 76.4M 0s
  5850K .......... .......... .......... .......... .......... 23% 39.5M 0s
  5900K .......... .......... .......... .......... .......... 23%  277M 0s
  5950K .......... .......... .......... .......... .......... 23%  207M 0s
  6000K .......... .......... .......... .......... .......... 23%  286M 0s
  6050K .......... .......... .......... .......... .......... 24%  280M 0s
  6100K .......... .......... .......... .......... .......... 24%  143M 0s
  6150K .......... .......... .......... .......... .......... 24%  163M 0s
  6200K .......... .......... .......... .......... .......... 24%  263M 0s
  6250K .......... .......... .......... .......... .......... 24% 57.0M 0s
  6300K .......... .......... .......... .......... .......... 25% 54.1M 0s
  6350K .......... .......... .......... .......... .......... 25%  140M 0s
  6400K .......... .......... .......... .......... .......... 25%  230M 0s
  6450K .......... .......... .......... .......... .......... 25% 33.5M 0s
  6500K .......... .......... .......... .......... .......... 25% 77.8M 0s
  6550K .......... .......... .......... .......... .......... 26%  214M 0s
  6600K .......... .......... .......... .......... .......... 26%  245M 0s
  6650K .......... .......... .......... .......... .......... 26%  240M 0s
  6700K .......... .......... .......... .......... .......... 26%  148M 0s
  6750K .......... .......... .......... .......... .......... 26%  138M 0s
  6800K .......... .......... .......... .......... .......... 27%  228M 0s
  6850K .......... .......... .......... .......... .......... 27%  312M 0s
  6900K .......... .......... .......... .......... .......... 27%  223M 0s
  6950K .......... .......... .......... .......... .......... 27% 97.1M 0s
  7000K .......... .......... .......... .......... .......... 27%  204M 0s
  7050K .......... .......... .......... .......... .......... 28%  201M 0s
  7100K .......... .......... .......... .......... .......... 28%  284M 0s
  7150K .......... .......... .......... .......... .......... 28%  190M 0s
  7200K .......... .......... .......... .......... .......... 28%  174M 0s
  7250K .......... .......... .......... .......... .......... 28%  293M 0s
  7300K .......... .......... .......... .......... .......... 29%  164M 0s
  7350K .......... .......... .......... .......... .......... 29%  170M 0s
  7400K .......... .......... .......... .......... .......... 29%  280M 0s
  7450K .......... .......... .......... .......... .......... 29%  120M 0s
  7500K .......... .......... .......... .......... .......... 29%  272M 0s
  7550K .......... .......... .......... .......... .......... 30%  205M 0s
  7600K .......... .......... .......... .......... .......... 30%  199M 0s
  7650K .......... .......... .......... .......... .......... 30%  137M 0s
  7700K .......... .......... .......... .......... .......... 30%  146M 0s
  7750K .......... .......... .......... .......... .......... 30%  273M 0s
  7800K .......... .......... .......... .......... .......... 31%  223M 0s
  7850K .......... .......... .......... .......... .......... 31% 95.9M 0s
  7900K .......... .......... .......... .......... .......... 31%  161M 0s
  7950K .......... .......... .......... .......... .......... 31%  210M 0s
  8000K .......... .......... .......... .......... .......... 31%  159M 0s
  8050K .......... .......... .......... .......... .......... 31%  282M 0s
  8100K .......... .......... .......... .......... .......... 32%  311M 0s
  8150K .......... .......... .......... .......... .......... 32%  244M 0s
  8200K .......... .......... .......... .......... .......... 32%  107M 0s
  8250K .......... .......... .......... .......... .......... 32%  152M 0s
  8300K .......... .......... .......... .......... .......... 32%  173M 0s
  8350K .......... .......... .......... .......... .......... 33%  301M 0s
  8400K .......... .......... .......... .......... .......... 33% 26.0M 0s
  8450K .......... .......... .......... .......... .......... 33% 50.3M 0s
  8500K .......... .......... .......... .......... .......... 33%  249M 0s
  8550K .......... .......... .......... .......... .......... 33%  296M 0s
  8600K .......... .......... .......... .......... .......... 34%  265M 0s
  8650K .......... .......... .......... .......... .......... 34%  273M 0s
  8700K .......... .......... .......... .......... .......... 34%  290M 0s
  8750K .......... .......... .......... .......... .......... 34%  271M 0s
  8800K .......... .......... .......... .......... .......... 34%  185M 0s
  8850K .......... .......... .......... .......... .......... 35% 25.5M 0s
  8900K .......... .......... .......... .......... .......... 35%  245M 0s
  8950K .......... .......... .......... .......... .......... 35%  256M 0s
  9000K .......... .......... .......... .......... .......... 35%  246M 0s
  9050K .......... .......... .......... .......... .......... 35%  312M 0s
  9100K .......... .......... .......... .......... .......... 36%  235M 0s
  9150K .......... .......... .......... .......... .......... 36%  212M 0s
  9200K .......... .......... .......... .......... .......... 36%  147M 0s
  9250K .......... .......... .......... .......... .......... 36%  162M 0s
  9300K .......... .......... .......... .......... .......... 36%  273M 0s
  9350K .......... .......... .......... .......... .......... 37%  338M 0s
  9400K .......... .......... .......... .......... .......... 37% 31.8M 0s
  9450K .......... .......... .......... .......... .......... 37%  284M 0s
  9500K .......... .......... .......... .......... .......... 37%  178M 0s
  9550K .......... .......... .......... .......... .......... 37%  295M 0s
  9600K .......... .......... .......... .......... .......... 38%  339M 0s
  9650K .......... .......... .......... .......... .......... 38%  312M 0s
  9700K .......... .......... .......... .......... .......... 38%  357M 0s
  9750K .......... .......... .......... .......... .......... 38%  293M 0s
  9800K .......... .......... .......... .......... .......... 38% 87.5M 0s
  9850K .......... .......... .......... .......... .......... 39%  303M 0s
  9900K .......... .......... .......... .......... .......... 39%  254M 0s
  9950K .......... .......... .......... .......... .......... 39%  166M 0s
 10000K .......... .......... .......... .......... .......... 39%  132M 0s
 10050K .......... .......... .......... .......... .......... 39% 38.6M 0s
 10100K .......... .......... .......... .......... .......... 40% 71.3M 0s
 10150K .......... .......... .......... .......... .......... 40%  208M 0s
 10200K .......... .......... .......... .......... .......... 40%  285M 0s
 10250K .......... .......... .......... .......... .......... 40% 89.1M 0s
 10300K .......... .......... .......... .......... .......... 40%  330M 0s
 10350K .......... .......... .......... .......... .......... 41%  310M 0s
 10400K .......... .......... .......... .......... .......... 41%  172M 0s
 10450K .......... .......... .......... .......... .......... 41%  276M 0s
 10500K .......... .......... .......... .......... .......... 41%  203M 0s
 10550K .......... .......... .......... .......... .......... 41%  150M 0s
 10600K .......... .......... .......... .......... .......... 42%  270M 0s
 10650K .......... .......... .......... .......... .......... 42%  140M 0s
 10700K .......... .......... .......... .......... .......... 42%  212M 0s
 10750K .......... .......... .......... .......... .......... 42%  188M 0s
 10800K .......... .......... .......... .......... .......... 42% 35.1M 0s
 10850K .......... .......... .......... .......... .......... 43% 49.3M 0s
 10900K .......... .......... .......... .......... .......... 43%  142M 0s
 10950K .......... .......... .......... .......... .......... 43%  219M 0s
 11000K .......... .......... .......... .......... .......... 43%  252M 0s
 11050K .......... .......... .......... .......... .......... 43%  242M 0s
 11100K .......... .......... .......... .......... .......... 44%  295M 0s
 11150K .......... .......... .......... .......... .......... 44%  148M 0s
 11200K .......... .......... .......... .......... .......... 44%  200M 0s
 11250K .......... .......... .......... .......... .......... 44%  125M 0s
 11300K .......... .......... .......... .......... .......... 44% 48.8M 0s
 11350K .......... .......... .......... .......... .......... 45%  127M 0s
 11400K .......... .......... .......... .......... .......... 45%  290M 0s
 11450K .......... .......... .......... .......... .......... 45%  248M 0s
 11500K .......... .......... .......... .......... .......... 45%  237M 0s
 11550K .......... .......... .......... .......... .......... 45%  176M 0s
 11600K .......... .......... .......... .......... .......... 46% 38.3M 0s
 11650K .......... .......... .......... .......... .......... 46%  154M 0s
 11700K .......... .......... .......... .......... .......... 46%  275M 0s
 11750K .......... .......... .......... .......... .......... 46%  197M 0s
 11800K .......... .......... .......... .......... .......... 46%  289M 0s
 11850K .......... .......... .......... .......... .......... 46%  286M 0s
 11900K .......... .......... .......... .......... .......... 47%  148M 0s
 11950K .......... .......... .......... .......... .......... 47%  230M 0s
 12000K .......... .......... .......... .......... .......... 47%  178M 0s
 12050K .......... .......... .......... .......... .......... 47%  210M 0s
 12100K .......... .......... .......... .......... .......... 47%  164M 0s
 12150K .......... .......... .......... .......... .......... 48%  141M 0s
 12200K .......... .......... .......... .......... .......... 48%  285M 0s
 12250K .......... .......... .......... .......... .......... 48%  161M 0s
 12300K .......... .......... .......... .......... .......... 48%  242M 0s
 12350K .......... .......... .......... .......... .......... 48%  291M 0s
 12400K .......... .......... .......... .......... .......... 49%  302M 0s
 12450K .......... .......... .......... .......... .......... 49%  119M 0s
 12500K .......... .......... .......... .......... .......... 49%  128M 0s
 12550K .......... .......... .......... .......... .......... 49%  215M 0s
 12600K .......... .......... .......... .......... .......... 49%  314M 0s
 12650K .......... .......... .......... .......... .......... 50% 98.2M 0s
 12700K .......... .......... .......... .......... .......... 50%  139M 0s
 12750K .......... .......... .......... .......... .......... 50%  215M 0s
 12800K .......... .......... .......... .......... .......... 50%  308M 0s
 12850K .......... .......... .......... .......... .......... 50%  122M 0s
 12900K .......... .......... .......... .......... .......... 51%  204M 0s
 12950K .......... .......... .......... .......... .......... 51%  301M 0s
 13000K .......... .......... .......... .......... .......... 51%  139M 0s
 13050K .......... .......... .......... .......... .......... 51%  166M 0s
 13100K .......... .......... .......... .......... .......... 51%  297M 0s
 13150K .......... .......... .......... .......... .......... 52%  174M 0s
 13200K .......... .......... .......... .......... .......... 52% 34.4M 0s
 13250K .......... .......... .......... .......... .......... 52% 32.5M 0s
 13300K .......... .......... .......... .......... .......... 52%  285M 0s
 13350K .......... .......... .......... .......... .......... 52%  223M 0s
 13400K .......... .......... .......... .......... .......... 53%  303M 0s
 13450K .......... .......... .......... .......... .......... 53%  156M 0s
 13500K .......... .......... .......... .......... .......... 53%  296M 0s
 13550K .......... .......... .......... .......... .......... 53%  292M 0s
 13600K .......... .......... .......... .......... .......... 53% 96.3M 0s
 13650K .......... .......... .......... .......... .......... 54% 22.7M 0s
 13700K .......... .......... .......... .......... .......... 54% 81.9M 0s
 13750K .......... .......... .......... .......... .......... 54%  371M 0s
 13800K .......... .......... .......... .......... .......... 54%  395M 0s
 13850K .......... .......... .......... .......... .......... 54%  390M 0s
 13900K .......... .......... .......... .......... .......... 55%  239M 0s
 13950K .......... .......... .......... .......... .......... 55%  249M 0s
 14000K .......... .......... .......... .......... .......... 55% 96.1M 0s
 14050K .......... .......... .......... .......... .......... 55% 26.8M 0s
 14100K .......... .......... .......... .......... .......... 55%  295M 0s
 14150K .......... .......... .......... .......... .......... 56%  256M 0s
 14200K .......... .......... .......... .......... .......... 56%  212M 0s
 14250K .......... .......... .......... .......... .......... 56%  267M 0s
 14300K .......... .......... .......... .......... .......... 56%  279M 0s
 14350K .......... .......... .......... .......... .......... 56%  223M 0s
 14400K .......... .......... .......... .......... .......... 57%  363M 0s
 14450K .......... .......... .......... .......... .......... 57%  149M 0s
 14500K .......... .......... .......... .......... .......... 57%  258M 0s
 14550K .......... .......... .......... .......... .......... 57%  382M 0s
 14600K .......... .......... .......... .......... .......... 57%  385M 0s
 14650K .......... .......... .......... .......... .......... 58% 46.5M 0s
 14700K .......... .......... .......... .......... .......... 58%  321M 0s
 14750K .......... .......... .......... .......... .......... 58%  380M 0s
 14800K .......... .......... .......... .......... .......... 58%  176M 0s
 14850K .......... .......... .......... .......... .......... 58%  204M 0s
 14900K .......... .......... .......... .......... .......... 59%  371M 0s
 14950K .......... .......... .......... .......... .......... 59%  373M 0s
 15000K .......... .......... .......... .......... .......... 59%  396M 0s
 15050K .......... .......... .......... .......... .......... 59%  376M 0s
 15100K .......... .......... .......... .......... .......... 59%  119M 0s
 15150K .......... .......... .......... .......... .......... 60% 31.2M 0s
 15200K .......... .......... .......... .......... .......... 60% 63.3M 0s
 15250K .......... .......... .......... .......... .......... 60%  219M 0s
 15300K .......... .......... .......... .......... .......... 60%  253M 0s
 15350K .......... .......... .......... .......... .......... 60%  223M 0s
 15400K .......... .......... .......... .......... .......... 61%  343M 0s
 15450K .......... .......... .......... .......... .......... 61%  374M 0s
 15500K .......... .......... .......... .......... .......... 61%  381M 0s
 15550K .......... .......... .......... .......... .......... 61%  350M 0s
 15600K .......... .......... .......... .......... .......... 61%  236M 0s
 15650K .......... .......... .......... .......... .......... 62% 31.9M 0s
 15700K .......... .......... .......... .......... .......... 62% 44.7M 0s
 15750K .......... .......... .......... .......... .......... 62%  191M 0s
 15800K .......... .......... .......... .......... .......... 62%  327M 0s
 15850K .......... .......... .......... .......... .......... 62% 65.5M 0s
 15900K .......... .......... .......... .......... .......... 62%  214M 0s
 15950K .......... .......... .......... .......... .......... 63%  169M 0s
 16000K .......... .......... .......... .......... .......... 63%  359M 0s
 16050K .......... .......... .......... .......... .......... 63%  197M 0s
 16100K .......... .......... .......... .......... .......... 63%  294M 0s
 16150K .......... .......... .......... .......... .......... 63%  313M 0s
 16200K .......... .......... .......... .......... .......... 64% 44.3M 0s
 16250K .......... .......... .......... .......... .......... 64% 43.4M 0s
 16300K .......... .......... .......... .......... .......... 64%  269M 0s
 16350K .......... .......... .......... .......... .......... 64%  226M 0s
 16400K .......... .......... .......... .......... .......... 64%  302M 0s
 16450K .......... .......... .......... .......... .......... 65%  189M 0s
 16500K .......... .......... .......... .......... .......... 65%  258M 0s
 16550K .......... .......... .......... .......... .......... 65%  208M 0s
 16600K .......... .......... .......... .......... .......... 65%  204M 0s
 16650K .......... .......... .......... .......... .......... 65%  263M 0s
 16700K .......... .......... .......... .......... .......... 66%  144M 0s
 16750K .......... .......... .......... .......... .......... 66% 39.0M 0s
 16800K .......... .......... .......... .......... .......... 66%  298M 0s
 16850K .......... .......... .......... .......... .......... 66%  340M 0s
 16900K .......... .......... .......... .......... .......... 66%  303M 0s
 16950K .......... .......... .......... .......... .......... 67%  243M 0s
 17000K .......... .......... .......... .......... .......... 67%  326M 0s
 17050K .......... .......... .......... .......... .......... 67% 99.2M 0s
 17100K .......... .......... .......... .......... .......... 67%  296M 0s
 17150K .......... .......... .......... .......... .......... 67%  112M 0s
 17200K .......... .......... .......... .......... .......... 68%  219M 0s
 17250K .......... .......... .......... .......... .......... 68%  169M 0s
 17300K .......... .......... .......... .......... .......... 68%  362M 0s
 17350K .......... .......... .......... .......... .......... 68%  140M 0s
 17400K .......... .......... .......... .......... .......... 68%  266M 0s
 17450K .......... .......... .......... .......... .......... 69%  105M 0s
 17500K .......... .......... .......... .......... .......... 69%  253M 0s
 17550K .......... .......... .......... .......... .......... 69%  240M 0s
 17600K .......... .......... .......... .......... .......... 69%  194M 0s
 17650K .......... .......... .......... .......... .......... 69%  322M 0s
 17700K .......... .......... .......... .......... .......... 70%  290M 0s
 17750K .......... .......... .......... .......... .......... 70% 35.7M 0s
 17800K .......... .......... .......... .......... .......... 70%  194M 0s
 17850K .......... .......... .......... .......... .......... 70%  221M 0s
 17900K .......... .......... .......... .......... .......... 70%  259M 0s
 17950K .......... .......... .......... .......... .......... 71%  239M 0s
 18000K .......... .......... .......... .......... .......... 71%  299M 0s
 18050K .......... .......... .......... .......... .......... 71%  317M 0s
 18100K .......... .......... .......... .......... .......... 71%  341M 0s
 18150K .......... .......... .......... .......... .......... 71%  165M 0s
 18200K .......... .......... .......... .......... .......... 72% 64.3M 0s
 18250K .......... .......... .......... .......... .......... 72% 26.5M 0s
 18300K .......... .......... .......... .......... .......... 72% 35.0M 0s
 18350K .......... .......... .......... .......... .......... 72%  225M 0s
 18400K .......... .......... .......... .......... .......... 72%  310M 0s
 18450K .......... .......... .......... .......... .......... 73%  196M 0s
 18500K .......... .......... .......... .......... .......... 73%  317M 0s
 18550K .......... .......... .......... .......... .......... 73%  321M 0s
 18600K .......... .......... .......... .......... .......... 73%  124M 0s
 18650K .......... .......... .......... .......... .......... 73%  164M 0s
 18700K .......... .......... .......... .......... .......... 74%  360M 0s
 18750K .......... .......... .......... .......... .......... 74%  208M 0s
 18800K .......... .......... .......... .......... .......... 74%  270M 0s
 18850K .......... .......... .......... .......... .......... 74%  373M 0s
 18900K .......... .......... .......... .......... .......... 74%  269M 0s
 18950K .......... .......... .......... .......... .......... 75%  163M 0s
 19000K .......... .......... .......... .......... .......... 75%  334M 0s
 19050K .......... .......... .......... .......... .......... 75%  139M 0s
 19100K .......... .......... .......... .......... .......... 75%  223M 0s
 19150K .......... .......... .......... .......... .......... 75%  342M 0s
 19200K .......... .......... .......... .......... .......... 76%  197M 0s
 19250K .......... .......... .......... .......... .......... 76%  159M 0s
 19300K .......... .......... .......... .......... .......... 76%  190M 0s
 19350K .......... .......... .......... .......... .......... 76%  154M 0s
 19400K .......... .......... .......... .......... .......... 76%  177M 0s
 19450K .......... .......... .......... .......... .......... 77%  187M 0s
 19500K .......... .......... .......... .......... .......... 77%  306M 0s
 19550K .......... .......... .......... .......... .......... 77%  146M 0s
 19600K .......... .......... .......... .......... .......... 77%  247M 0s
 19650K .......... .......... .......... .......... .......... 77%  134M 0s
 19700K .......... .......... .......... .......... .......... 77%  267M 0s
 19750K .......... .......... .......... .......... .......... 78%  176M 0s
 19800K .......... .......... .......... .......... .......... 78%  123M 0s
 19850K .......... .......... .......... .......... .......... 78% 28.9M 0s
 19900K .......... .......... .......... .......... .......... 78% 94.3M 0s
 19950K .......... .......... .......... .......... .......... 78%  223M 0s
 20000K .......... .......... .......... .......... .......... 79% 67.9M 0s
 20050K .......... .......... .......... .......... .......... 79% 74.6M 0s
 20100K .......... .......... .......... .......... .......... 79%  179M 0s
 20150K .......... .......... .......... .......... .......... 79%  210M 0s
 20200K .......... .......... .......... .......... .......... 79%  292M 0s
 20250K .......... .......... .......... .......... .......... 80%  102M 0s
 20300K .......... .......... .......... .......... .......... 80% 37.9M 0s
 20350K .......... .......... .......... .......... .......... 80%  288M 0s
 20400K .......... .......... .......... .......... .......... 80%  276M 0s
 20450K .......... .......... .......... .......... .......... 80%  231M 0s
 20500K .......... .......... .......... .......... .......... 81%  240M 0s
 20550K .......... .......... .......... .......... .......... 81% 33.5M 0s
 20600K .......... .......... .......... .......... .......... 81% 31.5M 0s
 20650K .......... .......... .......... .......... .......... 81%  273M 0s
 20700K .......... .......... .......... .......... .......... 81%  186M 0s
 20750K .......... .......... .......... .......... .......... 82%  223M 0s
 20800K .......... .......... .......... .......... .......... 82%  287M 0s
 20850K .......... .......... .......... .......... .......... 82%  189M 0s
 20900K .......... .......... .......... .......... .......... 82% 41.2M 0s
 20950K .......... .......... .......... .......... .......... 82%  296M 0s
 21000K .......... .......... .......... .......... .......... 83%  299M 0s
 21050K .......... .......... .......... .......... .......... 83% 46.1M 0s
 21100K .......... .......... .......... .......... .......... 83% 78.9M 0s
 21150K .......... .......... .......... .......... .......... 83%  266M 0s
 21200K .......... .......... .......... .......... .......... 83%  291M 0s
 21250K .......... .......... .......... .......... .......... 84%  198M 0s
 21300K .......... .......... .......... .......... .......... 84%  263M 0s
 21350K .......... .......... .......... .......... .......... 84%  243M 0s
 21400K .......... .......... .......... .......... .......... 84%  152M 0s
 21450K .......... .......... .......... .......... .......... 84%  298M 0s
 21500K .......... .......... .......... .......... .......... 85% 45.0M 0s
 21550K .......... .......... .......... .......... .......... 85% 67.1M 0s
 21600K .......... .......... .......... .......... .......... 85%  302M 0s
 21650K .......... .......... .......... .......... .......... 85%  175M 0s
 21700K .......... .......... .......... .......... .......... 85%  187M 0s
 21750K .......... .......... .......... .......... .......... 86%  292M 0s
 21800K .......... .......... .......... .......... .......... 86%  241M 0s
 21850K .......... .......... .......... .......... .......... 86%  292M 0s
 21900K .......... .......... .......... .......... .......... 86%  158M 0s
 21950K .......... .......... .......... .......... .......... 86%  100M 0s
 22000K .......... .......... .......... .......... .......... 87% 50.4M 0s
 22050K .......... .......... .......... .......... .......... 87%  180M 0s
 22100K .......... .......... .......... .......... .......... 87%  215M 0s
 22150K .......... .......... .......... .......... .......... 87%  295M 0s
 22200K .......... .......... .......... .......... .......... 87%  298M 0s
 22250K .......... .......... .......... .......... .......... 88%  175M 0s
 22300K .......... .......... .......... .......... .......... 88%  291M 0s
 22350K .......... .......... .......... .......... .......... 88% 26.1M 0s
 22400K .......... .......... .......... .......... .......... 88% 68.6M 0s
 22450K .......... .......... .......... .......... .......... 88%  163M 0s
 22500K .......... .......... .......... .......... .......... 89%  218M 0s
 22550K .......... .......... .......... .......... .......... 89%  287M 0s
 22600K .......... .......... .......... .......... .......... 89%  293M 0s
 22650K .......... .......... .......... .......... .......... 89%  229M 0s
 22700K .......... .......... .......... .......... .......... 89%  236M 0s
 22750K .......... .......... .......... .......... .......... 90% 53.6M 0s
 22800K .......... .......... .......... .......... .......... 90% 29.3M 0s
 22850K .......... .......... .......... .......... .......... 90%  128M 0s
 22900K .......... .......... .......... .......... .......... 90%  202M 0s
 22950K .......... .......... .......... .......... .......... 90%  272M 0s
 23000K .......... .......... .......... .......... .......... 91%  312M 0s
 23050K .......... .......... .......... .......... .......... 91%  273M 0s
 23100K .......... .......... .......... .......... .......... 91%  303M 0s
 23150K .......... .......... .......... .......... .......... 91% 50.0M 0s
 23200K .......... .......... .......... .......... .......... 91% 41.8M 0s
 23250K .......... .......... .......... .......... .......... 92%  225M 0s
 23300K .......... .......... .......... .......... .......... 92%  248M 0s
 23350K .......... .......... .......... .......... .......... 92%  288M 0s
 23400K .......... .......... .......... .......... .......... 92%  282M 0s
 23450K .......... .......... .......... .......... .......... 92%  287M 0s
 23500K .......... .......... .......... .......... .......... 93% 32.8M 0s
 23550K .......... .......... .......... .......... .......... 93% 54.9M 0s
 23600K .......... .......... .......... .......... .......... 93%  289M 0s
 23650K .......... .......... .......... .......... .......... 93%  188M 0s
 23700K .......... .......... .......... .......... .......... 93%  323M 0s
 23750K .......... .......... .......... .......... .......... 93%  310M 0s
 23800K .......... .......... .......... .......... .......... 94%  166M 0s
 23850K .......... .......... .......... .......... .......... 94%  216M 0s
 23900K .......... .......... .......... .......... .......... 94%  325M 0s
 23950K .......... .......... .......... .......... .......... 94%  161M 0s
 24000K .......... .......... .......... .......... .......... 94% 42.5M 0s
 24050K .......... .......... .......... .......... .......... 95% 30.9M 0s
 24100K .......... .......... .......... .......... .......... 95%  287M 0s
 24150K .......... .......... .......... .......... .......... 95%  174M 0s
 24200K .......... .......... .......... .......... .......... 95%  262M 0s
 24250K .......... .......... .......... .......... .......... 95%  241M 0s
 24300K .......... .......... .......... .......... .......... 96%  239M 0s
 24350K .......... .......... .......... .......... .......... 96%  242M 0s
 24400K .......... .......... .......... .......... .......... 96%  131M 0s
 24450K .......... .......... .......... .......... .......... 96%  344M 0s
 24500K .......... .......... .......... .......... .......... 96%  245M 0s
 24550K .......... .......... .......... .......... .......... 97% 59.9M 0s
 24600K .......... .......... .......... .......... .......... 97% 52.1M 0s
 24650K .......... .......... .......... .......... .......... 97%  285M 0s
 24700K .......... .......... .......... .......... .......... 97%  334M 0s
 24750K .......... .......... .......... .......... .......... 97%  233M 0s
 24800K .......... .......... .......... .......... .......... 98%  291M 0s
 24850K .......... .......... .......... .......... .......... 98%  249M 0s
 24900K .......... .......... .......... .......... .......... 98%  196M 0s
 24950K .......... .......... .......... .......... .......... 98%  150M 0s
 25000K .......... .......... .......... .......... .......... 98%  132M 0s
 25050K .......... .......... .......... .......... .......... 99%  241M 0s
 25100K .......... .......... .......... .......... .......... 99%  175M 0s
 25150K .......... .......... .......... .......... .......... 99%  223M 0s
 25200K .......... .......... .......... .......... .......... 99%  274M 0s
 25250K .......... .......... .......... .......... .......... 99%  302M 0s
 25300K .......... .......... ..                              100%  333M=0.2s

2026-06-24 09:49:38 (126 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,
)
2026-06-24 09:49:38,862 | synference | INFO     | Number of parameters: 8
2026-06-24 09:49:38,864 | synference | INFO     | Number of observations: 20
2026-06-24 09:49:38,866 | synference | INFO     | Num rows in parameter library: 1380
2026-06-24 09:49:38,866 | synference | INFO     | Num rows in observation library: 1380
2026-06-24 09:49:38,883 | synference | INFO     | Library saved to ./library_SPHINX_JWST.h5
[7]:
<synference.library.LibraryCreator at 0x7fc93459a740>

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.