„For WILL and SHALL best fitteth Tamburlaine”
(Temur ~ iron)
Abstract
I recorded full disc solar images, in the spectral line of ionized iron, Fe II at 5018.45A. Due to the bandwidth, He I at 5015.7A was also recorded. I used the Sol’Ex spectroheliograph, mounted on a 62/400 ED refractor, stepped down to 42-46mm, by using 2″ narrow band filters as full aperture energy rejection filters, with an ASI 678MM monochrome camera. I reconstructed and further processed the recordings with JSol’Ex and its ImageMath module, and showed the presence of prominences and filaments. Creating aesthetic, but still faithful to the data renditions was among the goals.
A hobby is a hobby
I decided, with some little help from professional literature[1][2], to go into a particular iron line. Not the Fe (c) (at 495.7 nm, given as Fe I), which is rather well observed[3], and looks like many other metal lines, but the one at 501.845 nm, a line of ionized iron, of Fe II. What’s particularly interesting and somewhat unexpected for me, the amateur playing around with my Sol’Ex instrument, running all kinds of ImageMath scripts in JSol’Ex, is that, in Fe II at 501.845 nm:
- The active regions are dark, just like in He I D3, and unlike in many metals, like Ca in the G band at 430nm
- Faint proms are visible, and with math applied, filaments are also showing up
- Some brighter-than-its-medium areas are also visible, flares maybe
- Unlike with both the Mg and Na of the Fraunhofer lines, this line is relatively easy to extract and reconstruct with much less instrument/recording/processing artefacts, like the dreaded „polar caps”. Present, but much less.
Having explored many exotic lines, like
- the „high hydrogens” from epsilon (raw and „prime”) to „theta” if there is such a thing,
- the blue Helium at 447.15, and
- recently the UV Magnesium,
I needed a new challenge, and this iron line showed up on my radar.
Finding stuff on the enshittified internet
Before we go further, let me mention this one thing: it kind of surprises me how hard it is, for me at least, to find previous work in this field (in particular, but it applies also in general to any topic). I’m not in academia, so maybe I don’t know how to find abstracts, beyond google and whatnot. But I consider myself a person who knows a thing or two about finding stuff on the internet, or at least used to. It is just that both the internet, and google, have changed. Now we have all kinds of AI buttons and tabs and columns, covering pixel real estate where there used to be valuable content. Having said this: as far as I know, this line is not explored by amateur astronomers, at least not with filaments and prominences, in the details I will present below.
First Light
We had particularly bad seeing during the past week. Ersatz-Obsi, sure, no dome, just an office window, metal rooftop in front, concrete parkings here and there — but still, unusually, exceptionally bad seeing, with most of the recordings going straight to the garbage can.
I used a deep sky narrow band OIII filter, 1.25″ to zero in onto the line, and then wider 2″ filters as ERF, to reduce the heat stress of the slit. I used, among others, Altair Astro’s Tri-RGB filter.
The first light came in on 2025-03-20.
So, the first light, while of abysmal spatial resolution, still intriguing to look at.
Better light
Better seeing came towards the weekend, and there was a giant prom also, on 2025-03-21. A gong image for reference, and then my spectroheliograms.
Yes, that giant prom is from an iron line, not hydrogen, not calcium, not helium, not sodium-magnesium, but iron, and not even in the ultraviolet.
Scripts
Main line, diffing against a continuum
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) delta1minusKontinuumRot = rotate_rad(delta1minusKontinuum, angleP, 0) 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))
Looking for a nearby Helium
He_offset = -45 He_context = 1 He_step = 1 kontinuum_offset = He_offset + 14 kontinuum_context = 3 kontinuum_step = 1 kontL = kontinuum_offset - kontinuum_context kontR = kontinuum_offset + kontinuum_context HeL = He_offset - He_context HeR = He_offset + He_context lineZero = min(autocrop2(range(-1, 1))) lineZeroB = fix_banding(lineZero, 100, 50) lineZeroBL = linear_stretch(lineZeroB) lineZeroL = linear_stretch(lineZero) lineZeroBLSQ = linear_stretch(pow(lineZeroB, 2)) [outputs] HeRaw = min(autocrop2(range(HeL,HeR,He_step))) HeRawRot = rotate_rad(linear_stretch(HeRaw), angleP) kontinuum = avg(autocrop2(range(kontL,kontR,kontinuum_step))) kontinuumLinearRotated = rotate_rad(linear_stretch(kontinuum), angleP) delta2 = fix_banding(HeRaw - kontinuum, 100, 50) HeLog = linear_stretch(log(HeRaw, 2)) HeLogRot = rotate_rad(HeLog, angleP) HeLogHeRaw = linear_stretch(pow(HeLog + HeRaw, 1.2)) HeLogHeRawRot = rotate_rad(HeLogHeRaw, angleP) HeMul = linear_stretch(HeLogHeRaw * pow(delta2, 1.5)) HeMin = min(HeLogHeRaw, HeMul) HePrime = linear_stretch(HeLog + HeMin + linear_stretch(pow(HeMin,4)) + linear_stretch(pow(HeRaw,2)) + HeLogHeRaw) HePrimeRot = rotate_rad(HePrime, angleP) HePrimeRotP = linear_stretch(pow(HePrimeRot, 1.1)) HePrimeRotFinalPow1 = linear_stretch(avg(HePrimeRotP, HePrimeRot)) HePrimeRotFinalPow2 = linear_stretch(pow(avg(HePrimeRotP, HePrimeRot), 2)) HePrimeRotFinalPow3 = linear_stretch(pow(avg(HePrimeRotP, HePrimeRot), 3)) HePrimeRotFinalPow3PlusLog = linear_stretch(HeLogRot + HePrimeRotFinalPow3) HePrimeRFP3PlusLog = max(HePrimeRotFinalPow1, HePrimeRotFinalPow3PlusLog) HePrimeRFP3PlusLogSq = linear_stretch(pow(HePrimeRFP3PlusLog, 1.4)) lineZeroLRot = rotate_rad(lineZeroL, angleP) lineZeroBLRot = rotate_rad(lineZeroBL, angleP) lineZeroBLRotSQ = rotate_rad(lineZeroBLSQ, angleP) delta2Rot = rotate_rad(linear_stretch(delta2), angleP) HeMulRot = rotate_rad(HeMul, angleP) HeMulNRot = linear_stretch(HeRawRot * HeMulRot) HePrimeRFP3PlusLogSqPlusHeMulNRot = linear_stretch(HeRawRot * HeMulRot + HePrimeRFP3PlusLogSq) HeSomething = linear_stretch(HeLogHeRawRot + HeMulNRot - kontinuumLinearRotated/1.5) HeSomething2 = linear_stretch(HeSomething*2 + HePrimeRotP + HeLogRot/1.5 - kontinuum/8) HeSomething3 = avg(HeSomething, HeSomething2)
Generating the cube frames, with sequential wavelength offsets (this is a generated script, for reference)
lineOffset = 0 [outputs] rot_img_C000_M061 = rotate_rad(img(lineOffset -61), angleP) rot_img_C001_M060 = rotate_rad(img(lineOffset -60), angleP) rot_img_C002_M059 = rotate_rad(img(lineOffset -59), angleP) rot_img_C003_M058 = rotate_rad(img(lineOffset -58), angleP) rot_img_C004_M057 = rotate_rad(img(lineOffset -57), angleP) rot_img_C005_M056 = rotate_rad(img(lineOffset -56), angleP) rot_img_C006_M055 = rotate_rad(img(lineOffset -55), angleP) rot_img_C007_M054 = rotate_rad(img(lineOffset -54), angleP) rot_img_C008_M053 = rotate_rad(img(lineOffset -53), angleP) rot_img_C009_M052 = rotate_rad(img(lineOffset -52), angleP) rot_img_C010_M051 = rotate_rad(img(lineOffset -51), angleP) rot_img_C011_M050 = rotate_rad(img(lineOffset -50), angleP) rot_img_C012_M049 = rotate_rad(img(lineOffset -49), angleP) rot_img_C013_M048 = rotate_rad(img(lineOffset -48), angleP) rot_img_C014_M047 = rotate_rad(img(lineOffset -47), angleP) rot_img_C015_M046 = rotate_rad(img(lineOffset -46), angleP) rot_img_C016_M045 = rotate_rad(img(lineOffset -45), angleP) rot_img_C017_M044 = rotate_rad(img(lineOffset -44), angleP) rot_img_C018_M043 = rotate_rad(img(lineOffset -43), angleP) rot_img_C019_M042 = rotate_rad(img(lineOffset -42), angleP) rot_img_C020_M041 = rotate_rad(img(lineOffset -41), angleP) rot_img_C021_M040 = rotate_rad(img(lineOffset -40), angleP) rot_img_C022_M039 = rotate_rad(img(lineOffset -39), angleP) rot_img_C023_M038 = rotate_rad(img(lineOffset -38), angleP) rot_img_C024_M037 = rotate_rad(img(lineOffset -37), angleP) rot_img_C025_M036 = rotate_rad(img(lineOffset -36), angleP) rot_img_C026_M035 = rotate_rad(img(lineOffset -35), angleP) rot_img_C027_M034 = rotate_rad(img(lineOffset -34), angleP) rot_img_C028_M033 = rotate_rad(img(lineOffset -33), angleP) rot_img_C029_M032 = rotate_rad(img(lineOffset -32), angleP) rot_img_C030_M031 = rotate_rad(img(lineOffset -31), angleP) rot_img_C031_M030 = rotate_rad(img(lineOffset -30), angleP) rot_img_C032_M029 = rotate_rad(img(lineOffset -29), angleP) rot_img_C033_M028 = rotate_rad(img(lineOffset -28), angleP) rot_img_C034_M027 = rotate_rad(img(lineOffset -27), angleP) rot_img_C035_M026 = rotate_rad(img(lineOffset -26), angleP) rot_img_C036_M025 = rotate_rad(img(lineOffset -25), angleP) rot_img_C037_M024 = rotate_rad(img(lineOffset -24), angleP) rot_img_C038_M023 = rotate_rad(img(lineOffset -23), angleP) rot_img_C039_M022 = rotate_rad(img(lineOffset -22), angleP) rot_img_C040_M021 = rotate_rad(img(lineOffset -21), angleP) rot_img_C041_M020 = rotate_rad(img(lineOffset -20), angleP) rot_img_C042_M019 = rotate_rad(img(lineOffset -19), angleP) rot_img_C043_M018 = rotate_rad(img(lineOffset -18), angleP) rot_img_C044_M017 = rotate_rad(img(lineOffset -17), angleP) rot_img_C045_M016 = rotate_rad(img(lineOffset -16), angleP) rot_img_C046_M015 = rotate_rad(img(lineOffset -15), angleP) rot_img_C047_M014 = rotate_rad(img(lineOffset -14), angleP) rot_img_C048_M013 = rotate_rad(img(lineOffset -13), angleP) rot_img_C049_M012 = rotate_rad(img(lineOffset -12), angleP) rot_img_C050_M011 = rotate_rad(img(lineOffset -11), angleP) rot_img_C051_M010 = rotate_rad(img(lineOffset -10), angleP) rot_img_C052_M009 = rotate_rad(img(lineOffset -9), angleP) rot_img_C053_M008 = rotate_rad(img(lineOffset -8), angleP) rot_img_C054_M007 = rotate_rad(img(lineOffset -7), angleP) rot_img_C055_M006 = rotate_rad(img(lineOffset -6), angleP) rot_img_C056_M005 = rotate_rad(img(lineOffset -5), angleP) rot_img_C057_M004 = rotate_rad(img(lineOffset -4), angleP) rot_img_C058_M003 = rotate_rad(img(lineOffset -3), angleP) rot_img_C059_M002 = rotate_rad(img(lineOffset -2), angleP) rot_img_C060_M001 = rotate_rad(img(lineOffset -1), angleP) rot_img_C061_P000 = rotate_rad(img(lineOffset +0), angleP) rot_img_C062_P001 = rotate_rad(img(lineOffset +1), angleP) rot_img_C063_P002 = rotate_rad(img(lineOffset +2), angleP) rot_img_C064_P003 = rotate_rad(img(lineOffset +3), angleP) rot_img_C065_P004 = rotate_rad(img(lineOffset +4), angleP) rot_img_C066_P005 = rotate_rad(img(lineOffset +5), angleP) rot_img_C067_P006 = rotate_rad(img(lineOffset +6), angleP) rot_img_C068_P007 = rotate_rad(img(lineOffset +7), angleP) rot_img_C069_P008 = rotate_rad(img(lineOffset +8), angleP) rot_img_C070_P009 = rotate_rad(img(lineOffset +9), angleP) rot_img_C071_P010 = rotate_rad(img(lineOffset +10), angleP) rot_img_C072_P011 = rotate_rad(img(lineOffset +11), angleP) rot_img_C073_P012 = rotate_rad(img(lineOffset +12), angleP) rot_img_C074_P013 = rotate_rad(img(lineOffset +13), angleP) rot_img_C075_P014 = rotate_rad(img(lineOffset +14), angleP) rot_img_C076_P015 = rotate_rad(img(lineOffset +15), angleP) rot_img_C077_P016 = rotate_rad(img(lineOffset +16), angleP) rot_img_C078_P017 = rotate_rad(img(lineOffset +17), angleP) rot_img_C079_P018 = rotate_rad(img(lineOffset +18), angleP) rot_linS_img_C000_M061 = rotate_rad(linear_stretch(img(lineOffset -61)), angleP) rot_linS_img_C001_M060 = rotate_rad(linear_stretch(img(lineOffset -60)), angleP) rot_linS_img_C002_M059 = rotate_rad(linear_stretch(img(lineOffset -59)), angleP) rot_linS_img_C003_M058 = rotate_rad(linear_stretch(img(lineOffset -58)), angleP) rot_linS_img_C004_M057 = rotate_rad(linear_stretch(img(lineOffset -57)), angleP) rot_linS_img_C005_M056 = rotate_rad(linear_stretch(img(lineOffset -56)), angleP) rot_linS_img_C006_M055 = rotate_rad(linear_stretch(img(lineOffset -55)), angleP) rot_linS_img_C007_M054 = rotate_rad(linear_stretch(img(lineOffset -54)), angleP) rot_linS_img_C008_M053 = rotate_rad(linear_stretch(img(lineOffset -53)), angleP) rot_linS_img_C009_M052 = rotate_rad(linear_stretch(img(lineOffset -52)), angleP) rot_linS_img_C010_M051 = rotate_rad(linear_stretch(img(lineOffset -51)), angleP) rot_linS_img_C011_M050 = rotate_rad(linear_stretch(img(lineOffset -50)), angleP) rot_linS_img_C012_M049 = rotate_rad(linear_stretch(img(lineOffset -49)), angleP) rot_linS_img_C013_M048 = rotate_rad(linear_stretch(img(lineOffset -48)), angleP) rot_linS_img_C014_M047 = rotate_rad(linear_stretch(img(lineOffset -47)), angleP) rot_linS_img_C015_M046 = rotate_rad(linear_stretch(img(lineOffset -46)), angleP) rot_linS_img_C016_M045 = rotate_rad(linear_stretch(img(lineOffset -45)), angleP) rot_linS_img_C017_M044 = rotate_rad(linear_stretch(img(lineOffset -44)), angleP) rot_linS_img_C018_M043 = rotate_rad(linear_stretch(img(lineOffset -43)), angleP) rot_linS_img_C019_M042 = rotate_rad(linear_stretch(img(lineOffset -42)), angleP) rot_linS_img_C020_M041 = rotate_rad(linear_stretch(img(lineOffset -41)), angleP) rot_linS_img_C021_M040 = rotate_rad(linear_stretch(img(lineOffset -40)), angleP) rot_linS_img_C022_M039 = rotate_rad(linear_stretch(img(lineOffset -39)), angleP) rot_linS_img_C023_M038 = rotate_rad(linear_stretch(img(lineOffset -38)), angleP) rot_linS_img_C024_M037 = rotate_rad(linear_stretch(img(lineOffset -37)), angleP) rot_linS_img_C025_M036 = rotate_rad(linear_stretch(img(lineOffset -36)), angleP) rot_linS_img_C026_M035 = rotate_rad(linear_stretch(img(lineOffset -35)), angleP) rot_linS_img_C027_M034 = rotate_rad(linear_stretch(img(lineOffset -34)), angleP) rot_linS_img_C028_M033 = rotate_rad(linear_stretch(img(lineOffset -33)), angleP) rot_linS_img_C029_M032 = rotate_rad(linear_stretch(img(lineOffset -32)), angleP) rot_linS_img_C030_M031 = rotate_rad(linear_stretch(img(lineOffset -31)), angleP) rot_linS_img_C031_M030 = rotate_rad(linear_stretch(img(lineOffset -30)), angleP) rot_linS_img_C032_M029 = rotate_rad(linear_stretch(img(lineOffset -29)), angleP) rot_linS_img_C033_M028 = rotate_rad(linear_stretch(img(lineOffset -28)), angleP) rot_linS_img_C034_M027 = rotate_rad(linear_stretch(img(lineOffset -27)), angleP) rot_linS_img_C035_M026 = rotate_rad(linear_stretch(img(lineOffset -26)), angleP) rot_linS_img_C036_M025 = rotate_rad(linear_stretch(img(lineOffset -25)), angleP) rot_linS_img_C037_M024 = rotate_rad(linear_stretch(img(lineOffset -24)), angleP) rot_linS_img_C038_M023 = rotate_rad(linear_stretch(img(lineOffset -23)), angleP) rot_linS_img_C039_M022 = rotate_rad(linear_stretch(img(lineOffset -22)), angleP) rot_linS_img_C040_M021 = rotate_rad(linear_stretch(img(lineOffset -21)), angleP) rot_linS_img_C041_M020 = rotate_rad(linear_stretch(img(lineOffset -20)), angleP) rot_linS_img_C042_M019 = rotate_rad(linear_stretch(img(lineOffset -19)), angleP) rot_linS_img_C043_M018 = rotate_rad(linear_stretch(img(lineOffset -18)), angleP) rot_linS_img_C044_M017 = rotate_rad(linear_stretch(img(lineOffset -17)), angleP) rot_linS_img_C045_M016 = rotate_rad(linear_stretch(img(lineOffset -16)), angleP) rot_linS_img_C046_M015 = rotate_rad(linear_stretch(img(lineOffset -15)), angleP) rot_linS_img_C047_M014 = rotate_rad(linear_stretch(img(lineOffset -14)), angleP) rot_linS_img_C048_M013 = rotate_rad(linear_stretch(img(lineOffset -13)), angleP) rot_linS_img_C049_M012 = rotate_rad(linear_stretch(img(lineOffset -12)), angleP) rot_linS_img_C050_M011 = rotate_rad(linear_stretch(img(lineOffset -11)), angleP) rot_linS_img_C051_M010 = rotate_rad(linear_stretch(img(lineOffset -10)), angleP) rot_linS_img_C052_M009 = rotate_rad(linear_stretch(img(lineOffset -9)), angleP) rot_linS_img_C053_M008 = rotate_rad(linear_stretch(img(lineOffset -8)), angleP) rot_linS_img_C054_M007 = rotate_rad(linear_stretch(img(lineOffset -7)), angleP) rot_linS_img_C055_M006 = rotate_rad(linear_stretch(img(lineOffset -6)), angleP) rot_linS_img_C056_M005 = rotate_rad(linear_stretch(img(lineOffset -5)), angleP) rot_linS_img_C057_M004 = rotate_rad(linear_stretch(img(lineOffset -4)), angleP) rot_linS_img_C058_M003 = rotate_rad(linear_stretch(img(lineOffset -3)), angleP) rot_linS_img_C059_M002 = rotate_rad(linear_stretch(img(lineOffset -2)), angleP) rot_linS_img_C060_M001 = rotate_rad(linear_stretch(img(lineOffset -1)), angleP) rot_linS_img_C061_P000 = rotate_rad(linear_stretch(img(lineOffset +0)), angleP) rot_linS_img_C062_P001 = rotate_rad(linear_stretch(img(lineOffset +1)), angleP) rot_linS_img_C063_P002 = rotate_rad(linear_stretch(img(lineOffset +2)), angleP) rot_linS_img_C064_P003 = rotate_rad(linear_stretch(img(lineOffset +3)), angleP) rot_linS_img_C065_P004 = rotate_rad(linear_stretch(img(lineOffset +4)), angleP) rot_linS_img_C066_P005 = rotate_rad(linear_stretch(img(lineOffset +5)), angleP) rot_linS_img_C067_P006 = rotate_rad(linear_stretch(img(lineOffset +6)), angleP) rot_linS_img_C068_P007 = rotate_rad(linear_stretch(img(lineOffset +7)), angleP) rot_linS_img_C069_P008 = rotate_rad(linear_stretch(img(lineOffset +8)), angleP) rot_linS_img_C070_P009 = rotate_rad(linear_stretch(img(lineOffset +9)), angleP) rot_linS_img_C071_P010 = rotate_rad(linear_stretch(img(lineOffset +10)), angleP) rot_linS_img_C072_P011 = rotate_rad(linear_stretch(img(lineOffset +11)), angleP) rot_linS_img_C073_P012 = rotate_rad(linear_stretch(img(lineOffset +12)), angleP) rot_linS_img_C074_P013 = rotate_rad(linear_stretch(img(lineOffset +13)), angleP) rot_linS_img_C075_P014 = rotate_rad(linear_stretch(img(lineOffset +14)), angleP) rot_linS_img_C076_P015 = rotate_rad(linear_stretch(img(lineOffset +15)), angleP) rot_linS_img_C077_P016 = rotate_rad(linear_stretch(img(lineOffset +16)), angleP) rot_linS_img_C078_P017 = rotate_rad(linear_stretch(img(lineOffset +17)), angleP) rot_linS_img_C079_P018 = rotate_rad(linear_stretch(img(lineOffset +18)), angleP)
Sol’Ex
https://www.shelyak.com/solex-starex-a-new-way-to-approach-astronomy/?lang=en
https://solex.astrosurf.com/sol-ex-presentation-en.html
JSol’Ex
https://github.com/melix/astro4j
https://melix.github.io/astro4j/latest/fr/jsolex.html#imagemath
Literature and others
[1] VELOCITY DIFFERENCE OF IONS AND NEUTRALS IN SOLAR PROMINENCES E. Wiehr, G. Stellmacher, H. Balthasar, M. Bianda https://arxiv.org/pdf/2108.13103
[2] the bible https://nvlpubs.nist.gov/nistpubs/Legacy/MONO/nbsmonograph61.pdf
[3] Didier Favre, https://community.spaceweatherlive.com/gallery/image/5296-20241004-09h35-tu-fec-fs60-cbjpg/
Recommendation, not advert
https://altairastro.com/altair-tri-rgb-light-pollution-filter-2-13392-p.asp








