@jjlmoya/utils-science 1.51.0 → 1.53.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.
- package/package.json +2 -2
- package/scripts/crystal-lattice-catalog-translations.mjs +1 -0
- package/src/category/i18n/es.ts +3 -4
- package/src/category/i18n/fr.ts +2 -2
- package/src/category/i18n/it.ts +2 -2
- package/src/category/i18n/pt.ts +2 -2
- package/src/category/index.ts +25 -25
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/env.d.ts +1 -1
- package/src/layouts/PreviewLayout.astro +1 -1
- package/src/pages/index.astro +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +76 -0
- package/src/tests/faq_count.test.ts +19 -19
- package/src/tests/i18n_coverage.test.ts +36 -36
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/script_density.test.ts +94 -94
- package/src/tests/seo_length.test.ts +24 -24
- package/src/tests/seo_parity.test.ts +5 -5
- package/src/tests/seo_translation_completeness.test.ts +76 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/spanish_leakage.test.ts +175 -175
- package/src/tool/asteroid-impact/component.astro +251 -251
- package/src/tool/asteroid-impact/helpers.ts +17 -17
- package/src/tool/asteroid-impact/i18n/de.ts +2 -2
- package/src/tool/asteroid-impact/i18n/en.ts +2 -2
- package/src/tool/asteroid-impact/i18n/es.ts +2 -2
- package/src/tool/asteroid-impact/i18n/fr.ts +2 -2
- package/src/tool/asteroid-impact/i18n/id.ts +2 -2
- package/src/tool/asteroid-impact/i18n/it.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ja.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ko.ts +2 -2
- package/src/tool/asteroid-impact/i18n/nl.ts +2 -2
- package/src/tool/asteroid-impact/i18n/pl.ts +2 -2
- package/src/tool/asteroid-impact/i18n/pt.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ru.ts +2 -2
- package/src/tool/asteroid-impact/i18n/sv.ts +2 -2
- package/src/tool/asteroid-impact/i18n/tr.ts +2 -2
- package/src/tool/asteroid-impact/i18n/zh.ts +2 -2
- package/src/tool/asteroid-impact/script.ts +262 -262
- package/src/tool/asteroid-impact/seo.astro +15 -15
- package/src/tool/asteroid-impact/ui.ts +69 -69
- package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +249 -241
- package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +252 -247
- package/src/tool/black-hole-event-horizon-simulator/i18n/id.ts +259 -259
- package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +255 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +254 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ko.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +256 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/pl.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +256 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ru.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +257 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +256 -251
- package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +261 -252
- package/src/tool/cellular-renewal/component.astro +126 -126
- package/src/tool/cellular-renewal/i18n/de.ts +1 -1
- package/src/tool/cellular-renewal/i18n/en.ts +1 -1
- package/src/tool/cellular-renewal/i18n/es.ts +1 -1
- package/src/tool/cellular-renewal/i18n/fr.ts +1 -1
- package/src/tool/cellular-renewal/i18n/id.ts +1 -1
- package/src/tool/cellular-renewal/i18n/it.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ja.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ko.ts +1 -1
- package/src/tool/cellular-renewal/i18n/nl.ts +1 -1
- package/src/tool/cellular-renewal/i18n/pl.ts +1 -1
- package/src/tool/cellular-renewal/i18n/pt.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ru.ts +1 -1
- package/src/tool/cellular-renewal/i18n/sv.ts +1 -1
- package/src/tool/cellular-renewal/i18n/tr.ts +1 -1
- package/src/tool/cellular-renewal/i18n/zh.ts +1 -1
- package/src/tool/cellular-renewal/seo.astro +15 -15
- package/src/tool/colony-counter/i18n/de.ts +1 -1
- package/src/tool/colony-counter/i18n/en.ts +1 -1
- package/src/tool/colony-counter/i18n/es.ts +1 -1
- package/src/tool/colony-counter/i18n/fr.ts +1 -1
- package/src/tool/colony-counter/i18n/id.ts +1 -1
- package/src/tool/colony-counter/i18n/it.ts +1 -1
- package/src/tool/colony-counter/i18n/ja.ts +1 -1
- package/src/tool/colony-counter/i18n/ko.ts +1 -1
- package/src/tool/colony-counter/i18n/nl.ts +1 -1
- package/src/tool/colony-counter/i18n/pl.ts +1 -1
- package/src/tool/colony-counter/i18n/pt.ts +1 -1
- package/src/tool/colony-counter/i18n/ru.ts +1 -1
- package/src/tool/colony-counter/i18n/sv.ts +1 -1
- package/src/tool/colony-counter/i18n/tr.ts +1 -1
- package/src/tool/colony-counter/i18n/zh.ts +1 -1
- package/src/tool/colony-counter/seo.astro +15 -15
- package/src/tool/conway-life-rule-lab/component.astro +1 -1
- package/src/tool/conway-life-rule-lab/i18n/de.ts +145 -141
- package/src/tool/conway-life-rule-lab/i18n/es.ts +146 -142
- package/src/tool/conway-life-rule-lab/i18n/fr.ts +146 -142
- package/src/tool/conway-life-rule-lab/i18n/id.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/it.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/ja.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/ko.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/nl.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/pl.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/pt.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/ru.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/sv.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/tr.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/zh.ts +147 -145
- package/src/tool/conway-life-rule-lab/logic/LifeLabRuntime.ts +2 -2
- package/src/tool/cosmic-inflation/i18n/ru.ts +105 -105
- package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +1 -1
- package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +217 -217
- package/src/tool/double-slit-decoherence/i18n/de.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/fr.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/id.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/it.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/ja.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/ko.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/nl.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/pl.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/pt.ts +178 -174
- package/src/tool/double-slit-decoherence/i18n/ru.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/sv.ts +176 -172
- package/src/tool/double-slit-decoherence/i18n/tr.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/zh.ts +181 -181
- package/src/tool/dyson-sphere-energy-capture/component.astro +253 -253
- package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/en.ts +6 -6
- package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
- package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/id.ts +195 -195
- package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +194 -190
- package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +194 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/nl.ts +197 -197
- package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +168 -166
- package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +194 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +195 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +195 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +168 -166
- package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +194 -193
- package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/it.ts +346 -346
- package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -347
- package/src/tool/exoplanet-biosignature-detector/i18n/de.ts +186 -186
- package/src/tool/exoplanet-biosignature-detector/i18n/en.ts +195 -195
- package/src/tool/exoplanet-biosignature-detector/i18n/es.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/fr.ts +183 -183
- package/src/tool/exoplanet-biosignature-detector/i18n/id.ts +193 -193
- package/src/tool/exoplanet-biosignature-detector/i18n/it.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/ja.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/ko.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/nl.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/pl.ts +144 -144
- package/src/tool/exoplanet-biosignature-detector/i18n/pt.ts +146 -146
- package/src/tool/exoplanet-biosignature-detector/i18n/ru.ts +143 -143
- package/src/tool/exoplanet-biosignature-detector/i18n/sv.ts +144 -144
- package/src/tool/exoplanet-biosignature-detector/i18n/tr.ts +145 -145
- package/src/tool/exoplanet-biosignature-detector/i18n/zh.ts +194 -194
- package/src/tool/global-albedo-snowball-simulator/component.astro +1 -1
- package/src/tool/global-albedo-snowball-simulator/i18n/de.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/fr.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/id.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/it.ts +87 -87
- package/src/tool/global-albedo-snowball-simulator/i18n/ja.ts +87 -87
- package/src/tool/global-albedo-snowball-simulator/i18n/ko.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/nl.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/pl.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/pt.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +165 -161
- package/src/tool/global-albedo-snowball-simulator/i18n/sv.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/tr.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/zh.ts +169 -169
- package/src/tool/lorenz-attractor/i18n/de.ts +144 -143
- package/src/tool/lorenz-attractor/i18n/fr.ts +144 -144
- package/src/tool/lorenz-attractor/i18n/id.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/it.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/ja.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/ko.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/nl.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/pl.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/pt.ts +142 -141
- package/src/tool/lorenz-attractor/i18n/ru.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/sv.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/tr.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/zh.ts +149 -149
- package/src/tool/mandelbrot-fractal/i18n/de.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/fr.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/id.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/it.ts +155 -151
- package/src/tool/mandelbrot-fractal/i18n/ja.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/ko.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/nl.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/pl.ts +157 -153
- package/src/tool/mandelbrot-fractal/i18n/pt.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/ru.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/sv.ts +159 -150
- package/src/tool/mandelbrot-fractal/i18n/tr.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/zh.ts +159 -159
- package/src/tool/microwave-detector/component.astro +238 -238
- package/src/tool/microwave-detector/i18n/de.ts +1 -1
- package/src/tool/microwave-detector/i18n/en.ts +1 -1
- package/src/tool/microwave-detector/i18n/es.ts +1 -1
- package/src/tool/microwave-detector/i18n/fr.ts +1 -1
- package/src/tool/microwave-detector/i18n/id.ts +1 -1
- package/src/tool/microwave-detector/i18n/it.ts +1 -1
- package/src/tool/microwave-detector/i18n/ja.ts +1 -1
- package/src/tool/microwave-detector/i18n/ko.ts +1 -1
- package/src/tool/microwave-detector/i18n/nl.ts +1 -1
- package/src/tool/microwave-detector/i18n/pl.ts +1 -1
- package/src/tool/microwave-detector/i18n/pt.ts +1 -1
- package/src/tool/microwave-detector/i18n/ru.ts +1 -1
- package/src/tool/microwave-detector/i18n/sv.ts +1 -1
- package/src/tool/microwave-detector/i18n/tr.ts +1 -1
- package/src/tool/microwave-detector/i18n/zh.ts +1 -1
- package/src/tool/microwave-detector/seo.astro +15 -15
- package/src/tool/natural-selection-drift/component.astro +135 -135
- package/src/tool/natural-selection-drift/i18n/de.ts +164 -160
- package/src/tool/natural-selection-drift/i18n/fr.ts +204 -204
- package/src/tool/natural-selection-drift/i18n/id.ts +156 -154
- package/src/tool/natural-selection-drift/i18n/it.ts +197 -193
- package/src/tool/natural-selection-drift/i18n/ja.ts +155 -154
- package/src/tool/natural-selection-drift/i18n/ko.ts +155 -154
- package/src/tool/natural-selection-drift/i18n/nl.ts +164 -163
- package/src/tool/natural-selection-drift/i18n/pl.ts +168 -166
- package/src/tool/natural-selection-drift/i18n/pt.ts +200 -195
- package/src/tool/natural-selection-drift/i18n/ru.ts +186 -184
- package/src/tool/natural-selection-drift/i18n/sv.ts +157 -154
- package/src/tool/natural-selection-drift/i18n/tr.ts +186 -184
- package/src/tool/natural-selection-drift/i18n/zh.ts +160 -154
- package/src/tool/natural-selection-drift/natural-selection-drift.css +563 -563
- package/src/tool/phase-diagram-critical-points/i18n/de.ts +178 -178
- package/src/tool/phase-diagram-critical-points/i18n/fr.ts +178 -178
- package/src/tool/phase-diagram-critical-points/i18n/id.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/it.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ja.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ko.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/nl.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/pl.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/pt.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ru.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/sv.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/tr.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/zh.ts +179 -179
- package/src/tool/planet-atmosphere-survival/i18n/de.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/fr.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/id.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/it.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ja.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ko.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/nl.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/pl.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/pt.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ru.ts +227 -223
- package/src/tool/planet-atmosphere-survival/i18n/sv.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/tr.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/zh.ts +255 -255
- package/src/tool/radioactive-decay/i18n/de.ts +168 -164
- package/src/tool/radioactive-decay/i18n/fr.ts +76 -75
- package/src/tool/radioactive-decay/i18n/id.ts +169 -165
- package/src/tool/radioactive-decay/i18n/it.ts +76 -74
- package/src/tool/radioactive-decay/i18n/ja.ts +168 -167
- package/src/tool/radioactive-decay/i18n/ko.ts +168 -167
- package/src/tool/radioactive-decay/i18n/nl.ts +170 -168
- package/src/tool/radioactive-decay/i18n/pl.ts +170 -168
- package/src/tool/radioactive-decay/i18n/pt.ts +169 -167
- package/src/tool/radioactive-decay/i18n/ru.ts +170 -168
- package/src/tool/radioactive-decay/i18n/sv.ts +170 -168
- package/src/tool/radioactive-decay/i18n/tr.ts +171 -168
- package/src/tool/radioactive-decay/i18n/zh.ts +171 -167
- package/src/tool/roche-limit-satellite-disruption/i18n/de.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/fr.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/id.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/it.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ja.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ko.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/nl.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +237 -229
- package/src/tool/roche-limit-satellite-disruption/i18n/pt.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ru.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/sv.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/tr.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/zh.ts +241 -241
- package/src/tool/simulation-probability/component.astro +138 -138
- package/src/tool/simulation-probability/i18n/de.ts +1 -1
- package/src/tool/simulation-probability/i18n/en.ts +1 -1
- package/src/tool/simulation-probability/i18n/es.ts +1 -1
- package/src/tool/simulation-probability/i18n/fr.ts +1 -1
- package/src/tool/simulation-probability/i18n/id.ts +1 -1
- package/src/tool/simulation-probability/i18n/it.ts +1 -1
- package/src/tool/simulation-probability/i18n/ja.ts +1 -1
- package/src/tool/simulation-probability/i18n/ko.ts +1 -1
- package/src/tool/simulation-probability/i18n/nl.ts +1 -1
- package/src/tool/simulation-probability/i18n/pl.ts +1 -1
- package/src/tool/simulation-probability/i18n/pt.ts +1 -1
- package/src/tool/simulation-probability/i18n/ru.ts +1 -1
- package/src/tool/simulation-probability/i18n/sv.ts +1 -1
- package/src/tool/simulation-probability/i18n/tr.ts +1 -1
- package/src/tool/simulation-probability/i18n/zh.ts +1 -1
- package/src/tool/simulation-probability/seo.astro +15 -15
- package/src/tool/stellar-habitability-zone/i18n/ru.ts +189 -189
- package/src/tool/temperature-timeline/i18n/de.ts +2 -1
- package/src/tool/temperature-timeline/i18n/fr.ts +177 -177
- package/src/tool/temperature-timeline/i18n/it.ts +142 -141
- package/src/tool/temperature-timeline/i18n/pt.ts +3 -1
- package/src/tool/temperature-timeline/i18n/ru.ts +116 -114
- package/src/tool/three-body-problem/app.ts +4 -4
- package/src/tool/three-body-problem/component.astro +6 -6
- package/src/tool/twin-paradox-visualizer/i18n/de.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/es.ts +165 -165
- package/src/tool/twin-paradox-visualizer/i18n/fr.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/id.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/it.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/ja.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/ko.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/nl.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/pl.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/pt.ts +164 -160
- package/src/tool/twin-paradox-visualizer/i18n/ru.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/sv.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/tr.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/zh.ts +168 -168
- package/src/types.ts +1 -1
|
@@ -1,347 +1,347 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'epidemi-sir-simulator';
|
|
5
|
-
const title = 'Epidemi SIR simulator';
|
|
6
|
-
const description = 'Utforska smittspridning med en interaktiv SIR-modell som justerar R0, dödlighet, vaccination, smittsam period, toppbelastning och transmissionskurvor i realtid.';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{
|
|
10
|
-
name: 'Stall in reproduktionstalet',
|
|
11
|
-
text: 'Flytta R0-reglaget för att visa hur manga sekundara infektioner en smittsam person skulle orsaka i en helt mottaglig population.',
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
name: 'Lagg till vaccination och vaccinverkningsgrad',
|
|
15
|
-
text: 'Oka vaccinationstackningen eller verkningsgraden för att ta bort skyddade personer från den mottagliga poolen och sanka det effektiva reproduktionstalet.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'Justera dödlighet och smittsam period',
|
|
19
|
-
text: 'Andra dodlighetsprocenten och antalet smittsamma dagar för att se hur allvarliga utfall och kurvans tidsforlopp paverkas.',
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
name: 'Las av SIR-kurvorna',
|
|
23
|
-
text: 'Anvand diagrammet och daginspektoren för att jamfora kurvor för mottagliga, smittade, aterhamtade och beraknade dödsfall under det simulerade utbrottet.',
|
|
24
|
-
},
|
|
25
|
-
];
|
|
26
|
-
|
|
27
|
-
const faq = [
|
|
28
|
-
{
|
|
29
|
-
question: 'Vad visar en SIR-modell?',
|
|
30
|
-
answer: 'En SIR-modell delar upp en population i mottagliga, smittade och aterhamtade grupper. Den uppskattar hur manniskor forflyttar sig mellan dessa grupper över tid nar smittspridning och aterhamtning sker.',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
question: 'Hur forandrar vaccination kurvan?',
|
|
34
|
-
answer: 'Vaccination minskar den mottagliga populationen nar den forhindrar infektion. I denna simulator sanker effektiv vaccination det effektiva reproduktionstalet och kan minska eller fordroja smitt-toppen.',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
question: 'Ar R0 samma sak som Re?',
|
|
38
|
-
answer: 'Nej. R0 beskriver smittspridning i en helt mottaglig population. Re ar det effektiva reproduktionstalet efter att immunitet, vaccination eller beteendeforandringar har minskat antalet personer som kan smittas.',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
question: 'Varfor nar den smittade kurvan en topp och faller sedan?',
|
|
42
|
-
answer: 'Den smittade kurvan faller nar varje smittsam person genererar farre nya infektioner an antalet personer som lamnar den smittade gruppen genom aterhamtning eller död. Minskad mottaglighet ar den framsta drivkraften i en grundläggande SIR-modell.',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
question: 'Kan detta forutsaga ett verkligt epidemiforlopp?',
|
|
46
|
-
answer: 'Det ar ett utbildnings- och scenariosverktyg, inte en prognos. Verkliga utbrott kraver åldersstruktur, kontaktnatverk, geografi, rapporteringsforseningar, forandrat beteende, varianter, avtagande immunitet och kalibrerade data.',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
question: 'Vad ar skillnaden mellan attackrate och topp smittade?',
|
|
50
|
-
answer: 'Attackrate mater den totala andelen av befolkningen som nagonsin smittas under utbrottet. Topp smittade mater det maximala antalet samtidigt smittsamma personer vid en given tidpunkt. En lag topp garanterar inte en lag attackrate och vice versa.',
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
question: 'Vad innebar Re under 1 visuellt?',
|
|
54
|
-
answer: 'Nar Re faller under 1 genererar varje smittsam person i genomsnitt farre an en ny infektion. I diagrammet stiger den smittade kurvan aldrig brant och kan minska omedelbart från startfrot, vilket betyder att utbrottet inte kan upprathalla sig sjalvt.',
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
question: 'Hur paverkar den smittsamma perioden utbrottet?',
|
|
58
|
-
answer: 'En längre smittsam period forlanger tiden under vilken varje smittad person kan överföra patogenen. Detta stracker utbrottets tidslinje, fordrojer toppen och kan för samma R0 ge en bredare kurva med lagre topphojd.',
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
question: 'Varfor paverkar inte dödligheten den smittade kurvan?',
|
|
62
|
-
answer: 'I denna SIR-modell paverkar dödlighet endast dodsantalet som forgrenas från den aterhamtade gruppen. Det aterkopplas inte till smittspridning eftersom dodsfal och aterhamtning båda tar bort personer från den smittsamma poolen i samma takt.',
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
question: 'Vad ar troskeln för flockimmunitet?',
|
|
66
|
-
answer: 'Troskeln för flockimmunitet ar den andel av befolkningen som maste vara immun för att Re ska falla under 1. Den approximeras som 1 - 1/R0. För massling med R0 runt 12 ar troskeln över 91%. För sasongsinfluensa med R0 runt 1,3 ar troskeln nara 23%.',
|
|
67
|
-
},
|
|
68
|
-
];
|
|
69
|
-
|
|
70
|
-
export const content: ToolLocaleContent = {
|
|
71
|
-
slug,
|
|
72
|
-
title,
|
|
73
|
-
description,
|
|
74
|
-
ui: {
|
|
75
|
-
liveScenario: 'Live epidemiscenario',
|
|
76
|
-
curveChart: 'SIR-transmissionskurvor',
|
|
77
|
-
inspectDay: 'Inspektera simuleringsdag',
|
|
78
|
-
legend: 'Kurvforklaring',
|
|
79
|
-
susceptible: 'Mottagliga',
|
|
80
|
-
infected: 'Smittade',
|
|
81
|
-
recovered: 'Aterhamtade eller immuna',
|
|
82
|
-
deaths: 'Dodsfal',
|
|
83
|
-
controls: 'Epidemikontroller',
|
|
84
|
-
modelName: 'Fackmodell',
|
|
85
|
-
peakInfected: 'Topp smittade',
|
|
86
|
-
peakDay: 'Toppdag',
|
|
87
|
-
attackRate: 'Attackrate',
|
|
88
|
-
estimatedDeaths: 'Beraknade dodsfal',
|
|
89
|
-
r0: 'Grundlaggande reproduktionstal R0',
|
|
90
|
-
lethality: 'Dodlighet',
|
|
91
|
-
vaccination: 'Vaccinationstackning',
|
|
92
|
-
vaccineEffectiveness: 'Vaccinverkningsgrad',
|
|
93
|
-
infectiousDays: 'Smittsam period',
|
|
94
|
-
initialInfected: 'Initialt smittade',
|
|
95
|
-
dayLabel: 'Dag',
|
|
96
|
-
daysUnit: 'dagar',
|
|
97
|
-
infectiousLabel: 'smittsamma',
|
|
98
|
-
reLabel: 'Re',
|
|
99
|
-
},
|
|
100
|
-
seo: [
|
|
101
|
-
{
|
|
102
|
-
type: 'title',
|
|
103
|
-
text: 'Epidemi SIR-simulator för R0, vaccination, dödlighet och transmissionskurvor',
|
|
104
|
-
level: 2,
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'paragraph',
|
|
108
|
-
html: 'Denna epidemi SIR-simulator later dig utforska hur en patogen sprids genom en population nar mottagliga personer smittas och sedan lamnar den smittsamma gruppen genom aterhamtning eller död. Den ar utformad för studenter, vetenskapskommunikatorer, folkhalsointresserade och alla som vill ha en snabb visuell forklaring till varfor sma förändringar i smittspridning eller immunitet kan omforma ett utbrott.',
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'paragraph',
|
|
112
|
-
html: 'De interaktiva reglagen fokuserar pa de variabler man oftast vill testa: <strong>R0</strong>, dödlighet, vaccinationstackning, vaccinverkningsgrad, smittsam period och initial andel smittade. Diagrammet uppdateras omedelbart sa att kurvorna för mottagliga, smittade, aterhamtade, immuna och dodsfal kan jamforas som ett sammanhangande epidemisystem.',
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
type: 'title',
|
|
116
|
-
text: 'Hur SIR-modellen fungerar',
|
|
117
|
-
level: 3,
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type: 'paragraph',
|
|
121
|
-
html: 'En grundläggande SIR-modell delar upp populationen i tre huvudfack. <strong>S</strong> ar mottagliga personer som fortfarande kan smittas. <strong>I</strong> ar för narvarande smittsamma personer som kan överföra patogenen. <strong>R</strong> ar personer som inte längre ar smittsamma eftersom de har aterhamtat sig, fatt immunitet eller annars lamnat transmissionskedjan. Denna simulator sparar aven beraknade dodsfal som en allvarlig utfallsgren från den grupp som lamnar infektion.',
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
type: 'paragraph',
|
|
125
|
-
html: 'Transmissionshastigheten ar kopplad till R0 och den smittsamma perioden. Om R0 ar hogt eller personer forblir smittsamma under längre tid genereras fler nya infektioner innan den smittade gruppen krymper. Om vaccination tar bort tillrackligt manga personer från den mottagliga poolen sjunker det effektiva reproduktionstalet och utbrottstoppen kan bli mycket mindre.',
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
type: 'table',
|
|
129
|
-
headers: ['Reglage', 'Vad det andra', 'Typisk kurveffekt'],
|
|
130
|
-
rows: [
|
|
131
|
-
['R0', 'Transmissionspotential innan immunitet beaktas', 'Hogre R0 far den smittade kurvan att stiga snabbare och na en högre topp.'],
|
|
132
|
-
['Vaccinationstackning', 'Andel personer som flyttas ur den mottagliga poolen nar de skyddas', 'Hogre tackning sanker Re och kan plana ut utbrottet.'],
|
|
133
|
-
['Vaccinverkningsgrad', 'Hur mycket vaccination forhindrar infektion i denna forenklade modell', 'Hogre verkningsgrad gör samma tackning mer skyddande.'],
|
|
134
|
-
['Smittsam period', 'Genomsnittlig tid som personer forblir smittsamma', 'Langre infektion ändrar tidsforloppet och kan förlänga utbrottet.'],
|
|
135
|
-
['Dodlighet', 'Andel personer som lamnar infektion och raknas som dodsfal', 'Hogre dödlighet hojjer dodskurvan utan att direkt öka smittspridningen.'],
|
|
136
|
-
],
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
type: 'title',
|
|
140
|
-
text: 'R0, Re och intuition för flockimmunitet',
|
|
141
|
-
level: 3,
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
type: 'paragraph',
|
|
145
|
-
html: 'R0 ar det genomsnittliga antalet sekundara fall som orsakas av en smittsam person i en helt mottaglig population. Re, det effektiva reproduktionstalet, ar lagre nar vissa personer redan ar immuna, vaccinerade, isolerade eller pa annat satt inte tillgangliga för infektion. I denna simulator minskar effektiv vaccination direkt mottagligheten, sa det visade Re sjunker nar det skyddade andelen o kar.',
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
type: 'paragraph',
|
|
149
|
-
html: 'En vanlig approximation för flockimmunitet ar <strong>1 - 1 / R0</strong>. För ett R0 pa 3 ar troskeln cirka 66,7% effektiv immunitet. Simulatorn hjälper till att göra denna troskel konkret: nar effektiv vaccination ligger under troskeln kan utbrott fortfarande vaxa; nar den ar över troskeln har smittspridning svarigt att upprathalla sig sjalv.',
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
type: 'title',
|
|
153
|
-
text: 'Vad toppen för smittade innebar',
|
|
154
|
-
level: 3,
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
type: 'paragraph',
|
|
158
|
-
html: 'Topp smittade ar det maximala antalet personer som ar samtidigt smittsamma i den simulerade populationen. Det ar ofta viktigare ur operativ synpunkt an totala infektioner eftersom sjukhus, laboratorier, isoleringsprogram och smittspaningsteam upplever tryck från samtidiga aktiva fall. Att sanka toppen kan vara avgörande aven om den slutliga attackrate inte reduceras till noll.',
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
type: 'paragraph',
|
|
162
|
-
html: 'Attackrate uppskattar andelen av hela befolkningen som smittas under hela forloppet. En hög attackrate innebar att patogenen nadde manga manniskor innan mottagligheten var uttommad eller kontrollerad. En lag attackrate innebar att immunitet, vaccination eller svag smittspridning forhindrade omfattande spridning.',
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
type: 'title',
|
|
166
|
-
text: 'Verkliga R0-varden och vad de innebar för flockimmunitet',
|
|
167
|
-
level: 3,
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
type: 'paragraph',
|
|
171
|
-
html: 'Det grundläggande reproduktionstalet R0 ar inte en fast biologisk konstant för en patogen. Det beror pa kontaktmonster, befolkningstathet, kulturella vanor och miljofaktorer. Samma virus kan ha olika R0-varden i en tat stad jamfort med ett landsbygdsomrade, eller under en arstid med mer inomhuskontakt. Vardena nedan ar illustrativa referensintervall från publicerade studier.',
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
type: 'table',
|
|
175
|
-
headers: ['Patogen', 'Typiskt R0-intervall', 'Flockimmunitetstrskel (1 - 1/R0)', 'Viktigaste overforingsegenskap'],
|
|
176
|
-
rows: [
|
|
177
|
-
['Sasongsinfluensa', '1,2 - 1,4', '17% - 29%', 'Kort smittsam period, sasongsvariation'],
|
|
178
|
-
['SARS-CoV-2 (urfaderlig)', '2,0 - 3,0', '50% - 67%', 'Presymptomatisk smittspridning, aerosolvagar'],
|
|
179
|
-
['SARS-CoV-2 (Delta)', '5,0 - 8,0', '80% - 87%', 'Okad virusmangd, snabbare spridning'],
|
|
180
|
-
['SARS-CoV-2 (Omicron)', '8,0 - 12,0', '87% - 92%', 'Immunundandragande, ovre luftvagstropism'],
|
|
181
|
-
['Polio', '5,0 - 7,0', '80% - 86%', 'Fekal-oral vag, lång asymtomatisk utsondring'],
|
|
182
|
-
['Smittkoppor', '5,0 - 7,0', '80% - 86%', 'Uttotad genom global vaccinationskampanj'],
|
|
183
|
-
['Massling', '12,0 - 18,0', '92% - 94%', 'Extremt smittsam, luftburen, lång smittsam period'],
|
|
184
|
-
['Kikhosta', '12,0 - 17,0', '92% - 94%', 'Avtagande immunitet mojliggor aterkommande infektioner'],
|
|
185
|
-
],
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
type: 'paragraph',
|
|
189
|
-
html: 'En hög flockimmunitetstrskel innebar inte automatiskt att vaccination ar meningslost nar tackningen ligger under troskeln. Aven partiell immunitet saktar ner smittspridningen, sanker toppen, minskar allvarliga utfall och koper tid för halso- och sjukvarden. Simulatorn visar denna effekt nar du flyttar vaccinationsreglaget genom mellanliggande varden.',
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
type: 'title',
|
|
193
|
-
text: 'Hur det effektiva reproduktionstalet Re förändras under ett utbrott',
|
|
194
|
-
level: 3,
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
type: 'paragraph',
|
|
198
|
-
html: 'Re ar det effektiva reproduktionstalet vid en given tidpunkt under utbrottet. Till skillnad från R0, som forutsatter en helt mottaglig population, tar Re hansyn till immunitet, vaccination och andra faktorer som minskar mottagligheten. I denna simulator beräknas Re som <strong>R0 x (1 - skyddad andel)</strong>, dar den skyddade andelen ar den del av befolkningen som ar effektivt immun genom vaccination.',
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
type: 'paragraph',
|
|
202
|
-
html: 'Re-vardet som visas i simulatorns rubrik uppdateras nar du flyttar reglagen. Nar Re ligger över 1 vaxer utbrottet. Nar det faller under 1 genererar varje smittad person i genomsnitt farre an en ny infektion, och epidemin kan inte upprathalla sig sjalv. Detta ar karninsikten bakom epidemikontroll: att fa och hålla Re under 1 genom immunitet, beteende eller interventioner.',
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
type: 'title',
|
|
206
|
-
text: 'Attackrate, toppbelastning och vad de avslojar om utbrottets allvarlighetsgrad',
|
|
207
|
-
level: 3,
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
type: 'paragraph',
|
|
211
|
-
html: 'Attackrate ar andelen av den totala befolkningen som smittas under hela det simulerade utbrottet. Det ar det mest citerade sammanfattande mattet efter en epidemivag. En hög attackrate innebar att patogenen smittade de flesta mottagliga personer innan uttunning eller kontroll stoppade smittspridningen. En lag attackrate innebar att immunitet, vaccination eller i sig svag smittspridning forhindrade omfattande infektion.',
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
type: 'paragraph',
|
|
215
|
-
html: 'Topp smittade - det maximala antalet samtidigt smittsamma personer - ar viktigare för kortvarigt tryck pa halso- och sjukvarden. En vag med en moderat attackrate men en mycket hög, skarp topp kan överbelasta sjukhus aven om totala antalet fall inte ar extremt. Omvant kan en långsam, utplanad kurva ha en liknande attackrate utspridd över manga veckor, vilket ger halso- och sjukvarden tid att hantera fallen. Detta ar varfor folkhalsoansvariga betonar att <strong>plan ut kurvan</strong> ar ett operativt mal skilt från att forhindra alla infektioner.',
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
type: 'title',
|
|
219
|
-
text: 'Att plana ut kurvan och halso- och sjukvardens kapacitet i SIR-modellen',
|
|
220
|
-
level: 3,
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
type: 'paragraph',
|
|
224
|
-
html: 'Den smittade kurvan i en SIR-modell kan tolkas som antalet personer som samtidigt behover vard. I ett verkligt utbrott drar varje person som behover en sjukhussang, syrgasstod eller intensivvard pa en andlig mangd resurser. Nar den smittade kurvan stiger högre an den tillgangliga kapaciteten ökar dödligheten från alla orsaker eftersom systemet inte kan ge adekvat vard.',
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
type: 'paragraph',
|
|
228
|
-
html: 'Vaccination planar i denna modell ut kurvan genom att ta bort personer från den mottagliga poolen innan de kan smittas. Att minska R0 genom andra åtgärder - munskydd, ventilation, distansering, testning, isolering - skulle ocksa sanka toppen i en mer komplett modell. Simuleringen gör mekanismen synlig: nar effektiv vaccinationstackning o kar krymper toppen, flyttas senare eller forsvinner helt.',
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
type: 'title',
|
|
232
|
-
text: 'Matematiken bakom SIR-modellen visualiserad',
|
|
233
|
-
level: 3,
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
type: 'paragraph',
|
|
237
|
-
html: 'I SIR-modellen beror antalet nya infektioner per tidssteg pa tre storheter: transmissionshastigheten <strong>beta</strong>, det aktuella antalet smittsamma personer <strong>I</strong> och andelen av den effektiva populationen som fortfarande ar mottaglig <strong>S/N</strong>. Produkten <strong>beta x I x S/N</strong> kallas infektionskraften. Varje dag avgör denna kraft hur manga mottagliga personer som flyttas in i facket för smittade.',
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
type: 'paragraph',
|
|
241
|
-
html: 'Personer lamnar facket för smittade med aterhamtningshastigheten <strong>gamma = 1 / smittsam period</strong>. Balansen mellan infektionskraften och aterhamtningshastigheten avgör om epidemin vaxer eller krymper. Nar beta x S/N overstiger gamma, overgar nya infektioner aterhamtningarna och utbrottet expanderar. Nar den mottagliga andelen S/N har sjunkit tillrackligt mycket dominerar gamma och utbrottet drar ihop sig.',
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
type: 'paragraph',
|
|
245
|
-
html: 'Parametern <strong>beta</strong> syns inte direkt i granssnittet. Istallet harleds den från R0 och den smittsamma perioden genom sambandet <strong>beta = R0 x gamma</strong>. Detta ar varfor andringar av R0 eller den smittsamma perioden ger liknande men inte identiska kurvformer. Bada parametrarna paverkar infektionskraften, men den smittsamma perioden stracker ocksa utbrottets tidsaxel.',
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
type: 'title',
|
|
249
|
-
text: 'Hur du anvander simulatorn för larande och undervisning',
|
|
250
|
-
level: 3,
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
type: 'list',
|
|
254
|
-
items: [
|
|
255
|
-
'<strong>Jamfor hög- och lag-R0-scenarier:</strong> stall R0 till 1,5 (sasongsinfluensaniva) och sedan till 6,0 (fore-vaccinationspolioniva). Lag marke till hur topphojd, topptidpunkt och attackrate förändras aven nar alla andra reglage ar identiska.',
|
|
256
|
-
'<strong>Utforska troskeln för flockimmunitet:</strong> börja med R0 pa 3,0 och ingen vaccination. Notera attackrate. Lagg sedan till vaccinationstackning tills Re faller under 1. Jamfor toppen och attackrate vid tackning strax under och strax över troskeln.',
|
|
257
|
-
'<strong>Testa effekten av långsam vs. snabb respons:</strong> stall in vaccinationstackning pa olika nivåer och observera nar toppen intraffar. Hogre tackning minskar inte bara topphojden utan forsar ofta ocksa toppen, vilket koper tid för halso- och sjukvardsforberedelser.',
|
|
258
|
-
'<strong>Separera dödlighet från smittspridning:</strong> stall dödligheten till 0% och observera den smittade kurvan. Stall sedan dödligheten till 10% utan att andra ovriga installningar. Den smittade kurvan förändras inte, men dödstalet stiger. Detta visar varfor case fatality rate och transmissionshastighet ar separata epidemiologiska dimensioner.',
|
|
259
|
-
'<strong>Undersok effekten av smittsam period:</strong> jamfor en smittsam period pa 4 dagar med en pa 18 dagar vid samma R0. Den längre perioden stracker kurvan, forsenar toppen och ger en längre men lagre vag.',
|
|
260
|
-
'<strong>Klassrumsovning - hitta troskeln:</strong> be studenterna hitta den minimivaccinationstackning som far Re under 1 för ett givet R0, och jamfor sedan resultatet med formeln 1 - 1/R0.',
|
|
261
|
-
],
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
type: 'title',
|
|
265
|
-
text: 'Nar och varfor du ska anvanda denna simulator',
|
|
266
|
-
level: 3,
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
type: 'list',
|
|
270
|
-
items: [
|
|
271
|
-
'<strong>Epidemiologistudenter:</strong> koppla det matematiska SIR-ramverket till interaktiva kurvformer innan ni arbetar med differentialekvationer eller programmerar egna modeller.',
|
|
272
|
-
'<strong>Vetenskapskommunikatorer och journalister:</strong> generera plotter, skarmdumpar eller live-forklaringar som visar varfor R0, vaccination och smittsam period spelar roll för utbrottets förlopp.',
|
|
273
|
-
'<strong>Folkhalsointresserade:</strong> testa hur olika interventionskombinationer flyttar epidemitoppen och attackrate för att utveckla intuition om avvagningarna vid utbrottsrespons.',
|
|
274
|
-
'<strong>Alla som ar nyfikna pa epidemimatematik:</strong> utforska SIR-modellen utan att behova skriva kod eller installera programvara. Varje reglage uppdaterar diagrammet i realtid.',
|
|
275
|
-
],
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
type: 'title',
|
|
279
|
-
text: 'Modellutokningar: SEIR, SIRS och vidare',
|
|
280
|
-
level: 3,
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
type: 'paragraph',
|
|
284
|
-
html: 'Denna simulator anvander en grundläggande SIR-struktur. Flera vanliga utokningar ökar realismen. En <strong>SEIR-modell</strong> lagger till ett exponerat (E) fack för personer som ar smittade men annu inte smittsamma, vilket representerar inkubationstiden. Den exponerade gruppen forsenar epidemitoppen utat jamfort med SIR-modellen eftersom infektioner tillbringar tid i latentfasen innan de bidrar till smittspridning.',
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
type: 'paragraph',
|
|
288
|
-
html: 'En <strong>SIRS-modell</strong> tillater aterhamtade individer att forlora immunitet över tid och atervanda till det mottagliga facket. Detta modellerar patogener som kikhosta eller SARS-CoV-2 med avtagande immunitet och ger ihallande eller aterkommande utbrottsvagor. En <strong>aldersstrukturerad modell</strong> delar upp populationen i åldersgrupper med olika kontaktmatriser och allvarlighetsprofiler, vilket ar nodvandigt för sjukdar dar barn och äldre har mycket olika utfall.',
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
type: 'paragraph',
|
|
292
|
-
html: 'Andra utokningar lagger till geografisk spridning (metapopulationsmodeller), beteendeförändring (adaptiva kontaktfrekvenser), stokastiskt brus (för sma populationer dar slumpmassig utdodning spelar roll) och interventionstidpunkt (skolnedstangningar, nedstangningar, reserestriktioner som slas pa och av). Varje utokning tillfor komplexitet som ar nodvandig för prognoser men kan dölja de centrala transmissionsdynamiker som den grundläggande SIR-modellen illustrerar pa ett rent satt.',
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
type: 'title',
|
|
296
|
-
text: 'Begransningar hos denna epidemisimulator',
|
|
297
|
-
level: 3,
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
type: 'paragraph',
|
|
301
|
-
html: 'Detta ar en kompakt deterministisk SIR-modell. Den innehaller inte åldersgrupper, hushallsstruktur, skolor, resor, superspridning, inkubationsperioder, asymtomatisk smittspridning, sasongsvariation, varianter, avtagande immunitet, beteendeforandringar, testningsforseningar eller halso- och sjukvardsinterventioner som slas pa och av över tid. Dessa detaljer ar nodvandiga för verkliga prognoser.',
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
type: 'paragraph',
|
|
305
|
-
html: 'Modellen forutsatter en valblandad population dar varje mottaglig person har lika stor sannolikhet att fa kontakt med varje smittsam person. Verkliga populationer har kontaknatverk med stark klustring, aldersassortativitet, geografisk struktur och individuell variation i smittsamhet. Dessa egenskaper kan skapa långsammare initial tillvaxt, superspridningshandelser och heterogena utbrottsmonster som en homogen modell inte fangar.',
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
type: 'paragraph',
|
|
309
|
-
html: 'Anvand simulatorn för att första mekanismer och jamfora scenarier, inte för att fatta medicinska, politiska eller krissbeslut. Verklig epidemibedomning kraver overvakningsdata, lokal kontext, osakerhetsanalys och specialistmodellering inom epidemiologi.',
|
|
310
|
-
},
|
|
311
|
-
],
|
|
312
|
-
faq,
|
|
313
|
-
bibliography,
|
|
314
|
-
howTo,
|
|
315
|
-
schemas: [
|
|
316
|
-
{
|
|
317
|
-
'@context': 'https://schema.org',
|
|
318
|
-
'@type': 'SoftwareApplication',
|
|
319
|
-
name: title,
|
|
320
|
-
description,
|
|
321
|
-
applicationCategory: 'ScientificApplication',
|
|
322
|
-
operatingSystem: 'Any',
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
'@context': 'https://schema.org',
|
|
326
|
-
'@type': 'FAQPage',
|
|
327
|
-
mainEntity: faq.map((item) => ({
|
|
328
|
-
'@type': 'Question',
|
|
329
|
-
name: item.question,
|
|
330
|
-
acceptedAnswer: {
|
|
331
|
-
'@type': 'Answer',
|
|
332
|
-
text: item.answer,
|
|
333
|
-
},
|
|
334
|
-
})),
|
|
335
|
-
},
|
|
336
|
-
{
|
|
337
|
-
'@context': 'https://schema.org',
|
|
338
|
-
'@type': 'HowTo',
|
|
339
|
-
name: title,
|
|
340
|
-
step: howTo.map((step) => ({
|
|
341
|
-
'@type': 'HowToStep',
|
|
342
|
-
name: step.name,
|
|
343
|
-
text: step.text,
|
|
344
|
-
})),
|
|
345
|
-
},
|
|
346
|
-
],
|
|
347
|
-
};
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'epidemi-sir-simulator';
|
|
5
|
+
const title = 'Epidemi SIR simulator';
|
|
6
|
+
const description = 'Utforska smittspridning med en interaktiv SIR-modell som justerar R0, dödlighet, vaccination, smittsam period, toppbelastning och transmissionskurvor i realtid.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Stall in reproduktionstalet',
|
|
11
|
+
text: 'Flytta R0-reglaget för att visa hur manga sekundara infektioner en smittsam person skulle orsaka i en helt mottaglig population.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Lagg till vaccination och vaccinverkningsgrad',
|
|
15
|
+
text: 'Oka vaccinationstackningen eller verkningsgraden för att ta bort skyddade personer från den mottagliga poolen och sanka det effektiva reproduktionstalet.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Justera dödlighet och smittsam period',
|
|
19
|
+
text: 'Andra dodlighetsprocenten och antalet smittsamma dagar för att se hur allvarliga utfall och kurvans tidsforlopp paverkas.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Las av SIR-kurvorna',
|
|
23
|
+
text: 'Anvand diagrammet och daginspektoren för att jamfora kurvor för mottagliga, smittade, aterhamtade och beraknade dödsfall under det simulerade utbrottet.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
question: 'Vad visar en SIR-modell?',
|
|
30
|
+
answer: 'En SIR-modell delar upp en population i mottagliga, smittade och aterhamtade grupper. Den uppskattar hur manniskor forflyttar sig mellan dessa grupper över tid nar smittspridning och aterhamtning sker.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Hur forandrar vaccination kurvan?',
|
|
34
|
+
answer: 'Vaccination minskar den mottagliga populationen nar den forhindrar infektion. I denna simulator sanker effektiv vaccination det effektiva reproduktionstalet och kan minska eller fordroja smitt-toppen.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Ar R0 samma sak som Re?',
|
|
38
|
+
answer: 'Nej. R0 beskriver smittspridning i en helt mottaglig population. Re ar det effektiva reproduktionstalet efter att immunitet, vaccination eller beteendeforandringar har minskat antalet personer som kan smittas.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Varfor nar den smittade kurvan en topp och faller sedan?',
|
|
42
|
+
answer: 'Den smittade kurvan faller nar varje smittsam person genererar farre nya infektioner an antalet personer som lamnar den smittade gruppen genom aterhamtning eller död. Minskad mottaglighet ar den framsta drivkraften i en grundläggande SIR-modell.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
question: 'Kan detta forutsaga ett verkligt epidemiforlopp?',
|
|
46
|
+
answer: 'Det ar ett utbildnings- och scenariosverktyg, inte en prognos. Verkliga utbrott kraver åldersstruktur, kontaktnatverk, geografi, rapporteringsforseningar, forandrat beteende, varianter, avtagande immunitet och kalibrerade data.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
question: 'Vad ar skillnaden mellan attackrate och topp smittade?',
|
|
50
|
+
answer: 'Attackrate mater den totala andelen av befolkningen som nagonsin smittas under utbrottet. Topp smittade mater det maximala antalet samtidigt smittsamma personer vid en given tidpunkt. En lag topp garanterar inte en lag attackrate och vice versa.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
question: 'Vad innebar Re under 1 visuellt?',
|
|
54
|
+
answer: 'Nar Re faller under 1 genererar varje smittsam person i genomsnitt farre an en ny infektion. I diagrammet stiger den smittade kurvan aldrig brant och kan minska omedelbart från startfrot, vilket betyder att utbrottet inte kan upprathalla sig sjalvt.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
question: 'Hur paverkar den smittsamma perioden utbrottet?',
|
|
58
|
+
answer: 'En längre smittsam period forlanger tiden under vilken varje smittad person kan överföra patogenen. Detta stracker utbrottets tidslinje, fordrojer toppen och kan för samma R0 ge en bredare kurva med lagre topphojd.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
question: 'Varfor paverkar inte dödligheten den smittade kurvan?',
|
|
62
|
+
answer: 'I denna SIR-modell paverkar dödlighet endast dodsantalet som forgrenas från den aterhamtade gruppen. Det aterkopplas inte till smittspridning eftersom dodsfal och aterhamtning båda tar bort personer från den smittsamma poolen i samma takt.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
question: 'Vad ar troskeln för flockimmunitet?',
|
|
66
|
+
answer: 'Troskeln för flockimmunitet ar den andel av befolkningen som maste vara immun för att Re ska falla under 1. Den approximeras som 1 - 1/R0. För massling med R0 runt 12 ar troskeln över 91%. För sasongsinfluensa med R0 runt 1,3 ar troskeln nara 23%.',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
export const content: ToolLocaleContent = {
|
|
71
|
+
slug,
|
|
72
|
+
title,
|
|
73
|
+
description,
|
|
74
|
+
ui: {
|
|
75
|
+
liveScenario: 'Live epidemiscenario',
|
|
76
|
+
curveChart: 'SIR-transmissionskurvor',
|
|
77
|
+
inspectDay: 'Inspektera simuleringsdag',
|
|
78
|
+
legend: 'Kurvforklaring',
|
|
79
|
+
susceptible: 'Mottagliga',
|
|
80
|
+
infected: 'Smittade',
|
|
81
|
+
recovered: 'Aterhamtade eller immuna',
|
|
82
|
+
deaths: 'Dodsfal',
|
|
83
|
+
controls: 'Epidemikontroller',
|
|
84
|
+
modelName: 'Fackmodell',
|
|
85
|
+
peakInfected: 'Topp smittade',
|
|
86
|
+
peakDay: 'Toppdag',
|
|
87
|
+
attackRate: 'Attackrate',
|
|
88
|
+
estimatedDeaths: 'Beraknade dodsfal',
|
|
89
|
+
r0: 'Grundlaggande reproduktionstal R0',
|
|
90
|
+
lethality: 'Dodlighet',
|
|
91
|
+
vaccination: 'Vaccinationstackning',
|
|
92
|
+
vaccineEffectiveness: 'Vaccinverkningsgrad',
|
|
93
|
+
infectiousDays: 'Smittsam period',
|
|
94
|
+
initialInfected: 'Initialt smittade',
|
|
95
|
+
dayLabel: 'Dag',
|
|
96
|
+
daysUnit: 'dagar',
|
|
97
|
+
infectiousLabel: 'smittsamma',
|
|
98
|
+
reLabel: 'Re',
|
|
99
|
+
},
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Epidemi SIR-simulator för R0, vaccination, dödlighet och transmissionskurvor',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Denna epidemi SIR-simulator later dig utforska hur en patogen sprids genom en population nar mottagliga personer smittas och sedan lamnar den smittsamma gruppen genom aterhamtning eller död. Den ar utformad för studenter, vetenskapskommunikatorer, folkhalsointresserade och alla som vill ha en snabb visuell forklaring till varfor sma förändringar i smittspridning eller immunitet kan omforma ett utbrott.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'De interaktiva reglagen fokuserar pa de variabler man oftast vill testa: <strong>R0</strong>, dödlighet, vaccinationstackning, vaccinverkningsgrad, smittsam period och initial andel smittade. Diagrammet uppdateras omedelbart sa att kurvorna för mottagliga, smittade, aterhamtade, immuna och dodsfal kan jamforas som ett sammanhangande epidemisystem.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Hur SIR-modellen fungerar',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'En grundläggande SIR-modell delar upp populationen i tre huvudfack. <strong>S</strong> ar mottagliga personer som fortfarande kan smittas. <strong>I</strong> ar för narvarande smittsamma personer som kan överföra patogenen. <strong>R</strong> ar personer som inte längre ar smittsamma eftersom de har aterhamtat sig, fatt immunitet eller annars lamnat transmissionskedjan. Denna simulator sparar aven beraknade dodsfal som en allvarlig utfallsgren från den grupp som lamnar infektion.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Transmissionshastigheten ar kopplad till R0 och den smittsamma perioden. Om R0 ar hogt eller personer forblir smittsamma under längre tid genereras fler nya infektioner innan den smittade gruppen krymper. Om vaccination tar bort tillrackligt manga personer från den mottagliga poolen sjunker det effektiva reproduktionstalet och utbrottstoppen kan bli mycket mindre.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'table',
|
|
129
|
+
headers: ['Reglage', 'Vad det andra', 'Typisk kurveffekt'],
|
|
130
|
+
rows: [
|
|
131
|
+
['R0', 'Transmissionspotential innan immunitet beaktas', 'Hogre R0 far den smittade kurvan att stiga snabbare och na en högre topp.'],
|
|
132
|
+
['Vaccinationstackning', 'Andel personer som flyttas ur den mottagliga poolen nar de skyddas', 'Hogre tackning sanker Re och kan plana ut utbrottet.'],
|
|
133
|
+
['Vaccinverkningsgrad', 'Hur mycket vaccination forhindrar infektion i denna forenklade modell', 'Hogre verkningsgrad gör samma tackning mer skyddande.'],
|
|
134
|
+
['Smittsam period', 'Genomsnittlig tid som personer forblir smittsamma', 'Langre infektion ändrar tidsforloppet och kan förlänga utbrottet.'],
|
|
135
|
+
['Dodlighet', 'Andel personer som lamnar infektion och raknas som dodsfal', 'Hogre dödlighet hojjer dodskurvan utan att direkt öka smittspridningen.'],
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'title',
|
|
140
|
+
text: 'R0, Re och intuition för flockimmunitet',
|
|
141
|
+
level: 3,
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: 'R0 ar det genomsnittliga antalet sekundara fall som orsakas av en smittsam person i en helt mottaglig population. Re, det effektiva reproduktionstalet, ar lagre nar vissa personer redan ar immuna, vaccinerade, isolerade eller pa annat satt inte tillgangliga för infektion. I denna simulator minskar effektiv vaccination direkt mottagligheten, sa det visade Re sjunker nar det skyddade andelen o kar.',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'paragraph',
|
|
149
|
+
html: 'En vanlig approximation för flockimmunitet ar <strong>1 - 1 / R0</strong>. För ett R0 pa 3 ar troskeln cirka 66,7% effektiv immunitet. Simulatorn hjälper till att göra denna troskel konkret: nar effektiv vaccination ligger under troskeln kan utbrott fortfarande vaxa; nar den ar över troskeln har smittspridning svarigt att upprathalla sig sjalv.',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'title',
|
|
153
|
+
text: 'Vad toppen för smittade innebar',
|
|
154
|
+
level: 3,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'Topp smittade ar det maximala antalet personer som ar samtidigt smittsamma i den simulerade populationen. Det ar ofta viktigare ur operativ synpunkt an totala infektioner eftersom sjukhus, laboratorier, isoleringsprogram och smittspaningsteam upplever tryck från samtidiga aktiva fall. Att sanka toppen kan vara avgörande aven om den slutliga attackrate inte reduceras till noll.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'paragraph',
|
|
162
|
+
html: 'Attackrate uppskattar andelen av hela befolkningen som smittas under hela forloppet. En hög attackrate innebar att patogenen nadde manga manniskor innan mottagligheten var uttommad eller kontrollerad. En lag attackrate innebar att immunitet, vaccination eller svag smittspridning forhindrade omfattande spridning.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Verkliga R0-varden och vad de innebar för flockimmunitet',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Det grundläggande reproduktionstalet R0 ar inte en fast biologisk konstant för en patogen. Det beror pa kontaktmonster, befolkningstathet, kulturella vanor och miljofaktorer. Samma virus kan ha olika R0-varden i en tat stad jamfort med ett landsbygdsomrade, eller under en arstid med mer inomhuskontakt. Vardena nedan ar illustrativa referensintervall från publicerade studier.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'table',
|
|
175
|
+
headers: ['Patogen', 'Typiskt R0-intervall', 'Flockimmunitetstrskel (1 - 1/R0)', 'Viktigaste overforingsegenskap'],
|
|
176
|
+
rows: [
|
|
177
|
+
['Sasongsinfluensa', '1,2 - 1,4', '17% - 29%', 'Kort smittsam period, sasongsvariation'],
|
|
178
|
+
['SARS-CoV-2 (urfaderlig)', '2,0 - 3,0', '50% - 67%', 'Presymptomatisk smittspridning, aerosolvagar'],
|
|
179
|
+
['SARS-CoV-2 (Delta)', '5,0 - 8,0', '80% - 87%', 'Okad virusmangd, snabbare spridning'],
|
|
180
|
+
['SARS-CoV-2 (Omicron)', '8,0 - 12,0', '87% - 92%', 'Immunundandragande, ovre luftvagstropism'],
|
|
181
|
+
['Polio', '5,0 - 7,0', '80% - 86%', 'Fekal-oral vag, lång asymtomatisk utsondring'],
|
|
182
|
+
['Smittkoppor', '5,0 - 7,0', '80% - 86%', 'Uttotad genom global vaccinationskampanj'],
|
|
183
|
+
['Massling', '12,0 - 18,0', '92% - 94%', 'Extremt smittsam, luftburen, lång smittsam period'],
|
|
184
|
+
['Kikhosta', '12,0 - 17,0', '92% - 94%', 'Avtagande immunitet mojliggor aterkommande infektioner'],
|
|
185
|
+
],
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
type: 'paragraph',
|
|
189
|
+
html: 'En hög flockimmunitetstrskel innebar inte automatiskt att vaccination ar meningslost nar tackningen ligger under troskeln. Aven partiell immunitet saktar ner smittspridningen, sanker toppen, minskar allvarliga utfall och koper tid för halso- och sjukvarden. Simulatorn visar denna effekt nar du flyttar vaccinationsreglaget genom mellanliggande varden.',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: 'title',
|
|
193
|
+
text: 'Hur det effektiva reproduktionstalet Re förändras under ett utbrott',
|
|
194
|
+
level: 3,
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
type: 'paragraph',
|
|
198
|
+
html: 'Re ar det effektiva reproduktionstalet vid en given tidpunkt under utbrottet. Till skillnad från R0, som forutsatter en helt mottaglig population, tar Re hansyn till immunitet, vaccination och andra faktorer som minskar mottagligheten. I denna simulator beräknas Re som <strong>R0 x (1 - skyddad andel)</strong>, dar den skyddade andelen ar den del av befolkningen som ar effektivt immun genom vaccination.',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
type: 'paragraph',
|
|
202
|
+
html: 'Re-vardet som visas i simulatorns rubrik uppdateras nar du flyttar reglagen. Nar Re ligger över 1 vaxer utbrottet. Nar det faller under 1 genererar varje smittad person i genomsnitt farre an en ny infektion, och epidemin kan inte upprathalla sig sjalv. Detta ar karninsikten bakom epidemikontroll: att fa och hålla Re under 1 genom immunitet, beteende eller interventioner.',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: 'title',
|
|
206
|
+
text: 'Attackrate, toppbelastning och vad de avslojar om utbrottets allvarlighetsgrad',
|
|
207
|
+
level: 3,
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: 'paragraph',
|
|
211
|
+
html: 'Attackrate ar andelen av den totala befolkningen som smittas under hela det simulerade utbrottet. Det ar det mest citerade sammanfattande mattet efter en epidemivag. En hög attackrate innebar att patogenen smittade de flesta mottagliga personer innan uttunning eller kontroll stoppade smittspridningen. En lag attackrate innebar att immunitet, vaccination eller i sig svag smittspridning forhindrade omfattande infektion.',
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
type: 'paragraph',
|
|
215
|
+
html: 'Topp smittade - det maximala antalet samtidigt smittsamma personer - ar viktigare för kortvarigt tryck pa halso- och sjukvarden. En vag med en moderat attackrate men en mycket hög, skarp topp kan överbelasta sjukhus aven om totala antalet fall inte ar extremt. Omvant kan en långsam, utplanad kurva ha en liknande attackrate utspridd över manga veckor, vilket ger halso- och sjukvarden tid att hantera fallen. Detta ar varfor folkhalsoansvariga betonar att <strong>plan ut kurvan</strong> ar ett operativt mal skilt från att forhindra alla infektioner.',
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
type: 'title',
|
|
219
|
+
text: 'Att plana ut kurvan och halso- och sjukvardens kapacitet i SIR-modellen',
|
|
220
|
+
level: 3,
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
type: 'paragraph',
|
|
224
|
+
html: 'Den smittade kurvan i en SIR-modell kan tolkas som antalet personer som samtidigt behover vard. I ett verkligt utbrott drar varje person som behover en sjukhussang, syrgasstod eller intensivvard pa en andlig mangd resurser. Nar den smittade kurvan stiger högre an den tillgangliga kapaciteten ökar dödligheten från alla orsaker eftersom systemet inte kan ge adekvat vard.',
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
type: 'paragraph',
|
|
228
|
+
html: 'Vaccination planar i denna modell ut kurvan genom att ta bort personer från den mottagliga poolen innan de kan smittas. Att minska R0 genom andra åtgärder - munskydd, ventilation, distansering, testning, isolering - skulle ocksa sanka toppen i en mer komplett modell. Simuleringen gör mekanismen synlig: nar effektiv vaccinationstackning o kar krymper toppen, flyttas senare eller forsvinner helt.',
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
type: 'title',
|
|
232
|
+
text: 'Matematiken bakom SIR-modellen visualiserad',
|
|
233
|
+
level: 3,
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
type: 'paragraph',
|
|
237
|
+
html: 'I SIR-modellen beror antalet nya infektioner per tidssteg pa tre storheter: transmissionshastigheten <strong>beta</strong>, det aktuella antalet smittsamma personer <strong>I</strong> och andelen av den effektiva populationen som fortfarande ar mottaglig <strong>S/N</strong>. Produkten <strong>beta x I x S/N</strong> kallas infektionskraften. Varje dag avgör denna kraft hur manga mottagliga personer som flyttas in i facket för smittade.',
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
type: 'paragraph',
|
|
241
|
+
html: 'Personer lamnar facket för smittade med aterhamtningshastigheten <strong>gamma = 1 / smittsam period</strong>. Balansen mellan infektionskraften och aterhamtningshastigheten avgör om epidemin vaxer eller krymper. Nar beta x S/N overstiger gamma, overgar nya infektioner aterhamtningarna och utbrottet expanderar. Nar den mottagliga andelen S/N har sjunkit tillrackligt mycket dominerar gamma och utbrottet drar ihop sig.',
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
type: 'paragraph',
|
|
245
|
+
html: 'Parametern <strong>beta</strong> syns inte direkt i granssnittet. Istallet harleds den från R0 och den smittsamma perioden genom sambandet <strong>beta = R0 x gamma</strong>. Detta ar varfor andringar av R0 eller den smittsamma perioden ger liknande men inte identiska kurvformer. Bada parametrarna paverkar infektionskraften, men den smittsamma perioden stracker ocksa utbrottets tidsaxel.',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
type: 'title',
|
|
249
|
+
text: 'Hur du anvander simulatorn för larande och undervisning',
|
|
250
|
+
level: 3,
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
type: 'list',
|
|
254
|
+
items: [
|
|
255
|
+
'<strong>Jamfor hög- och lag-R0-scenarier:</strong> stall R0 till 1,5 (sasongsinfluensaniva) och sedan till 6,0 (fore-vaccinationspolioniva). Lag marke till hur topphojd, topptidpunkt och attackrate förändras aven nar alla andra reglage ar identiska.',
|
|
256
|
+
'<strong>Utforska troskeln för flockimmunitet:</strong> börja med R0 pa 3,0 och ingen vaccination. Notera attackrate. Lagg sedan till vaccinationstackning tills Re faller under 1. Jamfor toppen och attackrate vid tackning strax under och strax över troskeln.',
|
|
257
|
+
'<strong>Testa effekten av långsam vs. snabb respons:</strong> stall in vaccinationstackning pa olika nivåer och observera nar toppen intraffar. Hogre tackning minskar inte bara topphojden utan forsar ofta ocksa toppen, vilket koper tid för halso- och sjukvardsforberedelser.',
|
|
258
|
+
'<strong>Separera dödlighet från smittspridning:</strong> stall dödligheten till 0% och observera den smittade kurvan. Stall sedan dödligheten till 10% utan att andra ovriga installningar. Den smittade kurvan förändras inte, men dödstalet stiger. Detta visar varfor case fatality rate och transmissionshastighet ar separata epidemiologiska dimensioner.',
|
|
259
|
+
'<strong>Undersok effekten av smittsam period:</strong> jamfor en smittsam period pa 4 dagar med en pa 18 dagar vid samma R0. Den längre perioden stracker kurvan, forsenar toppen och ger en längre men lagre vag.',
|
|
260
|
+
'<strong>Klassrumsovning - hitta troskeln:</strong> be studenterna hitta den minimivaccinationstackning som far Re under 1 för ett givet R0, och jamfor sedan resultatet med formeln 1 - 1/R0.',
|
|
261
|
+
],
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
type: 'title',
|
|
265
|
+
text: 'Nar och varfor du ska anvanda denna simulator',
|
|
266
|
+
level: 3,
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
type: 'list',
|
|
270
|
+
items: [
|
|
271
|
+
'<strong>Epidemiologistudenter:</strong> koppla det matematiska SIR-ramverket till interaktiva kurvformer innan ni arbetar med differentialekvationer eller programmerar egna modeller.',
|
|
272
|
+
'<strong>Vetenskapskommunikatorer och journalister:</strong> generera plotter, skarmdumpar eller live-forklaringar som visar varfor R0, vaccination och smittsam period spelar roll för utbrottets förlopp.',
|
|
273
|
+
'<strong>Folkhalsointresserade:</strong> testa hur olika interventionskombinationer flyttar epidemitoppen och attackrate för att utveckla intuition om avvagningarna vid utbrottsrespons.',
|
|
274
|
+
'<strong>Alla som ar nyfikna pa epidemimatematik:</strong> utforska SIR-modellen utan att behova skriva kod eller installera programvara. Varje reglage uppdaterar diagrammet i realtid.',
|
|
275
|
+
],
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
type: 'title',
|
|
279
|
+
text: 'Modellutokningar: SEIR, SIRS och vidare',
|
|
280
|
+
level: 3,
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
type: 'paragraph',
|
|
284
|
+
html: 'Denna simulator anvander en grundläggande SIR-struktur. Flera vanliga utokningar ökar realismen. En <strong>SEIR-modell</strong> lagger till ett exponerat (E) fack för personer som ar smittade men annu inte smittsamma, vilket representerar inkubationstiden. Den exponerade gruppen forsenar epidemitoppen utat jamfort med SIR-modellen eftersom infektioner tillbringar tid i latentfasen innan de bidrar till smittspridning.',
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
type: 'paragraph',
|
|
288
|
+
html: 'En <strong>SIRS-modell</strong> tillater aterhamtade individer att forlora immunitet över tid och atervanda till det mottagliga facket. Detta modellerar patogener som kikhosta eller SARS-CoV-2 med avtagande immunitet och ger ihallande eller aterkommande utbrottsvagor. En <strong>aldersstrukturerad modell</strong> delar upp populationen i åldersgrupper med olika kontaktmatriser och allvarlighetsprofiler, vilket ar nodvandigt för sjukdar dar barn och äldre har mycket olika utfall.',
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
type: 'paragraph',
|
|
292
|
+
html: 'Andra utokningar lagger till geografisk spridning (metapopulationsmodeller), beteendeförändring (adaptiva kontaktfrekvenser), stokastiskt brus (för sma populationer dar slumpmassig utdodning spelar roll) och interventionstidpunkt (skolnedstangningar, nedstangningar, reserestriktioner som slas pa och av). Varje utokning tillfor komplexitet som ar nodvandig för prognoser men kan dölja de centrala transmissionsdynamiker som den grundläggande SIR-modellen illustrerar pa ett rent satt.',
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
type: 'title',
|
|
296
|
+
text: 'Begransningar hos denna epidemisimulator',
|
|
297
|
+
level: 3,
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
type: 'paragraph',
|
|
301
|
+
html: 'Detta ar en kompakt deterministisk SIR-modell. Den innehaller inte åldersgrupper, hushallsstruktur, skolor, resor, superspridning, inkubationsperioder, asymtomatisk smittspridning, sasongsvariation, varianter, avtagande immunitet, beteendeforandringar, testningsforseningar eller halso- och sjukvardsinterventioner som slas pa och av över tid. Dessa detaljer ar nodvandiga för verkliga prognoser.',
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
type: 'paragraph',
|
|
305
|
+
html: 'Modellen forutsatter en valblandad population dar varje mottaglig person har lika stor sannolikhet att fa kontakt med varje smittsam person. Verkliga populationer har kontaknatverk med stark klustring, aldersassortativitet, geografisk struktur och individuell variation i smittsamhet. Dessa egenskaper kan skapa långsammare initial tillvaxt, superspridningshandelser och heterogena utbrottsmonster som en homogen modell inte fangar.',
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
type: 'paragraph',
|
|
309
|
+
html: 'Anvand simulatorn för att första mekanismer och jamfora scenarier, inte för att fatta medicinska, politiska eller krissbeslut. Verklig epidemibedomning kraver overvakningsdata, lokal kontext, osakerhetsanalys och specialistmodellering inom epidemiologi.',
|
|
310
|
+
},
|
|
311
|
+
],
|
|
312
|
+
faq,
|
|
313
|
+
bibliography,
|
|
314
|
+
howTo,
|
|
315
|
+
schemas: [
|
|
316
|
+
{
|
|
317
|
+
'@context': 'https://schema.org',
|
|
318
|
+
'@type': 'SoftwareApplication',
|
|
319
|
+
name: title,
|
|
320
|
+
description,
|
|
321
|
+
applicationCategory: 'ScientificApplication',
|
|
322
|
+
operatingSystem: 'Any',
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
'@context': 'https://schema.org',
|
|
326
|
+
'@type': 'FAQPage',
|
|
327
|
+
mainEntity: faq.map((item) => ({
|
|
328
|
+
'@type': 'Question',
|
|
329
|
+
name: item.question,
|
|
330
|
+
acceptedAnswer: {
|
|
331
|
+
'@type': 'Answer',
|
|
332
|
+
text: item.answer,
|
|
333
|
+
},
|
|
334
|
+
})),
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
'@context': 'https://schema.org',
|
|
338
|
+
'@type': 'HowTo',
|
|
339
|
+
name: title,
|
|
340
|
+
step: howTo.map((step) => ({
|
|
341
|
+
'@type': 'HowToStep',
|
|
342
|
+
name: step.name,
|
|
343
|
+
text: step.text,
|
|
344
|
+
})),
|
|
345
|
+
},
|
|
346
|
+
],
|
|
347
|
+
};
|