Ph.D. Student in Astronomy · University of California, Riverside

Aryana Haghjoo

Galaxy Evolution | High-Redshift Universe | Applications of AI in Astronomy | Analysis of Big Datasets | Deep Learning for Astronomical Data Enhancement

From the 21cm signal
to galaxy spectra.

Portrait of Aryana Haghjoo

I'm an astrophysicist working at the intersection of cosmology and machine learning. I'm a Ph.D. student in Astronomy at UC Riverside (CA, US), where I build deep learning models that sharpen low-resolution galaxy spectra with the help of survey data from telescopes such as James Webb, Euclid and Roman. I hold an M.Sc. in Physics from McGill University (QC, CA), where I developed an MCMC-based pipeline to estimate the astrophysical parameters of the global 21cm signal to search for hints of non-standard physics in the early universe.

Before any of that, I was an undergraduate at Sharif University of Technology in Tehran (Iran), falling in love with the idea that data science methods can help us understand the universe.

Outside of research, I'm usually planning my next adventure trip. I have traveled to 17 countries around the world, 4 continents, and 13 states in America. I am also a fan of road trips and long drives, especially through national parks, or anywhere I haven't pulled over before. This year, I am on a mission to better document my trip experiences. I started taking pictures with a Fujifilm Instax Mini 12 and have since graduated to a Kodak AstroZoom, but the habit's the same: stop the car, look properly, take the shot.

Download full CV
Sept 2025 – Sept 2028 (expected) Ph.D., Astronomy University of California, Riverside
Sept 2024 – Jun 2026 M.Sc., Astronomy University of California, Riverside
Sept 2021 – Dec 2023 M.Sc., Physics McGill University
Sept 2018 – Jul 2021 B.Sc., Physics Sharif University of Technology

Selected work

Deep Learning · Spectroscopy Dec 2024 — Present

Super-resolving galaxy spectra, from JWST to Roman

Low-resolution spectra blend the emission lines used to measure dust, metallicity, and ionization, and high-resolution follow-up is expensive. I built a physics-informed deep-learning pipeline that sharpens JWST/NIRSpec prism spectra by roughly a factor of ten in resolving power. Trained on 2,858 paired prism and grating spectra from JADES, it infers a redshift and then refines emission lines with attention across line tokens, separating features such as the [OIII]λλ4959,5007 doublet that the prism cannot resolve.

Two held-out JWST galaxy spectra comparing the low-resolution prism input, the high-resolution grating target, and the super-resolved output from 1 to 5.3 microns
Two held-out galaxies: prism input (red dashed), grating target (purple), and super-resolved output (orange). Insets show Hβ and the [OIII] doublet, which the prism leaves unresolved.

To test how much of that sharpening is real, I benchmarked the network against seven classical deconvolution methods on 572 held-out spectra. It appears to win on mean absolute error by 30%, but the margin comes from shrinking line amplitudes; on a scale-free metric all methods lie within 1.2% of one another. The network recovers line widths far better than any classical method, but it also places confident lines where the reference detects none, in 30% of spectra for Hβ and 44% for [OII].

Bar charts of mean absolute error, uncertainty-normalized error, and RMSE for seven classical deconvolution methods and the deep-learning model
Global error for all eight methods. The deep-learning model (orange) leads because its output sits at 0.54 of the reference amplitude; the lead disappears on a scale-free metric.

That failure mode shaped the next step: adapting the framework to slitless grism spectra from the Nancy Grace Roman Space Telescope. Trained on 36,404 simulated OpenUniverse2024 spectrum pairs, the Roman model is penalized for drawing lines the data could not have revealed. It recovers 85% of the flux of strong lines while leaving undetectable ones near zero, and its redshift head, which also reads three Roman imaging bands, reaches a 5.1% catastrophic outlier rate.

Two simulated Roman grism spectra comparing the noisy grism input, the target spectrum, and the super-resolved output from 1.0 to 1.93 microns
Two simulated Roman test galaxies: grism input (dashed), target (purple), and super-resolved output (orange). Insets separate Hα from [NII] (top) and Hβ from the [OIII] doublet (bottom).

Read the paper on arXiv

Advised by Bahram Mobasher & Shoubaneh Hemmati — UC Riverside

21cm Cosmology · M.Sc. Thesis Sept 2021 — Dec 2023

Parameter estimation of the global 21cm signal

The global 21cm signal traces neutral hydrogen between the cosmic dark ages and the first stars, so departures from the standard model could reveal new physics such as exotic dark matter or cosmic strings. My thesis built a pipeline combining Markov chain Monte Carlo with the Levenberg–Marquardt algorithm to fit ARES simulations of the signal, and tested it on data from the EDGES experiment.

Best-fit ARES model against half-amplitude EDGES data, with a zoomed panel of individual MCMC sample curves
Left: EDGES data at half amplitude with the best-fit ARES model, which cannot reproduce the observed trough with standard astrophysics. Right: an extreme zoom on individual MCMC sample curves.

Read the thesis on McGill eScholarship

Advised by Jonathan Sievers & Oscar Hernandez — McGill University

Open-source packages

Research tools built to be used, tested, and improved by the wider community.

Python · Astronomy · Machine Learning

zestimatr

Public release
zestimatr repository on GitHub zestimatr version on PyPI Supported Python versions MIT License Documentation status Model on Hugging Face Zenodo DOI Paper on arXiv Made at Code Astro

zestimatr is an open-source Python package for estimating spectroscopic redshifts directly from high-resolution galaxy spectra. Powered by a residual one-dimensional convolutional neural network, it returns both a redshift prediction and a calibrated uncertainty for each spectrum, with built-in tools for emission-line detection, evaluation, and visualization. Whether you want to try it on your own spectra, explore the code, or contribute to its development, visit the project on GitHub to get started.

Python · JWST/NIRSpec · Machine Learning

specsr

Public release
specsr repository on GitHub specsr version on PyPI Supported Python versions MIT License CI status Documentation Model on Hugging Face Zenodo DOI Paper on arXiv

specsr is an open-source Python package that super-resolves JWST/NIRSpec prism spectra, raising their resolving power by roughly a factor of ten (R ~ 100 → R ~ 1000). Trained on paired prism and grating observations from JADES, its three-stage pipeline recovers emission-line structure that is blended at prism resolution, such as the [OIII]λλ4959,5007 doublet, and returns a redshift and a wavelength-dependent uncertainty with every super-resolved spectrum. Pretrained weights download from Hugging Face on first use, and the tutorial notebooks run on bundled JADES spectra with no survey data required. This is the software release accompanying Haghjoo et al. (2026).

Python · JWST/NIRSpec · Benchmarking

specsrbench

Public release
specsrbench repository on GitHub specsrbench version on PyPI Supported Python versions MIT License Test status Documentation Tutorial data on Hugging Face Zenodo DOI

specsrbench benchmarks the specsr deep-learning pipeline against seven classical deconvolution methods, from cubic interpolation and Wiener filtering to Richardson–Lucy and wavelet-sparse reconstruction, on held-out JWST/NIRSpec prism spectra from JADES. It measures the instrument's line-spread function directly from the data and tunes the classical methods under four guards that stop the error metric from rewarding reconstructions that smooth away, shrink, broaden, or merge emission lines. The headline finding is that, at the pixel level on this data, no method beats cubic interpolation, and that the deep-learning lead in raw error comes from amplitude shrinkage rather than better reconstruction. A tutorial notebook reproduces the comparison on a small sample fetched from Hugging Face, with no survey data or GPU needed.

Python · Roman Space Telescope · Machine Learning

specsr-roman

Public release
specsr-roman repository on GitHub specsr-roman version on PyPI Supported Python versions MIT License CI status Documentation Model on Hugging Face Training data on Hugging Face Zenodo DOI

specsr-roman brings spectral super-resolution to slitless grism spectra from the Nancy Grace Roman Space Telescope, whose High Latitude Spectroscopic Survey will observe millions of emission-line galaxies at a resolving power where diagnostic lines such as Hα and [NII] stay blended. Trained on simulated OpenUniverse2024 spectra, its three-stage pipeline combines the grism spectrum with three Roman imaging bands to infer a full redshift probability distribution, and it sharpens emission lines only where the data could actually have revealed them. It is built around one principle: a model that invents plausible emission lines is worse than useless in a survey. Pretrained weights, the training dataset, and a tutorial that runs in minutes on a CPU are all public.

ForestTask app icon

Electron · Task Management · macOS

ForestTask

Public release
GitHub Repository GitHub Release License: MIT Build Status DOI

ForestTask is a desktop task manager for macOS that shows your work as a tree instead of a list. Projects are the big branches, tasks are the small ones growing off them. Colour tells you status at a glance, and anything with a due date creeping up gets a glow. Edit manually or use natural language with Claude or OpenAI—one undo button handles both. Everything lives in a single JSON file with no cloud sync.

JavaScript · Math · Interactive visualization

The Hessian, interactive

Live demo
Hessian explorer repository on GitHub MIT License

The Hessian, interactive lets you drag a patch over a surface and watch the Hessian matrix, its eigenvalues, and the bowl / dome / saddle verdict update live. Resize the patch, turn the 3D view, and overlay the quadratic model to see where the second-order approximation stops matching the real surface. It is an interactive version of an animation by Basem Rajjoub, whose post gave me the idea.

Selected Talks

Recorded talks on my work — grab a coffee and press play.

The full list of talks and posters is in my CV.

Teaching & Mentoring

I've been a teaching assistant at three universities, from introductory physics labs to graduate courses in machine learning and data science — the same tools I use in my research.

Teaching Assistant

2025 – Present Applied Machine Learning (PHYS 243) · Data Science (PHYS 247) · General Physics discussions and labs (PHYS 2B, 2C, 40A–C) University of California, Riverside
2022 – 2023 Galaxies and Stars · PHYS 102 Lab McGill University
2019 – 2020 Introduction to Cosmology (twice) · Electromagnetism · PHYS 103 Sharif University of Technology

Mentoring

Sept 2025 – Mar 2026 Mentor for senior students' projects STEM High School
2020 – 2021 Senior–Freshman Buddy Program volunteer Sharif University of Technology

Curriculum Vitae

Your browser can't display the PDF here. Open the CV instead.

Download CV (PDF)

What I see
when I'm not looking at spectra.

It started with wanting to save the memories and good scenes from my trips. I bought a Fujifilm Instax Mini 12 and later upgraded to a Kodak AstroZoom. I like driving and any excuse to pull over for a view — this is a running log of where that's taken me so far.

Sightseeing boat on the Chicago River with the downtown skyline rising behind the trees
Chicago River, Illinois
Looking down the glowing perforated copper cask and spiral escalator inside the Starbucks Reserve Roastery
Starbucks Reserve Roastery, Chicago
Apollo 11 Command Module Columbia in its glass case at the National Air and Space Museum
National Air and Space Museum, Washington, D.C.
Half Dome framed between forested ridges in Yosemite National Park
Half Dome, Yosemite National Park
People gathered around a campfire at night in Yosemite
Yosemite National Park
Tall sequoia and conifer trunks rising above green undergrowth
Sequoia National Park
Portrait in front of the Sequoia National Park entrance sign
Sequoia National Park
Portrait at Lick Observatory with telescope domes in the background
Lick Observatory, California
Portrait next to the Shane telescope at Lick Observatory
Lick Observatory, California
Sandstone arcade with arches at Stanford University
Stanford University
Courtyard with hanging greenery at the University of Arizona, Tucson
University of Arizona, Tucson
Mike O'Callaghan-Pat Tillman Memorial Bridge spanning the Black Canyon near Hoover Dam
Hoover Dam, Nevada/Arizona
Badlands and mountain ridgeline at Zabriskie Point, Death Valley National Park
Death Valley National Park
Marina and desert shoreline at Lake Mead National Recreation Area
Lake Mead National Recreation Area
Bixby-style coastal bridge along Highway 1, California
Highway 1, California
Fog rolling over the cliffs along the Big Sur coastline
Highway 1, California
Roadside pullout overlooking Highway 1 with coastal wildflowers
Highway 1, California
Marine fog layer spilling over coastal hills along Highway 1
Highway 1, California
Hillside houses overlooking the water in Sausalito under fog
Sausalito, California
Canada geese in a wetland pond at Baylands Nature Preserve
Baylands Nature Preserve
Rock spires and restroom building at Pinnacles National Park
Pinnacles National Park
Wildflowers along a trail at Pinnacles National Park
Pinnacles National Park
Shaded trail through trees at Whitewater Preserve
Whitewater Preserve
View of campus buildings and hills from a terrace at UC Riverside
UC Riverside
National park map and Instax camera on the car seat during a road trip
Somewhere on a road trip

Get in touch