@jjlmoya/utils-science 1.24.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +3 -1
  4. package/src/index.ts +1 -0
  5. package/src/tests/locale_completeness.test.ts +2 -2
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/lorenz-attractor/i18n/es.ts +12 -4
  8. package/src/tool/lorenz-attractor/lorenz-attractor.css +56 -25
  9. package/src/tool/stellar-habitability-zone/bibliography.astro +14 -0
  10. package/src/tool/stellar-habitability-zone/bibliography.ts +12 -0
  11. package/src/tool/stellar-habitability-zone/component.astro +123 -0
  12. package/src/tool/stellar-habitability-zone/dom-updater.ts +94 -0
  13. package/src/tool/stellar-habitability-zone/entry.ts +26 -0
  14. package/src/tool/stellar-habitability-zone/i18n/de.ts +189 -0
  15. package/src/tool/stellar-habitability-zone/i18n/en.ts +189 -0
  16. package/src/tool/stellar-habitability-zone/i18n/es.ts +189 -0
  17. package/src/tool/stellar-habitability-zone/i18n/fr.ts +189 -0
  18. package/src/tool/stellar-habitability-zone/i18n/id.ts +189 -0
  19. package/src/tool/stellar-habitability-zone/i18n/it.ts +189 -0
  20. package/src/tool/stellar-habitability-zone/i18n/ja.ts +189 -0
  21. package/src/tool/stellar-habitability-zone/i18n/ko.ts +189 -0
  22. package/src/tool/stellar-habitability-zone/i18n/nl.ts +189 -0
  23. package/src/tool/stellar-habitability-zone/i18n/pl.ts +189 -0
  24. package/src/tool/stellar-habitability-zone/i18n/pt.ts +189 -0
  25. package/src/tool/stellar-habitability-zone/i18n/ru.ts +189 -0
  26. package/src/tool/stellar-habitability-zone/i18n/sv.ts +189 -0
  27. package/src/tool/stellar-habitability-zone/i18n/tr.ts +189 -0
  28. package/src/tool/stellar-habitability-zone/i18n/zh.ts +189 -0
  29. package/src/tool/stellar-habitability-zone/index.ts +11 -0
  30. package/src/tool/stellar-habitability-zone/interaction.ts +45 -0
  31. package/src/tool/stellar-habitability-zone/logic/StellarHabitabilityEngine.ts +158 -0
  32. package/src/tool/stellar-habitability-zone/renderer.ts +241 -0
  33. package/src/tool/stellar-habitability-zone/script.ts +273 -0
  34. package/src/tool/stellar-habitability-zone/seo.astro +15 -0
  35. package/src/tool/stellar-habitability-zone/stellar-habitability-zone.css +375 -0
  36. package/src/tools.ts +2 -0
@@ -0,0 +1,189 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'habitable-zon-simulator';
5
+ const description = 'Beräkna och visualisera den habitabla zonen (Guldlockszonen) runt olika typer av stjärnor med hjälp av stjärn- och planetkonfigurationer.';
6
+ const title = 'Stellär Habitable Zone Simulator: Hitta Guldlockszoner';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Välj en stjärnförinställning',
11
+ text: 'Välj en stjärntyp från blå jättar till röda dvärgar för att ladda fysiska standardegenskaper som massa, luminositet och temperatur.',
12
+ },
13
+ {
14
+ name: 'Justera planetära parametrar',
15
+ text: 'Ändra planetens omloppsavstånd (halva storaxeln), albedo och atmosfärens växthuseffekt med de interaktiva skjutreglagen.',
16
+ },
17
+ {
18
+ name: 'Analysera omloppsbana och habitabilitet',
19
+ text: 'Observera planetens omloppsbana runt stjärnan i realtid. Kontrollera om jämvikts- och yttemperaturerna tillåter flytande vatten.',
20
+ },
21
+ ];
22
+
23
+ const faq = [
24
+ {
25
+ question: 'Vad är den cirkumstellära habitabla zonen?',
26
+ answer: 'Den cirkumstellära habitabla zonen (ofta kallad Guldlockszonen) är regionen runt en stjärna där planetens yttemperatur är tillräcklig för att upprätthålla flytande vatten under ett givet atmosfärstryck. Den definieras av konservativa och optimistiska gränser baserat på stjärnans luminositet och effektiva temperatur.',
27
+ },
28
+ {
29
+ question: 'Hur påverkar stjärnans luminositet den habitabla zonen?',
30
+ answer: 'Stjärnans luminositet bestämmer stjärnans totala energiproduktion. Hetare och mer massiva stjärnor (som O-, B- eller A-stjärnor) är extremt ljusstarka, vilket placerar deras habitabla zoner mycket längre bort. Svalare, mindre massiva stjärnor (som K- eller M-typ röda dvärgar) har låg luminositet, vilket flyttar deras habitabla zoner extremt nära stjärnan.',
31
+ },
32
+ {
33
+ question: 'Vad är skillnaden mellan jämvikts- och yttemperatur?',
34
+ answer: 'Jämviktstemperaturen är den teoretiska temperatur en planet skulle ha om man antar att den fungerar som en svartkropp som absorberar stjärnstrålning och strålar tillbaka den till rymden. Yttemperaturen inkluderar växthuseffekten från planetens atmosfär, som stänger in värme och värmer upp planeten ytterligare.',
35
+ },
36
+ {
37
+ question: 'Varför är albedo viktigt för planetär habitabilitet?',
38
+ answer: 'Albedo är måttet på planetens ytas reflektionsförmåga. Ett högre albedo (nära 1.0) innebär att planeten reflekterar mer av det infallande stjärnljuset, vilket kyler ner den. Ett lägre albedo betyder att mer strålning absorberas, vilket höjer dess totala temperatur.',
39
+ },
40
+ ];
41
+
42
+ export const content: ToolLocaleContent = {
43
+ slug,
44
+ title,
45
+ description,
46
+ ui: {
47
+ title: 'Stellär Habitable Zone Simulator',
48
+ starPresetsLabel: 'Spektralförinställningar',
49
+ customStarHeader: 'Stellära Parametrar',
50
+ starTemperature: 'Effektiv Temperatur (K)',
51
+ starLuminosity: 'Luminositet (L/L⊙)',
52
+ starMass: 'Massa (M/M⊙)',
53
+ starRadius: 'Radie (R/R⊙)',
54
+ planetHeader: 'Planetära Parametrar',
55
+ planetDistance: 'Omloppsavstånd (AE)',
56
+ planetAlbedo: 'Bondalbedo',
57
+ greenhouseDelta: 'Växthusuppvärmning (K)',
58
+ resultsHeader: 'Simuleringsresultat',
59
+ stellarFluxResult: 'Mottagen Stellär Flux',
60
+ eqTempResult: 'Jämviktstemperatur',
61
+ surfTempResult: 'Beräknad Yttemperatur',
62
+ orbitPeriodResult: 'Omloppstid',
63
+ orbitVelocityResult: 'Banhastighet',
64
+ hzLimitsHeader: 'Gränser för habitabel zon',
65
+ innerLimit: 'Konservativ Inre Gräns',
66
+ outerLimit: 'Konservativ Yttre Gräns',
67
+ optInnerLimit: 'Optimistisk Inre Gräns',
68
+ optOuterLimit: 'Optimistisk Yttre Gräns',
69
+ orbitCanvasTitle: 'Interaktiv Banvisualisering',
70
+ statusLabel: 'Habitabilitetsstatus',
71
+ statusTooHot: 'FÖR VARMT (Vatten förångas)',
72
+ statusHabitable: 'HABITABEL (Flytande vatten möjligt)',
73
+ statusTooCold: 'FÖR KALLT (Vatten fryser)',
74
+ statusExplanation: 'Baserat på konservativa gränser ligger denna planet inom den angivna habitabla zonens status.',
75
+ unitsLabel: 'Enhetssystem',
76
+ unitsScientific: 'Vetenskaplig',
77
+ unitsImperial: 'Imperial',
78
+ },
79
+ seo: [
80
+ {
81
+ type: 'title',
82
+ text: 'ASTROBIOLOGI: Fysiken bakom stellära habitabla zoner',
83
+ level: 2,
84
+ },
85
+ {
86
+ type: 'paragraph',
87
+ html: 'Sökandet efter liv utanför jorden börjar med att förstå de fysikaliska förhållanden som krävs för flytande vatten. Astrobiologer använder matematiska modeller för att kartlägga gränserna för habitabla zoner runt olika stjärntyper. Denna simulator använder Kopparapu et al. (2013) modeller för att uppskatta energiflödet som planeter tar emot och avgöra om de ligger i Guldlockszonen. Den habitabla zonen definieras som den region där en planet med jordmassa och en CO2-H2O-N2-atmosfär kan upprätthålla flytande vatten på sin yta.',
88
+ },
89
+ {
90
+ type: 'title',
91
+ text: 'Matematiska Formler och Atmosfärisk Fysik',
92
+ level: 3,
93
+ },
94
+ {
95
+ type: 'paragraph',
96
+ html: 'Gränserna för den habitabla zonen bestäms genom att beräkna det effektiva stellära flödet (Seff) som krävs för att utlösa skenande eller maximala växthusförhållanden. Ekvationen för Seff beror på stjärnans effektiva temperatur (Teff):<br><br>Seff = SeffSun + a * T* + b * T*^2 + c * T*^3 + d * T*^4<br><br>där T* = Teff - 5780 K, och koefficienterna (a, b, c, d) är empiriskt härledda från 1D strålnings-konvektiva klimatmodeller. När Seff har beräknats ges omloppsavståndet d i astronomiska enheter (AE) av:<br><br>d = sqrt(L / Seff)<br><br>där L är stjärnans luminositet i förhållande till solen. Planetens jämviktstemperatur (Teq) beräknas under antagandet av en sfärisk svartkropp i termisk jämvikt:<br><br>Teq = Teff * sqrt(R* / 2d) * (1 - A)^0.25 = 278.5 * (S * (1 - A))^0.25<br><br>där R* är stjärnradien, A är planetens bondalbedo och S är det mottagna stellära flödet i enheter av jordens solkonstant.',
97
+ },
98
+ {
99
+ type: 'title',
100
+ text: 'Spektralklassificering och Habitabla Gränser',
101
+ level: 3,
102
+ },
103
+ {
104
+ type: 'paragraph',
105
+ html: 'Stellära egenskaper varierar kraftigt mellan spektralklasser. Här är en sammanfattning av typiska egenskaper och gränser för den habitabla zonen (HZ):',
106
+ },
107
+ {
108
+ type: 'table',
109
+ headers: [
110
+ 'Spektralklass',
111
+ 'Temperatur (K)',
112
+ 'Luminositet (L/L⊙)',
113
+ 'HZ Inre Gräns (AE)',
114
+ 'HZ Yttre Gräns (AE)',
115
+ ],
116
+ rows: [
117
+ ['Typ O Jätte', '40 000', '100 000', '300.0', '530.0'],
118
+ ['Typ B Jätte', '20 000', '1 000', '30.1', '53.2'],
119
+ ['Typ A Sirius', '8 500', '20.0', '4.2', '7.4'],
120
+ ['Typ F Procyon', '6 500', '2.5', '1.5', '2.6'],
121
+ ['Typ G Solen', '5 778', '1.0', '0.95', '1.67'],
122
+ ['Typ K Dvärg', '4 500', '0.15', '0.37', '0.65'],
123
+ ['Typ M Dvärg', '3 200', '0.01', '0.09', '0.17'],
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Spektralklassens inverkan på habitabilitet',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Varje spektralklass skapar en unik strålnings- och gravitationsmiljö för sina planeter:<br><br><strong>O- och B-typ stjärnor:</strong> Dessa massiva blå stjärnor avger intensiv ultraviolett (UV) strålning och har extremt korta livslängder (tiotals miljoner år). Flytande vatten skulle kunna existera på deras yttre världar, men livet skulle ha otillräcklig tid att utvecklas innan stjärnan exploderar i en supernova.<br><br><strong>A- och F-typ stjärnor:</strong> Dessa stjärnor är ljusstarkare och hetare än solen. Deras habitabla zoner är breda och ligger långt ut, vilket minimerar effekterna av bunden rotation. Höga nivåer av nära UV-strålning kan dock orsaka allvarliga skador på organiska molekyler utan ett skyddande ozonskikt.<br><br><strong>G-typ stjärnor (solliknande):</strong> Genom att tillhandahålla en stabil ljusstyrka under miljarder år utgör dessa stjärnor de primära målen för sökandet efter liv. Deras strålning matchar standardkraven för biokemi.<br><br><strong>K-typ stjärnor (orange dvärgar):</strong> Anses av många astrobiologer vara de "superhabitabla" värdarna. Orange dvärgar lever i tiotals miljarder år, avger mindre skadlig UV än G-typ stjärnor och är inte lika benägna till de allvarliga utbrott som förknippas med yngre M-dvärgar.<br><br><strong>M-typ stjärnor (röda dvärgar):</strong> De vanligaste stjärnorna i galaxen. Eftersom deras habitabla zoner ligger extremt nära (vanligtvis < 0,2 AE), är planeter benägna att drabbas av bunden rotation (ena sidan är permanent vänd mot stjärnan). Dessutom producerar aktiva M-dvärgar högenergetiska stjärnvindar och utbrott som kan slita bort planetära atmosfärer.',
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Kritiska Faktorer i Planetära Habitabla Miljöer',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: 'En planets fysiska miljö formas av flera variabler utöver bara avståndet från dess värdstjärna:',
143
+ },
144
+ {
145
+ type: 'list',
146
+ items: [
147
+ '<strong>Atmosfärisk Växthuseffekt:</strong> Naturliga växthusgaser höjer yttemperaturen över svartkroppens jämviktsnivå. Terrestra planeter kräver kol-silikatcykler för att stabilisera atmosfärisk CO2 och reglera temperaturer över geologiska tidsskalor.',
148
+ '<strong>Planetär Bondalbedo:</strong> Hög reflektionsförmåga (på grund av moln, inlandsisar eller sulfataerosoler) kyler planeten, medan lågt albedo (mörka jordar, vattenområden) fångar upp mer stjärnenergi.',
149
+ '<strong>Magnetfält:</strong> En stark planetär magnetosfär skyddar atmosfären från stjärnvindar, vilket förhindrar icke-termisk atmosfärisk flykt och vattenförlust.',
150
+ '<strong>Köldfällans Dynamik:</strong> Köldfällans effekt i den övre atmosfären förhindrar att vattenånga når höga höjder där stjärnans UV-strålning skulle dissociera den till väte och syre.',
151
+ ],
152
+ },
153
+ ],
154
+ faq,
155
+ bibliography,
156
+ howTo,
157
+ schemas: [
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'SoftwareApplication',
161
+ name: title,
162
+ description: description,
163
+ applicationCategory: 'ScientificApplication',
164
+ operatingSystem: 'Any',
165
+ },
166
+ {
167
+ '@context': 'https://schema.org',
168
+ '@type': 'FAQPage',
169
+ mainEntity: faq.map((item) => ({
170
+ '@type': 'Question',
171
+ name: item.question,
172
+ acceptedAnswer: {
173
+ '@type': 'Answer',
174
+ text: item.answer,
175
+ },
176
+ })),
177
+ },
178
+ {
179
+ '@context': 'https://schema.org',
180
+ '@type': 'HowTo',
181
+ name: title,
182
+ step: howTo.map((step) => ({
183
+ '@type': 'HowToStep',
184
+ name: step.name,
185
+ text: step.text,
186
+ })),
187
+ },
188
+ ],
189
+ };
@@ -0,0 +1,189 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'yasanabilir-bolge-simulatoru';
5
+ const description = 'Yıldız ve gezegen konfigürasyonlarını kullanarak farklı yıldız türlerinin etrafındaki yaşanabilir bölgeleri (Goldilocks bölgesi) hesaplayın ve görselleştirin.';
6
+ const title = 'Yıldız Yaşanabilir Bölge Simülatörü: Goldilocks Bölgelerini Bulun';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Bir Yıldız Ön Ayarı Seçin',
11
+ text: 'Mavi devlerden kırmızı cücelere kadar standart kütle, parlaklık ve sıcaklık gibi fiziksel özellikleri yüklemek için bir yıldız türü seçin.',
12
+ },
13
+ {
14
+ name: 'Gezegen Parametrelerini Ayarlayın',
15
+ text: 'Gezegenin yörünge uzaklığını (yarı büyük eksen), albedo değerini ve atmosferik sera ısınma etkisini etkileşimli sürgülerle değiştirin.',
16
+ },
17
+ {
18
+ name: 'Yörüngeyi ve Yaşanabilirliği Analiz Edin',
19
+ text: 'Gezegenin yıldız etrafındaki yörüngesini gerçek zamanlı gözlemleyin. Denge ve yüzey sıcaklıklarının sıvı suyu destekleyip desteklemediğini kontrol edin.',
20
+ },
21
+ ];
22
+
23
+ const faq = [
24
+ {
25
+ question: 'Yıldız çevresi yaşanabilir bölge nedir?',
26
+ answer: 'Yıldız çevresi yaşanabilir bölge (genellikle Goldilocks bölgesi olarak adlandırılır), belirli bir atmosfer basıncı altında bir gezegenin yüzey sıcaklığının sıvı suyu korumaya yettiği yıldız etrafındaki bölgedir. Yıldızın parlaklığı ve etkin sıcaklığına bağlı olarak muhafazakar ve iyimser sınırlarla tanımlanır.',
27
+ },
28
+ {
29
+ question: 'Yıldız parlaklığı yaşanabilir bölgeyi nasıl etkiler?',
30
+ answer: 'Yıldız parlaklığı, yıldızın toplam enerji çıkışını belirler. Daha sıcak ve daha büyük kütleli yıldızlar (O, B veya A tipi yıldızlar gibi) son derece parlaktır ve yaşanabilir bölgelerini çok daha uzağa yerleştirir. Daha soğuk, daha az kütleli yıldızlar (K veya M tipi kırmızı cüceler gibi) düşük parlaklığa sahiptir ve yaşanabilir bölgelerini yıldıza son derece yakınlaştırır.',
31
+ },
32
+ {
33
+ question: 'Denge sıcaklığı ile yüzey sıcaklığı arasındaki fark nedir?',
34
+ answer: 'Denge sıcaklığı, bir gezegenin yıldız radyasyonunu emen ve uzaya geri yayan küresel bir kara cisim gibi davrandığı varsayımıyla sahip olacağı teorik sıcaklıktır. Yüzey sıcaklığı ise ısıyı hapseden ve gezegeni daha fazla ısıtan atmosferik sera etkisini içerir.',
35
+ },
36
+ {
37
+ question: 'Albedo değeri gezegen yaşanabilirliği için neden önemlidir?',
38
+ answer: 'Albedo, gezegenin yüzeyinin yansıtıcılık ölçüsüdür. Daha yüksek bir albedo (1.0\'a yakın), gezegenin gelen yıldız ışığını daha fazla yansıttığı anlamına gelir ve onu soğutur. Daha düşük bir albedo, daha fazla radyasyonun emildiği ve genel sıcaklığın yükseldiği anlamına gelir.',
39
+ },
40
+ ];
41
+
42
+ export const content: ToolLocaleContent = {
43
+ slug,
44
+ title,
45
+ description,
46
+ ui: {
47
+ title: 'Yıldız Yaşanabilir Bölge Simülatörü',
48
+ starPresetsLabel: 'Spektral Ön Ayarlar',
49
+ customStarHeader: 'Yıldız Parametreleri',
50
+ starTemperature: 'Etkin Sıcaklık (K)',
51
+ starLuminosity: 'Parlaklık (L/L⊙)',
52
+ starMass: 'Kütle (M/M⊙)',
53
+ starRadius: 'Yarıçap (R/R⊙)',
54
+ planetHeader: 'Gezegen Parametreleri',
55
+ planetDistance: 'Yörünge Uzaklığı (AB)',
56
+ planetAlbedo: 'Bond Albedosu',
57
+ greenhouseDelta: 'Sera Isınması (K)',
58
+ resultsHeader: 'Simülasyon Sonuçları',
59
+ stellarFluxResult: 'Alınan Yıldız Akısı',
60
+ eqTempResult: 'Denge Sıcaklığı',
61
+ surfTempResult: 'Tahmini Yüzey Sıcaklığı',
62
+ orbitPeriodResult: 'Yörünge Süresi',
63
+ orbitVelocityResult: 'Yörünge Hızı',
64
+ hzLimitsHeader: 'Yaşanabilir Bölge Sınırları',
65
+ innerLimit: 'Muhafazakar İç Sınır',
66
+ outerLimit: 'Muhafazakar Dış Sınır',
67
+ optInnerLimit: 'İyimser İç Sınır',
68
+ optOuterLimit: 'İyimser Dış Sınır',
69
+ orbitCanvasTitle: 'Etkileşimli Yörünge Görselleştirici',
70
+ statusLabel: 'Yaşanabilirlik Durumu',
71
+ statusTooHot: 'ÇOK SICAK (Su buharlaşır)',
72
+ statusHabitable: 'YAŞANABİLİR (Sıvı su mümkün)',
73
+ statusTooCold: 'ÇOK SOĞUK (Su donar)',
74
+ statusExplanation: 'Muhafazakar sınırlara dayanarak, bu gezegen belirtilen yaşanabilir bölge durumunun içinde yer almaktadır.',
75
+ unitsLabel: 'Birim Sistemi',
76
+ unitsScientific: 'Bilimsel',
77
+ unitsImperial: 'İngiliz (Imperial)',
78
+ },
79
+ seo: [
80
+ {
81
+ type: 'title',
82
+ text: 'ASTROBİYOLOJİ: Yıldız Yaşanabilir Bölgelerinin Fiziği',
83
+ level: 2,
84
+ },
85
+ {
86
+ type: 'paragraph',
87
+ html: 'Dünya dışındaki yaşam arayışı, sıvı su için gerekli fiziksel koşulların anlaşılmasıyla başlar. Astrobiyologlar, farklı yıldız türlerinin etrafındaki yaşanabilir bölgelerin sınırlarını haritalamak için matematiksel modeller kullanırlar. Bu simülatör, gezegenlerin aldığı enerji akısını tahmin etmek ve Goldilocks bölgesinde olup olmadıklarını belirlemek için Kopparapu ve ark. (2013) modellerini kullanır. Yaşanabilir bölge, CO2-H2O-N2 atmosferine sahip karasal kütleli bir gezegenin yüzeyinde sıvı suyu koruyabildiği bölge olarak tanımlanır.',
88
+ },
89
+ {
90
+ type: 'title',
91
+ text: 'Matematiksel Formüller ve Atmosfer Fiziği',
92
+ level: 3,
93
+ },
94
+ {
95
+ type: 'paragraph',
96
+ html: 'Yaşanabilir bölgenin sınırları, kontrolsüz veya maksimum sera koşullarını tetiklemek için gereken etkin yıldız akısı (Seff) hesaplanarak belirlenir. Seff denklemi yıldızın etkin sıcaklığına (Teff) bağlıdır:<br><br>Seff = SeffSun + a * T* + b * T*^2 + c * T*^3 + d * T*^4<br><br>burada T* = Teff - 5780 K\'dir ve katsayılar (a, b, c, d) 1D radyatif-konvektif iklim modellerinden deneysel olarak türetilmiştir. Seff hesaplandıktan sonra, astronomik birim (AB) cinsinden yörünge mesafesi d şu şekilde verilir:<br><br>d = sqrt(L / Seff)<br><br>burada L, yıldızın Güneş\'e göre parlaklığıdır. Gezegenin denge sıcaklığı (Teq), ısıl dengede küresel bir kara cisim olduğu varsayılarak hesaplanır:<br><br>Teq = Teff * sqrt(R* / 2d) * (1 - A)^0.25 = 278.5 * (S * (1 - A))^0.25<br><br>burada R* yıldız yarıçapı, A gezegenin Bond albedosu ve S ise Dünya\'nın güneş sabiti birimleri cinsinden alınan yıldız akısıdır.',
97
+ },
98
+ {
99
+ type: 'title',
100
+ text: 'Spektral Sınıflandırma ve Yaşanabilir Sınırlar',
101
+ level: 3,
102
+ },
103
+ {
104
+ type: 'paragraph',
105
+ html: 'Yıldız özellikleri, spektral tipler arasında büyük ölçüde değişir. İşte tipik özelliklerin ve yaşanabilir bölge (YB) sınırlarının bir özeti:',
106
+ },
107
+ {
108
+ type: 'table',
109
+ headers: [
110
+ 'Spektral Sınıf',
111
+ 'Sıcaklık (K)',
112
+ 'Parlaklık (L/L⊙)',
113
+ 'YB İç Sınırı (AB)',
114
+ 'YB Dış Sınırı (AB)',
115
+ ],
116
+ rows: [
117
+ ['O-Tipi Dev', '40.000', '100.000', '300.0', '530.0'],
118
+ ['B-Tipi Dev', '20.000', '1.000', '30.1', '53.2'],
119
+ ['A-Tipi Sirius', '8.500', '20.0', '4.2', '7.4'],
120
+ ['F-Tipi Procyon', '6.500', '2.5', '1.5', '2.6'],
121
+ ['G-Tipi Güneş', '5.778', '1.0', '0.95', '1.67'],
122
+ ['K-Tipi Cüce', '4.500', '0.15', '0.37', '0.65'],
123
+ ['M-Tipi Cüce', '3.200', '0.01', '0.09', '0.17'],
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Spektral Sınıfların Yaşanabilirliğe Etkisi',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Her spektral sınıf, gezegenleri için benzersiz bir radyasyon ve kütleçekim ortamı yaratır:<br><br><strong>O ve B Tipi Yıldızlar:</strong> Bu devasa mavi yıldızlar yoğun ultraviyole (UV) radyasyon yayarlar ve son derece kısa ömürlüdürler (on milyonlarca yıl). Dış dünyalarında sıvı su bulunabilir, ancak yıldız süpernova patlaması geçirmeden önce yaşamın gelişmesi için yetersiz zamana sahip olacaktır.<br><br><strong>A ve F Tipi Yıldızlar:</strong> Bu yıldızlar Güneş\'ten daha parlak ve sıcaktır. Yaşanabilir bölgeleri geniş ve uzaktadır, bu da gelgit kilitlenmesi etkilerini en aza indirir. Ancak, yüksek düzeyde yakın UV radyasyonu, koruyucu bir ozon tabakası olmadığında organik moleküllere ciddi şekilde zarar verebilir.<br><br><strong>G Tipi Yıldızlar (Güneş benzeri):</strong> Milyarlarca yıl boyunca kararlı bir ışık akısı sağlayan bu yıldızlar, yaşam aramalarının birincil hedefleridir. Radyasyon çıkışları standart biyokimya gereksinimleriyle eşleşir.<br><br><strong>K Tipi Yıldızlar (Turuncu Cüceler):</strong> Birçok astrobiyolog tarafından "süper yaşanabilir" konakçılar olarak kabul edilir. Turuncu cüceler onlarca milyar yıl yaşar, G tipi yıldızlardan daha az zararlı UV yayarlar ve genç M cüceleriyle ilişkili şiddetli parlamalara o kadar eğilimli değillerdir.<br><br><strong>M Tipi Yıldızlar (Kırmızı Cüceler):</strong> Galaksideki en yaygın yıldızlardır. Yaşanabilir bölgeleri son derece yakın olduğu için (tipik olarak < 0.2 AB), gezegenler gelgit kilitlenmesine yatkındır (bir tarafı kalıcı olarak yıldıza bakar). Ek olarak, aktif M cüceleri gezegen atmosferlerini soyabilecek yüksek enerjili yıldız rüzgarları ve parlamalar üretir.',
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Gezegen Yaşanabilir Ortamlarında Kritik Faktörler',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: 'Bir gezegenin fiziksel çevresi, yalnızca ana yıldızına olan uzaklığının ötesinde birden fazla değişken tarafından şekillendirilir:',
143
+ },
144
+ {
145
+ type: 'list',
146
+ items: [
147
+ '<strong>Atmosferik Sera Etkisi:</strong> Doğal sera gazları, yüzey sıcaklığını kara cisim denge seviyesinin üzerine çıkarır. Karasal gezegenler, atmosferik CO2\'yi stabilize etmek ve jeolojik zaman ölçeklerinde sıcaklıkları düzenlemek için karbonat-silikat döngülerine ihtiyaç duyar.',
148
+ '<strong>Gezegen Bond Albedosu:</strong> Bulutlar, buz örtüleri veya sülfat aerosolleri nedeniyle yüksek yansıtıcılık gezegeni soğuturken, düşük yansıtıcılık (koyu topraklar, su kütleleri) daha fazla yıldız enerjisi hapseder.',
149
+ '<strong>Manyetik Alanlar:</strong> Güçlü bir gezegen manyetosferi, atmosferi güneş ve yıldız rüzgarlarından koruyarak termal olmayan atmosferik kaçışı ve su kaybını önler.',
150
+ '<strong>Soğuk Tuzak Dinamikleri:</strong> Üst atmosferdeki soğuk tuzak etkisi, su buharının yıldız UV radyasyonunun onu hidrojen ve oksijene ayrıştıracağı yüksek irtifalara ulaşmasını engeller.',
151
+ ],
152
+ },
153
+ ],
154
+ faq,
155
+ bibliography,
156
+ howTo,
157
+ schemas: [
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'SoftwareApplication',
161
+ name: title,
162
+ description: description,
163
+ applicationCategory: 'ScientificApplication',
164
+ operatingSystem: 'Any',
165
+ },
166
+ {
167
+ '@context': 'https://schema.org',
168
+ '@type': 'FAQPage',
169
+ mainEntity: faq.map((item) => ({
170
+ '@type': 'Question',
171
+ name: item.question,
172
+ acceptedAnswer: {
173
+ '@type': 'Answer',
174
+ text: item.answer,
175
+ },
176
+ })),
177
+ },
178
+ {
179
+ '@context': 'https://schema.org',
180
+ '@type': 'HowTo',
181
+ name: title,
182
+ step: howTo.map((step) => ({
183
+ '@type': 'HowToStep',
184
+ name: step.name,
185
+ text: step.text,
186
+ })),
187
+ },
188
+ ],
189
+ };
@@ -0,0 +1,189 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'stellar-habitability-zone';
5
+ const description = '使用恒星和行星配置计算并可视化不同类型恒星周围的宜居带(黄金带)。';
6
+ const title = '恒星宜居带模拟器:寻找黄金带';
7
+
8
+ const howTo = [
9
+ {
10
+ name: '选择恒星预设',
11
+ text: '从蓝巨星到红矮星,选择恒星类型以加载标准物理属性,如质量、光度和温度。',
12
+ },
13
+ {
14
+ name: '调整行星参数',
15
+ text: '使用交互式滑块修改行星的轨道距离(半长轴)、反照率和大气温室效应升温。',
16
+ },
17
+ {
18
+ name: '分析轨道与宜居性',
19
+ text: '实时观察行星绕恒星运行。检查平衡温度与表面温度是否支持液态水。',
20
+ },
21
+ ];
22
+
23
+ const faq = [
24
+ {
25
+ question: '什么是恒星宜居带?',
26
+ answer: '恒星宜居带(通常称为黄金带)是指恒星周围的一个区域,在该区域内,行星表面温度足以在给定大气压下维持液态水。它基于恒星光度和有效温度,由保守边界和乐观边界共同定义。',
27
+ },
28
+ {
29
+ question: '恒星光度如何影响宜居带?',
30
+ answer: '恒星光度决定了恒星的总能量输出。更热、更大质量的恒星(如O型、B型或A型星)极其明亮,使其宜居带位于更远的地方。更冷、质量更小的恒星(如K型或M型红矮星)光度较低,使其宜居带非常靠近恒星。',
31
+ },
32
+ {
33
+ question: '平衡温度和表面温度有什么区别?',
34
+ answer: '平衡温度是假设行星表现为吸收恒星辐射并将其重新辐射回太空的黑体时的理论温度。表面温度则包括了行星大气的温室效应,这种效应会捕获热量并进一步加热行星。',
35
+ },
36
+ {
37
+ question: '为什么反照率对行星宜居性很重要?',
38
+ answer: '反照率是行星表面反射率的度量。较高的反照率(接近1.0)意味着行星反射更多入射的恒星光线,从而冷却。较低的反照率意味着吸收更多辐射,从而提高整体温度。',
39
+ },
40
+ ];
41
+
42
+ export const content: ToolLocaleContent = {
43
+ slug,
44
+ title,
45
+ description,
46
+ ui: {
47
+ title: '恒星宜居带模拟器',
48
+ starPresetsLabel: '光谱预设',
49
+ customStarHeader: '恒星参数',
50
+ starTemperature: '有效温度 (K)',
51
+ starLuminosity: '光度 (L/L⊙)',
52
+ starMass: '质量 (M/M⊙)',
53
+ starRadius: '半径 (R/R⊙)',
54
+ planetHeader: '行星参数',
55
+ planetDistance: '轨道距离 (AU)',
56
+ planetAlbedo: '邦德反照率',
57
+ greenhouseDelta: '温室效应升温 (K)',
58
+ resultsHeader: '模拟结果',
59
+ stellarFluxResult: '接收到的恒星通量',
60
+ eqTempResult: '平衡温度',
61
+ surfTempResult: '估计表面温度',
62
+ orbitPeriodResult: '轨道周期',
63
+ orbitVelocityResult: '轨道速度',
64
+ hzLimitsHeader: '宜居带边界',
65
+ innerLimit: '保守内边界',
66
+ outerLimit: '保守外边界',
67
+ optInnerLimit: '乐观内边界',
68
+ optOuterLimit: '乐观外边界',
69
+ orbitCanvasTitle: '交互式轨道可视化器',
70
+ statusLabel: '宜居状态',
71
+ statusTooHot: '太热(水蒸发)',
72
+ statusHabitable: '宜居(可能存在液态水)',
73
+ statusTooCold: '太冷(水结冰)',
74
+ statusExplanation: '基于保守边界,该行星位于指定的宜居带状态内。',
75
+ unitsLabel: '单位制',
76
+ unitsScientific: '科学单位',
77
+ unitsImperial: '英制单位',
78
+ },
79
+ seo: [
80
+ {
81
+ type: 'title',
82
+ text: '天体生物学:恒星宜居带的物理学',
83
+ level: 2,
84
+ },
85
+ {
86
+ type: 'paragraph',
87
+ html: '寻找地球以外的生命始于理解液态水所需的物理条件。天体生物学家使用数学模型来绘制不同类型恒星周围宜居带的边界。该模拟器使用Kopparapu等人(2013)的模型来估计行星接收到的能量通量,并判断它们是否位于黄金带内。宜居带定义为具有CO2-H2O-N2大气的类地行星能够在其表面维持液态水的区域。',
88
+ },
89
+ {
90
+ type: 'title',
91
+ text: '数学公式与大气物理学',
92
+ level: 3,
93
+ },
94
+ {
95
+ type: 'paragraph',
96
+ html: '宜居带的边界通过计算引发失控温室或最大温室条件所需的有效恒星通量(Seff)来确定。Seff的方程取决于恒星的有效温度(Teff):<br><br>Seff = SeffSun + a * T* + b * T*^2 + c * T*^3 + d * T*^4<br><br>其中T* = Teff - 5780 K,系数(a, b, c, d)由一维辐射对流气候模型经验推导得出。计算出Seff后,以天文单位(AU)为单位的轨道距离d由下式给出:<br><br>d = sqrt(L / Seff)<br><br>其中L是恒星相对于太阳的光度。行星的平衡温度(Teq)假设为处于热平衡的球形黑体进行计算:<br><br>Teq = Teff * sqrt(R* / 2d) * (1 - A)^0.25 = 278.5 * (S * (1 - A))^0.25<br><br>其中R*是恒星半径,A是行星邦德反照率,S是以地球太阳常数单位接收到的恒星通量。',
97
+ },
98
+ {
99
+ type: 'title',
100
+ text: '光谱分类与宜居边界',
101
+ level: 3,
102
+ },
103
+ {
104
+ type: 'paragraph',
105
+ html: '恒星特征在不同光谱类型之间差异很大。以下是典型特性和HZ边界的总结:',
106
+ },
107
+ {
108
+ type: 'table',
109
+ headers: [
110
+ '光谱类型',
111
+ '温度 (K)',
112
+ '光度 (L/L⊙)',
113
+ 'HZ内边界 (AU)',
114
+ 'HZ外边界 (AU)',
115
+ ],
116
+ rows: [
117
+ ['O型巨星', '40,000', '100,000', '300.0', '530.0'],
118
+ ['B型巨星', '20,000', '1,000', '30.1', '53.2'],
119
+ ['A型(天狼星)', '8,500', '20.0', '4.2', '7.4'],
120
+ ['F型(南河三)', '6,500', '2.5', '1.5', '2.6'],
121
+ ['G型(太阳)', '5,778', '1.0', '0.95', '1.67'],
122
+ ['K型矮星', '4,500', '0.15', '0.37', '0.65'],
123
+ ['M型矮星', '3,200', '0.01', '0.09', '0.17'],
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: '光谱类型对宜居性的影响',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: '每个光谱类型都为其行星创造了独特的辐射和引力环境:<br><br><strong>O型和B型星:</strong>这些大质量的蓝色恒星发出强烈的紫外线辐射,寿命极短(数千万年)。液态水可能存在于它们的外部世界,但在恒星发生超新星爆发之前,生命没有足够的时间进化。<br><br><strong>A型和F型星:</strong>这些恒星比太阳更亮、更热。它们的宜居带宽阔且遥远,最大限度地减少了潮汐锁定的影响。然而,如果没有保护性臭氧层,高强度的近紫外辐射会对有机分子造成严重损害。<br><br><strong>G型星(类太阳):</strong>提供数十亿年的稳定光通量,这些恒星是生命搜索的主要目标。它们的辐射输出符合标准生物化学的要求。<br><br><strong>K型星(橙矮星):</strong>被许多天体生物学家认为是"超级宜居"的宿主,橙矮星的寿命长达数百亿年,发出的有害紫外线比G型星少,也不像年轻的M型矮星那样容易产生强烈的耀斑。<br><br><strong>M型星(红矮星):</strong>银河系中最常见的恒星。由于它们的宜居带非常接近(通常 < 0.2 AU),行星容易发生潮汐锁定,即一面永久朝向恒星。此外,活跃的M型矮星会产生高能恒星风和耀斑,可能剥离行星大气。',
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: '行星宜居环境的关键因素',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: '行星的物理环境由多个变量塑造,而不仅仅是与主恒星的距离:',
143
+ },
144
+ {
145
+ type: 'list',
146
+ items: [
147
+ '<strong>大气温室效应:</strong>自然温室气体将表面温度提升至黑体平衡水平以上。类地行星需要碳硅酸盐循环来稳定大气中的CO2,并在地质时间尺度上调节温度。',
148
+ '<strong>行星邦德反照率:</strong>高反射率(由于云层、冰盖或硫酸盐气溶胶)会冷却行星,而低反射率(深色土壤、水体)则会捕获更多恒星能量。',
149
+ '<strong>磁场:</strong>强大的行星磁层保护大气免受恒星风的影响,防止非热大气逃逸和水分流失。',
150
+ '<strong>水陷阱动力学:</strong>上层大气中的冷阱效应阻止水蒸气到达高海拔地区,避免太阳紫外辐射将其解离为氢和氧。',
151
+ ],
152
+ },
153
+ ],
154
+ faq,
155
+ bibliography,
156
+ howTo,
157
+ schemas: [
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'SoftwareApplication',
161
+ name: title,
162
+ description: description,
163
+ applicationCategory: 'ScientificApplication',
164
+ operatingSystem: 'Any',
165
+ },
166
+ {
167
+ '@context': 'https://schema.org',
168
+ '@type': 'FAQPage',
169
+ mainEntity: faq.map((item) => ({
170
+ '@type': 'Question',
171
+ name: item.question,
172
+ acceptedAnswer: {
173
+ '@type': 'Answer',
174
+ text: item.answer,
175
+ },
176
+ })),
177
+ },
178
+ {
179
+ '@context': 'https://schema.org',
180
+ '@type': 'HowTo',
181
+ name: title,
182
+ step: howTo.map((step) => ({
183
+ '@type': 'HowToStep',
184
+ name: step.name,
185
+ text: step.text,
186
+ })),
187
+ },
188
+ ],
189
+ };
@@ -0,0 +1,11 @@
1
+ import { stellarHabitabilityZone } from './entry';
2
+ import type { ToolDefinition } from '../../types';
3
+
4
+ export * from './entry';
5
+
6
+ export const STELLAR_HABITABILITY_ZONE_TOOL: ToolDefinition = {
7
+ entry: stellarHabitabilityZone,
8
+ Component: () => import('./component.astro'),
9
+ SEOComponent: () => import('./seo.astro'),
10
+ BibliographyComponent: () => import('./bibliography.astro'),
11
+ };
@@ -0,0 +1,45 @@
1
+ interface InteractionParams {
2
+ canvasContainer: HTMLElement;
3
+ distInput: HTMLInputElement;
4
+ presetBtns: NodeListOf<Element>;
5
+ getCurDistanceAu: () => number;
6
+ getCurMaxLimit: () => number;
7
+ getCurRunawayLimit: () => number;
8
+ onUpdate: () => void;
9
+ }
10
+
11
+ function handleInteraction(clientX: number, clientY: number, p: InteractionParams) {
12
+ const rect = p.canvasContainer.getBoundingClientRect();
13
+ const distPx = Math.sqrt(Math.pow(clientX - rect.left - p.canvasContainer.clientWidth / 2, 2) + Math.pow(clientY - rect.top - p.canvasContainer.clientHeight / 2, 2));
14
+ const maxDist = Math.max(p.getCurDistanceAu() * 1.3, p.getCurMaxLimit() * 1.25);
15
+ const scale = (Math.min(p.canvasContainer.clientWidth, p.canvasContainer.clientHeight) * 0.4) / maxDist;
16
+ p.distInput.value = Math.log10(Math.max(0.01, Math.min(1000, distPx / scale))).toFixed(2);
17
+ p.presetBtns.forEach(b => b.classList.remove('active'));
18
+ p.onUpdate();
19
+ }
20
+
21
+ export function setupCanvasInteraction(p: InteractionParams) {
22
+ let isDrawing = false;
23
+ const add = (ev: string, cb: (e: Event) => void) => p.canvasContainer.addEventListener(ev, cb as EventListener);
24
+
25
+ add('mousedown', (e) => {
26
+ isDrawing = true;
27
+ handleInteraction((e as MouseEvent).clientX, (e as MouseEvent).clientY, p);
28
+ });
29
+ add('mousemove', (e) => {
30
+ if (isDrawing) handleInteraction((e as MouseEvent).clientX, (e as MouseEvent).clientY, p);
31
+ });
32
+ window.addEventListener('mouseup', () => { isDrawing = false; });
33
+ add('touchstart', (e) => {
34
+ const te = e as TouchEvent;
35
+ if (te.touches.length > 0) {
36
+ isDrawing = true;
37
+ handleInteraction(te.touches[0].clientX, te.touches[0].clientY, p);
38
+ }
39
+ });
40
+ add('touchmove', (e) => {
41
+ const te = e as TouchEvent;
42
+ if (isDrawing && te.touches.length > 0) handleInteraction(te.touches[0].clientX, te.touches[0].clientY, p);
43
+ });
44
+ add('touchend', () => { isDrawing = false; });
45
+ }