Bring your Own Grid

Whilst Synference by default utilizes Synthesizer to create model libraries, it is also possible to bring your own pre-computed grid of models. This can be useful if you have a custom set of models that you wish to use for inference.

We provide a LibraryCreator class that allows you to create a grid from your own data and save it in the required HDF5 format.

[1]:
import os

import numpy as np
from astropy.table import Table

from synference import LibraryCreator
/opt/hostedtoolcache/Python/3.10.19/x64/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
  from .autonotebook import tqdm as notebook_tqdm

For this example we will build a grid from the SPHINX public data release, which can be found here, and contains mock observations of 1380 galaxies from 10 different orientations at z=4.6 to 10 from the radiation-hydrodynamic cosmological simulation SPHINX.

[2]:
file = "https://raw.githubusercontent.com/HarleyKatz/SPHINX-20-data/refs/heads/main/data/all_basic_data.csv"


if not os.path.exists("all_basic_data.csv"):
    os.system(f"wget {file}")

sphinx = Table.read("all_basic_data.csv")
--2025-11-13 20:03:12--  https://raw.githubusercontent.com/HarleyKatz/SPHINX-20-data/refs/heads/main/data/all_basic_data.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.110.133, 185.199.111.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25929930 (25M) [text/plain]
Saving to: ‘all_basic_data.csv’

     0K .......... .......... .......... .......... ..........  0% 86.9M 0s
    50K .......... .......... .......... .......... ..........  0% 48.2M 0s
   100K .......... .......... .......... .......... ..........  0% 39.5M 0s
   150K .......... .......... .......... .......... ..........  0%  250M 0s
   200K .......... .......... .......... .......... ..........  0%  328M 0s
   250K .......... .......... .......... .......... ..........  1%  311M 0s
   300K .......... .......... .......... .......... ..........  1% 38.0M 0s
   350K .......... .......... .......... .......... ..........  1%  143M 0s
   400K .......... .......... .......... .......... ..........  1%  124M 0s
   450K .......... .......... .......... .......... ..........  1%  239M 0s
   500K .......... .......... .......... .......... ..........  2%  134M 0s
   550K .......... .......... .......... .......... ..........  2%  301M 0s
   600K .......... .......... .......... .......... ..........  2%  143M 0s
   650K .......... .......... .......... .......... ..........  2%  144M 0s
   700K .......... .......... .......... .......... ..........  2%  266M 0s
   750K .......... .......... .......... .......... ..........  3% 36.4M 0s
   800K .......... .......... .......... .......... ..........  3% 30.9M 0s
   850K .......... .......... .......... .......... ..........  3%  311M 0s
   900K .......... .......... .......... .......... ..........  3%  122M 0s
   950K .......... .......... .......... .......... ..........  3%  136M 0s
  1000K .......... .......... .......... .......... ..........  4%  307M 0s
  1050K .......... .......... .......... .......... ..........  4%  124M 0s
  1100K .......... .......... .......... .......... ..........  4% 21.5M 0s
  1150K .......... .......... .......... .......... ..........  4%  264M 0s
  1200K .......... .......... .......... .......... ..........  4%  322M 0s
  1250K .......... .......... .......... .......... ..........  5%  284M 0s
  1300K .......... .......... .......... .......... ..........  5%  267M 0s
  1350K .......... .......... .......... .......... ..........  5%  268M 0s
  1400K .......... .......... .......... .......... ..........  5%  181M 0s
  1450K .......... .......... .......... .......... ..........  5%  220M 0s
  1500K .......... .......... .......... .......... ..........  6%  296M 0s
  1550K .......... .......... .......... .......... ..........  6% 97.7M 0s
  1600K .......... .......... .......... .......... ..........  6%  180M 0s
  1650K .......... .......... .......... .......... ..........  6%  147M 0s
  1700K .......... .......... .......... .......... ..........  6%  268M 0s
  1750K .......... .......... .......... .......... ..........  7% 22.3M 0s
  1800K .......... .......... .......... .......... ..........  7%  204M 0s
  1850K .......... .......... .......... .......... ..........  7%  301M 0s
  1900K .......... .......... .......... .......... ..........  7%  292M 0s
  1950K .......... .......... .......... .......... ..........  7%  318M 0s
  2000K .......... .......... .......... .......... ..........  8%  258M 0s
  2050K .......... .......... .......... .......... ..........  8%  316M 0s
  2100K .......... .......... .......... .......... ..........  8%  160M 0s
  2150K .......... .......... .......... .......... ..........  8%  294M 0s
  2200K .......... .......... .......... .......... ..........  8%  290M 0s
  2250K .......... .......... .......... .......... ..........  9% 25.3M 0s
  2300K .......... .......... .......... .......... ..........  9%  284M 0s
  2350K .......... .......... .......... .......... ..........  9% 43.2M 0s
  2400K .......... .......... .......... .......... ..........  9%  311M 0s
  2450K .......... .......... .......... .......... ..........  9%  327M 0s
  2500K .......... .......... .......... .......... .......... 10%  255M 0s
  2550K .......... .......... .......... .......... .......... 10%  309M 0s
  2600K .......... .......... .......... .......... .......... 10%  281M 0s
  2650K .......... .......... .......... .......... .......... 10%  237M 0s
  2700K .......... .......... .......... .......... .......... 10%  182M 0s
  2750K .......... .......... .......... .......... .......... 11%  210M 0s
  2800K .......... .......... .......... .......... .......... 11%  170M 0s
  2850K .......... .......... .......... .......... .......... 11% 23.6M 0s
  2900K .......... .......... .......... .......... .......... 11%  254M 0s
  2950K .......... .......... .......... .......... .......... 11%  318M 0s
  3000K .......... .......... .......... .......... .......... 12%  331M 0s
  3050K .......... .......... .......... .......... .......... 12%  344M 0s
  3100K .......... .......... .......... .......... .......... 12%  301M 0s
  3150K .......... .......... .......... .......... .......... 12%  250M 0s
  3200K .......... .......... .......... .......... .......... 12%  302M 0s
  3250K .......... .......... .......... .......... .......... 13%  298M 0s
  3300K .......... .......... .......... .......... .......... 13%  342M 0s
  3350K .......... .......... .......... .......... .......... 13%  263M 0s
  3400K .......... .......... .......... .......... .......... 13%  160M 0s
  3450K .......... .......... .......... .......... .......... 13% 22.1M 0s
  3500K .......... .......... .......... .......... .......... 14%  130M 0s
  3550K .......... .......... .......... .......... .......... 14%  162M 0s
  3600K .......... .......... .......... .......... .......... 14%  128M 0s
  3650K .......... .......... .......... .......... .......... 14%  192M 0s
  3700K .......... .......... .......... .......... .......... 14%  182M 0s
  3750K .......... .......... .......... .......... .......... 15%  193M 0s
  3800K .......... .......... .......... .......... .......... 15%  257M 0s
  3850K .......... .......... .......... .......... .......... 15%  221M 0s
  3900K .......... .......... .......... .......... .......... 15%  348M 0s
  3950K .......... .......... .......... .......... .......... 15%  174M 0s
  4000K .......... .......... .......... .......... .......... 15% 42.5M 0s
  4050K .......... .......... .......... .......... .......... 16%  106M 0s
  4100K .......... .......... .......... .......... .......... 16%  188M 0s
  4150K .......... .......... .......... .......... .......... 16%  310M 0s
  4200K .......... .......... .......... .......... .......... 16%  189M 0s
  4250K .......... .......... .......... .......... .......... 16%  195M 0s
  4300K .......... .......... .......... .......... .......... 17%  269M 0s
  4350K .......... .......... .......... .......... .......... 17%  228M 0s
  4400K .......... .......... .......... .......... .......... 17%  185M 0s
  4450K .......... .......... .......... .......... .......... 17%  207M 0s
  4500K .......... .......... .......... .......... .......... 17%  192M 0s
  4550K .......... .......... .......... .......... .......... 18%  283M 0s
  4600K .......... .......... .......... .......... .......... 18%  290M 0s
  4650K .......... .......... .......... .......... .......... 18%  180M 0s
  4700K .......... .......... .......... .......... .......... 18%  183M 0s
  4750K .......... .......... .......... .......... .......... 18%  320M 0s
  4800K .......... .......... .......... .......... .......... 19%  262M 0s
  4850K .......... .......... .......... .......... .......... 19%  334M 0s
  4900K .......... .......... .......... .......... .......... 19%  307M 0s
  4950K .......... .......... .......... .......... .......... 19%  284M 0s
  5000K .......... .......... .......... .......... .......... 19%  239M 0s
  5050K .......... .......... .......... .......... .......... 20%  292M 0s
  5100K .......... .......... .......... .......... .......... 20%  158M 0s
  5150K .......... .......... .......... .......... .......... 20%  265M 0s
  5200K .......... .......... .......... .......... .......... 20% 74.9M 0s
  5250K .......... .......... .......... .......... .......... 20%  258M 0s
  5300K .......... .......... .......... .......... .......... 21% 50.5M 0s
  5350K .......... .......... .......... .......... .......... 21%  164M 0s
  5400K .......... .......... .......... .......... .......... 21%  198M 0s
  5450K .......... .......... .......... .......... .......... 21%  227M 0s
  5500K .......... .......... .......... .......... .......... 21%  284M 0s
  5550K .......... .......... .......... .......... .......... 22%  231M 0s
  5600K .......... .......... .......... .......... .......... 22%  137M 0s
  5650K .......... .......... .......... .......... .......... 22%  200M 0s
  5700K .......... .......... .......... .......... .......... 22%  269M 0s
  5750K .......... .......... .......... .......... .......... 22% 47.4M 0s
  5800K .......... .......... .......... .......... .......... 23% 39.1M 0s
  5850K .......... .......... .......... .......... .......... 23%  289M 0s
  5900K .......... .......... .......... .......... .......... 23%  301M 0s
  5950K .......... .......... .......... .......... .......... 23%  285M 0s
  6000K .......... .......... .......... .......... .......... 23%  189M 0s
  6050K .......... .......... .......... .......... .......... 24%  142M 0s
  6100K .......... .......... .......... .......... .......... 24%  210M 0s
  6150K .......... .......... .......... .......... .......... 24% 91.3M 0s
  6200K .......... .......... .......... .......... .......... 24% 60.9M 0s
  6250K .......... .......... .......... .......... .......... 24%  167M 0s
  6300K .......... .......... .......... .......... .......... 25%  279M 0s
  6350K .......... .......... .......... .......... .......... 25%  168M 0s
  6400K .......... .......... .......... .......... .......... 25%  146M 0s
  6450K .......... .......... .......... .......... .......... 25%  195M 0s
  6500K .......... .......... .......... .......... .......... 25%  291M 0s
  6550K .......... .......... .......... .......... .......... 26%  221M 0s
  6600K .......... .......... .......... .......... .......... 26%  238M 0s
  6650K .......... .......... .......... .......... .......... 26% 44.7M 0s
  6700K .......... .......... .......... .......... .......... 26% 91.1M 0s
  6750K .......... .......... .......... .......... .......... 26%  278M 0s
  6800K .......... .......... .......... .......... .......... 27%  306M 0s
  6850K .......... .......... .......... .......... .......... 27%  241M 0s
  6900K .......... .......... .......... .......... .......... 27%  191M 0s
  6950K .......... .......... .......... .......... .......... 27%  108M 0s
  7000K .......... .......... .......... .......... .......... 27%  188M 0s
  7050K .......... .......... .......... .......... .......... 28%  282M 0s
  7100K .......... .......... .......... .......... .......... 28%  291M 0s
  7150K .......... .......... .......... .......... .......... 28%  212M 0s
  7200K .......... .......... .......... .......... .......... 28%  182M 0s
  7250K .......... .......... .......... .......... .......... 28%  212M 0s
  7300K .......... .......... .......... .......... .......... 29% 52.2M 0s
  7350K .......... .......... .......... .......... .......... 29% 37.3M 0s
  7400K .......... .......... .......... .......... .......... 29%  175M 0s
  7450K .......... .......... .......... .......... .......... 29%  162M 0s
  7500K .......... .......... .......... .......... .......... 29%  197M 0s
  7550K .......... .......... .......... .......... .......... 30%  224M 0s
  7600K .......... .......... .......... .......... .......... 30%  198M 0s
  7650K .......... .......... .......... .......... .......... 30%  322M 0s
  7700K .......... .......... .......... .......... .......... 30%  170M 0s
  7750K .......... .......... .......... .......... .......... 30% 28.6M 0s
  7800K .......... .......... .......... .......... .......... 31%  264M 0s
  7850K .......... .......... .......... .......... .......... 31%  318M 0s
  7900K .......... .......... .......... .......... .......... 31%  281M 0s
  7950K .......... .......... .......... .......... .......... 31%  328M 0s
  8000K .......... .......... .......... .......... .......... 31%  331M 0s
  8050K .......... .......... .......... .......... .......... 31%  270M 0s
  8100K .......... .......... .......... .......... .......... 32%  219M 0s
  8150K .......... .......... .......... .......... .......... 32%  124M 0s
  8200K .......... .......... .......... .......... .......... 32%  156M 0s
  8250K .......... .......... .......... .......... .......... 32%  316M 0s
  8300K .......... .......... .......... .......... .......... 32%  258M 0s
  8350K .......... .......... .......... .......... .......... 33% 51.9M 0s
  8400K .......... .......... .......... .......... .......... 33% 65.4M 0s
  8450K .......... .......... .......... .......... .......... 33%  321M 0s
  8500K .......... .......... .......... .......... .......... 33%  331M 0s
  8550K .......... .......... .......... .......... .......... 33%  202M 0s
  8600K .......... .......... .......... .......... .......... 34%  243M 0s
  8650K .......... .......... .......... .......... .......... 34%  155M 0s
  8700K .......... .......... .......... .......... .......... 34%  144M 0s
  8750K .......... .......... .......... .......... .......... 34%  110M 0s
  8800K .......... .......... .......... .......... .......... 34%  234M 0s
  8850K .......... .......... .......... .......... .......... 35%  200M 0s
  8900K .......... .......... .......... .......... .......... 35% 94.4M 0s
  8950K .......... .......... .......... .......... .......... 35% 20.0M 0s
  9000K .......... .......... .......... .......... .......... 35%  253M 0s
  9050K .......... .......... .......... .......... .......... 35%  235M 0s
  9100K .......... .......... .......... .......... .......... 36%  298M 0s
  9150K .......... .......... .......... .......... .......... 36%  297M 0s
  9200K .......... .......... .......... .......... .......... 36%  217M 0s
  9250K .......... .......... .......... .......... .......... 36%  120M 0s
  9300K .......... .......... .......... .......... .......... 36%  148M 0s
  9350K .......... .......... .......... .......... .......... 37%  227M 0s
  9400K .......... .......... .......... .......... .......... 37%  190M 0s
  9450K .......... .......... .......... .......... .......... 37% 33.2M 0s
  9500K .......... .......... .......... .......... .......... 37% 58.8M 0s
  9550K .......... .......... .......... .......... .......... 37%  313M 0s
  9600K .......... .......... .......... .......... .......... 38%  223M 0s
  9650K .......... .......... .......... .......... .......... 38%  317M 0s
  9700K .......... .......... .......... .......... .......... 38%  297M 0s
  9750K .......... .......... .......... .......... .......... 38% 55.0M 0s
  9800K .......... .......... .......... .......... .......... 38%  208M 0s
  9850K .......... .......... .......... .......... .......... 39%  107M 0s
  9900K .......... .......... .......... .......... .......... 39%  244M 0s
  9950K .......... .......... .......... .......... .......... 39%  300M 0s
 10000K .......... .......... .......... .......... .......... 39% 91.0M 0s
 10050K .......... .......... .......... .......... .......... 39%  230M 0s
 10100K .......... .......... .......... .......... .......... 40%  230M 0s
 10150K .......... .......... .......... .......... .......... 40%  142M 0s
 10200K .......... .......... .......... .......... .......... 40%  154M 0s
 10250K .......... .......... .......... .......... .......... 40%  177M 0s
 10300K .......... .......... .......... .......... .......... 40%  263M 0s
 10350K .......... .......... .......... .......... .......... 41%  181M 0s
 10400K .......... .......... .......... .......... .......... 41%  137M 0s
 10450K .......... .......... .......... .......... .......... 41%  187M 0s
 10500K .......... .......... .......... .......... .......... 41% 66.2M 0s
 10550K .......... .......... .......... .......... .......... 41% 56.2M 0s
 10600K .......... .......... .......... .......... .......... 42%  257M 0s
 10650K .......... .......... .......... .......... .......... 42%  306M 0s
 10700K .......... .......... .......... .......... .......... 42%  308M 0s
 10750K .......... .......... .......... .......... .......... 42%  293M 0s
 10800K .......... .......... .......... .......... .......... 42%  202M 0s
 10850K .......... .......... .......... .......... .......... 43%  171M 0s
 10900K .......... .......... .......... .......... .......... 43%  261M 0s
 10950K .......... .......... .......... .......... .......... 43%  229M 0s
 11000K .......... .......... .......... .......... .......... 43%  189M 0s
 11050K .......... .......... .......... .......... .......... 43%  130M 0s
 11100K .......... .......... .......... .......... .......... 44%  235M 0s
 11150K .......... .......... .......... .......... .......... 44%  109M 0s
 11200K .......... .......... .......... .......... .......... 44% 54.0M 0s
 11250K .......... .......... .......... .......... .......... 44%  331M 0s
 11300K .......... .......... .......... .......... .......... 44%  215M 0s
 11350K .......... .......... .......... .......... .......... 45%  275M 0s
 11400K .......... .......... .......... .......... .......... 45%  212M 0s
 11450K .......... .......... .......... .......... .......... 45%  316M 0s
 11500K .......... .......... .......... .......... .......... 45%  361M 0s
 11550K .......... .......... .......... .......... .......... 45%  222M 0s
 11600K .......... .......... .......... .......... .......... 46%  198M 0s
 11650K .......... .......... .......... .......... .......... 46%  122M 0s
 11700K .......... .......... .......... .......... .......... 46%  175M 0s
 11750K .......... .......... .......... .......... .......... 46%  143M 0s
 11800K .......... .......... .......... .......... .......... 46%  300M 0s
 11850K .......... .......... .......... .......... .......... 46% 30.0M 0s
 11900K .......... .......... .......... .......... .......... 47%  317M 0s
 11950K .......... .......... .......... .......... .......... 47%  365M 0s
 12000K .......... .......... .......... .......... .......... 47%  267M 0s
 12050K .......... .......... .......... .......... .......... 47%  304M 0s
 12100K .......... .......... .......... .......... .......... 47%  270M 0s
 12150K .......... .......... .......... .......... .......... 48%  227M 0s
 12200K .......... .......... .......... .......... .......... 48%  263M 0s
 12250K .......... .......... .......... .......... .......... 48%  340M 0s
 12300K .......... .......... .......... .......... .......... 48%  169M 0s
 12350K .......... .......... .......... .......... .......... 48%  171M 0s
 12400K .......... .......... .......... .......... .......... 49%  129M 0s
 12450K .......... .......... .......... .......... .......... 49% 28.5M 0s
 12500K .......... .......... .......... .......... .......... 49%  297M 0s
 12550K .......... .......... .......... .......... .......... 49%  174M 0s
 12600K .......... .......... .......... .......... .......... 49%  307M 0s
 12650K .......... .......... .......... .......... .......... 50%  228M 0s
 12700K .......... .......... .......... .......... .......... 50%  218M 0s
 12750K .......... .......... .......... .......... .......... 50%  124M 0s
 12800K .......... .......... .......... .......... .......... 50%  280M 0s
 12850K .......... .......... .......... .......... .......... 50%  159M 0s
 12900K .......... .......... .......... .......... .......... 51%  146M 0s
 12950K .......... .......... .......... .......... .......... 51% 75.7M 0s
 13000K .......... .......... .......... .......... .......... 51%  198M 0s
 13050K .......... .......... .......... .......... .......... 51%  312M 0s
 13100K .......... .......... .......... .......... .......... 51%  251M 0s
 13150K .......... .......... .......... .......... .......... 52%  220M 0s
 13200K .......... .......... .......... .......... .......... 52%  183M 0s
 13250K .......... .......... .......... .......... .......... 52%  169M 0s
 13300K .......... .......... .......... .......... .......... 52%  162M 0s
 13350K .......... .......... .......... .......... .......... 52%  339M 0s
 13400K .......... .......... .......... .......... .......... 53%  223M 0s
 13450K .......... .......... .......... .......... .......... 53%  214M 0s
 13500K .......... .......... .......... .......... .......... 53% 47.6M 0s
 13550K .......... .......... .......... .......... .......... 53%  134M 0s
 13600K .......... .......... .......... .......... .......... 53%  301M 0s
 13650K .......... .......... .......... .......... .......... 54%  234M 0s
 13700K .......... .......... .......... .......... .......... 54%  344M 0s
 13750K .......... .......... .......... .......... .......... 54%  275M 0s
 13800K .......... .......... .......... .......... .......... 54%  210M 0s
 13850K .......... .......... .......... .......... .......... 54%  326M 0s
 13900K .......... .......... .......... .......... .......... 55%  179M 0s
 13950K .......... .......... .......... .......... .......... 55%  220M 0s
 14000K .......... .......... .......... .......... .......... 55%  150M 0s
 14050K .......... .......... .......... .......... .......... 55%  111M 0s
 14100K .......... .......... .......... .......... .......... 55%  303M 0s
 14150K .......... .......... .......... .......... .......... 56%  295M 0s
 14200K .......... .......... .......... .......... .......... 56% 48.0M 0s
 14250K .......... .......... .......... .......... .......... 56% 24.0M 0s
 14300K .......... .......... .......... .......... .......... 56%  246M 0s
 14350K .......... .......... .......... .......... .......... 56%  283M 0s
 14400K .......... .......... .......... .......... .......... 57%  219M 0s
 14450K .......... .......... .......... .......... .......... 57%  304M 0s
 14500K .......... .......... .......... .......... .......... 57%  195M 0s
 14550K .......... .......... .......... .......... .......... 57%  141M 0s
 14600K .......... .......... .......... .......... .......... 57%  145M 0s
 14650K .......... .......... .......... .......... .......... 58%  297M 0s
 14700K .......... .......... .......... .......... .......... 58%  194M 0s
 14750K .......... .......... .......... .......... .......... 58% 23.2M 0s
 14800K .......... .......... .......... .......... .......... 58%  134M 0s
 14850K .......... .......... .......... .......... .......... 58%  288M 0s
 14900K .......... .......... .......... .......... .......... 59%  295M 0s
 14950K .......... .......... .......... .......... .......... 59%  292M 0s
 15000K .......... .......... .......... .......... .......... 59%  182M 0s
 15050K .......... .......... .......... .......... .......... 59%  175M 0s
 15100K .......... .......... .......... .......... .......... 59%  288M 0s
 15150K .......... .......... .......... .......... .......... 60%  301M 0s
 15200K .......... .......... .......... .......... .......... 60% 52.6M 0s
 15250K .......... .......... .......... .......... .......... 60% 37.1M 0s
 15300K .......... .......... .......... .......... .......... 60%  282M 0s
 15350K .......... .......... .......... .......... .......... 60%  248M 0s
 15400K .......... .......... .......... .......... .......... 61%  300M 0s
 15450K .......... .......... .......... .......... .......... 61%  281M 0s
 15500K .......... .......... .......... .......... .......... 61%  134M 0s
 15550K .......... .......... .......... .......... .......... 61%  278M 0s
 15600K .......... .......... .......... .......... .......... 61%  153M 0s
 15650K .......... .......... .......... .......... .......... 62%  211M 0s
 15700K .......... .......... .......... .......... .......... 62% 40.4M 0s
 15750K .......... .......... .......... .......... .......... 62% 40.4M 0s
 15800K .......... .......... .......... .......... .......... 62%  299M 0s
 15850K .......... .......... .......... .......... .......... 62%  265M 0s
 15900K .......... .......... .......... .......... .......... 62%  302M 0s
 15950K .......... .......... .......... .......... .......... 63%  297M 0s
 16000K .......... .......... .......... .......... .......... 63%  170M 0s
 16050K .......... .......... .......... .......... .......... 63%  153M 0s
 16100K .......... .......... .......... .......... .......... 63%  295M 0s
 16150K .......... .......... .......... .......... .......... 63%  194M 0s
 16200K .......... .......... .......... .......... .......... 64%  173M 0s
 16250K .......... .......... .......... .......... .......... 64%  160M 0s
 16300K .......... .......... .......... .......... .......... 64%  163M 0s
 16350K .......... .......... .......... .......... .......... 64% 48.0M 0s
 16400K .......... .......... .......... .......... .......... 64% 55.8M 0s
 16450K .......... .......... .......... .......... .......... 65%  282M 0s
 16500K .......... .......... .......... .......... .......... 65%  259M 0s
 16550K .......... .......... .......... .......... .......... 65%  269M 0s
 16600K .......... .......... .......... .......... .......... 65%  285M 0s
 16650K .......... .......... .......... .......... .......... 65%  294M 0s
 16700K .......... .......... .......... .......... .......... 66%  142M 0s
 16750K .......... .......... .......... .......... .......... 66% 52.2M 0s
 16800K .......... .......... .......... .......... .......... 66%  139M 0s
 16850K .......... .......... .......... .......... .......... 66%  232M 0s
 16900K .......... .......... .......... .......... .......... 66%  290M 0s
 16950K .......... .......... .......... .......... .......... 67%  279M 0s
 17000K .......... .......... .......... .......... .......... 67%  155M 0s
 17050K .......... .......... .......... .......... .......... 67%  173M 0s
 17100K .......... .......... .......... .......... .......... 67%  118M 0s
 17150K .......... .......... .......... .......... .......... 67%  156M 0s
 17200K .......... .......... .......... .......... .......... 68%  118M 0s
 17250K .......... .......... .......... .......... .......... 68%  172M 0s
 17300K .......... .......... .......... .......... .......... 68%  170M 0s
 17350K .......... .......... .......... .......... .......... 68% 57.6M 0s
 17400K .......... .......... .......... .......... .......... 68%  275M 0s
 17450K .......... .......... .......... .......... .......... 69%  333M 0s
 17500K .......... .......... .......... .......... .......... 69%  274M 0s
 17550K .......... .......... .......... .......... .......... 69%  234M 0s
 17600K .......... .......... .......... .......... .......... 69%  325M 0s
 17650K .......... .......... .......... .......... .......... 69%  131M 0s
 17700K .......... .......... .......... .......... .......... 70%  302M 0s
 17750K .......... .......... .......... .......... .......... 70%  114M 0s
 17800K .......... .......... .......... .......... .......... 70% 53.4M 0s
 17850K .......... .......... .......... .......... .......... 70% 46.5M 0s
 17900K .......... .......... .......... .......... .......... 70%  236M 0s
 17950K .......... .......... .......... .......... .......... 71%  248M 0s
 18000K .......... .......... .......... .......... .......... 71%  258M 0s
 18050K .......... .......... .......... .......... .......... 71%  146M 0s
 18100K .......... .......... .......... .......... .......... 71%  147M 0s
 18150K .......... .......... .......... .......... .......... 71%  286M 0s
 18200K .......... .......... .......... .......... .......... 72%  293M 0s
 18250K .......... .......... .......... .......... .......... 72%  131M 0s
 18300K .......... .......... .......... .......... .......... 72% 47.7M 0s
 18350K .......... .......... .......... .......... .......... 72% 41.8M 0s
 18400K .......... .......... .......... .......... .......... 72%  234M 0s
 18450K .......... .......... .......... .......... .......... 73%  279M 0s
 18500K .......... .......... .......... .......... .......... 73%  295M 0s
 18550K .......... .......... .......... .......... .......... 73%  262M 0s
 18600K .......... .......... .......... .......... .......... 73%  203M 0s
 18650K .......... .......... .......... .......... .......... 73%  170M 0s
 18700K .......... .......... .......... .......... .......... 74%  151M 0s
 18750K .......... .......... .......... .......... .......... 74%  130M 0s
 18800K .......... .......... .......... .......... .......... 74% 78.3M 0s
 18850K .......... .......... .......... .......... .......... 74%  319M 0s
 18900K .......... .......... .......... .......... .......... 74%  358M 0s
 18950K .......... .......... .......... .......... .......... 75%  313M 0s
 19000K .......... .......... .......... .......... .......... 75%  278M 0s
 19050K .......... .......... .......... .......... .......... 75%  284M 0s
 19100K .......... .......... .......... .......... .......... 75%  266M 0s
 19150K .......... .......... .......... .......... .......... 75%  291M 0s
 19200K .......... .......... .......... .......... .......... 76%  322M 0s
 19250K .......... .......... .......... .......... .......... 76%  295M 0s
 19300K .......... .......... .......... .......... .......... 76%  232M 0s
 19350K .......... .......... .......... .......... .......... 76%  311M 0s
 19400K .......... .......... .......... .......... .......... 76%  283M 0s
 19450K .......... .......... .......... .......... .......... 77%  140M 0s
 19500K .......... .......... .......... .......... .......... 77% 67.0M 0s
 19550K .......... .......... .......... .......... .......... 77%  180M 0s
 19600K .......... .......... .......... .......... .......... 77%  297M 0s
 19650K .......... .......... .......... .......... .......... 77%  335M 0s
 19700K .......... .......... .......... .......... .......... 77%  141M 0s
 19750K .......... .......... .......... .......... .......... 78%  169M 0s
 19800K .......... .......... .......... .......... .......... 78%  156M 0s
 19850K .......... .......... .......... .......... .......... 78%  127M 0s
 19900K .......... .......... .......... .......... .......... 78%  157M 0s
 19950K .......... .......... .......... .......... .......... 78% 51.8M 0s
 20000K .......... .......... .......... .......... .......... 79% 72.8M 0s
 20050K .......... .......... .......... .......... .......... 79%  188M 0s
 20100K .......... .......... .......... .......... .......... 79%  345M 0s
 20150K .......... .......... .......... .......... .......... 79%  349M 0s
 20200K .......... .......... .......... .......... .......... 79%  144M 0s
 20250K .......... .......... .......... .......... .......... 80%  192M 0s
 20300K .......... .......... .......... .......... .......... 80%  227M 0s
 20350K .......... .......... .......... .......... .......... 80%  191M 0s
 20400K .......... .......... .......... .......... .......... 80%  154M 0s
 20450K .......... .......... .......... .......... .......... 80%  217M 0s
 20500K .......... .......... .......... .......... .......... 81%  280M 0s
 20550K .......... .......... .......... .......... .......... 81%  109M 0s
 20600K .......... .......... .......... .......... .......... 81% 85.6M 0s
 20650K .......... .......... .......... .......... .......... 81%  320M 0s
 20700K .......... .......... .......... .......... .......... 81%  206M 0s
 20750K .......... .......... .......... .......... .......... 82%  361M 0s
 20800K .......... .......... .......... .......... .......... 82%  237M 0s
 20850K .......... .......... .......... .......... .......... 82%  237M 0s
 20900K .......... .......... .......... .......... .......... 82%  265M 0s
 20950K .......... .......... .......... .......... .......... 82%  300M 0s
 21000K .......... .......... .......... .......... .......... 83% 36.9M 0s
 21050K .......... .......... .......... .......... .......... 83%  270M 0s
 21100K .......... .......... .......... .......... .......... 83%  194M 0s
 21150K .......... .......... .......... .......... .......... 83%  331M 0s
 21200K .......... .......... .......... .......... .......... 83% 79.8M 0s
 21250K .......... .......... .......... .......... .......... 84%  286M 0s
 21300K .......... .......... .......... .......... .......... 84%  260M 0s
 21350K .......... .......... .......... .......... .......... 84%  170M 0s
 21400K .......... .......... .......... .......... .......... 84%  218M 0s
 21450K .......... .......... .......... .......... .......... 84%  195M 0s
 21500K .......... .......... .......... .......... .......... 85%  315M 0s
 21550K .......... .......... .......... .......... .......... 85%  235M 0s
 21600K .......... .......... .......... .......... .......... 85%  154M 0s
 21650K .......... .......... .......... .......... .......... 85%  281M 0s
 21700K .......... .......... .......... .......... .......... 85%  231M 0s
 21750K .......... .......... .......... .......... .......... 86%  152M 0s
 21800K .......... .......... .......... .......... .......... 86% 65.0M 0s
 21850K .......... .......... .......... .......... .......... 86%  285M 0s
 21900K .......... .......... .......... .......... .......... 86% 42.7M 0s
 21950K .......... .......... .......... .......... .......... 86%  345M 0s
 22000K .......... .......... .......... .......... .......... 87%  325M 0s
 22050K .......... .......... .......... .......... .......... 87%  337M 0s
 22100K .......... .......... .......... .......... .......... 87%  240M 0s
 22150K .......... .......... .......... .......... .......... 87%  184M 0s
 22200K .......... .......... .......... .......... .......... 87%  176M 0s
 22250K .......... .......... .......... .......... .......... 88%  343M 0s
 22300K .......... .......... .......... .......... .......... 88%  165M 0s
 22350K .......... .......... .......... .......... .......... 88% 46.6M 0s
 22400K .......... .......... .......... .......... .......... 88% 45.7M 0s
 22450K .......... .......... .......... .......... .......... 88%  243M 0s
 22500K .......... .......... .......... .......... .......... 89%  219M 0s
 22550K .......... .......... .......... .......... .......... 89%  240M 0s
 22600K .......... .......... .......... .......... .......... 89%  204M 0s
 22650K .......... .......... .......... .......... .......... 89% 55.3M 0s
 22700K .......... .......... .......... .......... .......... 89%  230M 0s
 22750K .......... .......... .......... .......... .......... 90% 53.5M 0s
 22800K .......... .......... .......... .......... .......... 90%  266M 0s
 22850K .......... .......... .......... .......... .......... 90% 80.8M 0s
 22900K .......... .......... .......... .......... .......... 90%  298M 0s
 22950K .......... .......... .......... .......... .......... 90%  325M 0s
 23000K .......... .......... .......... .......... .......... 91%  252M 0s
 23050K .......... .......... .......... .......... .......... 91%  196M 0s
 23100K .......... .......... .......... .......... .......... 91%  167M 0s
 23150K .......... .......... .......... .......... .......... 91%  184M 0s
 23200K .......... .......... .......... .......... .......... 91%  115M 0s
 23250K .......... .......... .......... .......... .......... 92%  243M 0s
 23300K .......... .......... .......... .......... .......... 92%  182M 0s
 23350K .......... .......... .......... .......... .......... 92%  342M 0s
 23400K .......... .......... .......... .......... .......... 92% 26.9M 0s
 23450K .......... .......... .......... .......... .......... 92%  173M 0s
 23500K .......... .......... .......... .......... .......... 93%  270M 0s
 23550K .......... .......... .......... .......... .......... 93%  295M 0s
 23600K .......... .......... .......... .......... .......... 93%  276M 0s
 23650K .......... .......... .......... .......... .......... 93%  296M 0s
 23700K .......... .......... .......... .......... .......... 93%  292M 0s
 23750K .......... .......... .......... .......... .......... 93%  252M 0s
 23800K .......... .......... .......... .......... .......... 94%  295M 0s
 23850K .......... .......... .......... .......... .......... 94%  216M 0s
 23900K .......... .......... .......... .......... .......... 94%  287M 0s
 23950K .......... .......... .......... .......... .......... 94%  291M 0s
 24000K .......... .......... .......... .......... .......... 94%  294M 0s
 24050K .......... .......... .......... .......... .......... 95%  119M 0s
 24100K .......... .......... .......... .......... .......... 95%  289M 0s
 24150K .......... .......... .......... .......... .......... 95%  290M 0s
 24200K .......... .......... .......... .......... .......... 95%  227M 0s
 24250K .......... .......... .......... .......... .......... 95%  248M 0s
 24300K .......... .......... .......... .......... .......... 96%  305M 0s
 24350K .......... .......... .......... .......... .......... 96%  291M 0s
 24400K .......... .......... .......... .......... .......... 96%  298M 0s
 24450K .......... .......... .......... .......... .......... 96%  310M 0s
 24500K .......... .......... .......... .......... .......... 96%  279M 0s
 24550K .......... .......... .......... .......... .......... 97%  257M 0s
 24600K .......... .......... .......... .......... .......... 97%  219M 0s
 24650K .......... .......... .......... .......... .......... 97%  309M 0s
 24700K .......... .......... .......... .......... .......... 97%  297M 0s
 24750K .......... .......... .......... .......... .......... 97%  294M 0s
 24800K .......... .......... .......... .......... .......... 98%  180M 0s
 24850K .......... .......... .......... .......... .......... 98%  143M 0s
 24900K .......... .......... .......... .......... .......... 98%  301M 0s
 24950K .......... .......... .......... .......... .......... 98%  298M 0s
 25000K .......... .......... .......... .......... .......... 98%  205M 0s
 25050K .......... .......... .......... .......... .......... 99%  281M 0s
 25100K .......... .......... .......... .......... .......... 99%  295M 0s
 25150K .......... .......... .......... .......... .......... 99%  298M 0s
 25200K .......... .......... .......... .......... .......... 99%  310M 0s
 25250K .......... .......... .......... .......... .......... 99%  295M 0s
 25300K .......... .......... ..                              100%  219M=0.2s

2025-11-13 20:03:21 (139 MB/s) - ‘all_basic_data.csv’ saved [25929930/25929930]

For the purposes of simplicity we will only use one direction (0) from the data release, but you could of course use all 10 directions if desired.

We will create simple arrays containing the parameter and observation names we wish to use from the data release. In this case we will store redshift, stellar mass, stellar metallicity, mass-weighted age, SFR on 3 different timescales, and the dust E(B-V). For the observations we will use JWST NIRCam photometry.

We will also save some units information for the parameters, but this is optional.

[3]:
dir = 0  # Choose direction 0 for this example

parameter_columns = [
    "redshift",
    "stellar_mass",
    "stellar_metallicity",
    "mean_stellar_age_mass",
    "sfr_3",
    "sfr_10",
    "sfr_100",
    f"ebmv_dir_{dir}",
]
parameter_units = [
    "dimensionless",
    "log10(Msun)",
    "dimensionless",
    "Myr",
    "Msun/yr",
    "Msun/yr",
    "Msun/yr",
    "dimensionless",
]

feature_names = [
    f"F070W_dir_{dir}",
    f"F090W_dir_{dir}",
    f"F115W_dir_{dir}",
    f"F140M_dir_{dir}",
    f"F150W_dir_{dir}",
    f"F162M_dir_{dir}",
    f"F182M_dir_{dir}",
    f"F200W_dir_{dir}",
    f"F210M_dir_{dir}",
    f"F250M_dir_{dir}",
    f"F277W_dir_{dir}",
    f"F300M_dir_{dir}",
    f"F335M_dir_{dir}",
    f"F356W_dir_{dir}",
    f"F360M_dir_{dir}",
    f"F410M_dir_{dir}",
    f"F430M_dir_{dir}",
    f"F444W_dir_{dir}",
    f"F460M_dir_{dir}",
    f"F480M_dir_{dir}",
]

We now want to make a numpy array for the parameters and observations from the table. we want to make sure that the shape of these arrays matches the expected input for the GridCreator class, which is (n_models, n_parameters) and (n_models, n_observations) respectively. Therefore we need to transpose the arrays after converting them from the pandas dataframe. ```python

[4]:
parameters = sphinx[parameter_columns].to_pandas().to_numpy().T
features = sphinx[feature_names].to_pandas().to_numpy().T

If we wish we can also store some ‘supplementary’ parameters, which will not be inferred by default when we use the grid for inference, but can be accessed later if desired. This is useful for derived parameters or other quantities of interest. Here we will store the escape fraction, UV slope, and absolute UV magnitude.

[5]:
supplementary_columns = [f"fesc_dir_{dir}", f"beta_dir_{dir}_sn", f"MAB_1500_dir_{dir}"]
supplementary_units = ["dimensionless", "dimensionless", "AB"]

supplementary_data = sphinx[supplementary_columns].to_pandas().to_numpy().T

We will set nicer names for our features, and also define a feature transform function to convert the magnitudes to fluxes. The SPHINX data release provides magnitudes, but we will set input to be in nanoJanskys.

[6]:
override_feature_names = [f"JWST/NIRCam.{filter.split('_dir_')[0]}" for filter in feature_names]


def _feature_transform(features: np.ndarray) -> np.ndarray:
    # Convert AB mag to nJy
    flux = 10 ** (-0.4 * (features - 31.4))
    flux[features == 0] = 0  # Avoid division by zero
    flux[~np.isfinite(flux)] = 0  # Handle non-finite values
    return flux


features = _feature_transform(features)

Now we can create the grid using the LibraryCreator class. We will specify an output folder and set overwrite=True to overwrite any existing files.

[7]:
LibraryCreator(
    model_name="SPHINX_JWST",
    parameter_grid=parameters,
    observation_grid=features,
    observation_names=override_feature_names,
    observation_units="nJy",
    parameter_names=parameter_columns,
    parameter_units=parameter_units,
    supplementary_parameters=supplementary_data,
    supplementary_parameter_names=supplementary_columns,
    supplementary_parameter_units=supplementary_units,
    out_folder=".",
    overwrite=True,
)
2025-11-13 20:03:22,693 | synference | INFO     | Number of parameters: 8
2025-11-13 20:03:22,698 | synference | INFO     | Number of observations: 20
2025-11-13 20:03:22,699 | synference | INFO     | Num rows in parameter library: 1380
2025-11-13 20:03:22,701 | synference | INFO     | Num rows in observation library: 1380
2025-11-13 20:03:22,717 | synference | INFO     | Library saved to ./library_SPHINX_JWST.h5
[7]:
<synference.library.LibraryCreator at 0x7f9aceeff220>

Now let’s quickly check that the grid was saved correctly by loading it back in using the SBI_Fitter class.

[8]:
from synference import SBI_Fitter

fitter = SBI_Fitter.init_from_hdf5(model_name="SPHINX_JWST", hdf5_path="./library_SPHINX_JWST.h5")
[9]:
print(fitter.raw_observation_names)
print(fitter.parameter_names)
print(fitter.parameter_units)
['JWST/NIRCam.F070W' 'JWST/NIRCam.F090W' 'JWST/NIRCam.F115W'
 'JWST/NIRCam.F140M' 'JWST/NIRCam.F150W' 'JWST/NIRCam.F162M'
 'JWST/NIRCam.F182M' 'JWST/NIRCam.F200W' 'JWST/NIRCam.F210M'
 'JWST/NIRCam.F250M' 'JWST/NIRCam.F277W' 'JWST/NIRCam.F300M'
 'JWST/NIRCam.F335M' 'JWST/NIRCam.F356W' 'JWST/NIRCam.F360M'
 'JWST/NIRCam.F410M' 'JWST/NIRCam.F430M' 'JWST/NIRCam.F444W'
 'JWST/NIRCam.F460M' 'JWST/NIRCam.F480M']
['redshift' 'stellar_mass' 'stellar_metallicity' 'mean_stellar_age_mass'
 'sfr_3' 'sfr_10' 'sfr_100' 'ebmv_dir_0']
['dimensionless' 'log10(Msun)' 'dimensionless' 'Myr' 'Msun/yr' 'Msun/yr'
 'Msun/yr' 'dimensionless']

As we can see the grid has been loaded correctly with the expected parameter and observation names and units, and we could now proceed to use this grid for inference as normal.

This class provides a flexible way to bring your own model grids into Synference for inference.