6  Sonnenflecken

Sonnenflecken sind dunkle Stellen auf der Sonnenoberfläche. Sie sind kühler und strahlen weniger sichtbares Licht ab als der Rest der Sonnenoberfläche.

Sonnenflecken bilden das einfachste Maß für die Sonnenaktivität.

Die Häufigkeit der Sonnenflecken unterliegt einer Periodizität von durchschnittlich 11 Jahren.

Ursache der Sonnenflecken sind starke Magnetfelder, welche den Wärmetransport an die Sonnenoberfläche behindern.

6.1 Sonnenfleckenrelativzahl

Die Häufigkeit der Sonnenflecken wird durch die Relativzahl erfasst.

man zählt die Einzelflecken (Zahl \(f\)) und addiert dazu das Zehnfache der Gruppenanzahl (Zahl \(g\)).

Die Sonnenfleckenrelativzahl ist eine Maßzahl der Sonnenaktivität und berechnet sich aus

\[ R = k ( f + 10 g) \]

wobei \(k\) ein vom Beobachter und seinen Instrumenten abhängiger Korrekturfaktor ist.

6.2 Aufzeichnungen der Sonnenfleckenrelativzahl

Zuständig für die Berechnung, Speicherung und Verbreitung der Sonnenfleckenrelativzahl ist das Solar Influences Data analysis Center (SIDC).

Wir wollen nun die aktuellen Daten visualisieren und analysieren. dazu nutzen wir einenDatensatz der Monatsmittelwerte der Sonnenfleckenrelativzahl von 1749 bis heute.

Code
using DataFrames
using CSV
using Plots
theme(:vibrant)
default(frame_style=:box)
df = CSV.read("SN_m_tot_V2.0.csv", delim=";", header=1,  DataFrame)
t = df[:, :FracOfYear]
SN = df[:, :SN]
plot(t, SN, label="")
xlabel!("Jahr")
ylabel!("Sonnenfleckenrelativzahl")

Wir versuchen nun, die offensichtlich vorhandene Periodizität zu berechnen und nutzen dafür die Schnelle Fourietransformation FFT.

Code
using FFTW
using Statistics
S = fft(SN .- mean(SN))
popfirst!(S)
plot(abs.(S), label="")
ylabel!("Amplitudenspektrum")

Code
n = length(S)
up = Int(floor(n/2))
power = abs.(S[1:up, :]).^2
samplinginterval = 1.0 / 12.0
nyquist = 1 / (2 * samplinginterval)
freq = [1:up...] ./ (n / 2) * nyquist
plot(freq, power)
xlabel!("Frequenz in 1/a")
ylabel!("Powerspektrum")

Code
period = 1 ./ freq
i = argmax(power)

plot(period, power, xscale=:log10, label="")
scatter!([period[i]], [power[i]], m=:o, label="")
xlabel!("Periodendauer in a")
ylabel!("Powerspektrum")
title!("Sonnenfleckenzyklus: $(round(period[i], digits=2)) a")