This video introduces an empirical method for extracting narrowband channels (hydrogen and oxygen) from dual-band astrophotography images by using actual stellar spectra from the image itself, rather than relying on manufacturer-provided QE curves or response curves. The method involves plate-solving the image, fetching star spectral types from databases like Simbad, downloading high-resolution Pickles templates and Gaia spectra, and then calibrating a mixing matrix that mathematically separates the channels based on the actual stellar profiles present. The quality of extraction is assessed using the condition number of the mixing matrix, where lower values (2-12 for dual-band filters) indicate better confidence in the results. This approach is particularly valuable because manufacturer curves are often promotional and inaccurate, and matrix inversion is highly sensitive to small percentage errors that can significantly affect the final extracted channels.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
NBExtract: Forget QE curves & manufacturer claims, let our own stars tell us how to separate NB dataAdded:
Forget QE curves and manufacturer claims and let our own stars tell us exactly how to separate our narrow band data.
Welcome to Seti Astro.
So as always make sure you have the latest version of Seti Astro Suite Pro.
Head over to setyastro.com under Astro programs Seti Astro Suite Pro. We're up to version 1.17.
There's the normal download here for the installers. Those of you a little more tech savvy can do the pip install. The Mac users can use homebrew or you can just run it from GitHub. And if anybody's looking for a little Seti Astro merch, you can head over to my Seti Astro Etsy store where I got coffee mugs, shirts, stickers, koozies, things like that and help support the channel.
All right, for the longest time I've been telling uh users to pretty much use the KISS mentality when they want to get the hydrogen or oxygen out of their dual band image. Uh KISS being keep it simple, silly.
And that being the hydrogen is just mostly going to be red channel. The oxygen's mostly going to be your green channel. Just do a channel extraction and use them as is. We're just making pretty pictures for the most part. Keep it simple. I also felt that tools that utilized these hilarious response curves really weren't doing anybody any good justice. Uh these curves are terrible.
Most of them are promotional items.
They're really not true quantum efficiency curves. Some of them are response curves and not even what should be utilized in the first place.
And when you're doing things like matrix inversion, uh this little bit of error here like in the red like way down here, when you're talking just a few percentage points off when there is only a few percentage points to be had, that makes a huge difference in matrix inversion.
And using these kind of graphs is okay for things like SPCC because what you're doing is you're averaging a bunch of them together anyways on a ton of different stars and you're coming up with one white point reference, right?
It's all averaged together just to kind of give your image a color calibration.
When you're doing these matrix inversions to get the data out and split it between the channels like that, these little tiny values uh being off just a little bit can make huge differences in the like the the two norm condition of the matrix and whether it's ill-conditioned, just a bunch of things. So, these graphs are terrible to use for something like this.
So, let me introduce my narrowband channel extractor.
It's under functions. You can find the little icon here or under functions, narrowband channel extractor.
And this is going to empirically calibrate and derive your dual narrowband channels for you. It needs to have a plate-solved image. You want to have all your stacking artifacts cropped out, and your image needs to be linear.
And what we're going to do is use the actual image data without any sensor information, QE curves, none of that.
And we're going to pull down the spectrum data of the stars in your image.
And then we can calibrate this image from its data against those spectrum of the stars for those narrow bandpasses from your filter, right? So, if you got to like a hydrogen alpha filter, here's the centers. You can type in your bandpass, and it's going to use those bandpasses to integrate the flux of those stars and calibrate the image from that to actually create the um mixing matrix to rip that data apart properly based on the data and the stellar profiles that are in your image. You can see I got a bunch of different filter types.
Hydrogen, oxygen, sulfur, oxygen, sulfur beta, or I'm trying to keep it future-proof. There's a custom here where you can type in your own lines and bandwidths and names and If you got some weird future nitrogen argon filter or something like that, you can type in here, too. So, it needs to be plate-solved. Step one, it's going to fetch the stars for the current view.
You click this and now it's going to go ahead and contact Simbad, get all the star spectral types.
It's going to be able to use those spectral types and use high resolution pickles templates for those spectrums.
And then it's also going to pull down Gaia spectrum, which is a lower resolution spectrum than the the pickles templates, but it's still going to be able to use those Gaia spectrum as well to fill in any missing gaps may have and come out with spectrum and in this case 94 stars in this particular image that we can calibrate our image against.
Again, no QE curves, no sensor data, it's not needed. We're going to derive everything empirically. The next thing we're going to do is click calibrate mixing matrix.
Now, this is going to do a little pre-processing on the image.
It's going to use the star detect threshold you have up there to grab the stars out of the image and now it's going to actually start comparing the image's response to the spectral response in all those areas and be able to calculate that mixing matrix in order to derive the proper way to extract our channels. Okay, when it's done, it's going to say, you know, it it fit so many stars, it clipped outliers. It's going to give you a condition number.
That condition number is actually the the two norm condition in the matrix. It gives you a confidence interval on how confident you should be in the mixing matrix in order to split everything apart. So, the higher that condition number is, the less confident you should be about that data.
And with that, it's actually going to be able to derive some auto cues. Uh and the cue is going to be a quality factor used in it as well. So, in this case, condition 2.56, that's really good.
You can click okay. It's going give you a matrix here of the actual weights.
There's a graph. There's a couple graphs at the bottom here. This really tells you how much of each channel gets weighted to the various lines for the filters.
And then there's also a fit residual here, too. So, ideally, the measured and predicted would be exactly zero, right? There there'd be no deviation as at all. In this clay case, there's a slight deviation, but it's very close to zero, right? That also speaks to how well the the condition is. From here, just click extract channels.
And now it's going to go ahead and apply that mixing matrix to our image to abstract the pure hydrogen and oxygen from it. There's a little tip, if you see some overcorrection or undercorrection, you can go in the advanced tab and adjust those quality factors a little bit up or down if you want.
But the auto quality does a really really good job. So, for the oxygen, the extracted oxygen, this case looks like this. And now we have the extracted hydrogen. And let's go ahead real quick, we could link these together.
Let's go ahead and kind of zoom in here where we got um big differences between the two just to really get a visual. So, here's the oxygen and the hydrogen.
Quite quite a bit of difference between those two. And if we want, we could redo the naive channel extraction, too. So, let's just go ahead and do that. All right, now we have RGB, and now we can compare like the G to the oxygen. So, the G being just the the naive, if you just assigned oxygen to the the G channel there. Let's go ahead and compare those. They should be fairly similar. So, the naive G channel has a little bit more nebulosity kind of in there, which is actually the the bleed-through from the hydrogen, right? So, let's kind of zoom in here a little bit more. So, here's the G channel.
And then there's the oxygen extracted.
You you see the dimming on certain areas here for the actual oxygen extracted uh because it's not having that uh hydrogen bleed through from the sensor response.
Let's go ahead and show an example with some really noisy data. This is actually from a Dwarf Mini. Uh but let's go ahead and extract the the hydrogen and oxygen from it. This is already plate solved.
It's still linear. Let's go ahead and fetch the stars for the current view.
Then let's go ahead and calibrate the mixing matrix. So now you can see this one has a condition of 8.5. It's a lot higher because the data is a lot noisier.
Uh but that's okay. The uh fits and residuals are still really close. The median fit is almost exactly zero. So let's just go ahead and extract the channels. It's going to auto calibrate our Q for us and give us our uh extractions. So here's the oxygen and the hydrogen. So there's almost no oxygen at all in this particular uh nebula. Just a very very faint whisper of it there. And the vast majority of it is all uh hydrogen. Now I also want to say if the matrix for whatever reason is singular or you can't or the non-negative least squares fit can't find a solution, there's actually a really good fallback in that will use the stars RGB value and do a color mixing matrix to neutralize the star colors and then use the weights in order to get the uh hydrogen and oxygen extracted from there as well.
Even if the image doesn't have enough stars with spectrum categorized in it or the matrix turns out to be singular or anything like that, there's still a very robust fallback that uses the RGB stellar brightnesses in order to extract your particular channels out of your image still. So you could still even get a robust hydrogen, oxygen, sulfur, H-beta, whatever the lines are out of your image even as a fallback. One last thing to know is if you needs to download Gaia spectrum data, uh Gaia is running really slow right now.
And it's because they're preparing for the DR4 release, which is going to be just just amazing, right? Just way more stars. So, uh this will come up and it's going to dial download the Gaia spectrum that it's missing.
It may be slow.
If you want to cancel it, you can go ahead and cancel it. It will have to finish that query, uh otherwise the thread will crash. So, you can click cancel and it'll just wait until that particular first batch gets done downloading.
Uh but I do have it set up such that after it's done downloading these, they'll be forever with SASPro on your computer. So, the next time you run it, it'll just be able to use the cached versions of all those spectra and then uh you'll never have to see it again.
I'm also working on uh completely downloading the DR3 release and bundling that up for SASPro and stuff. But, if you do see this Gaia download thing, uh you could either cancel it if you don't want to wait for it or use the checkbox in the UI here for the Gaia XP fallback. If you just want to skip it while they're in the middle of uh a huge amount of rework on the Gaia side to get ready for the DR4 data release. Okay, let's go ahead and do one more. Here's the Orion. I cropped out the stacking artifacts. I removed the gradients and I made sure it's plate solved. Then I'll open up the narrow band extractor.
Let's go ahead and fetch the stars.
Okay, all the stars are fetched. Let's go ahead and calibrate the mixing matrix.
Okay, the mixing matrix was calibrated.
We'll go ahead and look at these graphs here a little bit, too.
Um the median is right almost at zero again, which is really great. Let's go ahead and click extract channels. Okay, and let's uh let's check them out. So, here's the oxygen and here's the hydrogen. And the hydrogen is just amazing with all these swirls all around everywhere.
And if we want to go ahead and and link them up so we can take a close look at like the running man area which has a lot of oxygen compared to the hydrogen or at least a different structure. You can really see the the differences in here between the oxygen extracted and the hydrogen extracted.
So, I hope you guys get a lot of use out of the narrow band extraction tool. It doesn't rely at all on information about your sensor. It derives all that information empirically from the data in your image and spectrum recorded from the stars in your image to give you a really good empirically driven extraction for your hydrogen and your oxygen. One final note, this is going to be all for different dual band filters.
Obviously, if you're running mono, you're already you already got your channels extracted, right? But those of you running tri or quad band filters, for tri band filters, mathematically, you can reverse the matrix and get your channels extracted, but practically it's impossible. And here's why. The hydrogen and sulfur lines on the red channel are so close together that the matrix itself is ill-conditioned. In fact, the two norm condition for the matrix in a typical example may be like 200, 300, even up to 1,000. In our cases here for even just a dual band filter, we get conditions between like 2 and 12.
So, already you're starting to see the condition deteriorate even with a very over defined matrix like just with a dual band. Once you start getting like 200, 300, 400 for your condition, any differences between the noise and the sulfur and the hydrogen and the channel crosstalk and things like that get amplified by the condition squared.
So, all of a sudden, your changes in a very subtle light pollution gradients, channel crosstalk, even even just the the read out of the sensor across the whole sensor gets amplified by 10,000, 20,000, 30,000 times, making extraction for tri filters practically impossible. And then for quad filters, it's mathematically impossible. So, those of you using tri and quad, you just got to use them kind of as RGB images. You're not going to be able to actually get a good extraction out of that data for the multiple channels. But for dual band filters, yep, we could absolutely go ahead and do a really good channel extraction, empirically driven from your data and your image and actual catalog spectrums that have been recorded by professional telescopes.
Please comment, like, and subscribe.
Related Videos
Spiral Galaxy NGC 3370 from Hubble | NASA APOD 2025-11-05 #Shorts
galaxygallery
938 viewsβ’2026-05-30
SOMETHING inside the SUN is CHANGING
RaysAstrophotography
1K viewsβ’2026-06-03
Captured the Blue Moon (with a twist) πβ¨ #space #bluemoon #telescope
realAstroExplorer
674 viewsβ’2026-06-01
There May Be A Giant Hole In The Universe... And We Might Be Inside It | The Cosmic Ledger Entry 015
TheCosmicLedger
145 viewsβ’2026-05-31
The Map We Sent to the Stars in 1977 β Why Scientists Now Regret It
TheAncientRecord7
183 viewsβ’2026-06-03
10 Planet Where a Black Hole Replaces the Sun
cosmicexplorer-EN
147 viewsβ’2026-06-02
Is this a copy of our galaxy? Discover Galaxy M81!
UniverseDocumentaries-cc4mb
995 viewsβ’2026-05-31
Solar Flares and CMEs at Earth - More Likely | S0 News June.3.2026
SpaceWeatherNewsS0s
2K viewsβ’2026-06-03











