@jjlmoya/utils-science 1.50.0 → 1.52.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 (338) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/es.ts +3 -4
  3. package/src/category/i18n/fr.ts +2 -2
  4. package/src/category/i18n/it.ts +2 -2
  5. package/src/category/i18n/pt.ts +2 -2
  6. package/src/category/index.ts +25 -25
  7. package/src/components/PreviewNavSidebar.astro +1 -1
  8. package/src/components/PreviewToolbar.astro +1 -1
  9. package/src/data.ts +1 -1
  10. package/src/env.d.ts +1 -1
  11. package/src/layouts/PreviewLayout.astro +1 -1
  12. package/src/pages/index.astro +1 -1
  13. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  14. package/src/tests/category_seo_quality.test.ts +76 -0
  15. package/src/tests/faq_count.test.ts +19 -19
  16. package/src/tests/i18n_coverage.test.ts +36 -36
  17. package/src/tests/mocks/astro_mock.js +1 -1
  18. package/src/tests/no_h1_in_components.test.ts +1 -1
  19. package/src/tests/script_density.test.ts +94 -94
  20. package/src/tests/seo_length.test.ts +24 -24
  21. package/src/tests/seo_parity.test.ts +5 -5
  22. package/src/tests/seo_translation_completeness.test.ts +76 -0
  23. package/src/tests/seo_wellformed_export.test.ts +65 -0
  24. package/src/tests/spanish_leakage.test.ts +175 -153
  25. package/src/tool/asteroid-impact/component.astro +251 -251
  26. package/src/tool/asteroid-impact/helpers.ts +17 -17
  27. package/src/tool/asteroid-impact/i18n/de.ts +2 -2
  28. package/src/tool/asteroid-impact/i18n/en.ts +2 -2
  29. package/src/tool/asteroid-impact/i18n/es.ts +2 -2
  30. package/src/tool/asteroid-impact/i18n/fr.ts +2 -2
  31. package/src/tool/asteroid-impact/i18n/id.ts +2 -2
  32. package/src/tool/asteroid-impact/i18n/it.ts +2 -2
  33. package/src/tool/asteroid-impact/i18n/ja.ts +2 -2
  34. package/src/tool/asteroid-impact/i18n/ko.ts +2 -2
  35. package/src/tool/asteroid-impact/i18n/nl.ts +2 -2
  36. package/src/tool/asteroid-impact/i18n/pl.ts +2 -2
  37. package/src/tool/asteroid-impact/i18n/pt.ts +2 -2
  38. package/src/tool/asteroid-impact/i18n/ru.ts +2 -2
  39. package/src/tool/asteroid-impact/i18n/sv.ts +2 -2
  40. package/src/tool/asteroid-impact/i18n/tr.ts +2 -2
  41. package/src/tool/asteroid-impact/i18n/zh.ts +2 -2
  42. package/src/tool/asteroid-impact/script.ts +262 -262
  43. package/src/tool/asteroid-impact/seo.astro +15 -15
  44. package/src/tool/asteroid-impact/ui.ts +69 -69
  45. package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +249 -241
  46. package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +252 -247
  47. package/src/tool/black-hole-event-horizon-simulator/i18n/id.ts +259 -259
  48. package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +255 -252
  49. package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +254 -252
  50. package/src/tool/black-hole-event-horizon-simulator/i18n/ko.ts +258 -258
  51. package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +256 -252
  52. package/src/tool/black-hole-event-horizon-simulator/i18n/pl.ts +258 -258
  53. package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +256 -252
  54. package/src/tool/black-hole-event-horizon-simulator/i18n/ru.ts +258 -258
  55. package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +257 -252
  56. package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +256 -251
  57. package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +261 -252
  58. package/src/tool/cellular-renewal/component.astro +126 -126
  59. package/src/tool/cellular-renewal/i18n/de.ts +1 -1
  60. package/src/tool/cellular-renewal/i18n/en.ts +1 -1
  61. package/src/tool/cellular-renewal/i18n/es.ts +1 -1
  62. package/src/tool/cellular-renewal/i18n/fr.ts +1 -1
  63. package/src/tool/cellular-renewal/i18n/id.ts +1 -1
  64. package/src/tool/cellular-renewal/i18n/it.ts +1 -1
  65. package/src/tool/cellular-renewal/i18n/ja.ts +1 -1
  66. package/src/tool/cellular-renewal/i18n/ko.ts +1 -1
  67. package/src/tool/cellular-renewal/i18n/nl.ts +1 -1
  68. package/src/tool/cellular-renewal/i18n/pl.ts +1 -1
  69. package/src/tool/cellular-renewal/i18n/pt.ts +1 -1
  70. package/src/tool/cellular-renewal/i18n/ru.ts +1 -1
  71. package/src/tool/cellular-renewal/i18n/sv.ts +1 -1
  72. package/src/tool/cellular-renewal/i18n/tr.ts +1 -1
  73. package/src/tool/cellular-renewal/i18n/zh.ts +1 -1
  74. package/src/tool/cellular-renewal/seo.astro +15 -15
  75. package/src/tool/colony-counter/i18n/de.ts +1 -1
  76. package/src/tool/colony-counter/i18n/en.ts +1 -1
  77. package/src/tool/colony-counter/i18n/es.ts +1 -1
  78. package/src/tool/colony-counter/i18n/fr.ts +1 -1
  79. package/src/tool/colony-counter/i18n/id.ts +1 -1
  80. package/src/tool/colony-counter/i18n/it.ts +1 -1
  81. package/src/tool/colony-counter/i18n/ja.ts +1 -1
  82. package/src/tool/colony-counter/i18n/ko.ts +1 -1
  83. package/src/tool/colony-counter/i18n/nl.ts +1 -1
  84. package/src/tool/colony-counter/i18n/pl.ts +1 -1
  85. package/src/tool/colony-counter/i18n/pt.ts +1 -1
  86. package/src/tool/colony-counter/i18n/ru.ts +1 -1
  87. package/src/tool/colony-counter/i18n/sv.ts +1 -1
  88. package/src/tool/colony-counter/i18n/tr.ts +1 -1
  89. package/src/tool/colony-counter/i18n/zh.ts +1 -1
  90. package/src/tool/colony-counter/seo.astro +15 -15
  91. package/src/tool/conway-life-rule-lab/component.astro +1 -1
  92. package/src/tool/conway-life-rule-lab/i18n/de.ts +145 -141
  93. package/src/tool/conway-life-rule-lab/i18n/es.ts +146 -142
  94. package/src/tool/conway-life-rule-lab/i18n/fr.ts +146 -142
  95. package/src/tool/conway-life-rule-lab/i18n/id.ts +146 -145
  96. package/src/tool/conway-life-rule-lab/i18n/it.ts +146 -145
  97. package/src/tool/conway-life-rule-lab/i18n/ja.ts +146 -145
  98. package/src/tool/conway-life-rule-lab/i18n/ko.ts +146 -145
  99. package/src/tool/conway-life-rule-lab/i18n/nl.ts +147 -145
  100. package/src/tool/conway-life-rule-lab/i18n/pl.ts +147 -145
  101. package/src/tool/conway-life-rule-lab/i18n/pt.ts +147 -145
  102. package/src/tool/conway-life-rule-lab/i18n/ru.ts +147 -145
  103. package/src/tool/conway-life-rule-lab/i18n/sv.ts +147 -145
  104. package/src/tool/conway-life-rule-lab/i18n/tr.ts +147 -145
  105. package/src/tool/conway-life-rule-lab/i18n/zh.ts +147 -145
  106. package/src/tool/conway-life-rule-lab/logic/LifeLabRuntime.ts +2 -2
  107. package/src/tool/cosmic-inflation/i18n/ru.ts +105 -105
  108. package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +217 -217
  109. package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +1 -1
  110. package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +217 -217
  111. package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +217 -217
  112. package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +217 -217
  113. package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +217 -217
  114. package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +217 -217
  115. package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +217 -217
  116. package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +217 -217
  117. package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +217 -217
  118. package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +217 -217
  119. package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +217 -217
  120. package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +217 -217
  121. package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +217 -217
  122. package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +217 -217
  123. package/src/tool/double-slit-decoherence/i18n/de.ts +181 -181
  124. package/src/tool/double-slit-decoherence/i18n/fr.ts +180 -180
  125. package/src/tool/double-slit-decoherence/i18n/id.ts +181 -181
  126. package/src/tool/double-slit-decoherence/i18n/it.ts +180 -180
  127. package/src/tool/double-slit-decoherence/i18n/ja.ts +181 -181
  128. package/src/tool/double-slit-decoherence/i18n/ko.ts +181 -181
  129. package/src/tool/double-slit-decoherence/i18n/nl.ts +181 -181
  130. package/src/tool/double-slit-decoherence/i18n/pl.ts +181 -181
  131. package/src/tool/double-slit-decoherence/i18n/pt.ts +178 -174
  132. package/src/tool/double-slit-decoherence/i18n/ru.ts +180 -180
  133. package/src/tool/double-slit-decoherence/i18n/sv.ts +176 -172
  134. package/src/tool/double-slit-decoherence/i18n/tr.ts +180 -180
  135. package/src/tool/double-slit-decoherence/i18n/zh.ts +181 -181
  136. package/src/tool/dyson-sphere-energy-capture/component.astro +253 -253
  137. package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +194 -194
  138. package/src/tool/dyson-sphere-energy-capture/i18n/en.ts +6 -6
  139. package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
  140. package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +194 -194
  141. package/src/tool/dyson-sphere-energy-capture/i18n/id.ts +195 -195
  142. package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +194 -194
  143. package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +194 -190
  144. package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +194 -193
  145. package/src/tool/dyson-sphere-energy-capture/i18n/nl.ts +197 -197
  146. package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +168 -166
  147. package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +194 -193
  148. package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +195 -193
  149. package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +195 -193
  150. package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +168 -166
  151. package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +194 -193
  152. package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -347
  153. package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -347
  154. package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -347
  155. package/src/tool/epidemic-sir-simulator/i18n/it.ts +346 -346
  156. package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -347
  157. package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -347
  158. package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -347
  159. package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -347
  160. package/src/tool/exoplanet-biosignature-detector/i18n/de.ts +186 -186
  161. package/src/tool/exoplanet-biosignature-detector/i18n/en.ts +195 -195
  162. package/src/tool/exoplanet-biosignature-detector/i18n/es.ts +194 -194
  163. package/src/tool/exoplanet-biosignature-detector/i18n/fr.ts +183 -183
  164. package/src/tool/exoplanet-biosignature-detector/i18n/id.ts +193 -193
  165. package/src/tool/exoplanet-biosignature-detector/i18n/it.ts +194 -194
  166. package/src/tool/exoplanet-biosignature-detector/i18n/ja.ts +194 -194
  167. package/src/tool/exoplanet-biosignature-detector/i18n/ko.ts +194 -194
  168. package/src/tool/exoplanet-biosignature-detector/i18n/nl.ts +194 -194
  169. package/src/tool/exoplanet-biosignature-detector/i18n/pl.ts +144 -144
  170. package/src/tool/exoplanet-biosignature-detector/i18n/pt.ts +146 -146
  171. package/src/tool/exoplanet-biosignature-detector/i18n/ru.ts +143 -143
  172. package/src/tool/exoplanet-biosignature-detector/i18n/sv.ts +144 -144
  173. package/src/tool/exoplanet-biosignature-detector/i18n/tr.ts +145 -145
  174. package/src/tool/exoplanet-biosignature-detector/i18n/zh.ts +194 -194
  175. package/src/tool/global-albedo-snowball-simulator/component.astro +1 -1
  176. package/src/tool/global-albedo-snowball-simulator/i18n/de.ts +169 -169
  177. package/src/tool/global-albedo-snowball-simulator/i18n/fr.ts +169 -169
  178. package/src/tool/global-albedo-snowball-simulator/i18n/id.ts +169 -169
  179. package/src/tool/global-albedo-snowball-simulator/i18n/it.ts +87 -87
  180. package/src/tool/global-albedo-snowball-simulator/i18n/ja.ts +87 -87
  181. package/src/tool/global-albedo-snowball-simulator/i18n/ko.ts +169 -169
  182. package/src/tool/global-albedo-snowball-simulator/i18n/nl.ts +169 -169
  183. package/src/tool/global-albedo-snowball-simulator/i18n/pl.ts +169 -169
  184. package/src/tool/global-albedo-snowball-simulator/i18n/pt.ts +169 -169
  185. package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +165 -161
  186. package/src/tool/global-albedo-snowball-simulator/i18n/sv.ts +169 -169
  187. package/src/tool/global-albedo-snowball-simulator/i18n/tr.ts +169 -169
  188. package/src/tool/global-albedo-snowball-simulator/i18n/zh.ts +169 -169
  189. package/src/tool/lorenz-attractor/i18n/de.ts +144 -143
  190. package/src/tool/lorenz-attractor/i18n/fr.ts +144 -144
  191. package/src/tool/lorenz-attractor/i18n/id.ts +149 -149
  192. package/src/tool/lorenz-attractor/i18n/it.ts +149 -149
  193. package/src/tool/lorenz-attractor/i18n/ja.ts +149 -149
  194. package/src/tool/lorenz-attractor/i18n/ko.ts +149 -149
  195. package/src/tool/lorenz-attractor/i18n/nl.ts +149 -149
  196. package/src/tool/lorenz-attractor/i18n/pl.ts +149 -149
  197. package/src/tool/lorenz-attractor/i18n/pt.ts +142 -141
  198. package/src/tool/lorenz-attractor/i18n/ru.ts +149 -149
  199. package/src/tool/lorenz-attractor/i18n/sv.ts +149 -149
  200. package/src/tool/lorenz-attractor/i18n/tr.ts +149 -149
  201. package/src/tool/lorenz-attractor/i18n/zh.ts +149 -149
  202. package/src/tool/mandelbrot-fractal/i18n/de.ts +158 -158
  203. package/src/tool/mandelbrot-fractal/i18n/fr.ts +158 -158
  204. package/src/tool/mandelbrot-fractal/i18n/id.ts +159 -159
  205. package/src/tool/mandelbrot-fractal/i18n/it.ts +155 -151
  206. package/src/tool/mandelbrot-fractal/i18n/ja.ts +159 -159
  207. package/src/tool/mandelbrot-fractal/i18n/ko.ts +159 -159
  208. package/src/tool/mandelbrot-fractal/i18n/nl.ts +159 -159
  209. package/src/tool/mandelbrot-fractal/i18n/pl.ts +157 -153
  210. package/src/tool/mandelbrot-fractal/i18n/pt.ts +158 -158
  211. package/src/tool/mandelbrot-fractal/i18n/ru.ts +159 -159
  212. package/src/tool/mandelbrot-fractal/i18n/sv.ts +159 -150
  213. package/src/tool/mandelbrot-fractal/i18n/tr.ts +159 -159
  214. package/src/tool/mandelbrot-fractal/i18n/zh.ts +159 -159
  215. package/src/tool/microwave-detector/component.astro +238 -238
  216. package/src/tool/microwave-detector/i18n/de.ts +1 -1
  217. package/src/tool/microwave-detector/i18n/en.ts +1 -1
  218. package/src/tool/microwave-detector/i18n/es.ts +1 -1
  219. package/src/tool/microwave-detector/i18n/fr.ts +1 -1
  220. package/src/tool/microwave-detector/i18n/id.ts +1 -1
  221. package/src/tool/microwave-detector/i18n/it.ts +1 -1
  222. package/src/tool/microwave-detector/i18n/ja.ts +1 -1
  223. package/src/tool/microwave-detector/i18n/ko.ts +1 -1
  224. package/src/tool/microwave-detector/i18n/nl.ts +1 -1
  225. package/src/tool/microwave-detector/i18n/pl.ts +1 -1
  226. package/src/tool/microwave-detector/i18n/pt.ts +1 -1
  227. package/src/tool/microwave-detector/i18n/ru.ts +1 -1
  228. package/src/tool/microwave-detector/i18n/sv.ts +1 -1
  229. package/src/tool/microwave-detector/i18n/tr.ts +1 -1
  230. package/src/tool/microwave-detector/i18n/zh.ts +1 -1
  231. package/src/tool/microwave-detector/seo.astro +15 -15
  232. package/src/tool/natural-selection-drift/component.astro +135 -135
  233. package/src/tool/natural-selection-drift/i18n/de.ts +164 -160
  234. package/src/tool/natural-selection-drift/i18n/fr.ts +204 -204
  235. package/src/tool/natural-selection-drift/i18n/id.ts +156 -154
  236. package/src/tool/natural-selection-drift/i18n/it.ts +197 -193
  237. package/src/tool/natural-selection-drift/i18n/ja.ts +155 -154
  238. package/src/tool/natural-selection-drift/i18n/ko.ts +155 -154
  239. package/src/tool/natural-selection-drift/i18n/nl.ts +164 -163
  240. package/src/tool/natural-selection-drift/i18n/pl.ts +168 -166
  241. package/src/tool/natural-selection-drift/i18n/pt.ts +200 -195
  242. package/src/tool/natural-selection-drift/i18n/ru.ts +186 -184
  243. package/src/tool/natural-selection-drift/i18n/sv.ts +157 -154
  244. package/src/tool/natural-selection-drift/i18n/tr.ts +186 -184
  245. package/src/tool/natural-selection-drift/i18n/zh.ts +160 -154
  246. package/src/tool/natural-selection-drift/natural-selection-drift.css +563 -563
  247. package/src/tool/phase-diagram-critical-points/i18n/de.ts +178 -178
  248. package/src/tool/phase-diagram-critical-points/i18n/fr.ts +178 -178
  249. package/src/tool/phase-diagram-critical-points/i18n/id.ts +179 -179
  250. package/src/tool/phase-diagram-critical-points/i18n/it.ts +179 -179
  251. package/src/tool/phase-diagram-critical-points/i18n/ja.ts +179 -179
  252. package/src/tool/phase-diagram-critical-points/i18n/ko.ts +179 -179
  253. package/src/tool/phase-diagram-critical-points/i18n/nl.ts +179 -179
  254. package/src/tool/phase-diagram-critical-points/i18n/pl.ts +179 -179
  255. package/src/tool/phase-diagram-critical-points/i18n/pt.ts +179 -179
  256. package/src/tool/phase-diagram-critical-points/i18n/ru.ts +179 -179
  257. package/src/tool/phase-diagram-critical-points/i18n/sv.ts +179 -179
  258. package/src/tool/phase-diagram-critical-points/i18n/tr.ts +179 -179
  259. package/src/tool/phase-diagram-critical-points/i18n/zh.ts +179 -179
  260. package/src/tool/planet-atmosphere-survival/i18n/de.ts +255 -255
  261. package/src/tool/planet-atmosphere-survival/i18n/fr.ts +255 -255
  262. package/src/tool/planet-atmosphere-survival/i18n/id.ts +255 -255
  263. package/src/tool/planet-atmosphere-survival/i18n/it.ts +255 -255
  264. package/src/tool/planet-atmosphere-survival/i18n/ja.ts +255 -255
  265. package/src/tool/planet-atmosphere-survival/i18n/ko.ts +255 -255
  266. package/src/tool/planet-atmosphere-survival/i18n/nl.ts +255 -255
  267. package/src/tool/planet-atmosphere-survival/i18n/pl.ts +255 -255
  268. package/src/tool/planet-atmosphere-survival/i18n/pt.ts +255 -255
  269. package/src/tool/planet-atmosphere-survival/i18n/ru.ts +227 -223
  270. package/src/tool/planet-atmosphere-survival/i18n/sv.ts +255 -255
  271. package/src/tool/planet-atmosphere-survival/i18n/tr.ts +255 -255
  272. package/src/tool/planet-atmosphere-survival/i18n/zh.ts +255 -255
  273. package/src/tool/radioactive-decay/i18n/de.ts +168 -164
  274. package/src/tool/radioactive-decay/i18n/fr.ts +76 -75
  275. package/src/tool/radioactive-decay/i18n/id.ts +169 -165
  276. package/src/tool/radioactive-decay/i18n/it.ts +76 -74
  277. package/src/tool/radioactive-decay/i18n/ja.ts +168 -167
  278. package/src/tool/radioactive-decay/i18n/ko.ts +168 -167
  279. package/src/tool/radioactive-decay/i18n/nl.ts +170 -168
  280. package/src/tool/radioactive-decay/i18n/pl.ts +170 -168
  281. package/src/tool/radioactive-decay/i18n/pt.ts +169 -167
  282. package/src/tool/radioactive-decay/i18n/ru.ts +170 -168
  283. package/src/tool/radioactive-decay/i18n/sv.ts +170 -168
  284. package/src/tool/radioactive-decay/i18n/tr.ts +171 -168
  285. package/src/tool/radioactive-decay/i18n/zh.ts +171 -167
  286. package/src/tool/roche-limit-satellite-disruption/i18n/de.ts +241 -241
  287. package/src/tool/roche-limit-satellite-disruption/i18n/fr.ts +241 -241
  288. package/src/tool/roche-limit-satellite-disruption/i18n/id.ts +241 -241
  289. package/src/tool/roche-limit-satellite-disruption/i18n/it.ts +241 -241
  290. package/src/tool/roche-limit-satellite-disruption/i18n/ja.ts +241 -241
  291. package/src/tool/roche-limit-satellite-disruption/i18n/ko.ts +241 -241
  292. package/src/tool/roche-limit-satellite-disruption/i18n/nl.ts +241 -241
  293. package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +237 -229
  294. package/src/tool/roche-limit-satellite-disruption/i18n/pt.ts +241 -241
  295. package/src/tool/roche-limit-satellite-disruption/i18n/ru.ts +241 -241
  296. package/src/tool/roche-limit-satellite-disruption/i18n/sv.ts +241 -241
  297. package/src/tool/roche-limit-satellite-disruption/i18n/tr.ts +241 -241
  298. package/src/tool/roche-limit-satellite-disruption/i18n/zh.ts +241 -241
  299. package/src/tool/simulation-probability/component.astro +138 -138
  300. package/src/tool/simulation-probability/i18n/de.ts +1 -1
  301. package/src/tool/simulation-probability/i18n/en.ts +1 -1
  302. package/src/tool/simulation-probability/i18n/es.ts +1 -1
  303. package/src/tool/simulation-probability/i18n/fr.ts +1 -1
  304. package/src/tool/simulation-probability/i18n/id.ts +1 -1
  305. package/src/tool/simulation-probability/i18n/it.ts +1 -1
  306. package/src/tool/simulation-probability/i18n/ja.ts +1 -1
  307. package/src/tool/simulation-probability/i18n/ko.ts +1 -1
  308. package/src/tool/simulation-probability/i18n/nl.ts +1 -1
  309. package/src/tool/simulation-probability/i18n/pl.ts +1 -1
  310. package/src/tool/simulation-probability/i18n/pt.ts +1 -1
  311. package/src/tool/simulation-probability/i18n/ru.ts +1 -1
  312. package/src/tool/simulation-probability/i18n/sv.ts +1 -1
  313. package/src/tool/simulation-probability/i18n/tr.ts +1 -1
  314. package/src/tool/simulation-probability/i18n/zh.ts +1 -1
  315. package/src/tool/simulation-probability/seo.astro +15 -15
  316. package/src/tool/stellar-habitability-zone/i18n/ru.ts +189 -189
  317. package/src/tool/temperature-timeline/i18n/de.ts +2 -1
  318. package/src/tool/temperature-timeline/i18n/fr.ts +177 -177
  319. package/src/tool/temperature-timeline/i18n/it.ts +142 -141
  320. package/src/tool/temperature-timeline/i18n/pt.ts +3 -1
  321. package/src/tool/temperature-timeline/i18n/ru.ts +116 -114
  322. package/src/tool/three-body-problem/app.ts +4 -4
  323. package/src/tool/three-body-problem/component.astro +6 -6
  324. package/src/tool/twin-paradox-visualizer/i18n/de.ts +168 -168
  325. package/src/tool/twin-paradox-visualizer/i18n/es.ts +165 -165
  326. package/src/tool/twin-paradox-visualizer/i18n/fr.ts +168 -168
  327. package/src/tool/twin-paradox-visualizer/i18n/id.ts +168 -168
  328. package/src/tool/twin-paradox-visualizer/i18n/it.ts +168 -168
  329. package/src/tool/twin-paradox-visualizer/i18n/ja.ts +168 -168
  330. package/src/tool/twin-paradox-visualizer/i18n/ko.ts +168 -168
  331. package/src/tool/twin-paradox-visualizer/i18n/nl.ts +168 -168
  332. package/src/tool/twin-paradox-visualizer/i18n/pl.ts +168 -168
  333. package/src/tool/twin-paradox-visualizer/i18n/pt.ts +164 -160
  334. package/src/tool/twin-paradox-visualizer/i18n/ru.ts +168 -168
  335. package/src/tool/twin-paradox-visualizer/i18n/sv.ts +168 -168
  336. package/src/tool/twin-paradox-visualizer/i18n/tr.ts +168 -168
  337. package/src/tool/twin-paradox-visualizer/i18n/zh.ts +168 -168
  338. 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 = 'epidemie-sir-simulator';
5
- const title = 'Epidemie SIR simulator';
6
- const description = 'Ontdek hoe een ziekteverwekker zich verspreidt met een interactief SIR-model dat R0, dodelijkheid, vaccinatie, infectieuze periode, piekbelasting en transmissiecurves in realtime aanpast.';
7
-
8
- const howTo = [
9
- {
10
- name: 'Stel het reproductiegetal in',
11
- text: 'Verplaats de R0-schuifknop om in te stellen hoeveel secundaire infecties een besmettelijk persoon veroorzaakt in een volledig vatbare populatie.',
12
- },
13
- {
14
- name: 'Voeg vaccinatie en vaccinwerkzaamheid toe',
15
- text: 'Verhoog de vaccinatiegraad of werkzaamheid om beschermde personen uit de vatbare groep te verwijderen en het effectieve reproductiegetal te verlagen.',
16
- },
17
- {
18
- name: 'Pas dodelijkheid en infectieduur aan',
19
- text: 'Wijzig het dodelijkheidspercentage en het aantal besmettelijke dagen om te zien hoe ernstige uitkomsten en het verloop van de curve reageren.',
20
- },
21
- {
22
- name: 'Lees de SIR-curves',
23
- text: 'Gebruik de grafiek en de daginspectie om vatbare, geïnfecteerde, herstelde en geschatte sterftecurves te vergelijken tijdens de gesimuleerde uitbraak.',
24
- },
25
- ];
26
-
27
- const faq = [
28
- {
29
- question: 'Wat laat een SIR-model zien?',
30
- answer: 'Een SIR-model verdeelt een populatie in vatbare, geïnfecteerde en herstelde groepen. Het schat hoe mensen in de loop van de tijd tussen deze groepen bewegen terwijl transmissie en herstel plaatsvinden.',
31
- },
32
- {
33
- question: 'Hoe verandert vaccinatie de curve?',
34
- answer: 'Vaccinatie vermindert de vatbare populatie wanneer het infectie voorkomt. In deze simulator verlaagt effectieve vaccinatie het effectieve reproductiegetal en kan de infectiepiek worden verkleind of uitgesteld.',
35
- },
36
- {
37
- question: 'Is R0 hetzelfde als Re?',
38
- answer: 'Nee. R0 beschrijft verspreiding in een volledig vatbare populatie. Re is het effectieve reproductiegetal nadat immuniteit, vaccinatie of gedragsveranderingen het aantal mensen dat geïnfecteerd kan worden hebben verminderd.',
39
- },
40
- {
41
- question: 'Waarom stijgt en daalt de geïnfecteerdencurve?',
42
- answer: 'De geïnfecteerdencurve daalt wanneer elke besmettelijke persoon minder nieuwe infecties genereert dan het aantal mensen dat de geïnfecteerde groep verlaat door herstel of sterfte. Uitputting van de vatbare groep is de belangrijkste drijfveer in een basis SIR-model.',
43
- },
44
- {
45
- question: 'Kan dit een echte epidemie voorspellen?',
46
- answer: 'Het is een leer- en scenariotool, geen voorspelling. Echte uitbraken hebben leeftijdsstructuur, contactnetwerken, geografie, rapportagevertragingen, veranderend gedrag, varianten, afnemende immuniteit en gekalibreerde data nodig.',
47
- },
48
- {
49
- question: 'Wat is het verschil tussen attack rate en piek geïnfecteerden?',
50
- answer: 'Attack rate meet het totale aandeel van de populatie dat ooit is geïnfecteerd aan het einde van de uitbraak. Piek geïnfecteerden meet het maximale aantal mensen dat tegelijkertijd besmettelijk is. Een lage piek garandeert geen lage attack rate en vice versa.',
51
- },
52
- {
53
- question: 'Wat betekent Re onder 1 visueel?',
54
- answer: 'Wanneer Re onder 1 zakt, genereert elke besmettelijke persoon gemiddeld minder dan een nieuwe infectie. In de grafiek stijgt de geïnfecteerdencurve nooit steil en kan vanaf de start direct dalen, wat betekent dat de uitbraak zichzelf niet in stand kan houden.',
55
- },
56
- {
57
- question: 'Hoe beïnvloedt de infectieuze periode de uitbraak?',
58
- answer: 'Een langere infectieuze periode verlengt de tijd waarin elke geïnfecteerde persoon de ziekteverwekker kan overdragen. Dit rekt de tijdlijn van de uitbraak, stelt de piek uit en kan bij dezelfde R0 een bredere curve met een lagere piekhoogte produceren.',
59
- },
60
- {
61
- question: 'Waarom verandert dodelijkheid de geïnfecteerdencurve niet?',
62
- answer: 'In dit SIR-model beïnvloedt dodelijkheid alleen het sterftecijfer dat aftakt van de herstelde groep. Het heeft geen terugkoppeling naar transmissie omdat sterfgevallen en herstel beide mensen uit de infectieuze groep verwijderen in hetzelfde tempo.',
63
- },
64
- {
65
- question: 'Wat is de groepsimmuniteitsdrempel?',
66
- answer: 'De groepsimmuniteitsdrempel is het deel van de populatie dat immuun moet zijn om Re onder 1 te krijgen. Het wordt benaderd als 1 - 1/R0. Voor mazelen met een R0 rond 12 is de drempel meer dan 91%. Voor seizoensgriep met een R0 rond 1,3 is de drempel bijna 23%.',
67
- },
68
- ];
69
-
70
- export const content: ToolLocaleContent = {
71
- slug,
72
- title,
73
- description,
74
- ui: {
75
- liveScenario: 'Live epidemie scenario',
76
- curveChart: 'SIR-transmissiecurves',
77
- inspectDay: 'Inspecteer simulatie dag',
78
- legend: 'Curvelegenda',
79
- susceptible: 'Vatbaar',
80
- infected: 'Geïnfecteerd',
81
- recovered: 'Hersteld of immuun',
82
- deaths: 'Sterfgevallen',
83
- controls: 'Epidemie-instellingen',
84
- modelName: 'Compartmentmodel',
85
- peakInfected: 'Piek geïnfecteerden',
86
- peakDay: 'Piekdag',
87
- attackRate: 'Attack rate',
88
- estimatedDeaths: 'Geschatte sterfgevallen',
89
- r0: 'Basaal reproductiegetal R0',
90
- lethality: 'Dodelijkheid',
91
- vaccination: 'Vaccinatiegraad',
92
- vaccineEffectiveness: 'Vaccinwerkzaamheid',
93
- infectiousDays: 'Infectieuze periode',
94
- initialInfected: 'Initiële geïnfecteerden',
95
- dayLabel: 'Dag',
96
- daysUnit: 'dagen',
97
- infectiousLabel: 'besmettelijk',
98
- reLabel: 'Re',
99
- },
100
- seo: [
101
- {
102
- type: 'title',
103
- text: 'Epidemie SIR simulator voor R0, vaccinatie, dodelijkheid en transmissiecurves',
104
- level: 2,
105
- },
106
- {
107
- type: 'paragraph',
108
- html: 'Deze epidemie SIR-simulator laat zien hoe een ziekteverwekker zich door een populatie verspreidt wanneer vatbare mensen geïnfecteerd raken en de infectieuze groep verlaten door herstel of sterfte. Het is ontworpen voor studenten, wetenschapscommunicators, volksgezondheidsleerlingen en iedereen die snel visueel inzicht wil krijgen in waarom kleine veranderingen in transmissie of immuniteit een uitbraak kunnen hervormen.',
109
- },
110
- {
111
- type: 'paragraph',
112
- html: 'De interactieve instellingen richten zich op de variabelen die mensen het vaakst willen testen: <strong>R0</strong>, dodelijkheid, vaccinatiegraad, vaccinwerkzaamheid, infectieduur en het initiële percentage geïnfecteerden. De grafiek wordt direct bijgewerkt zodat de vatbare, geïnfecteerde, herstelde, immuune en sterftecurves als een samenhangend epidemisch systeem kunnen worden vergeleken.',
113
- },
114
- {
115
- type: 'title',
116
- text: 'Hoe het SIR-model werkt',
117
- level: 3,
118
- },
119
- {
120
- type: 'paragraph',
121
- html: 'Een basis SIR-model verdeelt de populatie in drie hoofdcompartimenten. <strong>S</strong> zijn vatbare mensen die nog geïnfecteerd kunnen worden. <strong>I</strong> zijn momenteel besmettelijke mensen die de ziekteverwekker kunnen overdragen. <strong>R</strong> zijn mensen die niet langer besmettelijk zijn omdat ze hersteld zijn, immuniteit hebben verworven of anderszins uit de transmissieketen zijn verwijderd. Deze simulator houdt ook geschatte sterfgevallen bij als een ernstige uitkomsttak van de groep die de infectie verlaat.',
122
- },
123
- {
124
- type: 'paragraph',
125
- html: 'De transmissiesnelheid is gekoppeld aan R0 en de infectieuze periode. Als R0 hoog is of mensen langer besmettelijk blijven, worden er meer nieuwe infecties gegenereerd voordat de geïnfecteerde groep krimpt. Als vaccinatie voldoende mensen uit de vatbare groep verwijdert, daalt het effectieve reproductiegetal en kan de uitbraakpiek veel kleiner worden.',
126
- },
127
- {
128
- type: 'table',
129
- headers: ['Instelling', 'Wat het verandert', 'Typisch curve-effect'],
130
- rows: [
131
- ['R0', 'Transmissiepotentieel voordat immuniteit wordt meegerekend', 'Hogere R0 laat de geïnfecteerdencurve sneller stijgen en hoger pieken.'],
132
- ['Vaccinatiegraad', 'Aandeel mensen dat uit de vatbare groep wordt verwijderd wanneer beschermd', 'Hogere graad verlaagt Re en kan de uitbraak afvlakken.'],
133
- ['Vaccinwerkzaamheid', 'Hoezeer vaccinatie infectie voorkomt in dit vereenvoudigde model', 'Hogere werkzaamheid maakt dezelfde vaccinatiegraad beschermender.'],
134
- ['Infectieuze periode', 'Gemiddelde tijd dat mensen besmettelijk blijven', 'Langere infectie verandert de timing en kan de uitbraak verlengen.'],
135
- ['Dodelijkheid', 'Aandeel mensen dat de infectie verlaat en als overleden wordt geteld', 'Hogere dodelijkheid verhoogt de sterftecurve zonder direct de transmissie te verhogen.'],
136
- ],
137
- },
138
- {
139
- type: 'title',
140
- text: 'R0, Re en groepsimmuniteit inzichtelijk',
141
- level: 3,
142
- },
143
- {
144
- type: 'paragraph',
145
- html: 'R0 is het gemiddelde aantal secundaire gevallen veroorzaakt door een besmettelijk persoon in een volledig vatbare populatie. Re, het effectieve reproductiegetal, is lager wanneer sommige mensen al immuun, gevaccineerd, geïsoleerd of anderszins niet beschikbaar zijn voor infectie. In deze simulator vermindert effectieve vaccinatie de vatbaarheid direct, zodat de weergegeven Re daalt naarmate de beschermde dekking stijgt.',
146
- },
147
- {
148
- type: 'paragraph',
149
- html: 'Een veelgebruikte benadering voor groepsimmuniteit is <strong>1 - 1 / R0</strong>. Bij een R0 van 3 ligt de drempel op ongeveer 66,7% effectieve immuniteit. De simulator maakt deze drempel tastbaar: wanneer effectieve vaccinatie onder de drempel ligt, kunnen uitbraken nog groeien; wanneer deze erboven ligt, kan transmissie zich moeilijk handhaven.',
150
- },
151
- {
152
- type: 'title',
153
- text: 'Wat het piekcijfer van geïnfecteerden betekent',
154
- level: 3,
155
- },
156
- {
157
- type: 'paragraph',
158
- html: 'Piek geïnfecteerden is het maximale aantal mensen dat gelijktijdig besmettelijk is in de gesimuleerde populatie. Het is vaak operationeel belangrijker dan het totale aantal infecties omdat ziekenhuizen, laboratoria, isolatieprogramma\'s en contactonderzoeksteams druk ervaren door gelijktijdige actieve gevallen. Het verlagen van de piek kan belangrijk zijn, zelfs wanneer de uiteindelijke attack rate niet tot nul wordt teruggebracht.',
159
- },
160
- {
161
- type: 'paragraph',
162
- html: 'De attack rate schat het aandeel van de totale populatie dat geïnfecteerd is aan het einde van de simulatie. Een hoge attack rate betekent dat de ziekteverwekker veel mensen heeft bereikt voordat de vatbaarheid was uitgeput of onder controle gebracht. Een lage attack rate betekent dat immuniteit, vaccinatie of zwakke transmissie wijdverspreide verspreiding heeft voorkomen.',
163
- },
164
- {
165
- type: 'title',
166
- text: 'R0-waarden uit de praktijk en wat ze betekenen voor groepsimmuniteit',
167
- level: 3,
168
- },
169
- {
170
- type: 'paragraph',
171
- html: 'Het basale reproductiegetal R0 is geen vaste biologische constante voor een ziekteverwekker. Het hangt af van contactpatronen, bevolkingsdichtheid, culturele gewoonten en omgevingsfactoren. Hetzelfde virus kan verschillende R0-waarden hebben in een dichte stad versus een landelijk gebied, of in een seizoen met meer binnenruimte. De onderstaande waarden zijn illustratieve referentiebereiken uit gepubliceerde studies.',
172
- },
173
- {
174
- type: 'table',
175
- headers: ['Ziekteverwekker', 'Typisch R0-bereik', 'Groepsimmuniteitsdrempel (1 - 1/R0)', 'Belangrijkste transmissiekenmerk'],
176
- rows: [
177
- ['Seizoensgriep', '1,2 - 1,4', '17% - 29%', 'Korte infectieuze periode, seizoensvariatie'],
178
- ['SARS-CoV-2 (ancestraal)', '2,0 - 3,0', '50% - 67%', 'Pre-symptomatische transmissie, aerosolroutes'],
179
- ['SARS-CoV-2 (Delta)', '5,0 - 8,0', '80% - 87%', 'Verhoogde virale lading, snellere verspreiding'],
180
- ['SARS-CoV-2 (Omicron)', '8,0 - 12,0', '87% - 92%', 'Immuunevasion, bovenste luchtwegtropisme'],
181
- ['Polio', '5,0 - 7,0', '80% - 86%', 'Fecaal-orale route, lange asymptomatische uitscheiding'],
182
- ['Pokken', '5,0 - 7,0', '80% - 86%', 'Uitgeroeid door wereldwijde vaccinatiecampagne'],
183
- ['Mazelen', '12,0 - 18,0', '92% - 94%', 'Extreem besmettelijk, luchtgedragen, lange infectieuze periode'],
184
- ['Kinkhoest', '12,0 - 17,0', '92% - 94%', 'Afnemende immuniteit laat herhaalde infecties toe'],
185
- ],
186
- },
187
- {
188
- type: 'paragraph',
189
- html: 'Een hoge groepsimmuniteitsdrempel betekent niet automatisch dat vaccinatie zinloos is wanneer de dekking onder de drempel ligt. Zelfs gedeeltelijke immuniteit vertraagt transmissie, verlaagt de piek, vermindert ernstige uitkomsten en koopt tijd voor de gezondheidszorg. De simulator laat dit effect zien wanneer u de vaccinatieschuifknop door tussenliggende waarden beweegt.',
190
- },
191
- {
192
- type: 'title',
193
- text: 'Hoe het effectieve reproductiegetal Re verandert tijdens een uitbraak',
194
- level: 3,
195
- },
196
- {
197
- type: 'paragraph',
198
- html: 'Re is het effectieve reproductiegetal op een bepaald punt in de uitbraak. In tegenstelling tot R0, dat uitgaat van een volledig vatbare populatie, houdt Re rekening met immuniteit, vaccinatie en alle andere factoren die de vatbaarheid verminderen. In deze simulator wordt Re berekend als <strong>R0 x (1 - beschermde fractie)</strong>, waarbij de beschermde fractie het aandeel van de populatie is dat door vaccinatie effectief immuun is.',
199
- },
200
- {
201
- type: 'paragraph',
202
- html: 'De Re-waarde in de simulatorheader wordt bijgewerkt wanneer u de instellingen wijzigt. Wanneer Re boven 1 blijft, groeit de uitbraak. Wanneer Re onder 1 zakt, genereert elke geïnfecteerde persoon gemiddeld minder dan een nieuwe infectie en kan de epidemie zichzelf niet in stand houden. Dit is het kerninzicht achter epidemiebestrijding: Re onder 1 brengen en houden door immuniteit, gedrag of interventies.',
203
- },
204
- {
205
- type: 'title',
206
- text: 'Attack rate, piekbelasting en wat ze onthullen over uitbraakernst',
207
- level: 3,
208
- },
209
- {
210
- type: 'paragraph',
211
- html: 'De attack rate is het deel van de totale populatie dat gedurende de gehele gesimuleerde uitbraak is geïnfecteerd. Het is de meest gebruikte samenvattende maat na een epidemische golf. Een hoge attack rate betekent dat de ziekteverwekker de meeste vatbare mensen heeft geïnfecteerd voordat uitputting of controle de transmissie stopte. Een lage attack rate betekent dat immuniteit, vaccinatie of inherent zwakke transmissie wijdverspreide infectie heeft voorkomen.',
212
- },
213
- {
214
- type: 'paragraph',
215
- html: 'Piek geïnfecteerden - het maximale aantal mensen dat gelijktijdig besmettelijk is - is belangrijker voor de druk op de gezondheidszorg op korte termijn. Een golf met een matige attack rate maar een zeer hoge, scherpe piek kan ziekenhuizen overweldigen, zelfs als het totale aantal gevallen niet extreem is. Omgekeerd kan een langzame, afgeplatte curve een vergelijkbare attack rate hebben die over vele weken is gespreid, waardoor het gezondheidssysteem de tijd heeft om gevallen te behandelen. Dit is waarom volksgezondheidsfunctionarissen <strong>de curve afvlakken</strong> benadrukken als een operationeel doel dat losstaat van het voorkomen van alle infecties.',
216
- },
217
- {
218
- type: 'title',
219
- text: 'Curve afvlakken en zorgcapaciteit in het SIR-model',
220
- level: 3,
221
- },
222
- {
223
- type: 'paragraph',
224
- html: 'De geïnfecteerdencurve in een SIR-model kan worden geïnterpreteerd als het aantal mensen dat gelijktijdig zorg nodig heeft. In een echte epidemie doet elke persoon die een ziekenhuisbed, zuurstofondersteuning of intensive care nodig heeft een beroep op een beperkte hoeveelheid middelen. Wanneer de geïnfecteerdencurve hoger stijgt dan de beschikbare capaciteit, neemt de sterfte door alle oorzaken toe omdat het systeem geen adequate zorg kan bieden.',
225
- },
226
- {
227
- type: 'paragraph',
228
- html: 'Vaccinatie vlakt in dit model de curve af door mensen uit de vatbare groep te verwijderen voordat ze geïnfecteerd kunnen raken. Het verlagen van R0 door andere maatregelen - mondkapjes, ventilatie, afstand houden, testen, isolatie - zou ook de piek verlagen in een uitgebreider model. De simulatie maakt het mechanisme zichtbaar: naarmate de effectieve vaccinatiegraad stijgt, krimpt de piek, verschuift naar later of verdwijnt volledig.',
229
- },
230
- {
231
- type: 'title',
232
- text: 'De wiskunde achter het SIR-model gevisualiseerd',
233
- level: 3,
234
- },
235
- {
236
- type: 'paragraph',
237
- html: 'In het SIR-model hangt het aantal nieuwe infecties per tijdstap af van drie grootheden: de transmissiesnelheid <strong>beta</strong>, het huidige aantal besmettelijke mensen <strong>I</strong> en de fractie van de effectieve populatie die nog vatbaar is <strong>S / N</strong>. Het product <strong>beta x I x S / N</strong> wordt de infectiedruk genoemd. Elke dag bepaalt deze druk hoeveel vatbare mensen naar het geïnfecteerde compartiment verhuizen.',
238
- },
239
- {
240
- type: 'paragraph',
241
- html: 'Mensen verlaten het geïnfecteerde compartiment met de herstelsnelheid <strong>gamma = 1 / infectieuze periode</strong>. De balans tussen de infectiedruk en de herstelsnelheid bepaalt of de epidemie groeit of krimpt. Wanneer beta x S / N groter is dan gamma, overtreffen nieuwe infecties het herstel en breidt de uitbraak zich uit. Wanneer de vatbare fractie S / N voldoende is gedaald, domineert gamma en trekt de uitbraak samen.',
242
- },
243
- {
244
- type: 'paragraph',
245
- html: 'De parameter <strong>beta</strong> is niet direct zichtbaar in de interface. In plaats daarvan wordt deze afgeleid van R0 en de infectieuze periode via de relatie <strong>beta = R0 x gamma</strong>. Daarom produceert het wijzigen van R0 of de infectieuze periode vergelijkbare maar niet identieke curvevormen. Beide parameters beïnvloeden de infectiedruk, maar de infectieuze periode rekt ook de tijdas van de uitbraak uit.',
246
- },
247
- {
248
- type: 'title',
249
- text: 'Hoe deze simulator te gebruiken voor leren en lesgeven',
250
- level: 3,
251
- },
252
- {
253
- type: 'list',
254
- items: [
255
- '<strong>Vergelijk hoge versus lage R0-scenario\'s:</strong> stel R0 in op 1,5 (seizoensgriepbereik) en vervolgens op 6,0 (pre-vaccinatie poliobereik). Merk op hoe piekhoogte, piektiming en attack rate veranderen, zelfs wanneer alle andere instellingen identiek zijn.',
256
- '<strong>Verken de groepsimmuniteitsdrempel:</strong> begin met R0 op 3,0 en geen vaccinatie. Noteer de attack rate. Voeg vervolgens vaccinatiegraad toe tot Re onder 1 zakt. Vergelijk de piek en attack rate bij vaccinatiegraad net onder en net boven de drempel.',
257
- '<strong>Test het effect van langzame versus snelle respons:</strong> stel de vaccinatiegraad op verschillende niveaus in en observeer wanneer de piek optreedt. Een hogere graad vermindert niet alleen de piekhoogte, maar stelt deze meestal uit, wat tijd koopt voor voorbereiding van de gezondheidszorg.',
258
- '<strong>Scheid dodelijkheid van transmissie:</strong> stel dodelijkheid in op 0% en observeer de geïnfecteerdencurve. Stel dodelijkheid vervolgens in op 10% zonder andere instellingen te wijzigen. De geïnfecteerdencurve verandert niet, maar het dodental stijgt. Dit toont aan waarom het case-fatality rate en de transmissiesnelheid verschillende epidemiologische dimensies zijn.',
259
- '<strong>Onderzoek het effect van de infectieuze periode:</strong> vergelijk een infectieuze periode van 4 dagen met een periode van 18 dagen bij dezelfde R0. De langere periode rekt de curve, stelt de piek uit en produceert een langere maar lagere golf.',
260
- '<strong>Klasoefening - vind de drempel:</strong> vraag studenten om de minimale vaccinatiegraad te vinden die Re onder 1 brengt voor een gegeven R0 en vergelijk het resultaat met de formule 1 - 1/R0.',
261
- ],
262
- },
263
- {
264
- type: 'title',
265
- text: 'Wanneer en waarom deze simulator te gebruiken',
266
- level: 3,
267
- },
268
- {
269
- type: 'list',
270
- items: [
271
- '<strong>Epidemiologiestudenten:</strong> verbind het wiskundige SIR-raamwerk met interactieve curvevormen voordat u met differentiaalvergelijkingen werkt of eigen modellen programmeert.',
272
- '<strong>Wetenschapscommunicators en journalisten:</strong> genereer grafieken, screenshots of live uitleg die tonen waarom R0, vaccinatie en infectieuze periode van belang zijn voor uitbraaktrajecten.',
273
- '<strong>Volksgezondheidsleerlingen:</strong> test hoe verschillende combinaties van interventies de epidemische piek en attack rate verschuiven om intuïtie te ontwikkelen over de afwegingen bij uitbraakbestrijding.',
274
- '<strong>Iedereen die nieuwsgierig is naar epidemiewiskunde:</strong> verken het SIR-model zonder code te hoeven schrijven of software te installeren. Elke instelling werkt de grafiek in realtime bij.',
275
- ],
276
- },
277
- {
278
- type: 'title',
279
- text: 'Modeluitbreidingen: SEIR, SIRS en verder',
280
- level: 3,
281
- },
282
- {
283
- type: 'paragraph',
284
- html: 'Deze simulator gebruikt een basis SIR-structuur. Verschillende veelvoorkomende uitbreidingen voegen realisme toe. Een <strong>SEIR-model</strong> voegt een blootgesteld (E) compartiment toe voor mensen die wel geïnfecteerd zijn maar nog niet besmettelijk, wat de incubatieperiode vertegenwoordigt. De blootgestelde groep stelt de epidemische piek naar buiten uit in vergelijking met het SIR-model omdat infecties tijd in de latente fase doorbrengen voordat ze bijdragen aan transmissie.',
285
- },
286
- {
287
- type: 'paragraph',
288
- html: 'Een <strong>SIRS-model</strong> laat herstelde personen na verloop van tijd immuniteit verliezen en terugkeren naar het vatbare compartiment. Dit modelleert ziekteverwekkers zoals kinkhoest of SARS-CoV-2 met afnemende immuniteit en produceert aanhoudende of terugkerende uitbraakgolven. Een <strong>leeftijdsgestratificeerd model</strong> verdeelt de populatie in leeftijdsgroepen met verschillende contactmatrices en ernstprofielen, wat essentieel is voor ziekten waarbij kinderen en ouderen zeer verschillende uitkomsten hebben.',
289
- },
290
- {
291
- type: 'paragraph',
292
- html: 'Andere uitbreidingen voegen geografische verspreiding (metapopulatiemodellen), gedragsverandering (adaptieve contactpercentages), stochastische ruis (voor kleine populaties waar willekeurig uitsterven een rol speelt) en interventietiming (schoolsluitingen, lockdowns, reisbeperkingen die aan en uit gaan) toe. Elke uitbreiding voegt complexiteit toe die essentieel is voor voorspellingen, maar de kern van de transmissiedynamiek die het basis SIR-model helder illustreert, kan vertroebelen.',
293
- },
294
- {
295
- type: 'title',
296
- text: 'Beperkingen van deze epidemie-simulator',
297
- level: 3,
298
- },
299
- {
300
- type: 'paragraph',
301
- html: 'Dit is een compact deterministisch SIR-model. Het bevat geen leeftijdsgroepen, huishoudstructuur, scholen, reizen, superspreading, incubatieperioden, asymptomatische transmissie, seizoensinvloeden, varianten, afnemende immuniteit, gedragsveranderingen, testvertragingen of volksgezondheidsinterventies die in de loop van de tijd aan en uit gaan. Deze details zijn essentieel voor echte voorspellingen.',
302
- },
303
- {
304
- type: 'paragraph',
305
- html: 'Het model gaat uit van een goed gemengde populatie waarin elke vatbare persoon een gelijke contactkans heeft met elke besmettelijke persoon. Echte populaties hebben contactnetwerken met sterke clustering, leeftijdsassortativiteit, geografische structuur en individuele variatie in besmettelijkheid. Deze kenmerken kunnen langzamere initiële groei, superspreading-gebeurtenissen en heterogene uitbraakpatronen creëren die een homogeen model niet vastlegt.',
306
- },
307
- {
308
- type: 'paragraph',
309
- html: 'Gebruik de simulator om mechanismen te begrijpen en scenario\'s te vergelijken, niet om medische, beleids- of noodbeslissingen te nemen. Beoordeling van echte epidemieën vereist surveillancedata, lokale context, onzekerheidsanalyse en specialistische epidemiologische modellering.',
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 = 'epidemie-sir-simulator';
5
+ const title = 'Epidemie SIR simulator';
6
+ const description = 'Ontdek hoe een ziekteverwekker zich verspreidt met een interactief SIR-model dat R0, dodelijkheid, vaccinatie, infectieuze periode, piekbelasting en transmissiecurves in realtime aanpast.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Stel het reproductiegetal in',
11
+ text: 'Verplaats de R0-schuifknop om in te stellen hoeveel secundaire infecties een besmettelijk persoon veroorzaakt in een volledig vatbare populatie.',
12
+ },
13
+ {
14
+ name: 'Voeg vaccinatie en vaccinwerkzaamheid toe',
15
+ text: 'Verhoog de vaccinatiegraad of werkzaamheid om beschermde personen uit de vatbare groep te verwijderen en het effectieve reproductiegetal te verlagen.',
16
+ },
17
+ {
18
+ name: 'Pas dodelijkheid en infectieduur aan',
19
+ text: 'Wijzig het dodelijkheidspercentage en het aantal besmettelijke dagen om te zien hoe ernstige uitkomsten en het verloop van de curve reageren.',
20
+ },
21
+ {
22
+ name: 'Lees de SIR-curves',
23
+ text: 'Gebruik de grafiek en de daginspectie om vatbare, geïnfecteerde, herstelde en geschatte sterftecurves te vergelijken tijdens de gesimuleerde uitbraak.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Wat laat een SIR-model zien?',
30
+ answer: 'Een SIR-model verdeelt een populatie in vatbare, geïnfecteerde en herstelde groepen. Het schat hoe mensen in de loop van de tijd tussen deze groepen bewegen terwijl transmissie en herstel plaatsvinden.',
31
+ },
32
+ {
33
+ question: 'Hoe verandert vaccinatie de curve?',
34
+ answer: 'Vaccinatie vermindert de vatbare populatie wanneer het infectie voorkomt. In deze simulator verlaagt effectieve vaccinatie het effectieve reproductiegetal en kan de infectiepiek worden verkleind of uitgesteld.',
35
+ },
36
+ {
37
+ question: 'Is R0 hetzelfde als Re?',
38
+ answer: 'Nee. R0 beschrijft verspreiding in een volledig vatbare populatie. Re is het effectieve reproductiegetal nadat immuniteit, vaccinatie of gedragsveranderingen het aantal mensen dat geïnfecteerd kan worden hebben verminderd.',
39
+ },
40
+ {
41
+ question: 'Waarom stijgt en daalt de geïnfecteerdencurve?',
42
+ answer: 'De geïnfecteerdencurve daalt wanneer elke besmettelijke persoon minder nieuwe infecties genereert dan het aantal mensen dat de geïnfecteerde groep verlaat door herstel of sterfte. Uitputting van de vatbare groep is de belangrijkste drijfveer in een basis SIR-model.',
43
+ },
44
+ {
45
+ question: 'Kan dit een echte epidemie voorspellen?',
46
+ answer: 'Het is een leer- en scenariotool, geen voorspelling. Echte uitbraken hebben leeftijdsstructuur, contactnetwerken, geografie, rapportagevertragingen, veranderend gedrag, varianten, afnemende immuniteit en gekalibreerde data nodig.',
47
+ },
48
+ {
49
+ question: 'Wat is het verschil tussen attack rate en piek geïnfecteerden?',
50
+ answer: 'Attack rate meet het totale aandeel van de populatie dat ooit is geïnfecteerd aan het einde van de uitbraak. Piek geïnfecteerden meet het maximale aantal mensen dat tegelijkertijd besmettelijk is. Een lage piek garandeert geen lage attack rate en vice versa.',
51
+ },
52
+ {
53
+ question: 'Wat betekent Re onder 1 visueel?',
54
+ answer: 'Wanneer Re onder 1 zakt, genereert elke besmettelijke persoon gemiddeld minder dan een nieuwe infectie. In de grafiek stijgt de geïnfecteerdencurve nooit steil en kan vanaf de start direct dalen, wat betekent dat de uitbraak zichzelf niet in stand kan houden.',
55
+ },
56
+ {
57
+ question: 'Hoe beïnvloedt de infectieuze periode de uitbraak?',
58
+ answer: 'Een langere infectieuze periode verlengt de tijd waarin elke geïnfecteerde persoon de ziekteverwekker kan overdragen. Dit rekt de tijdlijn van de uitbraak, stelt de piek uit en kan bij dezelfde R0 een bredere curve met een lagere piekhoogte produceren.',
59
+ },
60
+ {
61
+ question: 'Waarom verandert dodelijkheid de geïnfecteerdencurve niet?',
62
+ answer: 'In dit SIR-model beïnvloedt dodelijkheid alleen het sterftecijfer dat aftakt van de herstelde groep. Het heeft geen terugkoppeling naar transmissie omdat sterfgevallen en herstel beide mensen uit de infectieuze groep verwijderen in hetzelfde tempo.',
63
+ },
64
+ {
65
+ question: 'Wat is de groepsimmuniteitsdrempel?',
66
+ answer: 'De groepsimmuniteitsdrempel is het deel van de populatie dat immuun moet zijn om Re onder 1 te krijgen. Het wordt benaderd als 1 - 1/R0. Voor mazelen met een R0 rond 12 is de drempel meer dan 91%. Voor seizoensgriep met een R0 rond 1,3 is de drempel bijna 23%.',
67
+ },
68
+ ];
69
+
70
+ export const content: ToolLocaleContent = {
71
+ slug,
72
+ title,
73
+ description,
74
+ ui: {
75
+ liveScenario: 'Live epidemie scenario',
76
+ curveChart: 'SIR-transmissiecurves',
77
+ inspectDay: 'Inspecteer simulatie dag',
78
+ legend: 'Curvelegenda',
79
+ susceptible: 'Vatbaar',
80
+ infected: 'Geïnfecteerd',
81
+ recovered: 'Hersteld of immuun',
82
+ deaths: 'Sterfgevallen',
83
+ controls: 'Epidemie-instellingen',
84
+ modelName: 'Compartmentmodel',
85
+ peakInfected: 'Piek geïnfecteerden',
86
+ peakDay: 'Piekdag',
87
+ attackRate: 'Attack rate',
88
+ estimatedDeaths: 'Geschatte sterfgevallen',
89
+ r0: 'Basaal reproductiegetal R0',
90
+ lethality: 'Dodelijkheid',
91
+ vaccination: 'Vaccinatiegraad',
92
+ vaccineEffectiveness: 'Vaccinwerkzaamheid',
93
+ infectiousDays: 'Infectieuze periode',
94
+ initialInfected: 'Initiële geïnfecteerden',
95
+ dayLabel: 'Dag',
96
+ daysUnit: 'dagen',
97
+ infectiousLabel: 'besmettelijk',
98
+ reLabel: 'Re',
99
+ },
100
+ seo: [
101
+ {
102
+ type: 'title',
103
+ text: 'Epidemie SIR simulator voor R0, vaccinatie, dodelijkheid en transmissiecurves',
104
+ level: 2,
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Deze epidemie SIR-simulator laat zien hoe een ziekteverwekker zich door een populatie verspreidt wanneer vatbare mensen geïnfecteerd raken en de infectieuze groep verlaten door herstel of sterfte. Het is ontworpen voor studenten, wetenschapscommunicators, volksgezondheidsleerlingen en iedereen die snel visueel inzicht wil krijgen in waarom kleine veranderingen in transmissie of immuniteit een uitbraak kunnen hervormen.',
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'De interactieve instellingen richten zich op de variabelen die mensen het vaakst willen testen: <strong>R0</strong>, dodelijkheid, vaccinatiegraad, vaccinwerkzaamheid, infectieduur en het initiële percentage geïnfecteerden. De grafiek wordt direct bijgewerkt zodat de vatbare, geïnfecteerde, herstelde, immuune en sterftecurves als een samenhangend epidemisch systeem kunnen worden vergeleken.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Hoe het SIR-model werkt',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Een basis SIR-model verdeelt de populatie in drie hoofdcompartimenten. <strong>S</strong> zijn vatbare mensen die nog geïnfecteerd kunnen worden. <strong>I</strong> zijn momenteel besmettelijke mensen die de ziekteverwekker kunnen overdragen. <strong>R</strong> zijn mensen die niet langer besmettelijk zijn omdat ze hersteld zijn, immuniteit hebben verworven of anderszins uit de transmissieketen zijn verwijderd. Deze simulator houdt ook geschatte sterfgevallen bij als een ernstige uitkomsttak van de groep die de infectie verlaat.',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'De transmissiesnelheid is gekoppeld aan R0 en de infectieuze periode. Als R0 hoog is of mensen langer besmettelijk blijven, worden er meer nieuwe infecties gegenereerd voordat de geïnfecteerde groep krimpt. Als vaccinatie voldoende mensen uit de vatbare groep verwijdert, daalt het effectieve reproductiegetal en kan de uitbraakpiek veel kleiner worden.',
126
+ },
127
+ {
128
+ type: 'table',
129
+ headers: ['Instelling', 'Wat het verandert', 'Typisch curve-effect'],
130
+ rows: [
131
+ ['R0', 'Transmissiepotentieel voordat immuniteit wordt meegerekend', 'Hogere R0 laat de geïnfecteerdencurve sneller stijgen en hoger pieken.'],
132
+ ['Vaccinatiegraad', 'Aandeel mensen dat uit de vatbare groep wordt verwijderd wanneer beschermd', 'Hogere graad verlaagt Re en kan de uitbraak afvlakken.'],
133
+ ['Vaccinwerkzaamheid', 'Hoezeer vaccinatie infectie voorkomt in dit vereenvoudigde model', 'Hogere werkzaamheid maakt dezelfde vaccinatiegraad beschermender.'],
134
+ ['Infectieuze periode', 'Gemiddelde tijd dat mensen besmettelijk blijven', 'Langere infectie verandert de timing en kan de uitbraak verlengen.'],
135
+ ['Dodelijkheid', 'Aandeel mensen dat de infectie verlaat en als overleden wordt geteld', 'Hogere dodelijkheid verhoogt de sterftecurve zonder direct de transmissie te verhogen.'],
136
+ ],
137
+ },
138
+ {
139
+ type: 'title',
140
+ text: 'R0, Re en groepsimmuniteit inzichtelijk',
141
+ level: 3,
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'R0 is het gemiddelde aantal secundaire gevallen veroorzaakt door een besmettelijk persoon in een volledig vatbare populatie. Re, het effectieve reproductiegetal, is lager wanneer sommige mensen al immuun, gevaccineerd, geïsoleerd of anderszins niet beschikbaar zijn voor infectie. In deze simulator vermindert effectieve vaccinatie de vatbaarheid direct, zodat de weergegeven Re daalt naarmate de beschermde dekking stijgt.',
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'Een veelgebruikte benadering voor groepsimmuniteit is <strong>1 - 1 / R0</strong>. Bij een R0 van 3 ligt de drempel op ongeveer 66,7% effectieve immuniteit. De simulator maakt deze drempel tastbaar: wanneer effectieve vaccinatie onder de drempel ligt, kunnen uitbraken nog groeien; wanneer deze erboven ligt, kan transmissie zich moeilijk handhaven.',
150
+ },
151
+ {
152
+ type: 'title',
153
+ text: 'Wat het piekcijfer van geïnfecteerden betekent',
154
+ level: 3,
155
+ },
156
+ {
157
+ type: 'paragraph',
158
+ html: 'Piek geïnfecteerden is het maximale aantal mensen dat gelijktijdig besmettelijk is in de gesimuleerde populatie. Het is vaak operationeel belangrijker dan het totale aantal infecties omdat ziekenhuizen, laboratoria, isolatieprogramma\'s en contactonderzoeksteams druk ervaren door gelijktijdige actieve gevallen. Het verlagen van de piek kan belangrijk zijn, zelfs wanneer de uiteindelijke attack rate niet tot nul wordt teruggebracht.',
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'De attack rate schat het aandeel van de totale populatie dat geïnfecteerd is aan het einde van de simulatie. Een hoge attack rate betekent dat de ziekteverwekker veel mensen heeft bereikt voordat de vatbaarheid was uitgeput of onder controle gebracht. Een lage attack rate betekent dat immuniteit, vaccinatie of zwakke transmissie wijdverspreide verspreiding heeft voorkomen.',
163
+ },
164
+ {
165
+ type: 'title',
166
+ text: 'R0-waarden uit de praktijk en wat ze betekenen voor groepsimmuniteit',
167
+ level: 3,
168
+ },
169
+ {
170
+ type: 'paragraph',
171
+ html: 'Het basale reproductiegetal R0 is geen vaste biologische constante voor een ziekteverwekker. Het hangt af van contactpatronen, bevolkingsdichtheid, culturele gewoonten en omgevingsfactoren. Hetzelfde virus kan verschillende R0-waarden hebben in een dichte stad versus een landelijk gebied, of in een seizoen met meer binnenruimte. De onderstaande waarden zijn illustratieve referentiebereiken uit gepubliceerde studies.',
172
+ },
173
+ {
174
+ type: 'table',
175
+ headers: ['Ziekteverwekker', 'Typisch R0-bereik', 'Groepsimmuniteitsdrempel (1 - 1/R0)', 'Belangrijkste transmissiekenmerk'],
176
+ rows: [
177
+ ['Seizoensgriep', '1,2 - 1,4', '17% - 29%', 'Korte infectieuze periode, seizoensvariatie'],
178
+ ['SARS-CoV-2 (ancestraal)', '2,0 - 3,0', '50% - 67%', 'Pre-symptomatische transmissie, aerosolroutes'],
179
+ ['SARS-CoV-2 (Delta)', '5,0 - 8,0', '80% - 87%', 'Verhoogde virale lading, snellere verspreiding'],
180
+ ['SARS-CoV-2 (Omicron)', '8,0 - 12,0', '87% - 92%', 'Immuunevasion, bovenste luchtwegtropisme'],
181
+ ['Polio', '5,0 - 7,0', '80% - 86%', 'Fecaal-orale route, lange asymptomatische uitscheiding'],
182
+ ['Pokken', '5,0 - 7,0', '80% - 86%', 'Uitgeroeid door wereldwijde vaccinatiecampagne'],
183
+ ['Mazelen', '12,0 - 18,0', '92% - 94%', 'Extreem besmettelijk, luchtgedragen, lange infectieuze periode'],
184
+ ['Kinkhoest', '12,0 - 17,0', '92% - 94%', 'Afnemende immuniteit laat herhaalde infecties toe'],
185
+ ],
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: 'Een hoge groepsimmuniteitsdrempel betekent niet automatisch dat vaccinatie zinloos is wanneer de dekking onder de drempel ligt. Zelfs gedeeltelijke immuniteit vertraagt transmissie, verlaagt de piek, vermindert ernstige uitkomsten en koopt tijd voor de gezondheidszorg. De simulator laat dit effect zien wanneer u de vaccinatieschuifknop door tussenliggende waarden beweegt.',
190
+ },
191
+ {
192
+ type: 'title',
193
+ text: 'Hoe het effectieve reproductiegetal Re verandert tijdens een uitbraak',
194
+ level: 3,
195
+ },
196
+ {
197
+ type: 'paragraph',
198
+ html: 'Re is het effectieve reproductiegetal op een bepaald punt in de uitbraak. In tegenstelling tot R0, dat uitgaat van een volledig vatbare populatie, houdt Re rekening met immuniteit, vaccinatie en alle andere factoren die de vatbaarheid verminderen. In deze simulator wordt Re berekend als <strong>R0 x (1 - beschermde fractie)</strong>, waarbij de beschermde fractie het aandeel van de populatie is dat door vaccinatie effectief immuun is.',
199
+ },
200
+ {
201
+ type: 'paragraph',
202
+ html: 'De Re-waarde in de simulatorheader wordt bijgewerkt wanneer u de instellingen wijzigt. Wanneer Re boven 1 blijft, groeit de uitbraak. Wanneer Re onder 1 zakt, genereert elke geïnfecteerde persoon gemiddeld minder dan een nieuwe infectie en kan de epidemie zichzelf niet in stand houden. Dit is het kerninzicht achter epidemiebestrijding: Re onder 1 brengen en houden door immuniteit, gedrag of interventies.',
203
+ },
204
+ {
205
+ type: 'title',
206
+ text: 'Attack rate, piekbelasting en wat ze onthullen over uitbraakernst',
207
+ level: 3,
208
+ },
209
+ {
210
+ type: 'paragraph',
211
+ html: 'De attack rate is het deel van de totale populatie dat gedurende de gehele gesimuleerde uitbraak is geïnfecteerd. Het is de meest gebruikte samenvattende maat na een epidemische golf. Een hoge attack rate betekent dat de ziekteverwekker de meeste vatbare mensen heeft geïnfecteerd voordat uitputting of controle de transmissie stopte. Een lage attack rate betekent dat immuniteit, vaccinatie of inherent zwakke transmissie wijdverspreide infectie heeft voorkomen.',
212
+ },
213
+ {
214
+ type: 'paragraph',
215
+ html: 'Piek geïnfecteerden - het maximale aantal mensen dat gelijktijdig besmettelijk is - is belangrijker voor de druk op de gezondheidszorg op korte termijn. Een golf met een matige attack rate maar een zeer hoge, scherpe piek kan ziekenhuizen overweldigen, zelfs als het totale aantal gevallen niet extreem is. Omgekeerd kan een langzame, afgeplatte curve een vergelijkbare attack rate hebben die over vele weken is gespreid, waardoor het gezondheidssysteem de tijd heeft om gevallen te behandelen. Dit is waarom volksgezondheidsfunctionarissen <strong>de curve afvlakken</strong> benadrukken als een operationeel doel dat losstaat van het voorkomen van alle infecties.',
216
+ },
217
+ {
218
+ type: 'title',
219
+ text: 'Curve afvlakken en zorgcapaciteit in het SIR-model',
220
+ level: 3,
221
+ },
222
+ {
223
+ type: 'paragraph',
224
+ html: 'De geïnfecteerdencurve in een SIR-model kan worden geïnterpreteerd als het aantal mensen dat gelijktijdig zorg nodig heeft. In een echte epidemie doet elke persoon die een ziekenhuisbed, zuurstofondersteuning of intensive care nodig heeft een beroep op een beperkte hoeveelheid middelen. Wanneer de geïnfecteerdencurve hoger stijgt dan de beschikbare capaciteit, neemt de sterfte door alle oorzaken toe omdat het systeem geen adequate zorg kan bieden.',
225
+ },
226
+ {
227
+ type: 'paragraph',
228
+ html: 'Vaccinatie vlakt in dit model de curve af door mensen uit de vatbare groep te verwijderen voordat ze geïnfecteerd kunnen raken. Het verlagen van R0 door andere maatregelen - mondkapjes, ventilatie, afstand houden, testen, isolatie - zou ook de piek verlagen in een uitgebreider model. De simulatie maakt het mechanisme zichtbaar: naarmate de effectieve vaccinatiegraad stijgt, krimpt de piek, verschuift naar later of verdwijnt volledig.',
229
+ },
230
+ {
231
+ type: 'title',
232
+ text: 'De wiskunde achter het SIR-model gevisualiseerd',
233
+ level: 3,
234
+ },
235
+ {
236
+ type: 'paragraph',
237
+ html: 'In het SIR-model hangt het aantal nieuwe infecties per tijdstap af van drie grootheden: de transmissiesnelheid <strong>beta</strong>, het huidige aantal besmettelijke mensen <strong>I</strong> en de fractie van de effectieve populatie die nog vatbaar is <strong>S / N</strong>. Het product <strong>beta x I x S / N</strong> wordt de infectiedruk genoemd. Elke dag bepaalt deze druk hoeveel vatbare mensen naar het geïnfecteerde compartiment verhuizen.',
238
+ },
239
+ {
240
+ type: 'paragraph',
241
+ html: 'Mensen verlaten het geïnfecteerde compartiment met de herstelsnelheid <strong>gamma = 1 / infectieuze periode</strong>. De balans tussen de infectiedruk en de herstelsnelheid bepaalt of de epidemie groeit of krimpt. Wanneer beta x S / N groter is dan gamma, overtreffen nieuwe infecties het herstel en breidt de uitbraak zich uit. Wanneer de vatbare fractie S / N voldoende is gedaald, domineert gamma en trekt de uitbraak samen.',
242
+ },
243
+ {
244
+ type: 'paragraph',
245
+ html: 'De parameter <strong>beta</strong> is niet direct zichtbaar in de interface. In plaats daarvan wordt deze afgeleid van R0 en de infectieuze periode via de relatie <strong>beta = R0 x gamma</strong>. Daarom produceert het wijzigen van R0 of de infectieuze periode vergelijkbare maar niet identieke curvevormen. Beide parameters beïnvloeden de infectiedruk, maar de infectieuze periode rekt ook de tijdas van de uitbraak uit.',
246
+ },
247
+ {
248
+ type: 'title',
249
+ text: 'Hoe deze simulator te gebruiken voor leren en lesgeven',
250
+ level: 3,
251
+ },
252
+ {
253
+ type: 'list',
254
+ items: [
255
+ '<strong>Vergelijk hoge versus lage R0-scenario\'s:</strong> stel R0 in op 1,5 (seizoensgriepbereik) en vervolgens op 6,0 (pre-vaccinatie poliobereik). Merk op hoe piekhoogte, piektiming en attack rate veranderen, zelfs wanneer alle andere instellingen identiek zijn.',
256
+ '<strong>Verken de groepsimmuniteitsdrempel:</strong> begin met R0 op 3,0 en geen vaccinatie. Noteer de attack rate. Voeg vervolgens vaccinatiegraad toe tot Re onder 1 zakt. Vergelijk de piek en attack rate bij vaccinatiegraad net onder en net boven de drempel.',
257
+ '<strong>Test het effect van langzame versus snelle respons:</strong> stel de vaccinatiegraad op verschillende niveaus in en observeer wanneer de piek optreedt. Een hogere graad vermindert niet alleen de piekhoogte, maar stelt deze meestal uit, wat tijd koopt voor voorbereiding van de gezondheidszorg.',
258
+ '<strong>Scheid dodelijkheid van transmissie:</strong> stel dodelijkheid in op 0% en observeer de geïnfecteerdencurve. Stel dodelijkheid vervolgens in op 10% zonder andere instellingen te wijzigen. De geïnfecteerdencurve verandert niet, maar het dodental stijgt. Dit toont aan waarom het case-fatality rate en de transmissiesnelheid verschillende epidemiologische dimensies zijn.',
259
+ '<strong>Onderzoek het effect van de infectieuze periode:</strong> vergelijk een infectieuze periode van 4 dagen met een periode van 18 dagen bij dezelfde R0. De langere periode rekt de curve, stelt de piek uit en produceert een langere maar lagere golf.',
260
+ '<strong>Klasoefening - vind de drempel:</strong> vraag studenten om de minimale vaccinatiegraad te vinden die Re onder 1 brengt voor een gegeven R0 en vergelijk het resultaat met de formule 1 - 1/R0.',
261
+ ],
262
+ },
263
+ {
264
+ type: 'title',
265
+ text: 'Wanneer en waarom deze simulator te gebruiken',
266
+ level: 3,
267
+ },
268
+ {
269
+ type: 'list',
270
+ items: [
271
+ '<strong>Epidemiologiestudenten:</strong> verbind het wiskundige SIR-raamwerk met interactieve curvevormen voordat u met differentiaalvergelijkingen werkt of eigen modellen programmeert.',
272
+ '<strong>Wetenschapscommunicators en journalisten:</strong> genereer grafieken, screenshots of live uitleg die tonen waarom R0, vaccinatie en infectieuze periode van belang zijn voor uitbraaktrajecten.',
273
+ '<strong>Volksgezondheidsleerlingen:</strong> test hoe verschillende combinaties van interventies de epidemische piek en attack rate verschuiven om intuïtie te ontwikkelen over de afwegingen bij uitbraakbestrijding.',
274
+ '<strong>Iedereen die nieuwsgierig is naar epidemiewiskunde:</strong> verken het SIR-model zonder code te hoeven schrijven of software te installeren. Elke instelling werkt de grafiek in realtime bij.',
275
+ ],
276
+ },
277
+ {
278
+ type: 'title',
279
+ text: 'Modeluitbreidingen: SEIR, SIRS en verder',
280
+ level: 3,
281
+ },
282
+ {
283
+ type: 'paragraph',
284
+ html: 'Deze simulator gebruikt een basis SIR-structuur. Verschillende veelvoorkomende uitbreidingen voegen realisme toe. Een <strong>SEIR-model</strong> voegt een blootgesteld (E) compartiment toe voor mensen die wel geïnfecteerd zijn maar nog niet besmettelijk, wat de incubatieperiode vertegenwoordigt. De blootgestelde groep stelt de epidemische piek naar buiten uit in vergelijking met het SIR-model omdat infecties tijd in de latente fase doorbrengen voordat ze bijdragen aan transmissie.',
285
+ },
286
+ {
287
+ type: 'paragraph',
288
+ html: 'Een <strong>SIRS-model</strong> laat herstelde personen na verloop van tijd immuniteit verliezen en terugkeren naar het vatbare compartiment. Dit modelleert ziekteverwekkers zoals kinkhoest of SARS-CoV-2 met afnemende immuniteit en produceert aanhoudende of terugkerende uitbraakgolven. Een <strong>leeftijdsgestratificeerd model</strong> verdeelt de populatie in leeftijdsgroepen met verschillende contactmatrices en ernstprofielen, wat essentieel is voor ziekten waarbij kinderen en ouderen zeer verschillende uitkomsten hebben.',
289
+ },
290
+ {
291
+ type: 'paragraph',
292
+ html: 'Andere uitbreidingen voegen geografische verspreiding (metapopulatiemodellen), gedragsverandering (adaptieve contactpercentages), stochastische ruis (voor kleine populaties waar willekeurig uitsterven een rol speelt) en interventietiming (schoolsluitingen, lockdowns, reisbeperkingen die aan en uit gaan) toe. Elke uitbreiding voegt complexiteit toe die essentieel is voor voorspellingen, maar de kern van de transmissiedynamiek die het basis SIR-model helder illustreert, kan vertroebelen.',
293
+ },
294
+ {
295
+ type: 'title',
296
+ text: 'Beperkingen van deze epidemie-simulator',
297
+ level: 3,
298
+ },
299
+ {
300
+ type: 'paragraph',
301
+ html: 'Dit is een compact deterministisch SIR-model. Het bevat geen leeftijdsgroepen, huishoudstructuur, scholen, reizen, superspreading, incubatieperioden, asymptomatische transmissie, seizoensinvloeden, varianten, afnemende immuniteit, gedragsveranderingen, testvertragingen of volksgezondheidsinterventies die in de loop van de tijd aan en uit gaan. Deze details zijn essentieel voor echte voorspellingen.',
302
+ },
303
+ {
304
+ type: 'paragraph',
305
+ html: 'Het model gaat uit van een goed gemengde populatie waarin elke vatbare persoon een gelijke contactkans heeft met elke besmettelijke persoon. Echte populaties hebben contactnetwerken met sterke clustering, leeftijdsassortativiteit, geografische structuur en individuele variatie in besmettelijkheid. Deze kenmerken kunnen langzamere initiële groei, superspreading-gebeurtenissen en heterogene uitbraakpatronen creëren die een homogeen model niet vastlegt.',
306
+ },
307
+ {
308
+ type: 'paragraph',
309
+ html: 'Gebruik de simulator om mechanismen te begrijpen en scenario\'s te vergelijken, niet om medische, beleids- of noodbeslissingen te nemen. Beoordeling van echte epidemieën vereist surveillancedata, lokale context, onzekerheidsanalyse en specialistische epidemiologische modellering.',
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
+ };