I had this old snapshot of the UV spectrum, and it took me to look into the literature to find out what I see. Well, Magnezium, among others. Because H alpha is such a low hanging fruit, and the Mg b triplet is so over-represented. Let’s boldly go where no amateur (that I know of) has gone before. The UV Mg.
So let us dive into those lines, with our friend, the Sol’Ex, and especially the 383.83nm Mg I — see the monograph.
Looking at the Hydrogen eta and the math versions, it is obvious that the prom at around 8 o’clock is in fact a filament reaching beyond, filaprom if you will. Another filament is also visible on the magnesium disk.
Some scripts
The metal (named MgNa becasue reasons) extraction, some heavy wizardry going on here
flat_rescaleFactor = 4 flat_kernelSize = 25 [outputs] rawMgNa = min(range(-1, 1)) rawMgNaB = fix_banding(rawMgNa, 100, 50) rawMgNaBL = linear_stretch(rawMgNaB) rawMgNaBLRot = rotate_rad(rawMgNaBL, angleP) rawMgNaL = linear_stretch(rawMgNa) rawMgNaLRot = rotate_rad(rawMgNaL, angleP) kontinuum = avg(range(-14, -18)) kontinuumB = fix_banding(kontinuum, 100, 50) kontinuumBL = linear_stretch(kontinuumB) kontinuumBLRot = rotate_rad(kontinuumBL, angleP) kontinuumRot = rotate_rad(kontinuum, angleP) logKontinuum = log(kontinuum, 7) delta1 = log(rawMgNaB, 5) - logKontinuum delta1Pow = pow(delta1, 1.3) mul = delta1Pow * rawMgNaB delta2 = (rawMgNaL - kontinuumBL) mul2 = pow(delta2 * rawMgNaB, 0.2) delta1minusKontinuum = linear_stretch(delta1 - logKontinuum/10) d1mkMultRawMgNaB = (delta1minusKontinuum * rawMgNaB) - (mul/2) d1mkMultRawMgNaBL = linear_stretch(d1mkMultRawMgNaB) d1mkMultRawMgNaBLRot = rotate_rad(d1mkMultRawMgNaBL, angleP, 0) rawMgNaxDelta = linear_stretch(mul + 2*pow(rawMgNa,0.9)) rawMgNaxDeltaBLRot = rotate_rad(fix_banding(rawMgNaxDelta, 100, 50), angleP) rawMgNaxDelta2 = linear_stretch(mul2 + 2*pow(rawMgNa,0.9)) rawMgNaxDelta2BLRot = rotate_rad(fix_banding(rawMgNaxDelta2, 100, 50), angleP) delta1Rot = (rotate_rad(delta1, angleP, 0)) delta1PowRot = (rotate_rad(delta1Pow, angleP, 0)) delta2Rot = (rotate_rad(delta2, angleP, 0)) delta1RotLS = linear_stretch(delta1Rot) delta1PowRotLS = linear_stretch(delta1PowRot) delta2RotLS = linear_stretch(delta2Rot) flatDelta_small = rescale_rel(delta1, 1/flat_rescaleFactor, 1/flat_rescaleFactor) flatDelta_smallBlur = blur(flatDelta_small, flat_kernelSize) flatDelta_rescaled = rescale_rel(flatDelta_smallBlur, flat_rescaleFactor, flat_rescaleFactor) flatDelta_rescaledRot = rotate_rad(flatDelta_rescaled, angleP, 0) deltaFlat = delta1 - flatDelta_rescaled augment = linear_stretch(pow(deltaFlat, 3)) / 8 rawMgNaBAugmented = linear_stretch(rawMgNaB + augment) rawMgNaBAugmentedRot = rotate_rad(rawMgNaBAugmented, angleP, 0) augmentRot = rotate_rad(augment, angleP, 0) rawMgNa1AvgAugmentedRot = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*1), rawMgNaBAugmentedRot) rawMgNa2AvgAugmentedRot = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*2), rawMgNaBAugmentedRot) rawMgNa3AvgAugmentedRot = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*3), rawMgNaBAugmentedRot) rawMgNa4AvgAugmentedRot = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*4), rawMgNaBAugmentedRot) rawMgNa5AvgAugmentedRot = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*5), rawMgNaBAugmentedRot) rawMgNa6AvgAugmentedRot = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*6), rawMgNaBAugmentedRot) rawMgNa7AvgAugmentedRot = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*7), rawMgNaBAugmentedRot) rawMgNa1AvgAugmentedRot1 = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*1), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*1)) rawMgNa2AvgAugmentedRot2 = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*2), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*2)) rawMgNa3AvgAugmentedRot3 = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*3), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*3)) rawMgNa4AvgAugmentedRot4 = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*4), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*4)) rawMgNa5AvgAugmentedRot5 = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*5), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*5)) rawMgNa6AvgAugmentedRot6 = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*6), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*6)) rawMgNa7AvgAugmentedRot7 = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*7), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*7)) rawMgNa6AvgAugmentedRotA = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*6), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*10)) rawMgNa7AvgAugmentedRotF = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*7), linear_stretch(rawMgNaBAugmentedRot - flatDelta_rescaledRot*15)) rawMgNa7AvgAugmentedRot30 = avg(linear_stretch(rawMgNaxDeltaBLRot-flatDelta_rescaledRot*7), linear_stretch(rawMgNaBAugmentedRot + augmentRot*5 - flatDelta_rescaledRot*30))
Extracting the Hydrogen Eta
HydrogenEtaLineIsAtPixelShift = -44 HydrogenEtaContext = 1 kontinuumLineIsAtPixelShift = -84 kontinuumContext = 5 HydrogenEtaRangeLeft = HydrogenEtaLineIsAtPixelShift - HydrogenEtaContext HydrogenEtaRangeRight = HydrogenEtaLineIsAtPixelShift + HydrogenEtaContext kontinuumRangeLeft = kontinuumLineIsAtPixelShift - kontinuumContext kontinuumRangeRight = kontinuumLineIsAtPixelShift + kontinuumContext im0 = rotate_rad(img(0),angleP) im0_asinh = asinh_stretch(im0, blackPoint, 100) [outputs] im0_asinh_asinh = asinh_stretch(im0_asinh, blackPoint, 100) HydrogenEta = min(autocrop2(range(HydrogenEtaRangeLeft,HydrogenEtaRangeRight,1))) HydrogenEtaRawRotated = rotate_rad(linear_stretch(HydrogenEta), angleP) kontinuum2 = avg(autocrop2(range(kontinuumRangeLeft,kontinuumRangeRight,1))) delta2 = fix_banding(HydrogenEta - kontinuum2, 100, 50) HydrogenEtaPrime = HydrogenEta * delta2 + delta2 HydrogenEtaPrimeLinear = linear_stretch(HydrogenEtaPrime) HydrogenEtaPrimeAsinh = asinh_stretch(HydrogenEtaPrimeLinear, blackPoint, 100) HydrogenEtaPrimeLinearRotated = rotate_rad(HydrogenEtaPrimeLinear, angleP) HydrogenEtaPrimeAsinhRotated = rotate_rad(HydrogenEtaPrimeAsinh, angleP) HydrogenEtaPrimeLinearAsinhAvgRotated = avg(HydrogenEtaPrimeAsinhRotated, HydrogenEtaPrimeLinearRotated) kontinuum2LinearRotated = rotate_rad(linear_stretch(kontinuum2), angleP) delta2Rotated = rotate_rad(linear_stretch(delta2), angleP) HydrogenEtaContaminatedByCaH = linear_stretch( HydrogenEtaPrimeLinearAsinhAvgRotated + HydrogenEtaPrimeLinearAsinhAvgRotated + im0_asinh_asinh ) HydrogenEtaContaminatedByCaH_pow = linear_stretch(pow(HydrogenEtaContaminatedByCaH, 1.5)) HydrogenEtaPrimeLinearAsinhAvgRotatedAvgKontinuum = linear_stretch(avg(HydrogenEtaPrimeLinearAsinhAvgRotated, kontinuum2LinearRotated))











