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-05-01 18:06:43--  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%  107M 0s
    50K .......... .......... .......... .......... ..........  0% 14.7M 1s
   100K .......... .......... .......... .......... ..........  0% 16.8M 1s
   150K .......... .......... .......... .......... ..........  0%  250M 1s
   200K .......... .......... .......... .......... ..........  0% 8.40M 1s
   250K .......... .......... .......... .......... ..........  1%  246M 1s
   300K .......... .......... .......... .......... ..........  1% 17.1M 1s
   350K .......... .......... .......... .......... ..........  1% 17.0M 1s
   400K .......... .......... .......... .......... ..........  1%  161M 1s
   450K .......... .......... .......... .......... ..........  1% 17.2M 1s
   500K .......... .......... .......... .......... ..........  2%  351M 1s
   550K .......... .......... .......... .......... ..........  2% 16.8M 1s
   600K .......... .......... .......... .......... ..........  2%  264M 1s
   650K .......... .......... .......... .......... ..........  2% 16.8M 1s
   700K .......... .......... .......... .......... ..........  2% 17.0M 1s
   750K .......... .......... .......... .......... ..........  3%  274M 1s
   800K .......... .......... .......... .......... ..........  3% 16.6M 1s
   850K .......... .......... .......... .......... ..........  3%  269M 1s
   900K .......... .......... .......... .......... ..........  3% 17.7M 1s
   950K .......... .......... .......... .......... ..........  3% 16.9M 1s
  1000K .......... .......... .......... .......... ..........  4%  240M 1s
  1050K .......... .......... .......... .......... ..........  4% 16.8M 1s
  1100K .......... .......... .......... .......... ..........  4%  353M 1s
  1150K .......... .......... .......... .......... ..........  4% 13.7M 1s
  1200K .......... .......... .......... .......... ..........  4% 11.6M 1s
  1250K .......... .......... .......... .......... ..........  5% 16.5M 1s
  1300K .......... .......... .......... .......... ..........  5%  257M 1s
  1350K .......... .......... .......... .......... ..........  5% 16.6M 1s
  1400K .......... .......... .......... .......... ..........  5% 16.1M 1s
  1450K .......... .......... .......... .......... ..........  5%  240M 1s
  1500K .......... .......... .......... .......... ..........  6% 18.5M 1s
  1550K .......... .......... .......... .......... ..........  6%  255M 1s
  1600K .......... .......... .......... .......... ..........  6% 16.9M 1s
  1650K .......... .......... .......... .......... ..........  6%  252M 1s
  1700K .......... .......... .......... .......... ..........  6% 17.0M 1s
  1750K .......... .......... .......... .......... ..........  7% 17.1M 1s
  1800K .......... .......... .......... .......... ..........  7%  256M 1s
  1850K .......... .......... .......... .......... ..........  7% 17.0M 1s
  1900K .......... .......... .......... .......... ..........  7%  299M 1s
  1950K .......... .......... .......... .......... ..........  7% 39.5M 1s
  2000K .......... .......... .......... .......... ..........  8% 39.1M 1s
  2050K .......... .......... .......... .......... ..........  8%  343M 1s
  2100K .......... .......... .......... .......... ..........  8%  223M 1s
  2150K .......... .......... .......... .......... ..........  8% 25.3M 1s
  2200K .......... .......... .......... .......... ..........  8% 37.4M 1s
  2250K .......... .......... .......... .......... ..........  9% 87.8M 1s
  2300K .......... .......... .......... .......... ..........  9%  293M 1s
  2350K .......... .......... .......... .......... ..........  9%  269M 1s
  2400K .......... .......... .......... .......... ..........  9%  303M 1s
  2450K .......... .......... .......... .......... ..........  9%  404M 1s
  2500K .......... .......... .......... .......... .......... 10% 16.0M 1s
  2550K .......... .......... .......... .......... .......... 10% 41.8M 1s
  2600K .......... .......... .......... .......... .......... 10%  306M 1s
  2650K .......... .......... .......... .......... .......... 10%  234M 1s
  2700K .......... .......... .......... .......... .......... 10%  312M 1s
  2750K .......... .......... .......... .......... .......... 11%  315M 1s
  2800K .......... .......... .......... .......... .......... 11% 90.8M 1s
  2850K .......... .......... .......... .......... .......... 11%  172M 1s
  2900K .......... .......... .......... .......... .......... 11%  306M 1s
  2950K .......... .......... .......... .......... .......... 11% 58.9M 1s
  3000K .......... .......... .......... .......... .......... 12%  185M 1s
  3050K .......... .......... .......... .......... .......... 12%  169M 1s
  3100K .......... .......... .......... .......... .......... 12%  304M 1s
  3150K .......... .......... .......... .......... .......... 12% 98.8M 1s
  3200K .......... .......... .......... .......... .......... 12%  272M 1s
  3250K .......... .......... .......... .......... .......... 13%  167M 1s
  3300K .......... .......... .......... .......... .......... 13%  273M 1s
  3350K .......... .......... .......... .......... .......... 13%  151M 1s
  3400K .......... .......... .......... .......... .......... 13%  346M 1s
  3450K .......... .......... .......... .......... .......... 13%  289M 1s
  3500K .......... .......... .......... .......... .......... 14%  204M 1s
  3550K .......... .......... .......... .......... .......... 14%  168M 1s
  3600K .......... .......... .......... .......... .......... 14%  239M 1s
  3650K .......... .......... .......... .......... .......... 14%  174M 1s
  3700K .......... .......... .......... .......... .......... 14%  120M 1s
  3750K .......... .......... .......... .......... .......... 15%  234M 1s
  3800K .......... .......... .......... .......... .......... 15%  190M 1s
  3850K .......... .......... .......... .......... .......... 15%  308M 1s
  3900K .......... .......... .......... .......... .......... 15%  217M 1s
  3950K .......... .......... .......... .......... .......... 15%  226M 1s
  4000K .......... .......... .......... .......... .......... 15%  141M 0s
  4050K .......... .......... .......... .......... .......... 16%  239M 0s
  4100K .......... .......... .......... .......... .......... 16%  212M 0s
  4150K .......... .......... .......... .......... .......... 16%  266M 0s
  4200K .......... .......... .......... .......... .......... 16%  210M 0s
  4250K .......... .......... .......... .......... .......... 16%  187M 0s
  4300K .......... .......... .......... .......... .......... 17%  298M 0s
  4350K .......... .......... .......... .......... .......... 17%  139M 0s
  4400K .......... .......... .......... .......... .......... 17% 26.1M 0s
  4450K .......... .......... .......... .......... .......... 17%  276M 0s
  4500K .......... .......... .......... .......... .......... 17%  172M 0s
  4550K .......... .......... .......... .......... .......... 18%  390M 0s
  4600K .......... .......... .......... .......... .......... 18%  136M 0s
  4650K .......... .......... .......... .......... .......... 18%  316M 0s
  4700K .......... .......... .......... .......... .......... 18%  180M 0s
  4750K .......... .......... .......... .......... .......... 18%  197M 0s
  4800K .......... .......... .......... .......... .......... 19%  247M 0s
  4850K .......... .......... .......... .......... .......... 19%  242M 0s
  4900K .......... .......... .......... .......... .......... 19% 68.9M 0s
  4950K .......... .......... .......... .......... .......... 19% 76.6M 0s
  5000K .......... .......... .......... .......... .......... 19%  320M 0s
  5050K .......... .......... .......... .......... .......... 20%  273M 0s
  5100K .......... .......... .......... .......... .......... 20%  324M 0s
  5150K .......... .......... .......... .......... .......... 20%  273M 0s
  5200K .......... .......... .......... .......... .......... 20%  165M 0s
  5250K .......... .......... .......... .......... .......... 20%  160M 0s
  5300K .......... .......... .......... .......... .......... 21%  315M 0s
  5350K .......... .......... .......... .......... .......... 21%  132M 0s
  5400K .......... .......... .......... .......... .......... 21%  328M 0s
  5450K .......... .......... .......... .......... .......... 21%  318M 0s
  5500K .......... .......... .......... .......... .......... 21%  150M 0s
  5550K .......... .......... .......... .......... .......... 22%  289M 0s
  5600K .......... .......... .......... .......... .......... 22%  295M 0s
  5650K .......... .......... .......... .......... .......... 22% 48.5M 0s
  5700K .......... .......... .......... .......... .......... 22%  163M 0s
  5750K .......... .......... .......... .......... .......... 22%  320M 0s
  5800K .......... .......... .......... .......... .......... 23%  275M 0s
  5850K .......... .......... .......... .......... .......... 23%  166M 0s
  5900K .......... .......... .......... .......... .......... 23%  167M 0s
  5950K .......... .......... .......... .......... .......... 23%  211M 0s
  6000K .......... .......... .......... .......... .......... 23%  220M 0s
  6050K .......... .......... .......... .......... .......... 24%  210M 0s
  6100K .......... .......... .......... .......... .......... 24%  189M 0s
  6150K .......... .......... .......... .......... .......... 24%  227M 0s
  6200K .......... .......... .......... .......... .......... 24%  122M 0s
  6250K .......... .......... .......... .......... .......... 24%  175M 0s
  6300K .......... .......... .......... .......... .......... 25%  321M 0s
  6350K .......... .......... .......... .......... .......... 25%  163M 0s
  6400K .......... .......... .......... .......... .......... 25%  324M 0s
  6450K .......... .......... .......... .......... .......... 25%  181M 0s
  6500K .......... .......... .......... .......... .......... 25%  259M 0s
  6550K .......... .......... .......... .......... .......... 26%  177M 0s
  6600K .......... .......... .......... .......... .......... 26%  205M 0s
  6650K .......... .......... .......... .......... .......... 26%  332M 0s
  6700K .......... .......... .......... .......... .......... 26% 27.8M 0s
  6750K .......... .......... .......... .......... .......... 26%  270M 0s
  6800K .......... .......... .......... .......... .......... 27%  258M 0s
  6850K .......... .......... .......... .......... .......... 27%  233M 0s
  6900K .......... .......... .......... .......... .......... 27%  282M 0s
  6950K .......... .......... .......... .......... .......... 27%  170M 0s
  7000K .......... .......... .......... .......... .......... 27%  303M 0s
  7050K .......... .......... .......... .......... .......... 28%  267M 0s
  7100K .......... .......... .......... .......... .......... 28% 32.3M 0s
  7150K .......... .......... .......... .......... .......... 28%  127M 0s
  7200K .......... .......... .......... .......... .......... 28%  273M 0s
  7250K .......... .......... .......... .......... .......... 28%  176M 0s
  7300K .......... .......... .......... .......... .......... 29%  291M 0s
  7350K .......... .......... .......... .......... .......... 29%  185M 0s
  7400K .......... .......... .......... .......... .......... 29%  256M 0s
  7450K .......... .......... .......... .......... .......... 29%  177M 0s
  7500K .......... .......... .......... .......... .......... 29%  232M 0s
  7550K .......... .......... .......... .......... .......... 30%  169M 0s
  7600K .......... .......... .......... .......... .......... 30% 33.6M 0s
  7650K .......... .......... .......... .......... .......... 30%  106M 0s
  7700K .......... .......... .......... .......... .......... 30%  278M 0s
  7750K .......... .......... .......... .......... .......... 30%  262M 0s
  7800K .......... .......... .......... .......... .......... 31%  157M 0s
  7850K .......... .......... .......... .......... .......... 31%  182M 0s
  7900K .......... .......... .......... .......... .......... 31%  289M 0s
  7950K .......... .......... .......... .......... .......... 31%  271M 0s
  8000K .......... .......... .......... .......... .......... 31%  333M 0s
  8050K .......... .......... .......... .......... .......... 31%  134M 0s
  8100K .......... .......... .......... .......... .......... 32%  190M 0s
  8150K .......... .......... .......... .......... .......... 32%  332M 0s
  8200K .......... .......... .......... .......... .......... 32%  223M 0s
  8250K .......... .......... .......... .......... .......... 32%  137M 0s
  8300K .......... .......... .......... .......... .......... 32%  225M 0s
  8350K .......... .......... .......... .......... .......... 33% 33.4M 0s
  8400K .......... .......... .......... .......... .......... 33% 80.7M 0s
  8450K .......... .......... .......... .......... .......... 33%  150M 0s
  8500K .......... .......... .......... .......... .......... 33%  315M 0s
  8550K .......... .......... .......... .......... .......... 33% 42.5M 0s
  8600K .......... .......... .......... .......... .......... 34%  310M 0s
  8650K .......... .......... .......... .......... .......... 34%  311M 0s
  8700K .......... .......... .......... .......... .......... 34%  267M 0s
  8750K .......... .......... .......... .......... .......... 34%  260M 0s
  8800K .......... .......... .......... .......... .......... 34%  272M 0s
  8850K .......... .......... .......... .......... .......... 35%  160M 0s
  8900K .......... .......... .......... .......... .......... 35%  170M 0s
  8950K .......... .......... .......... .......... .......... 35% 41.4M 0s
  9000K .......... .......... .......... .......... .......... 35% 73.5M 0s
  9050K .......... .......... .......... .......... .......... 35%  166M 0s
  9100K .......... .......... .......... .......... .......... 36%  287M 0s
  9150K .......... .......... .......... .......... .......... 36%  210M 0s
  9200K .......... .......... .......... .......... .......... 36%  192M 0s
  9250K .......... .......... .......... .......... .......... 36%  207M 0s
  9300K .......... .......... .......... .......... .......... 36%  172M 0s
  9350K .......... .......... .......... .......... .......... 37%  195M 0s
  9400K .......... .......... .......... .......... .......... 37%  229M 0s
  9450K .......... .......... .......... .......... .......... 37%  142M 0s
  9500K .......... .......... .......... .......... .......... 37% 23.1M 0s
  9550K .......... .......... .......... .......... .......... 37% 96.0M 0s
  9600K .......... .......... .......... .......... .......... 38%  311M 0s
  9650K .......... .......... .......... .......... .......... 38%  202M 0s
  9700K .......... .......... .......... .......... .......... 38%  352M 0s
  9750K .......... .......... .......... .......... .......... 38%  284M 0s
  9800K .......... .......... .......... .......... .......... 38%  201M 0s
  9850K .......... .......... .......... .......... .......... 39%  252M 0s
  9900K .......... .......... .......... .......... .......... 39% 59.1M 0s
  9950K .......... .......... .......... .......... .......... 39%  212M 0s
 10000K .......... .......... .......... .......... .......... 39%  232M 0s
 10050K .......... .......... .......... .......... .......... 39%  181M 0s
 10100K .......... .......... .......... .......... .......... 40%  206M 0s
 10150K .......... .......... .......... .......... .......... 40%  320M 0s
 10200K .......... .......... .......... .......... .......... 40%  320M 0s
 10250K .......... .......... .......... .......... .......... 40%  156M 0s
 10300K .......... .......... .......... .......... .......... 40%  187M 0s
 10350K .......... .......... .......... .......... .......... 41%  320M 0s
 10400K .......... .......... .......... .......... .......... 41%  327M 0s
 10450K .......... .......... .......... .......... .......... 41%  147M 0s
 10500K .......... .......... .......... .......... .......... 41% 27.3M 0s
 10550K .......... .......... .......... .......... .......... 41%  200M 0s
 10600K .......... .......... .......... .......... .......... 42%  311M 0s
 10650K .......... .......... .......... .......... .......... 42%  275M 0s
 10700K .......... .......... .......... .......... .......... 42%  297M 0s
 10750K .......... .......... .......... .......... .......... 42%  184M 0s
 10800K .......... .......... .......... .......... .......... 42%  216M 0s
 10850K .......... .......... .......... .......... .......... 43% 54.2M 0s
 10900K .......... .......... .......... .......... .......... 43% 53.0M 0s
 10950K .......... .......... .......... .......... .......... 43%  243M 0s
 11000K .......... .......... .......... .......... .......... 43%  294M 0s
 11050K .......... .......... .......... .......... .......... 43%  262M 0s
 11100K .......... .......... .......... .......... .......... 44%  246M 0s
 11150K .......... .......... .......... .......... .......... 44%  215M 0s
 11200K .......... .......... .......... .......... .......... 44%  135M 0s
 11250K .......... .......... .......... .......... .......... 44%  235M 0s
 11300K .......... .......... .......... .......... .......... 44%  140M 0s
 11350K .......... .......... .......... .......... .......... 45%  176M 0s
 11400K .......... .......... .......... .......... .......... 45% 31.0M 0s
 11450K .......... .......... .......... .......... .......... 45%  283M 0s
 11500K .......... .......... .......... .......... .......... 45%  155M 0s
 11550K .......... .......... .......... .......... .......... 45%  193M 0s
 11600K .......... .......... .......... .......... .......... 46%  285M 0s
 11650K .......... .......... .......... .......... .......... 46%  179M 0s
 11700K .......... .......... .......... .......... .......... 46%  275M 0s
 11750K .......... .......... .......... .......... .......... 46%  317M 0s
 11800K .......... .......... .......... .......... .......... 46%  356M 0s
 11850K .......... .......... .......... .......... .......... 46% 23.6M 0s
 11900K .......... .......... .......... .......... .......... 47% 34.8M 0s
 11950K .......... .......... .......... .......... .......... 47%  167M 0s
 12000K .......... .......... .......... .......... .......... 47%  325M 0s
 12050K .......... .......... .......... .......... .......... 47%  242M 0s
 12100K .......... .......... .......... .......... .......... 47%  210M 0s
 12150K .......... .......... .......... .......... .......... 48%  214M 0s
 12200K .......... .......... .......... .......... .......... 48% 36.7M 0s
 12250K .......... .......... .......... .......... .......... 48% 47.7M 0s
 12300K .......... .......... .......... .......... .......... 48%  310M 0s
 12350K .......... .......... .......... .......... .......... 48%  275M 0s
 12400K .......... .......... .......... .......... .......... 49%  175M 0s
 12450K .......... .......... .......... .......... .......... 49%  175M 0s
 12500K .......... .......... .......... .......... .......... 49%  183M 0s
 12550K .......... .......... .......... .......... .......... 49%  166M 0s
 12600K .......... .......... .......... .......... .......... 49% 34.7M 0s
 12650K .......... .......... .......... .......... .......... 50% 28.5M 0s
 12700K .......... .......... .......... .......... .......... 50%  198M 0s
 12750K .......... .......... .......... .......... .......... 50% 34.3M 0s
 12800K .......... .......... .......... .......... .......... 50% 62.0M 0s
 12850K .......... .......... .......... .......... .......... 50%  295M 0s
 12900K .......... .......... .......... .......... .......... 51%  203M 0s
 12950K .......... .......... .......... .......... .......... 51%  292M 0s
 13000K .......... .......... .......... .......... .......... 51% 81.1M 0s
 13050K .......... .......... .......... .......... .......... 51% 37.4M 0s
 13100K .......... .......... .......... .......... .......... 51% 63.0M 0s
 13150K .......... .......... .......... .......... .......... 52%  277M 0s
 13200K .......... .......... .......... .......... .......... 52%  145M 0s
 13250K .......... .......... .......... .......... .......... 52%  223M 0s
 13300K .......... .......... .......... .......... .......... 52%  225M 0s
 13350K .......... .......... .......... .......... .......... 52%  235M 0s
 13400K .......... .......... .......... .......... .......... 53%  321M 0s
 13450K .......... .......... .......... .......... .......... 53% 37.0M 0s
 13500K .......... .......... .......... .......... .......... 53%  117M 0s
 13550K .......... .......... .......... .......... .......... 53%  307M 0s
 13600K .......... .......... .......... .......... .......... 53%  179M 0s
 13650K .......... .......... .......... .......... .......... 54% 63.0M 0s
 13700K .......... .......... .......... .......... .......... 54% 29.3M 0s
 13750K .......... .......... .......... .......... .......... 54%  163M 0s
 13800K .......... .......... .......... .......... .......... 54%  286M 0s
 13850K .......... .......... .......... .......... .......... 54% 53.9M 0s
 13900K .......... .......... .......... .......... .......... 55%  265M 0s
 13950K .......... .......... .......... .......... .......... 55%  283M 0s
 14000K .......... .......... .......... .......... .......... 55%  322M 0s
 14050K .......... .......... .......... .......... .......... 55%  311M 0s
 14100K .......... .......... .......... .......... .......... 55%  165M 0s
 14150K .......... .......... .......... .......... .......... 56%  207M 0s
 14200K .......... .......... .......... .......... .......... 56%  281M 0s
 14250K .......... .......... .......... .......... .......... 56%  247M 0s
 14300K .......... .......... .......... .......... .......... 56%  253M 0s
 14350K .......... .......... .......... .......... .......... 56% 53.1M 0s
 14400K .......... .......... .......... .......... .......... 57% 27.1M 0s
 14450K .......... .......... .......... .......... .......... 57% 43.9M 0s
 14500K .......... .......... .......... .......... .......... 57%  268M 0s
 14550K .......... .......... .......... .......... .......... 57%  205M 0s
 14600K .......... .......... .......... .......... .......... 57%  256M 0s
 14650K .......... .......... .......... .......... .......... 58% 57.7M 0s
 14700K .......... .......... .......... .......... .......... 58% 41.6M 0s
 14750K .......... .......... .......... .......... .......... 58%  315M 0s
 14800K .......... .......... .......... .......... .......... 58%  341M 0s
 14850K .......... .......... .......... .......... .......... 58%  216M 0s
 14900K .......... .......... .......... .......... .......... 59%  190M 0s
 14950K .......... .......... .......... .......... .......... 59%  172M 0s
 15000K .......... .......... .......... .......... .......... 59%  198M 0s
 15050K .......... .......... .......... .......... .......... 59%  305M 0s
 15100K .......... .......... .......... .......... .......... 59%  320M 0s
 15150K .......... .......... .......... .......... .......... 60%  135M 0s
 15200K .......... .......... .......... .......... .......... 60%  167M 0s
 15250K .......... .......... .......... .......... .......... 60%  192M 0s
 15300K .......... .......... .......... .......... .......... 60%  309M 0s
 15350K .......... .......... .......... .......... .......... 60%  253M 0s
 15400K .......... .......... .......... .......... .......... 61% 33.4M 0s
 15450K .......... .......... .......... .......... .......... 61%  336M 0s
 15500K .......... .......... .......... .......... .......... 61%  156M 0s
 15550K .......... .......... .......... .......... .......... 61%  171M 0s
 15600K .......... .......... .......... .......... .......... 61%  318M 0s
 15650K .......... .......... .......... .......... .......... 62%  309M 0s
 15700K .......... .......... .......... .......... .......... 62%  190M 0s
 15750K .......... .......... .......... .......... .......... 62%  303M 0s
 15800K .......... .......... .......... .......... .......... 62%  147M 0s
 15850K .......... .......... .......... .......... .......... 62%  196M 0s
 15900K .......... .......... .......... .......... .......... 62%  185M 0s
 15950K .......... .......... .......... .......... .......... 63%  252M 0s
 16000K .......... .......... .......... .......... .......... 63% 32.8M 0s
 16050K .......... .......... .......... .......... .......... 63%  114M 0s
 16100K .......... .......... .......... .......... .......... 63%  252M 0s
 16150K .......... .......... .......... .......... .......... 63%  211M 0s
 16200K .......... .......... .......... .......... .......... 64%  304M 0s
 16250K .......... .......... .......... .......... .......... 64%  306M 0s
 16300K .......... .......... .......... .......... .......... 64%  237M 0s
 16350K .......... .......... .......... .......... .......... 64% 15.1M 0s
 16400K .......... .......... .......... .......... .......... 64%  282M 0s
 16450K .......... .......... .......... .......... .......... 65%  273M 0s
 16500K .......... .......... .......... .......... .......... 65%  320M 0s
 16550K .......... .......... .......... .......... .......... 65%  260M 0s
 16600K .......... .......... .......... .......... .......... 65%  222M 0s
 16650K .......... .......... .......... .......... .......... 65%  238M 0s
 16700K .......... .......... .......... .......... .......... 66% 67.9M 0s
 16750K .......... .......... .......... .......... .......... 66%  240M 0s
 16800K .......... .......... .......... .......... .......... 66%  311M 0s
 16850K .......... .......... .......... .......... .......... 66%  233M 0s
 16900K .......... .......... .......... .......... .......... 66%  313M 0s
 16950K .......... .......... .......... .......... .......... 67%  102M 0s
 17000K .......... .......... .......... .......... .......... 67%  294M 0s
 17050K .......... .......... .......... .......... .......... 67%  155M 0s
 17100K .......... .......... .......... .......... .......... 67%  241M 0s
 17150K .......... .......... .......... .......... .......... 67%  179M 0s
 17200K .......... .......... .......... .......... .......... 68%  182M 0s
 17250K .......... .......... .......... .......... .......... 68%  142M 0s
 17300K .......... .......... .......... .......... .......... 68%  299M 0s
 17350K .......... .......... .......... .......... .......... 68%  208M 0s
 17400K .......... .......... .......... .......... .......... 68%  251M 0s
 17450K .......... .......... .......... .......... .......... 69% 46.7M 0s
 17500K .......... .......... .......... .......... .......... 69%  221M 0s
 17550K .......... .......... .......... .......... .......... 69%  197M 0s
 17600K .......... .......... .......... .......... .......... 69%  336M 0s
 17650K .......... .......... .......... .......... .......... 69%  206M 0s
 17700K .......... .......... .......... .......... .......... 70%  385M 0s
 17750K .......... .......... .......... .......... .......... 70%  273M 0s
 17800K .......... .......... .......... .......... .......... 70%  202M 0s
 17850K .......... .......... .......... .......... .......... 70%  141M 0s
 17900K .......... .......... .......... .......... .......... 70%  287M 0s
 17950K .......... .......... .......... .......... .......... 71%  141M 0s
 18000K .......... .......... .......... .......... .......... 71%  252M 0s
 18050K .......... .......... .......... .......... .......... 71% 20.9M 0s
 18100K .......... .......... .......... .......... .......... 71%  224M 0s
 18150K .......... .......... .......... .......... .......... 71%  314M 0s
 18200K .......... .......... .......... .......... .......... 72%  239M 0s
 18250K .......... .......... .......... .......... .......... 72%  280M 0s
 18300K .......... .......... .......... .......... .......... 72%  165M 0s
 18350K .......... .......... .......... .......... .......... 72%  225M 0s
 18400K .......... .......... .......... .......... .......... 72%  313M 0s
 18450K .......... .......... .......... .......... .......... 73%  159M 0s
 18500K .......... .......... .......... .......... .......... 73%  190M 0s
 18550K .......... .......... .......... .......... .......... 73%  215M 0s
 18600K .......... .......... .......... .......... .......... 73%  253M 0s
 18650K .......... .......... .......... .......... .......... 73%  274M 0s
 18700K .......... .......... .......... .......... .......... 74% 56.6M 0s
 18750K .......... .......... .......... .......... .......... 74% 37.3M 0s
 18800K .......... .......... .......... .......... .......... 74% 28.2M 0s
 18850K .......... .......... .......... .......... .......... 74% 43.4M 0s
 18900K .......... .......... .......... .......... .......... 74%  304M 0s
 18950K .......... .......... .......... .......... .......... 75%  257M 0s
 19000K .......... .......... .......... .......... .......... 75%  352M 0s
 19050K .......... .......... .......... .......... .......... 75%  219M 0s
 19100K .......... .......... .......... .......... .......... 75%  158M 0s
 19150K .......... .......... .......... .......... .......... 75%  208M 0s
 19200K .......... .......... .......... .......... .......... 76%  114M 0s
 19250K .......... .......... .......... .......... .......... 76%  352M 0s
 19300K .......... .......... .......... .......... .......... 76%  324M 0s
 19350K .......... .......... .......... .......... .......... 76%  104M 0s
 19400K .......... .......... .......... .......... .......... 76%  330M 0s
 19450K .......... .......... .......... .......... .......... 77%  317M 0s
 19500K .......... .......... .......... .......... .......... 77%  318M 0s
 19550K .......... .......... .......... .......... .......... 77%  168M 0s
 19600K .......... .......... .......... .......... .......... 77% 34.5M 0s
 19650K .......... .......... .......... .......... .......... 77% 32.0M 0s
 19700K .......... .......... .......... .......... .......... 77%  250M 0s
 19750K .......... .......... .......... .......... .......... 78%  373M 0s
 19800K .......... .......... .......... .......... .......... 78%  356M 0s
 19850K .......... .......... .......... .......... .......... 78%  217M 0s
 19900K .......... .......... .......... .......... .......... 78%  311M 0s
 19950K .......... .......... .......... .......... .......... 78%  173M 0s
 20000K .......... .......... .......... .......... .......... 79%  149M 0s
 20050K .......... .......... .......... .......... .......... 79%  306M 0s
 20100K .......... .......... .......... .......... .......... 79%  182M 0s
 20150K .......... .......... .......... .......... .......... 79%  108M 0s
 20200K .......... .......... .......... .......... .......... 79% 27.7M 0s
 20250K .......... .......... .......... .......... .......... 80% 32.3M 0s
 20300K .......... .......... .......... .......... .......... 80%  285M 0s
 20350K .......... .......... .......... .......... .......... 80%  317M 0s
 20400K .......... .......... .......... .......... .......... 80% 57.9M 0s
 20450K .......... .......... .......... .......... .......... 80% 88.2M 0s
 20500K .......... .......... .......... .......... .......... 81%  322M 0s
 20550K .......... .......... .......... .......... .......... 81%  269M 0s
 20600K .......... .......... .......... .......... .......... 81%  329M 0s
 20650K .......... .......... .......... .......... .......... 81%  250M 0s
 20700K .......... .......... .......... .......... .......... 81%  190M 0s
 20750K .......... .......... .......... .......... .......... 82% 38.1M 0s
 20800K .......... .......... .......... .......... .......... 82% 26.2M 0s
 20850K .......... .......... .......... .......... .......... 82%  114M 0s
 20900K .......... .......... .......... .......... .......... 82%  257M 0s
 20950K .......... .......... .......... .......... .......... 82%  235M 0s
 21000K .......... .......... .......... .......... .......... 83%  309M 0s
 21050K .......... .......... .......... .......... .......... 83%  188M 0s
 21100K .......... .......... .......... .......... .......... 83%  306M 0s
 21150K .......... .......... .......... .......... .......... 83%  207M 0s
 21200K .......... .......... .......... .......... .......... 83% 39.5M 0s
 21250K .......... .......... .......... .......... .......... 84% 49.7M 0s
 21300K .......... .......... .......... .......... .......... 84%  309M 0s
 21350K .......... .......... .......... .......... .......... 84%  317M 0s
 21400K .......... .......... .......... .......... .......... 84%  212M 0s
 21450K .......... .......... .......... .......... .......... 84%  243M 0s
 21500K .......... .......... .......... .......... .......... 85%  170M 0s
 21550K .......... .......... .......... .......... .......... 85%  191M 0s
 21600K .......... .......... .......... .......... .......... 85%  331M 0s
 21650K .......... .......... .......... .......... .......... 85%  158M 0s
 21700K .......... .......... .......... .......... .......... 85%  119M 0s
 21750K .......... .......... .......... .......... .......... 86% 38.8M 0s
 21800K .......... .......... .......... .......... .......... 86%  302M 0s
 21850K .......... .......... .......... .......... .......... 86%  219M 0s
 21900K .......... .......... .......... .......... .......... 86%  258M 0s
 21950K .......... .......... .......... .......... .......... 86%  154M 0s
 22000K .......... .......... .......... .......... .......... 87%  254M 0s
 22050K .......... .......... .......... .......... .......... 87%  163M 0s
 22100K .......... .......... .......... .......... .......... 87%  250M 0s
 22150K .......... .......... .......... .......... .......... 87% 24.6M 0s
 22200K .......... .......... .......... .......... .......... 87% 38.3M 0s
 22250K .......... .......... .......... .......... .......... 88%  258M 0s
 22300K .......... .......... .......... .......... .......... 88%  314M 0s
 22350K .......... .......... .......... .......... .......... 88%  275M 0s
 22400K .......... .......... .......... .......... .......... 88%  202M 0s
 22450K .......... .......... .......... .......... .......... 88%  210M 0s
 22500K .......... .......... .......... .......... .......... 89%  295M 0s
 22550K .......... .......... .......... .......... .......... 89%  131M 0s
 22600K .......... .......... .......... .......... .......... 89% 61.4M 0s
 22650K .......... .......... .......... .......... .......... 89% 55.4M 0s
 22700K .......... .......... .......... .......... .......... 89%  282M 0s
 22750K .......... .......... .......... .......... .......... 90%  331M 0s
 22800K .......... .......... .......... .......... .......... 90%  214M 0s
 22850K .......... .......... .......... .......... .......... 90%  198M 0s
 22900K .......... .......... .......... .......... .......... 90%  327M 0s
 22950K .......... .......... .......... .......... .......... 90%  218M 0s
 23000K .......... .......... .......... .......... .......... 91%  312M 0s
 23050K .......... .......... .......... .......... .......... 91%  165M 0s
 23100K .......... .......... .......... .......... .......... 91% 37.7M 0s
 23150K .......... .......... .......... .......... .......... 91% 86.9M 0s
 23200K .......... .......... .......... .......... .......... 91%  224M 0s
 23250K .......... .......... .......... .......... .......... 92%  217M 0s
 23300K .......... .......... .......... .......... .......... 92%  277M 0s
 23350K .......... .......... .......... .......... .......... 92%  204M 0s
 23400K .......... .......... .......... .......... .......... 92%  251M 0s
 23450K .......... .......... .......... .......... .......... 92%  212M 0s
 23500K .......... .......... .......... .......... .......... 93%  153M 0s
 23550K .......... .......... .......... .......... .......... 93%  188M 0s
 23600K .......... .......... .......... .......... .......... 93%  206M 0s
 23650K .......... .......... .......... .......... .......... 93%  182M 0s
 23700K .......... .......... .......... .......... .......... 93%  176M 0s
 23750K .......... .......... .......... .......... .......... 93%  250M 0s
 23800K .......... .......... .......... .......... .......... 94% 55.7M 0s
 23850K .......... .......... .......... .......... .......... 94% 56.6M 0s
 23900K .......... .......... .......... .......... .......... 94%  286M 0s
 23950K .......... .......... .......... .......... .......... 94%  276M 0s
 24000K .......... .......... .......... .......... .......... 94%  259M 0s
 24050K .......... .......... .......... .......... .......... 95%  237M 0s
 24100K .......... .......... .......... .......... .......... 95%  217M 0s
 24150K .......... .......... .......... .......... .......... 95% 37.4M 0s
 24200K .......... .......... .......... .......... .......... 95% 38.7M 0s
 24250K .......... .......... .......... .......... .......... 95%  205M 0s
 24300K .......... .......... .......... .......... .......... 96%  286M 0s
 24350K .......... .......... .......... .......... .......... 96%  297M 0s
 24400K .......... .......... .......... .......... .......... 96%  226M 0s
 24450K .......... .......... .......... .......... .......... 96% 64.6M 0s
 24500K .......... .......... .......... .......... .......... 96% 44.8M 0s
 24550K .......... .......... .......... .......... .......... 97%  270M 0s
 24600K .......... .......... .......... .......... .......... 97%  271M 0s
 24650K .......... .......... .......... .......... .......... 97%  288M 0s
 24700K .......... .......... .......... .......... .......... 97%  321M 0s
 24750K .......... .......... .......... .......... .......... 97%  326M 0s
 24800K .......... .......... .......... .......... .......... 98%  179M 0s
 24850K .......... .......... .......... .......... .......... 98% 71.1M 0s
 24900K .......... .......... .......... .......... .......... 98% 28.0M 0s
 24950K .......... .......... .......... .......... .......... 98%  142M 0s
 25000K .......... .......... .......... .......... .......... 98%  303M 0s
 25050K .......... .......... .......... .......... .......... 99%  240M 0s
 25100K .......... .......... .......... .......... .......... 99%  217M 0s
 25150K .......... .......... .......... .......... .......... 99%  303M 0s
 25200K .......... .......... .......... .......... .......... 99%  309M 0s
 25250K .......... .......... .......... .......... .......... 99%  268M 0s
 25300K .......... .......... ..                              100%  363M=0.3s

2026-05-01 18:06:44 (93.5 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-05-01 18:06:45,437 | synference | INFO     | Number of parameters: 8
2026-05-01 18:06:45,437 | synference | INFO     | Number of observations: 20
2026-05-01 18:06:45,438 | synference | INFO     | Num rows in parameter library: 1380
2026-05-01 18:06:45,440 | synference | INFO     | Num rows in observation library: 1380
2026-05-01 18:06:45,451 | synference | INFO     | Library saved to ./library_SPHINX_JWST.h5
[7]:
<synference.library.LibraryCreator at 0x7fcddd71d3f0>

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.