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-07-25 16:12:03--  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.111.133, 185.199.108.133, 185.199.109.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25929930 (25M) [text/plain]
Saving to: ‘all_basic_data.csv’

     0K .......... .......... .......... .......... ..........  0% 23.9M 1s
    50K .......... .......... .......... .......... ..........  0%  238M 1s
   100K .......... .......... .......... .......... ..........  0% 72.1M 0s
   150K .......... .......... .......... .......... ..........  0% 67.9M 0s
   200K .......... .......... .......... .......... ..........  0% 27.7M 1s
   250K .......... .......... .......... .......... ..........  1%  277M 0s
   300K .......... .......... .......... .......... ..........  1%  306M 0s
   350K .......... .......... .......... .......... ..........  1%  175M 0s
   400K .......... .......... .......... .......... ..........  1%  144M 0s
   450K .......... .......... .......... .......... ..........  1%  288M 0s
   500K .......... .......... .......... .......... ..........  2% 89.4M 0s
   550K .......... .......... .......... .......... ..........  2%  232M 0s
   600K .......... .......... .......... .......... ..........  2%  136M 0s
   650K .......... .......... .......... .......... ..........  2%  185M 0s
   700K .......... .......... .......... .......... ..........  2%  268M 0s
   750K .......... .......... .......... .......... ..........  3%  105M 0s
   800K .......... .......... .......... .......... ..........  3%  163M 0s
   850K .......... .......... .......... .......... ..........  3%  151M 0s
   900K .......... .......... .......... .......... ..........  3% 41.5M 0s
   950K .......... .......... .......... .......... ..........  3%  265M 0s
  1000K .......... .......... .......... .......... ..........  4%  151M 0s
  1050K .......... .......... .......... .......... ..........  4%  192M 0s
  1100K .......... .......... .......... .......... ..........  4%  251M 0s
  1150K .......... .......... .......... .......... ..........  4%  220M 0s
  1200K .......... .......... .......... .......... ..........  4% 88.5M 0s
  1250K .......... .......... .......... .......... ..........  5%  114M 0s
  1300K .......... .......... .......... .......... ..........  5%  256M 0s
  1350K .......... .......... .......... .......... ..........  5%  170M 0s
  1400K .......... .......... .......... .......... ..........  5%  292M 0s
  1450K .......... .......... .......... .......... ..........  5%  182M 0s
  1500K .......... .......... .......... .......... ..........  6%  278M 0s
  1550K .......... .......... .......... .......... ..........  6%  115M 0s
  1600K .......... .......... .......... .......... ..........  6%  291M 0s
  1650K .......... .......... .......... .......... ..........  6%  257M 0s
  1700K .......... .......... .......... .......... ..........  6%  103M 0s
  1750K .......... .......... .......... .......... ..........  7%  184M 0s
  1800K .......... .......... .......... .......... ..........  7%  259M 0s
  1850K .......... .......... .......... .......... ..........  7%  137M 0s
  1900K .......... .......... .......... .......... ..........  7%  261M 0s
  1950K .......... .......... .......... .......... ..........  7%  298M 0s
  2000K .......... .......... .......... .......... ..........  8% 81.8M 0s
  2050K .......... .......... .......... .......... ..........  8%  199M 0s
  2100K .......... .......... .......... .......... ..........  8%  137M 0s
  2150K .......... .......... .......... .......... ..........  8%  298M 0s
  2200K .......... .......... .......... .......... ..........  8%  295M 0s
  2250K .......... .......... .......... .......... ..........  9%  146M 0s
  2300K .......... .......... .......... .......... ..........  9%  296M 0s
  2350K .......... .......... .......... .......... ..........  9% 81.6M 0s
  2400K .......... .......... .......... .......... ..........  9%  262M 0s
  2450K .......... .......... .......... .......... ..........  9%  154M 0s
  2500K .......... .......... .......... .......... .......... 10%  183M 0s
  2550K .......... .......... .......... .......... .......... 10%  333M 0s
  2600K .......... .......... .......... .......... .......... 10%  241M 0s
  2650K .......... .......... .......... .......... .......... 10%  179M 0s
  2700K .......... .......... .......... .......... .......... 10%  263M 0s
  2750K .......... .......... .......... .......... .......... 11%  153M 0s
  2800K .......... .......... .......... .......... .......... 11%  229M 0s
  2850K .......... .......... .......... .......... .......... 11% 86.3M 0s
  2900K .......... .......... .......... .......... .......... 11%  332M 0s
  2950K .......... .......... .......... .......... .......... 11%  255M 0s
  3000K .......... .......... .......... .......... .......... 12%  158M 0s
  3050K .......... .......... .......... .......... .......... 12%  327M 0s
  3100K .......... .......... .......... .......... .......... 12%  206M 0s
  3150K .......... .......... .......... .......... .......... 12%  221M 0s
  3200K .......... .......... .......... .......... .......... 12%  331M 0s
  3250K .......... .......... .......... .......... .......... 13%  157M 0s
  3300K .......... .......... .......... .......... .......... 13%  315M 0s
  3350K .......... .......... .......... .......... .......... 13%  133M 0s
  3400K .......... .......... .......... .......... .......... 13%  314M 0s
  3450K .......... .......... .......... .......... .......... 13% 97.6M 0s
  3500K .......... .......... .......... .......... .......... 14%  278M 0s
  3550K .......... .......... .......... .......... .......... 14%  314M 0s
  3600K .......... .......... .......... .......... .......... 14%  311M 0s
  3650K .......... .......... .......... .......... .......... 14% 35.5M 0s
  3700K .......... .......... .......... .......... .......... 14% 37.4M 0s
  3750K .......... .......... .......... .......... .......... 15%  116M 0s
  3800K .......... .......... .......... .......... .......... 15%  244M 0s
  3850K .......... .......... .......... .......... .......... 15%  283M 0s
  3900K .......... .......... .......... .......... .......... 15%  293M 0s
  3950K .......... .......... .......... .......... .......... 15%  283M 0s
  4000K .......... .......... .......... .......... .......... 15% 85.6M 0s
  4050K .......... .......... .......... .......... .......... 16%  140M 0s
  4100K .......... .......... .......... .......... .......... 16%  303M 0s
  4150K .......... .......... .......... .......... .......... 16%  328M 0s
  4200K .......... .......... .......... .......... .......... 16%  148M 0s
  4250K .......... .......... .......... .......... .......... 16%  277M 0s
  4300K .......... .......... .......... .......... .......... 17%  307M 0s
  4350K .......... .......... .......... .......... .......... 17%  175M 0s
  4400K .......... .......... .......... .......... .......... 17%  272M 0s
  4450K .......... .......... .......... .......... .......... 17%  109M 0s
  4500K .......... .......... .......... .......... .......... 17%  310M 0s
  4550K .......... .......... .......... .......... .......... 18%  192M 0s
  4600K .......... .......... .......... .......... .......... 18% 32.4M 0s
  4650K .......... .......... .......... .......... .......... 18% 39.0M 0s
  4700K .......... .......... .......... .......... .......... 18%  281M 0s
  4750K .......... .......... .......... .......... .......... 18%  228M 0s
  4800K .......... .......... .......... .......... .......... 19%  198M 0s
  4850K .......... .......... .......... .......... .......... 19%  195M 0s
  4900K .......... .......... .......... .......... .......... 19%  152M 0s
  4950K .......... .......... .......... .......... .......... 19% 48.3M 0s
  5000K .......... .......... .......... .......... .......... 19%  113M 0s
  5050K .......... .......... .......... .......... .......... 20%  260M 0s
  5100K .......... .......... .......... .......... .......... 20%  271M 0s
  5150K .......... .......... .......... .......... .......... 20%  200M 0s
  5200K .......... .......... .......... .......... .......... 20%  240M 0s
  5250K .......... .......... .......... .......... .......... 20%  126M 0s
  5300K .......... .......... .......... .......... .......... 21%  327M 0s
  5350K .......... .......... .......... .......... .......... 21%  164M 0s
  5400K .......... .......... .......... .......... .......... 21%  120M 0s
  5450K .......... .......... .......... .......... .......... 21%  195M 0s
  5500K .......... .......... .......... .......... .......... 21%  274M 0s
  5550K .......... .......... .......... .......... .......... 22%  180M 0s
  5600K .......... .......... .......... .......... .......... 22%  293M 0s
  5650K .......... .......... .......... .......... .......... 22%  119M 0s
  5700K .......... .......... .......... .......... .......... 22%  283M 0s
  5750K .......... .......... .......... .......... .......... 22%  132M 0s
  5800K .......... .......... .......... .......... .......... 23%  303M 0s
  5850K .......... .......... .......... .......... .......... 23%  321M 0s
  5900K .......... .......... .......... .......... .......... 23%  164M 0s
  5950K .......... .......... .......... .......... .......... 23% 98.6M 0s
  6000K .......... .......... .......... .......... .......... 23%  221M 0s
  6050K .......... .......... .......... .......... .......... 24%  281M 0s
  6100K .......... .......... .......... .......... .......... 24%  199M 0s
  6150K .......... .......... .......... .......... .......... 24%  247M 0s
  6200K .......... .......... .......... .......... .......... 24%  135M 0s
  6250K .......... .......... .......... .......... .......... 24%  279M 0s
  6300K .......... .......... .......... .......... .......... 25%  243M 0s
  6350K .......... .......... .......... .......... .......... 25%  145M 0s
  6400K .......... .......... .......... .......... .......... 25%  204M 0s
  6450K .......... .......... .......... .......... .......... 25%  299M 0s
  6500K .......... .......... .......... .......... .......... 25%  163M 0s
  6550K .......... .......... .......... .......... .......... 26% 58.1M 0s
  6600K .......... .......... .......... .......... .......... 26%  269M 0s
  6650K .......... .......... .......... .......... .......... 26%  248M 0s
  6700K .......... .......... .......... .......... .......... 26%  325M 0s
  6750K .......... .......... .......... .......... .......... 26%  132M 0s
  6800K .......... .......... .......... .......... .......... 27%  285M 0s
  6850K .......... .......... .......... .......... .......... 27%  308M 0s
  6900K .......... .......... .......... .......... .......... 27%  124M 0s
  6950K .......... .......... .......... .......... .......... 27%  287M 0s
  7000K .......... .......... .......... .......... .......... 27%  130M 0s
  7050K .......... .......... .......... .......... .......... 28% 35.1M 0s
  7100K .......... .......... .......... .......... .......... 28% 34.1M 0s
  7150K .......... .......... .......... .......... .......... 28%  183M 0s
  7200K .......... .......... .......... .......... .......... 28%  241M 0s
  7250K .......... .......... .......... .......... .......... 28%  276M 0s
  7300K .......... .......... .......... .......... .......... 29%  281M 0s
  7350K .......... .......... .......... .......... .......... 29%  137M 0s
  7400K .......... .......... .......... .......... .......... 29%  125M 0s
  7450K .......... .......... .......... .......... .......... 29%  268M 0s
  7500K .......... .......... .......... .......... .......... 29%  237M 0s
  7550K .......... .......... .......... .......... .......... 30%  130M 0s
  7600K .......... .......... .......... .......... .......... 30%  281M 0s
  7650K .......... .......... .......... .......... .......... 30%  161M 0s
  7700K .......... .......... .......... .......... .......... 30%  283M 0s
  7750K .......... .......... .......... .......... .......... 30%  134M 0s
  7800K .......... .......... .......... .......... .......... 31%  259M 0s
  7850K .......... .......... .......... .......... .......... 31%  277M 0s
  7900K .......... .......... .......... .......... .......... 31%  170M 0s
  7950K .......... .......... .......... .......... .......... 31% 66.5M 0s
  8000K .......... .......... .......... .......... .......... 31%  214M 0s
  8050K .......... .......... .......... .......... .......... 31%  257M 0s
  8100K .......... .......... .......... .......... .......... 32%  239M 0s
  8150K .......... .......... .......... .......... .......... 32%  134M 0s
  8200K .......... .......... .......... .......... .......... 32%  224M 0s
  8250K .......... .......... .......... .......... .......... 32%  172M 0s
  8300K .......... .......... .......... .......... .......... 32%  242M 0s
  8350K .......... .......... .......... .......... .......... 33%  202M 0s
  8400K .......... .......... .......... .......... .......... 33%  164M 0s
  8450K .......... .......... .......... .......... .......... 33%  290M 0s
  8500K .......... .......... .......... .......... .......... 33% 88.8M 0s
  8550K .......... .......... .......... .......... .......... 33%  256M 0s
  8600K .......... .......... .......... .......... .......... 34%  291M 0s
  8650K .......... .......... .......... .......... .......... 34%  282M 0s
  8700K .......... .......... .......... .......... .......... 34%  132M 0s
  8750K .......... .......... .......... .......... .......... 34%  206M 0s
  8800K .......... .......... .......... .......... .......... 34% 91.1M 0s
  8850K .......... .......... .......... .......... .......... 35%  251M 0s
  8900K .......... .......... .......... .......... .......... 35%  281M 0s
  8950K .......... .......... .......... .......... .......... 35%  155M 0s
  9000K .......... .......... .......... .......... .......... 35%  185M 0s
  9050K .......... .......... .......... .......... .......... 35%  282M 0s
  9100K .......... .......... .......... .......... .......... 36%  166M 0s
  9150K .......... .......... .......... .......... .......... 36%  214M 0s
  9200K .......... .......... .......... .......... .......... 36%  313M 0s
  9250K .......... .......... .......... .......... .......... 36%  138M 0s
  9300K .......... .......... .......... .......... .......... 36%  125M 0s
  9350K .......... .......... .......... .......... .......... 37%  312M 0s
  9400K .......... .......... .......... .......... .......... 37%  103M 0s
  9450K .......... .......... .......... .......... .......... 37%  254M 0s
  9500K .......... .......... .......... .......... .......... 37%  279M 0s
  9550K .......... .......... .......... .......... .......... 37%  161M 0s
  9600K .......... .......... .......... .......... .......... 38%  273M 0s
  9650K .......... .......... .......... .......... .......... 38%  214M 0s
  9700K .......... .......... .......... .......... .......... 38%  184M 0s
  9750K .......... .......... .......... .......... .......... 38%  321M 0s
  9800K .......... .......... .......... .......... .......... 38% 30.3M 0s
  9850K .......... .......... .......... .......... .......... 39% 27.0M 0s
  9900K .......... .......... .......... .......... .......... 39% 28.9M 0s
  9950K .......... .......... .......... .......... .......... 39%  194M 0s
 10000K .......... .......... .......... .......... .......... 39%  262M 0s
 10050K .......... .......... .......... .......... .......... 39%  191M 0s
 10100K .......... .......... .......... .......... .......... 40%  258M 0s
 10150K .......... .......... .......... .......... .......... 40%  110M 0s
 10200K .......... .......... .......... .......... .......... 40%  217M 0s
 10250K .......... .......... .......... .......... .......... 40%  148M 0s
 10300K .......... .......... .......... .......... .......... 40%  290M 0s
 10350K .......... .......... .......... .......... .......... 41%  101M 0s
 10400K .......... .......... .......... .......... .......... 41%  281M 0s
 10450K .......... .......... .......... .......... .......... 41%  187M 0s
 10500K .......... .......... .......... .......... .......... 41%  282M 0s
 10550K .......... .......... .......... .......... .......... 41%  130M 0s
 10600K .......... .......... .......... .......... .......... 42%  155M 0s
 10650K .......... .......... .......... .......... .......... 42%  265M 0s
 10700K .......... .......... .......... .......... .......... 42% 94.6M 0s
 10750K .......... .......... .......... .......... .......... 42%  313M 0s
 10800K .......... .......... .......... .......... .......... 42%  180M 0s
 10850K .......... .......... .......... .......... .......... 43%  231M 0s
 10900K .......... .......... .......... .......... .......... 43%  344M 0s
 10950K .......... .......... .......... .......... .......... 43%  160M 0s
 11000K .......... .......... .......... .......... .......... 43%  170M 0s
 11050K .......... .......... .......... .......... .......... 43%  165M 0s
 11100K .......... .......... .......... .......... .......... 44%  295M 0s
 11150K .......... .......... .......... .......... .......... 44%  225M 0s
 11200K .......... .......... .......... .......... .......... 44%  176M 0s
 11250K .......... .......... .......... .......... .......... 44%  275M 0s
 11300K .......... .......... .......... .......... .......... 44%  103M 0s
 11350K .......... .......... .......... .......... .......... 45%  321M 0s
 11400K .......... .......... .......... .......... .......... 45%  206M 0s
 11450K .......... .......... .......... .......... .......... 45% 81.2M 0s
 11500K .......... .......... .......... .......... .......... 45%  283M 0s
 11550K .......... .......... .......... .......... .......... 45%  216M 0s
 11600K .......... .......... .......... .......... .......... 46%  196M 0s
 11650K .......... .......... .......... .......... .......... 46%  329M 0s
 11700K .......... .......... .......... .......... .......... 46%  306M 0s
 11750K .......... .......... .......... .......... .......... 46%  186M 0s
 11800K .......... .......... .......... .......... .......... 46%  180M 0s
 11850K .......... .......... .......... .......... .......... 46%  153M 0s
 11900K .......... .......... .......... .......... .......... 47%  333M 0s
 11950K .......... .......... .......... .......... .......... 47%  349M 0s
 12000K .......... .......... .......... .......... .......... 47%  188M 0s
 12050K .......... .......... .......... .......... .......... 47%  306M 0s
 12100K .......... .......... .......... .......... .......... 47% 49.1M 0s
 12150K .......... .......... .......... .......... .......... 48% 32.4M 0s
 12200K .......... .......... .......... .......... .......... 48%  184M 0s
 12250K .......... .......... .......... .......... .......... 48%  313M 0s
 12300K .......... .......... .......... .......... .......... 48%  314M 0s
 12350K .......... .......... .......... .......... .......... 48%  189M 0s
 12400K .......... .......... .......... .......... .......... 49%  216M 0s
 12450K .......... .......... .......... .......... .......... 49%  289M 0s
 12500K .......... .......... .......... .......... .......... 49%  160M 0s
 12550K .......... .......... .......... .......... .......... 49% 30.6M 0s
 12600K .......... .......... .......... .......... .......... 49%  139M 0s
 12650K .......... .......... .......... .......... .......... 50%  175M 0s
 12700K .......... .......... .......... .......... .......... 50%  191M 0s
 12750K .......... .......... .......... .......... .......... 50%  300M 0s
 12800K .......... .......... .......... .......... .......... 50%  324M 0s
 12850K .......... .......... .......... .......... .......... 50%  212M 0s
 12900K .......... .......... .......... .......... .......... 51%  217M 0s
 12950K .......... .......... .......... .......... .......... 51%  187M 0s
 13000K .......... .......... .......... .......... .......... 51% 92.1M 0s
 13050K .......... .......... .......... .......... .......... 51%  221M 0s
 13100K .......... .......... .......... .......... .......... 51%  198M 0s
 13150K .......... .......... .......... .......... .......... 52%  214M 0s
 13200K .......... .......... .......... .......... .......... 52%  276M 0s
 13250K .......... .......... .......... .......... .......... 52%  111M 0s
 13300K .......... .......... .......... .......... .......... 52%  252M 0s
 13350K .......... .......... .......... .......... .......... 52%  192M 0s
 13400K .......... .......... .......... .......... .......... 53% 88.6M 0s
 13450K .......... .......... .......... .......... .......... 53%  191M 0s
 13500K .......... .......... .......... .......... .......... 53%  274M 0s
 13550K .......... .......... .......... .......... .......... 53%  263M 0s
 13600K .......... .......... .......... .......... .......... 53%  156M 0s
 13650K .......... .......... .......... .......... .......... 54%  258M 0s
 13700K .......... .......... .......... .......... .......... 54%  211M 0s
 13750K .......... .......... .......... .......... .......... 54%  198M 0s
 13800K .......... .......... .......... .......... .......... 54%  144M 0s
 13850K .......... .......... .......... .......... .......... 54% 94.2M 0s
 13900K .......... .......... .......... .......... .......... 55%  152M 0s
 13950K .......... .......... .......... .......... .......... 55%  259M 0s
 14000K .......... .......... .......... .......... .......... 55%  303M 0s
 14050K .......... .......... .......... .......... .......... 55%  150M 0s
 14100K .......... .......... .......... .......... .......... 55%  220M 0s
 14150K .......... .......... .......... .......... .......... 56%  179M 0s
 14200K .......... .......... .......... .......... .......... 56%  183M 0s
 14250K .......... .......... .......... .......... .......... 56%  202M 0s
 14300K .......... .......... .......... .......... .......... 56%  111M 0s
 14350K .......... .......... .......... .......... .......... 56%  263M 0s
 14400K .......... .......... .......... .......... .......... 57%  144M 0s
 14450K .......... .......... .......... .......... .......... 57%  258M 0s
 14500K .......... .......... .......... .......... .......... 57%  132M 0s
 14550K .......... .......... .......... .......... .......... 57%  149M 0s
 14600K .......... .......... .......... .......... .......... 57%  278M 0s
 14650K .......... .......... .......... .......... .......... 58%  146M 0s
 14700K .......... .......... .......... .......... .......... 58%  257M 0s
 14750K .......... .......... .......... .......... .......... 58%  184M 0s
 14800K .......... .......... .......... .......... .......... 58%  279M 0s
 14850K .......... .......... .......... .......... .......... 58% 59.7M 0s
 14900K .......... .......... .......... .......... .......... 59% 22.6M 0s
 14950K .......... .......... .......... .......... .......... 59% 31.5M 0s
 15000K .......... .......... .......... .......... .......... 59%  196M 0s
 15050K .......... .......... .......... .......... .......... 59%  208M 0s
 15100K .......... .......... .......... .......... .......... 59%  235M 0s
 15150K .......... .......... .......... .......... .......... 60% 37.1M 0s
 15200K .......... .......... .......... .......... .......... 60%  188M 0s
 15250K .......... .......... .......... .......... .......... 60%  268M 0s
 15300K .......... .......... .......... .......... .......... 60%  193M 0s
 15350K .......... .......... .......... .......... .......... 60%  160M 0s
 15400K .......... .......... .......... .......... .......... 61%  277M 0s
 15450K .......... .......... .......... .......... .......... 61% 44.8M 0s
 15500K .......... .......... .......... .......... .......... 61% 51.6M 0s
 15550K .......... .......... .......... .......... .......... 61%  274M 0s
 15600K .......... .......... .......... .......... .......... 61%  187M 0s
 15650K .......... .......... .......... .......... .......... 62%  183M 0s
 15700K .......... .......... .......... .......... .......... 62%  149M 0s
 15750K .......... .......... .......... .......... .......... 62%  199M 0s
 15800K .......... .......... .......... .......... .......... 62%  170M 0s
 15850K .......... .......... .......... .......... .......... 62%  203M 0s
 15900K .......... .......... .......... .......... .......... 62%  296M 0s
 15950K .......... .......... .......... .......... .......... 63%  147M 0s
 16000K .......... .......... .......... .......... .......... 63% 88.4M 0s
 16050K .......... .......... .......... .......... .......... 63%  263M 0s
 16100K .......... .......... .......... .......... .......... 63%  201M 0s
 16150K .......... .......... .......... .......... .......... 63%  157M 0s
 16200K .......... .......... .......... .......... .......... 64%  194M 0s
 16250K .......... .......... .......... .......... .......... 64%  260M 0s
 16300K .......... .......... .......... .......... .......... 64%  179M 0s
 16350K .......... .......... .......... .......... .......... 64%  147M 0s
 16400K .......... .......... .......... .......... .......... 64%  285M 0s
 16450K .......... .......... .......... .......... .......... 65%  144M 0s
 16500K .......... .......... .......... .......... .......... 65%  204M 0s
 16550K .......... .......... .......... .......... .......... 65% 49.2M 0s
 16600K .......... .......... .......... .......... .......... 65% 25.5M 0s
 16650K .......... .......... .......... .......... .......... 65%  153M 0s
 16700K .......... .......... .......... .......... .......... 66%  266M 0s
 16750K .......... .......... .......... .......... .......... 66%  238M 0s
 16800K .......... .......... .......... .......... .......... 66%  152M 0s
 16850K .......... .......... .......... .......... .......... 66%  131M 0s
 16900K .......... .......... .......... .......... .......... 66%  262M 0s
 16950K .......... .......... .......... .......... .......... 67%  184M 0s
 17000K .......... .......... .......... .......... .......... 67%  186M 0s
 17050K .......... .......... .......... .......... .......... 67%  231M 0s
 17100K .......... .......... .......... .......... .......... 67%  101M 0s
 17150K .......... .......... .......... .......... .......... 67%  292M 0s
 17200K .......... .......... .......... .......... .......... 68%  136M 0s
 17250K .......... .......... .......... .......... .......... 68%  264M 0s
 17300K .......... .......... .......... .......... .......... 68%  120M 0s
 17350K .......... .......... .......... .......... .......... 68%  287M 0s
 17400K .......... .......... .......... .......... .......... 68%  129M 0s
 17450K .......... .......... .......... .......... .......... 69%  266M 0s
 17500K .......... .......... .......... .......... .......... 69%  342M 0s
 17550K .......... .......... .......... .......... .......... 69%  292M 0s
 17600K .......... .......... .......... .......... .......... 69%  127M 0s
 17650K .......... .......... .......... .......... .......... 69%  198M 0s
 17700K .......... .......... .......... .......... .......... 70%  275M 0s
 17750K .......... .......... .......... .......... .......... 70%  206M 0s
 17800K .......... .......... .......... .......... .......... 70%  141M 0s
 17850K .......... .......... .......... .......... .......... 70%  294M 0s
 17900K .......... .......... .......... .......... .......... 70%  143M 0s
 17950K .......... .......... .......... .......... .......... 71%  262M 0s
 18000K .......... .......... .......... .......... .......... 71%  114M 0s
 18050K .......... .......... .......... .......... .......... 71%  247M 0s
 18100K .......... .......... .......... .......... .......... 71%  305M 0s
 18150K .......... .......... .......... .......... .......... 71%  294M 0s
 18200K .......... .......... .......... .......... .......... 72%  156M 0s
 18250K .......... .......... .......... .......... .......... 72%  280M 0s
 18300K .......... .......... .......... .......... .......... 72%  180M 0s
 18350K .......... .......... .......... .......... .......... 72%  213M 0s
 18400K .......... .......... .......... .......... .......... 72%  265M 0s
 18450K .......... .......... .......... .......... .......... 73%  182M 0s
 18500K .......... .......... .......... .......... .......... 73%  277M 0s
 18550K .......... .......... .......... .......... .......... 73%  220M 0s
 18600K .......... .......... .......... .......... .......... 73% 97.8M 0s
 18650K .......... .......... .......... .......... .......... 73% 35.7M 0s
 18700K .......... .......... .......... .......... .......... 74% 36.9M 0s
 18750K .......... .......... .......... .......... .......... 74%  230M 0s
 18800K .......... .......... .......... .......... .......... 74%  263M 0s
 18850K .......... .......... .......... .......... .......... 74%  125M 0s
 18900K .......... .......... .......... .......... .......... 74% 36.0M 0s
 18950K .......... .......... .......... .......... .......... 75%  171M 0s
 19000K .......... .......... .......... .......... .......... 75%  314M 0s
 19050K .......... .......... .......... .......... .......... 75%  284M 0s
 19100K .......... .......... .......... .......... .......... 75%  107M 0s
 19150K .......... .......... .......... .......... .......... 75%  200M 0s
 19200K .......... .......... .......... .......... .......... 76%  306M 0s
 19250K .......... .......... .......... .......... .......... 76%  136M 0s
 19300K .......... .......... .......... .......... .......... 76%  270M 0s
 19350K .......... .......... .......... .......... .......... 76% 30.3M 0s
 19400K .......... .......... .......... .......... .......... 76%  252M 0s
 19450K .......... .......... .......... .......... .......... 77%  187M 0s
 19500K .......... .......... .......... .......... .......... 77%  208M 0s
 19550K .......... .......... .......... .......... .......... 77%  260M 0s
 19600K .......... .......... .......... .......... .......... 77%  176M 0s
 19650K .......... .......... .......... .......... .......... 77%  163M 0s
 19700K .......... .......... .......... .......... .......... 77%  177M 0s
 19750K .......... .......... .......... .......... .......... 78%  292M 0s
 19800K .......... .......... .......... .......... .......... 78%  162M 0s
 19850K .......... .......... .......... .......... .......... 78%  269M 0s
 19900K .......... .......... .......... .......... .......... 78% 34.5M 0s
 19950K .......... .......... .......... .......... .......... 78%  272M 0s
 20000K .......... .......... .......... .......... .......... 79%  231M 0s
 20050K .......... .......... .......... .......... .......... 79%  197M 0s
 20100K .......... .......... .......... .......... .......... 79%  265M 0s
 20150K .......... .......... .......... .......... .......... 79%  162M 0s
 20200K .......... .......... .......... .......... .......... 79%  264M 0s
 20250K .......... .......... .......... .......... .......... 80%  124M 0s
 20300K .......... .......... .......... .......... .......... 80% 32.4M 0s
 20350K .......... .......... .......... .......... .......... 80% 36.4M 0s
 20400K .......... .......... .......... .......... .......... 80% 45.2M 0s
 20450K .......... .......... .......... .......... .......... 80%  169M 0s
 20500K .......... .......... .......... .......... .......... 81%  268M 0s
 20550K .......... .......... .......... .......... .......... 81%  311M 0s
 20600K .......... .......... .......... .......... .......... 81%  198M 0s
 20650K .......... .......... .......... .......... .......... 81%  111M 0s
 20700K .......... .......... .......... .......... .......... 81%  193M 0s
 20750K .......... .......... .......... .......... .......... 82%  299M 0s
 20800K .......... .......... .......... .......... .......... 82%  140M 0s
 20850K .......... .......... .......... .......... .......... 82%  285M 0s
 20900K .......... .......... .......... .......... .......... 82%  331M 0s
 20950K .......... .......... .......... .......... .......... 82%  160M 0s
 21000K .......... .......... .......... .......... .......... 83%  307M 0s
 21050K .......... .......... .......... .......... .......... 83%  108M 0s
 21100K .......... .......... .......... .......... .......... 83%  254M 0s
 21150K .......... .......... .......... .......... .......... 83%  292M 0s
 21200K .......... .......... .......... .......... .......... 83%  123M 0s
 21250K .......... .......... .......... .......... .......... 84% 54.9M 0s
 21300K .......... .......... .......... .......... .......... 84%  162M 0s
 21350K .......... .......... .......... .......... .......... 84%  216M 0s
 21400K .......... .......... .......... .......... .......... 84%  192M 0s
 21450K .......... .......... .......... .......... .......... 84%  194M 0s
 21500K .......... .......... .......... .......... .......... 85%  167M 0s
 21550K .......... .......... .......... .......... .......... 85%  283M 0s
 21600K .......... .......... .......... .......... .......... 85%  292M 0s
 21650K .......... .......... .......... .......... .......... 85%  155M 0s
 21700K .......... .......... .......... .......... .......... 85%  197M 0s
 21750K .......... .......... .......... .......... .......... 86%  161M 0s
 21800K .......... .......... .......... .......... .......... 86%  277M 0s
 21850K .......... .......... .......... .......... .......... 86%  227M 0s
 21900K .......... .......... .......... .......... .......... 86% 52.3M 0s
 21950K .......... .......... .......... .......... .......... 86% 31.0M 0s
 22000K .......... .......... .......... .......... .......... 87% 43.9M 0s
 22050K .......... .......... .......... .......... .......... 87%  250M 0s
 22100K .......... .......... .......... .......... .......... 87%  216M 0s
 22150K .......... .......... .......... .......... .......... 87%  187M 0s
 22200K .......... .......... .......... .......... .......... 87%  157M 0s
 22250K .......... .......... .......... .......... .......... 88%  248M 0s
 22300K .......... .......... .......... .......... .......... 88%  276M 0s
 22350K .......... .......... .......... .......... .......... 88%  139M 0s
 22400K .......... .......... .......... .......... .......... 88%  266M 0s
 22450K .......... .......... .......... .......... .......... 88%  290M 0s
 22500K .......... .......... .......... .......... .......... 89% 97.5M 0s
 22550K .......... .......... .......... .......... .......... 89%  225M 0s
 22600K .......... .......... .......... .......... .......... 89%  177M 0s
 22650K .......... .......... .......... .......... .......... 89%  269M 0s
 22700K .......... .......... .......... .......... .......... 89%  147M 0s
 22750K .......... .......... .......... .......... .......... 90%  262M 0s
 22800K .......... .......... .......... .......... .......... 90%  192M 0s
 22850K .......... .......... .......... .......... .......... 90%  167M 0s
 22900K .......... .......... .......... .......... .......... 90%  181M 0s
 22950K .......... .......... .......... .......... .......... 90%  159M 0s
 23000K .......... .......... .......... .......... .......... 91%  276M 0s
 23050K .......... .......... .......... .......... .......... 91%  245M 0s
 23100K .......... .......... .......... .......... .......... 91% 47.2M 0s
 23150K .......... .......... .......... .......... .......... 91% 30.1M 0s
 23200K .......... .......... .......... .......... .......... 91%  200M 0s
 23250K .......... .......... .......... .......... .......... 92%  265M 0s
 23300K .......... .......... .......... .......... .......... 92%  128M 0s
 23350K .......... .......... .......... .......... .......... 92%  285M 0s
 23400K .......... .......... .......... .......... .......... 92%  284M 0s
 23450K .......... .......... .......... .......... .......... 92%  155M 0s
 23500K .......... .......... .......... .......... .......... 93% 36.6M 0s
 23550K .......... .......... .......... .......... .......... 93% 46.9M 0s
 23600K .......... .......... .......... .......... .......... 93%  248M 0s
 23650K .......... .......... .......... .......... .......... 93%  268M 0s
 23700K .......... .......... .......... .......... .......... 93%  138M 0s
 23750K .......... .......... .......... .......... .......... 93%  124M 0s
 23800K .......... .......... .......... .......... .......... 94%  259M 0s
 23850K .......... .......... .......... .......... .......... 94%  227M 0s
 23900K .......... .......... .......... .......... .......... 94% 54.4M 0s
 23950K .......... .......... .......... .......... .......... 94%  152M 0s
 24000K .......... .......... .......... .......... .......... 94%  141M 0s
 24050K .......... .......... .......... .......... .......... 95%  272M 0s
 24100K .......... .......... .......... .......... .......... 95%  186M 0s
 24150K .......... .......... .......... .......... .......... 95%  199M 0s
 24200K .......... .......... .......... .......... .......... 95%  283M 0s
 24250K .......... .......... .......... .......... .......... 95%  144M 0s
 24300K .......... .......... .......... .......... .......... 96%  290M 0s
 24350K .......... .......... .......... .......... .......... 96%  113M 0s
 24400K .......... .......... .......... .......... .......... 96% 23.9M 0s
 24450K .......... .......... .......... .......... .......... 96% 33.7M 0s
 24500K .......... .......... .......... .......... .......... 96% 83.5M 0s
 24550K .......... .......... .......... .......... .......... 97%  284M 0s
 24600K .......... .......... .......... .......... .......... 97%  300M 0s
 24650K .......... .......... .......... .......... .......... 97%  189M 0s
 24700K .......... .......... .......... .......... .......... 97%  157M 0s
 24750K .......... .......... .......... .......... .......... 97%  189M 0s
 24800K .......... .......... .......... .......... .......... 98%  192M 0s
 24850K .......... .......... .......... .......... .......... 98%  163M 0s
 24900K .......... .......... .......... .......... .......... 98%  267M 0s
 24950K .......... .......... .......... .......... .......... 98%  338M 0s
 25000K .......... .......... .......... .......... .......... 98%  177M 0s
 25050K .......... .......... .......... .......... .......... 99%  317M 0s
 25100K .......... .......... .......... .......... .......... 99%  318M 0s
 25150K .......... .......... .......... .......... .......... 99%  135M 0s
 25200K .......... .......... .......... .......... .......... 99%  189M 0s
 25250K .......... .......... .......... .......... .......... 99%  326M 0s
 25300K .......... .......... ..                              100%  444M=0.2s

2026-07-25 16:12:04 (137 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-07-25 16:12:05,561 | synference | INFO     | Number of parameters: 8
2026-07-25 16:12:05,565 | synference | INFO     | Number of observations: 20
2026-07-25 16:12:05,567 | synference | INFO     | Num rows in parameter library: 1380
2026-07-25 16:12:05,567 | synference | INFO     | Num rows in observation library: 1380
2026-07-25 16:12:05,584 | synference | INFO     | Library saved to ./library_SPHINX_JWST.h5
[7]:
<synference.library.LibraryCreator at 0x7f082d05a800>

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.