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.

funny old picture, solved

funny old picture, solved

from the current scans

from the current scans

the enhanced signal, UV Mg Sun

the enhanced signal, UV Mg Sun

colorized

colorized

math-stage

math-stage

math-stage

math-stage

math-stage

math-stage

Hydrogen eta prime, variant

Hydrogen eta prime, variant

Hydrogen eta prime, variant

Hydrogen eta prime, variant

some linjes, considered a continuum

some linjes, considered a continuum

raw line content in the H eta

raw line content in the H eta

raw Mg content in the 3838A line

raw Mg content in the 3838A line

 

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))