@jjlmoya/utils-forensic-science 1.4.0 → 1.5.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 (34) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +3 -1
  3. package/src/entries.ts +5 -1
  4. package/src/index.ts +1 -0
  5. package/src/tests/locale_completeness.test.ts +2 -2
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/fire-pattern-origin-analyzer/bibliography.astro +6 -0
  8. package/src/tool/fire-pattern-origin-analyzer/bibliography.ts +12 -0
  9. package/src/tool/fire-pattern-origin-analyzer/component.astro +196 -0
  10. package/src/tool/fire-pattern-origin-analyzer/entry.ts +32 -0
  11. package/src/tool/fire-pattern-origin-analyzer/fire-pattern-origin-analyzer.css +681 -0
  12. package/src/tool/fire-pattern-origin-analyzer/i18n/de.ts +250 -0
  13. package/src/tool/fire-pattern-origin-analyzer/i18n/en.ts +250 -0
  14. package/src/tool/fire-pattern-origin-analyzer/i18n/es.ts +250 -0
  15. package/src/tool/fire-pattern-origin-analyzer/i18n/fr.ts +250 -0
  16. package/src/tool/fire-pattern-origin-analyzer/i18n/id.ts +250 -0
  17. package/src/tool/fire-pattern-origin-analyzer/i18n/it.ts +250 -0
  18. package/src/tool/fire-pattern-origin-analyzer/i18n/ja.ts +250 -0
  19. package/src/tool/fire-pattern-origin-analyzer/i18n/ko.ts +250 -0
  20. package/src/tool/fire-pattern-origin-analyzer/i18n/nl.ts +250 -0
  21. package/src/tool/fire-pattern-origin-analyzer/i18n/pl.ts +250 -0
  22. package/src/tool/fire-pattern-origin-analyzer/i18n/pt.ts +250 -0
  23. package/src/tool/fire-pattern-origin-analyzer/i18n/ru.ts +250 -0
  24. package/src/tool/fire-pattern-origin-analyzer/i18n/sv.ts +250 -0
  25. package/src/tool/fire-pattern-origin-analyzer/i18n/tr.ts +250 -0
  26. package/src/tool/fire-pattern-origin-analyzer/i18n/zh.ts +246 -0
  27. package/src/tool/fire-pattern-origin-analyzer/index.ts +11 -0
  28. package/src/tool/fire-pattern-origin-analyzer/logic.ts +123 -0
  29. package/src/tool/fire-pattern-origin-analyzer/render.ts +159 -0
  30. package/src/tool/fire-pattern-origin-analyzer/seo.astro +15 -0
  31. package/src/tool/fire-pattern-origin-analyzer/view-bindings.ts +171 -0
  32. package/src/tool/fire-pattern-origin-analyzer/view-model.ts +244 -0
  33. package/src/tool/fire-pattern-origin-analyzer/view.ts +30 -0
  34. package/src/tools.ts +3 -1
@@ -0,0 +1,250 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'analisador-origem-padroes-incendio';
5
+ const title = 'Analisador de origem por padrões de incêndio';
6
+ const description = 'Mapeie padrões em V, carbonização profunda, sombras de fuligem e indicadores de queima limpa numa planta baixa e projete vetores de propagação do fogo para estimar a área de origem mais provável.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Importar uma planta da cena',
11
+ text: 'Arraste uma imagem da planta para a área de trabalho ou carregue-a do disco antes de colocar vetores de evidência.',
12
+ },
13
+ {
14
+ name: 'Clicar para abrir o seletor radial de evidências',
15
+ text: 'Posicione o ponteiro sobre uma marca de queimadura, abra o menu radial contextual e escolha o tipo de indicador diretamente no mapa.',
16
+ },
17
+ {
18
+ name: 'Arrastar para refinar vetores e observar a convergência',
19
+ text: 'Estenda cada vetor de propagação com encaixe na tela e observe o campo de probabilidade recalculado em tempo real à medida que as evidências se acumulam.',
20
+ },
21
+ {
22
+ name: 'Exportar o instantâneo técnico',
23
+ text: 'Gere um relatório estruturado com coordenadas de origem, confiança, variância, estado das camadas e o conjunto completo de vetores para revisão posterior.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Os padrões de queimadura podem provar o ponto exato onde um incêndio começou?',
30
+ answer: 'Não. Os padrões de incêndio podem ajudar a gerar e testar hipóteses de origem, mas a ventilação, a extinção, a carga de combustível, o flashover e as perturbações pós-incêndio podem distorcer os padrões. A determinação real da origem exige uma investigação sistemática.',
31
+ },
32
+ {
33
+ question: 'Por que os padrões em V são importantes na investigação de incêndios?',
34
+ answer: 'Os padrões em V frequentemente refletem a propagação ascendente e para fora das chamas em superfícies verticais. Podem apontar para uma área de origem mais baixa, mas devem ser comparados com outras evidências antes de tirar conclusões.',
35
+ },
36
+ {
37
+ question: 'O que a carbonização profunda indica?',
38
+ answer: 'A carbonização profunda pode indicar aquecimento mais prolongado, maior fluxo de calor ou efeitos do combustível. É um contexto útil, mas não indica automaticamente a origem porque os materiais carbonizam a taxas diferentes.',
39
+ },
40
+ {
41
+ question: 'Por que usar vários vetores em vez de uma única seta?',
42
+ answer: 'Um único padrão pode ser enganoso. Vários vetores independentes reduzem a influência de uma parede danificada, um único pacote de combustível ou um único caminho de ventilação.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ planAria: 'Área de trabalho forense interativa para desenhar vetores de propagação do fogo',
52
+ vPattern: 'Padrão em V',
53
+ deepChar: 'Carbonização profunda',
54
+ sootShadow: 'Sombra de fuligem',
55
+ cleanBurn: 'Queima limpa',
56
+ loadPlan: 'Carregar planta',
57
+ generateReport: 'Gerar relatório',
58
+ pointerLabel: 'Ponteiro',
59
+ resetVectors: 'Redefinir',
60
+ estimatedOrigin: 'Origem estimada',
61
+ visibleLayers: 'Camadas de evidência visíveis',
62
+ vectorsLabel: 'VETORES',
63
+ confidenceLabel: 'CONFIANÇA',
64
+ varianceLabel: 'VARIÂNCIA',
65
+ modeLabel: 'MODO',
66
+ guideSummary: 'Como usar esta ferramenta',
67
+ flowPanelTitle: 'Fluxo de trabalho',
68
+ legendPanelTitle: 'Legenda das evidências',
69
+ readoutPanelTitle: 'Painel de resultados',
70
+ flow1Kicker: 'PASSO 1',
71
+ flow1Icon: '1',
72
+ flow1Title: 'Carregar',
73
+ flow1Text: 'Enviar a planta da cena',
74
+ flow2Kicker: 'PASSO 2',
75
+ flow2Icon: '2',
76
+ flow2Title: 'Escolher pista',
77
+ flow2Text: 'Clicar na marca de queimadura',
78
+ flow3Kicker: 'PASSO 3',
79
+ flow3Icon: '3',
80
+ flow3Title: 'Arrastar vetor',
81
+ flow3Text: 'Apontar direção do fogo',
82
+ flow4Kicker: 'PASSO 4',
83
+ flow4Icon: '4',
84
+ flow4Title: 'Ler resultado',
85
+ flow4Text: 'Verificar rodapé + exportar',
86
+ basicsTitle: 'O que deve fazer primeiro',
87
+ basicsIntro: 'Carregue uma planta nítida, marque apenas padrões que possa justificar e distribua vetores por diferentes superfícies em vez de repetir a mesma pista.',
88
+ indicatorsTitle: 'O que cada tipo de evidência significa',
89
+ vPatternShort: 'Queimadura de parede que se abre para cima',
90
+ vPatternExplain: 'Um padrão em V é a forma familiar de queimadura ascendente e para fora frequentemente vista numa parede. Pode sugerir que o calor e as chamas subiram de uma área mais baixa, mas não é prova automática da origem exata.',
91
+ deepCharShort: 'Área queimada com mais intensidade ou duração',
92
+ deepCharExplain: 'A carbonização profunda significa que um material parece mais queimado, enegrecido ou consumido numa área do que ao redor. Pode indicar aquecimento mais longo ou mais intenso, mas o tipo de combustível e a espessura do material influenciam muito.',
93
+ sootShadowShort: 'Fumo bloqueado ou redirecionado',
94
+ sootShadowExplain: 'Uma sombra de fuligem é uma área protegida ou com escurecimento diferente que sugere que um objeto, superfície ou fluxo de ar alterou a forma como a fuligem se depositou. Pode ajudar a reconstruir o que estava presente ou como o fumo se moveu.',
95
+ cleanBurnShort: 'Menos fuligem devido ao calor ou fluxo de ar',
96
+ cleanBurnExplain: 'A queima limpa é uma área onde a fuligem parece mais clara, removida ou ausente porque o calor, a ventilação ou a exposição direta às chamas a afetou de forma diferente. É útil, mas nem toda área limpa marca a origem.',
97
+ resultsTitle: 'Como ler o resultado',
98
+ resultsIntro: 'Use o rodapé como verificação rápida da sua cartografia, não como conclusão forense definitiva.',
99
+ resultsPoint1: 'Quantas linhas de evidência estão ativas.',
100
+ resultsPoint2: 'Com que intensidade os vetores ativos concordam.',
101
+ resultsPoint3: 'Quão ampla ainda é a área de origem.',
102
+ resultsPoint4: 'O que a ferramenta espera que faça a seguir.',
103
+ awaitingVector: 'Aguardando vetor',
104
+ selectIndicator: 'Selecionar indicador',
105
+ refiningVector: 'Refinando vetor',
106
+ needsMoreVectors: 'Mais vetores necessários',
107
+ wideArea: 'Área de origem ampla',
108
+ focusedArea: 'Área de origem concentrada',
109
+ dropPlan: 'Solte a imagem da planta ou clique para enviar',
110
+ needsMoreVectorsText: 'Desenhe pelo menos duas setas direcionais claras. Três ou mais observações independentes geralmente tornam a convergência muito mais fácil de interpretar.',
111
+ wideAreaText: 'As linhas projetadas cruzam-se, mas a dispersão ainda é ampla. Numa cena real, compare ventilação, carga de combustível, efeitos de extinção e informações de testemunhas antes de restringir a origem.',
112
+ focusedAreaText: 'Os vetores convergem para uma área compacta. Trate isto como um forte sinal didático para o desenvolvimento de hipóteses de origem, não como uma conclusão forense definitiva.',
113
+ disclaimer: 'Apenas simulação educativa. A investigação real da origem e causa de um incêndio deve seguir os guias aceites, os protocolos de segurança no local, as normas de documentação e a revisão qualificada de especialistas.',
114
+ },
115
+ seo: [
116
+ {
117
+ type: 'title',
118
+ text: 'Análise Interativa da Origem de Incêndios a partir de Vetores de Padrões de Queimadura',
119
+ level: 2,
120
+ },
121
+ {
122
+ type: 'diagnostic',
123
+ variant: 'info',
124
+ icon: 'mdi:fire-alert',
125
+ badge: 'Simulador didático',
126
+ title: 'O que este analisador de origem por padrões de incêndio ensina',
127
+ html: 'Esta ferramenta de navegador demonstra como os investigadores raciocinam a partir de padrões físicos de incêndio para uma <strong>área de origem</strong> provável. Os utilizadores mapeiam evidências visíveis, desenham vetores direcionais de propagação e observam as linhas projetadas convergirem ou dispersarem-se. O modelo é intencionalmente educativo: ensina geometria e interpretação de padrões, não determinação legal de causas.',
128
+ },
129
+ {
130
+ type: 'stats',
131
+ columns: 4,
132
+ items: [
133
+ { value: '4 camadas', label: 'Padrão V, carbonização, fuligem, queima limpa', icon: 'mdi:layers-triple' },
134
+ { value: 'Planta 2D', label: 'mapa estrutural da sala', icon: 'mdi:floor-plan' },
135
+ { value: '3+ setas', label: 'observações recomendadas', icon: 'mdi:vector-line' },
136
+ { value: '0-100%', label: 'entrada de confiança', icon: 'mdi:gauge' },
137
+ ],
138
+ },
139
+ {
140
+ type: 'summary',
141
+ title: 'Um fluxo de trabalho disciplinado para a interpretação de padrões de incêndio',
142
+ items: [
143
+ 'Comece com segurança, preservação da cena, fotografias, esboços e documentação sistemática antes de interpretar padrões.',
144
+ 'Separe os tipos de padrão para que danos em V, profundidade de carbonização, deposição de fuligem e queima limpa não sejam reduzidos a uma única suposição.',
145
+ 'Desenhe indicadores direcionais apenas onde o padrão físico suporta uma direção de propagação defensável.',
146
+ 'Procure convergência entre observações independentes em vez de confiar no dano mais dramático.',
147
+ 'Use a área de origem estimada como hipótese a testar contra combustíveis, fontes de ignição, ventilação, evidência elétrica e testemunhos.',
148
+ ],
149
+ },
150
+ {
151
+ type: 'table',
152
+ headers: ['Padrão', 'Valor potencial', 'Principal precaução'],
153
+ rows: [
154
+ ['Padrão em V', 'Pode sugerir propagação ascendente e para fora a partir de uma área mais baixa.', 'Pode ser alterado por ventilação, flashover, geometria das paredes e extinção.'],
155
+ ['Carbonização profunda', 'Pode indicar exposição sustentada ao calor ou combustão intensa.', 'O tipo de combustível e a espessura do material afetam fortemente a profundidade de carbonização.'],
156
+ ['Sombra de fuligem', 'Pode revelar áreas protegidas, colocação de objetos ou efeitos de fluxo de ar.', 'Móveis movidos ou atividade de extinção podem alterar a interpretação.'],
157
+ ['Queima limpa', 'Pode mostrar calor elevado, ventilação ou combustão em fase avançada.', 'Não identifica automaticamente o primeiro material ignido.'],
158
+ ],
159
+ },
160
+ {
161
+ type: 'comparative',
162
+ columns: 2,
163
+ items: [
164
+ {
165
+ title: 'Hipóteses de origem mais sólidas',
166
+ icon: 'mdi:check-circle-outline',
167
+ highlight: true,
168
+ description: 'As melhores hipóteses explicam várias observações ao mesmo tempo.',
169
+ points: ['Vetores independentes convergem', 'Evidências encaixam nos caminhos de ventilação conhecidos', 'Pacotes de combustível são contabilizados', 'Origens alternativas são testadas ativamente'],
170
+ },
171
+ {
172
+ title: 'Hipóteses de origem fracas',
173
+ icon: 'mdi:alert-circle-outline',
174
+ description: 'Hipóteses fracas baseiam-se frequentemente num único padrão sem testar fatores de distorção.',
175
+ points: ['Uma única área carbonizada é tratada como prova', 'O flashover é ignorado', 'Danos de extinção não estão documentados', 'Evidência de fonte de ignição é presumida'],
176
+ },
177
+ ],
178
+ },
179
+ {
180
+ type: 'title',
181
+ text: 'Como o Modelo Vetorial Funciona',
182
+ level: 3,
183
+ },
184
+ {
185
+ type: 'paragraph',
186
+ html: 'Cada seta é tratada como uma linha projetada de propagação do fogo. O estimador calcula interseções de linhas aos pares, filtra pontos que caem dentro de um limite razoável da planta, faz a média dos cruzamentos restantes e relata um raio baseado na dispersão dessas interseções. Um raio pequeno com vários vetores produz um sinal de convergência mais forte. O modelo de interseção funciona resolvendo as equações paramétricas de duas linhas que se estendem dos seus respetivos marcadores de evidência. Quando dois vetores apontam para uma região partilhada, o seu ponto de cruzamento teórico contribui com uma coordenada para o conjunto de média. Quanto mais vetores independentes participarem, mais o estimador consegue filtrar os cruzamentos afastados do agrupamento principal, reduzindo eficazmente a influência de qualquer observação isolada que possa estar mal orientada ou interpretada.',
187
+ },
188
+ {
189
+ type: 'paragraph',
190
+ html: 'Esta abordagem geométrica reflete um exercício de esboço em sala de aula: ajuda os estudantes a ver por que a análise de origem melhora quando as observações vêm de diferentes superfícies e tipos de padrão. Também expõe um problema comum: as setas podem intersetar-se mesmo quando a interpretação subjacente é fraca, pelo que o centro matemático nunca deve substituir o julgamento da ciência do fogo. Numa investigação real, os profissionais comparam o resultado traçado com os caminhos de ventilação, a distribuição da carga de combustível, os danos estruturais e os depoimentos de testemunhas antes de tratar qualquer coordenada como origem provável. A ferramenta incentiva este hábito ao exibir a variância junto ao ponto estimado, lembrando os utilizadores de que um agrupamento compacto de interseções é tão forte quanto a qualidade das observações que o produziram.',
191
+ },
192
+ {
193
+ type: 'paragraph',
194
+ html: 'Para além da lógica básica de interseção, o estimador aplica uma restrição de limite para que os cruzamentos situados muito além da planta da sala sejam excluídos. Isto impede que valores atípicos arrastem o centro médio para locais impossíveis. O raio final representa o desvio padrão das coordenadas de cruzamento restantes, dando uma medida direta da consistência com que os vetores ativos concordam. Um raio inferior a dez por cento da extensão da planta indica uma forte convergência. Um raio superior a um quarto da planta sinaliza que as evidências ainda não suportam uma origem focada, sendo necessárias mais ou melhores observações antes de tirar conclusões.',
195
+ },
196
+ {
197
+ type: 'glossary',
198
+ items: [
199
+ { term: 'Área de origem', definition: 'A região geral onde as evidências disponíveis sugerem que o incêndio começou.' },
200
+ { term: 'Padrão em V', definition: 'Um padrão de incêndio que frequentemente aparece como dano ascendente e para fora numa superfície vertical.' },
201
+ { term: 'Queima limpa', definition: 'Uma área mais clara ou limpa causada quando a fuligem é queimada ou não se deposita sob condições de calor elevado ou fluxo de ar.' },
202
+ { term: 'Sombra de fuligem', definition: 'Uma área de fuligem protegida ou depositada de forma diferente que pode preservar informações sobre objetos, fluxo de ar ou exposição ao calor.' },
203
+ { term: 'Convergência vetorial', definition: 'O agrupamento de indicadores direcionais projetados em torno de uma região comum.' },
204
+ ],
205
+ },
206
+ {
207
+ type: 'diagnostic',
208
+ variant: 'warning',
209
+ icon: 'mdi:scale-balance',
210
+ badge: 'Cautela forense',
211
+ title: 'Não transforme a convergência em certeza',
212
+ html: 'Um grupo de interseções compacto só é útil quando as observações são válidas. As investigações reais devem ter em conta a ventilação, o flashover, os pacotes de combustível, os sistemas elétricos, as provas de eletrodomésticos, as declarações de testemunhas, a extinção e a perturbação da cena.',
213
+ },
214
+ ],
215
+ faq,
216
+ bibliography,
217
+ howTo,
218
+ schemas: [
219
+ {
220
+ '@context': 'https://schema.org',
221
+ '@type': 'SoftwareApplication',
222
+ name: title,
223
+ description,
224
+ applicationCategory: 'ForensicApplication',
225
+ operatingSystem: 'Any',
226
+ },
227
+ {
228
+ '@context': 'https://schema.org',
229
+ '@type': 'FAQPage',
230
+ mainEntity: faq.map((item) => ({
231
+ '@type': 'Question',
232
+ name: item.question,
233
+ acceptedAnswer: {
234
+ '@type': 'Answer',
235
+ text: item.answer,
236
+ },
237
+ })),
238
+ },
239
+ {
240
+ '@context': 'https://schema.org',
241
+ '@type': 'HowTo',
242
+ name: title,
243
+ step: howTo.map((step) => ({
244
+ '@type': 'HowToStep',
245
+ name: step.name,
246
+ text: step.text,
247
+ })),
248
+ },
249
+ ],
250
+ };
@@ -0,0 +1,250 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'analizator-ochaga-pozhara-po-termicheskim-uzoram';
5
+ const title = 'Анализатор очага пожара по термическим узорам';
6
+ const description = 'Нанесите V-образные узоры, глубокое обугливание, тени от копоти и индикаторы чистого выгорания на план помещения, затем спроецируйте векторы распространения огня для оценки наиболее вероятной области очага.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Импорт плана места происшествия',
11
+ text: 'Перетащите изображение плана в рабочую область или загрузите с диска перед размещением векторов доказательств.',
12
+ },
13
+ {
14
+ name: 'Нажмите для открытия радиального селектора доказательств',
15
+ text: 'Поместите указатель над следом горения, откройте контекстное радиальное меню и выберите тип индикатора прямо на карте.',
16
+ },
17
+ {
18
+ name: 'Перетащите для уточнения векторов и наблюдайте сходимость',
19
+ text: 'Удлините каждый вектор распространения с привязкой к холсту и наблюдайте, как поле вероятности пересчитывается в реальном времени по мере накопления доказательств.',
20
+ },
21
+ {
22
+ name: 'Экспорт технического снимка',
23
+ text: 'Создайте структурированный отчёт с координатами очага, достоверностью, дисперсией, состоянием слоёв и полным набором векторов для последующего анализа.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Могут ли термические узоры доказать точную точку начала пожара?',
30
+ answer: 'Нет. Термические узоры могут помочь в выработке и проверке гипотез очага, но вентиляция, тушение, пожарная нагрузка, общая вспышка и постпожарные нарушения могут искажать узоры. Реальное определение очага требует систематического расследования.',
31
+ },
32
+ {
33
+ question: 'Почему V-образные узоры важны при расследовании пожаров?',
34
+ answer: 'V-образные узоры часто отражают распространение пламени вверх и наружу по вертикальным поверхностям. Они могут указывать на более низкую область очага, но должны сопоставляться с другими доказательствами перед выводами.',
35
+ },
36
+ {
37
+ question: 'На что указывает глубокое обугливание?',
38
+ answer: 'Глубокое обугливание может указывать на более длительный нагрев, более высокий тепловой поток или влияние топлива. Это полезный контекст, но он не указывает автоматически на очаг, поскольку материалы обугливаются с разной скоростью.',
39
+ },
40
+ {
41
+ question: 'Зачем использовать несколько векторов вместо одной стрелки?',
42
+ answer: 'Один узор может вводить в заблуждение. Несколько независимых векторов снижают влияние одной повреждённой стены, одного топливного пакета или одного пути вентиляции.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ planAria: 'Интерактивная криминалистическая рабочая область для построения векторов распространения огня',
52
+ vPattern: 'V-образный узор',
53
+ deepChar: 'Глубокое обугливание',
54
+ sootShadow: 'Тень от копоти',
55
+ cleanBurn: 'Чистое выгорание',
56
+ loadPlan: 'Загрузить план',
57
+ generateReport: 'Создать отчёт',
58
+ pointerLabel: 'Указатель',
59
+ resetVectors: 'Сброс',
60
+ estimatedOrigin: 'Предполагаемый очаг',
61
+ visibleLayers: 'Видимые слои доказательств',
62
+ vectorsLabel: 'ВЕКТОРЫ',
63
+ confidenceLabel: 'ДОСТОВЕРНОСТЬ',
64
+ varianceLabel: 'ДИСПЕРСИЯ',
65
+ modeLabel: 'РЕЖИМ',
66
+ guideSummary: 'Как использовать этот инструмент',
67
+ flowPanelTitle: 'Рабочий процесс',
68
+ legendPanelTitle: 'Легенда доказательств',
69
+ readoutPanelTitle: 'Панель результатов',
70
+ flow1Kicker: 'ШАГ 1',
71
+ flow1Icon: '1',
72
+ flow1Title: 'Загрузка',
73
+ flow1Text: 'Загрузите план места происшествия',
74
+ flow2Kicker: 'ШАГ 2',
75
+ flow2Icon: '2',
76
+ flow2Title: 'Выбор улики',
77
+ flow2Text: 'Кликните по следу горения',
78
+ flow3Kicker: 'ШАГ 3',
79
+ flow3Icon: '3',
80
+ flow3Title: 'Перетащите вектор',
81
+ flow3Text: 'Укажите направление огня',
82
+ flow4Kicker: 'ШАГ 4',
83
+ flow4Icon: '4',
84
+ flow4Title: 'Прочитайте результат',
85
+ flow4Text: 'Проверьте нижнюю панель + экспорт',
86
+ basicsTitle: 'Что следует сделать в первую очередь',
87
+ basicsIntro: 'Загрузите чёткий план, отмечайте только те узоры, которые можете обосновать, и распределяйте векторы по разным поверхностям, а не повторяйте одну и ту же улику.',
88
+ indicatorsTitle: 'Что означает каждый тип доказательства',
89
+ vPatternShort: 'Прогар стены раскрывается вверх',
90
+ vPatternExplain: 'V-образный узор - это знакомая форма прогорания вверх и наружу, часто наблюдаемая на стене. Это может указывать на то, что тепло и пламя поднимались из более низкой области, но не является автоматическим доказательством точного очага.',
91
+ deepCharShort: 'Область горела сильнее или дольше',
92
+ deepCharExplain: 'Глубокое обугливание означает, что материал выглядит более сгоревшим, почерневшим или уничтоженным в одной области по сравнению с окружением. Это может указывать на более длительный или интенсивный нагрев, но тип топлива и толщина материала имеют большое значение.',
93
+ sootShadowShort: 'Дым заблокирован или перенаправлен',
94
+ sootShadowExplain: 'Тень от копоти - это защищённая или иначе затемнённая область, указывающая на то, что объект, поверхность или поток воздуха изменили способ осаждения копоти. Это может помочь восстановить, что находилось на месте или как двигался дым.',
95
+ cleanBurnShort: 'Меньше копоти из-за тепла или потока воздуха',
96
+ cleanBurnExplain: 'Чистое выгорание - это область, где копоть выглядит светлее, удалена или отсутствует, потому что тепло, вентиляция или прямое воздействие пламени повлияли на неё иначе. Это полезно, но не каждая чистая область указывает на очаг.',
97
+ resultsTitle: 'Как читать результат',
98
+ resultsIntro: 'Используйте нижнюю панель как быструю проверку вашего картирования, а не как окончательное криминалистическое заключение.',
99
+ resultsPoint1: 'Сколько линий доказательств активно.',
100
+ resultsPoint2: 'Насколько сильно согласуются активные векторы.',
101
+ resultsPoint3: 'Насколько широкой остаётся область очага.',
102
+ resultsPoint4: 'Что инструмент ожидает от вас дальше.',
103
+ awaitingVector: 'Ожидание вектора',
104
+ selectIndicator: 'Выбрать индикатор',
105
+ refiningVector: 'Уточнение вектора',
106
+ needsMoreVectors: 'Требуется больше векторов',
107
+ wideArea: 'Широкая область очага',
108
+ focusedArea: 'Сфокусированная область очага',
109
+ dropPlan: 'Перетащите изображение плана или кликните для загрузки',
110
+ needsMoreVectorsText: 'Нарисуйте как минимум две чёткие направляющие стрелки. Три или более независимых наблюдений обычно делают сходимость гораздо более лёгкой для интерпретации.',
111
+ wideAreaText: 'Спроецированные линии пересекаются, но разброс всё ещё широк. На реальном месте происшествия сопоставьте вентиляцию, пожарную нагрузку, последствия тушения и свидетельские показания перед сужением очага.',
112
+ focusedAreaText: 'Векторы сходятся в компактной области. Рассматривайте это как сильный учебный сигнал для разработки гипотез очага, а не как окончательное криминалистическое заключение.',
113
+ disclaimer: 'Только образовательное моделирование. Реальное расследование очага и причины пожара должно следовать принятым руководствам, протоколам безопасности на месте, стандартам документирования и квалифицированной экспертной оценке.',
114
+ },
115
+ seo: [
116
+ {
117
+ type: 'title',
118
+ text: 'Интерактивный анализ очага пожара по векторам термических узоров',
119
+ level: 2,
120
+ },
121
+ {
122
+ type: 'diagnostic',
123
+ variant: 'info',
124
+ icon: 'mdi:fire-alert',
125
+ badge: 'Учебный симулятор',
126
+ title: 'Чему учит этот анализатор очага пожара по термическим узорам',
127
+ html: 'Этот браузерный инструмент демонстрирует, как следователи переходят от физических термических узоров к вероятной <strong>области очага</strong>. Пользователи наносят на карту видимые доказательства, рисуют направленные векторы распространения и наблюдают, как спроецированные линии сходятся или расходятся. Модель намеренно образовательная: она учит геометрии и интерпретации узоров, а не юридическому определению причины.',
128
+ },
129
+ {
130
+ type: 'stats',
131
+ columns: 4,
132
+ items: [
133
+ { value: '4 слоя', label: 'V-узор, обугливание, копоть, чистое выгорание', icon: 'mdi:layers-triple' },
134
+ { value: '2D-план', label: 'структурная карта помещения', icon: 'mdi:floor-plan' },
135
+ { value: '3+ стрелки', label: 'рекомендуемое количество наблюдений', icon: 'mdi:vector-line' },
136
+ { value: '0-100%', label: 'ввод достоверности', icon: 'mdi:gauge' },
137
+ ],
138
+ },
139
+ {
140
+ type: 'summary',
141
+ title: 'Дисциплинированный рабочий процесс для интерпретации термических узоров',
142
+ items: [
143
+ 'Начните с безопасности, сохранения места происшествия, фотосъёмки, эскизов и систематического документирования перед интерпретацией узоров.',
144
+ 'Разделяйте типы узоров, чтобы V-образные повреждения, глубина обугливания, отложение копоти и чистое выгорание не сводились к одному предположению.',
145
+ 'Рисуйте направленные индикаторы только там, где физический узор поддерживает обоснованное направление распространения.',
146
+ 'Ищите сходимость между независимыми наблюдениями, а не полагайтесь на наиболее впечатляющие повреждения.',
147
+ 'Используйте предполагаемую область очага как гипотезу для проверки в сравнении с топливом, источниками зажигания, вентиляцией, электрическими доказательствами и показаниями свидетелей.',
148
+ ],
149
+ },
150
+ {
151
+ type: 'table',
152
+ headers: ['Узор', 'Потенциальная ценность', 'Основная осторожность'],
153
+ rows: [
154
+ ['V-образный узор', 'Может указывать на распространение пламени вверх и наружу из более низкой области.', 'Может быть изменён вентиляцией, общей вспышкой, геометрией стен и тушением.'],
155
+ ['Глубокое обугливание', 'Может указывать на длительное тепловое воздействие или интенсивное горение.', 'Тип топлива и толщина материала сильно влияют на глубину обугливания.'],
156
+ ['Тень от копоти', 'Может раскрывать защищённые зоны, размещение объектов или эффекты воздушного потока.', 'Перемещение мебели или действия по тушению могут изменить интерпретацию.'],
157
+ ['Чистое выгорание', 'Может показывать высокую температуру, вентиляцию или позднюю стадию горения.', 'Не определяет автоматически первый загоревшийся материал.'],
158
+ ],
159
+ },
160
+ {
161
+ type: 'comparative',
162
+ columns: 2,
163
+ items: [
164
+ {
165
+ title: 'Более надёжные гипотезы очага',
166
+ icon: 'mdi:check-circle-outline',
167
+ highlight: true,
168
+ description: 'Лучшие гипотезы объясняют несколько наблюдений одновременно.',
169
+ points: ['Независимые векторы сходятся', 'Доказательства соответствуют известным путям вентиляции', 'Топливные пакеты учтены', 'Альтернативные очаги активно проверяются'],
170
+ },
171
+ {
172
+ title: 'Слабые гипотезы очага',
173
+ icon: 'mdi:alert-circle-outline',
174
+ description: 'Слабые гипотезы часто опираются на один узор без проверки искажающих факторов.',
175
+ points: ['Одна драматичная обугленная область рассматривается как доказательство', 'Общая вспышка игнорируется', 'Повреждения от тушения не задокументированы', 'Доказательства источника зажигания предполагаются'],
176
+ },
177
+ ],
178
+ },
179
+ {
180
+ type: 'title',
181
+ text: 'Как работает векторная модель',
182
+ level: 3,
183
+ },
184
+ {
185
+ type: 'paragraph',
186
+ html: 'Каждая стрелка рассматривается как спроецированная линия распространения огня. Оценщик вычисляет попарные пересечения линий, отфильтровывает точки, попадающие в разумные границы плана, усредняет оставшиеся пересечения и сообщает радиус на основе разброса этих пересечений. Малый радиус с несколькими векторами даёт более сильный сигнал сходимости. Модель пересечения работает путем решения параметрических уравнений двух линий, исходящих от соответствующих маркеров доказательств. Когда два вектора указывают на общую область, их теоретическая точка пересечения вносит одну координату в пул усреднения. Чем больше независимых векторов участвует, тем больше оценщик может отфильтровать пересечения, находящиеся далеко от основного кластера, эффективно снижая влияние любого отдельного наблюдения, которое может быть плохо ориентировано или неверно истолковано.',
187
+ },
188
+ {
189
+ type: 'paragraph',
190
+ html: 'Этот геометрический подход отражает упражнение по зарисовке в классе: он помогает студентам понять, почему анализ очага улучшается, когда наблюдения поступают с разных поверхностей и типов узоров. Он также выявляет распространённую проблему: стрелки могут пересекаться, даже когда базовая интерпретация слаба, поэтому математический центр никогда не должен заменять суждение пожарно-технической науки. В реальном расследовании специалисты сравнивают полученный результат с путями вентиляции, распределением пожарной нагрузки, структурными повреждениями и показаниями свидетелей, прежде чем рассматривать какие-либо координаты как вероятный очаг. Инструмент поощряет эту привычку, отображая дисперсию рядом с расчётной точкой, напоминая пользователям, что плотный кластер пересечений настолько силён, насколько качественны наблюдения, которые его создали.',
191
+ },
192
+ {
193
+ type: 'paragraph',
194
+ html: 'Помимо базовой логики пересечений, оценщик применяет граничное ограничение, так что пересечения, расположенные далеко за пределами плана помещения, исключаются. Это предотвращает смещение усреднённого центра выбросами в сторону невозможных мест. Итоговый радиус представляет собой стандартное отклонение оставшихся координат пересечений, давая прямую меру того, насколько согласованно активные векторы совпадают. Радиус менее десяти процентов от размаха плана указывает на сильную сходимость. Радиус, превышающий четверть плана, сигнализирует о том, что доказательства ещё не поддерживают сфокусированный очаг, и необходимы дополнительные или более качественные наблюдения перед выводами.',
195
+ },
196
+ {
197
+ type: 'glossary',
198
+ items: [
199
+ { term: 'Область очага', definition: 'Общая область, где имеющиеся доказательства указывают на начало пожара.' },
200
+ { term: 'V-образный узор', definition: 'Термический узор, часто проявляющийся как повреждение вверх и наружу на вертикальной поверхности.' },
201
+ { term: 'Чистое выгорание', definition: 'Более светлая или чистая область, возникающая при выгорании копоти или её отсутствии в условиях высокой температуры или воздушного потока.' },
202
+ { term: 'Тень от копоти', definition: 'Защищённая или иначе осаждённая область копоти, которая может сохранять информацию об объектах, воздушном потоке или тепловом воздействии.' },
203
+ { term: 'Векторная сходимость', definition: 'Группировка спроецированных направленных индикаторов вокруг общей области.' },
204
+ ],
205
+ },
206
+ {
207
+ type: 'diagnostic',
208
+ variant: 'warning',
209
+ icon: 'mdi:scale-balance',
210
+ badge: 'Криминалистическая осторожность',
211
+ title: 'Не превращайте сходимость в уверенность',
212
+ html: 'Компактный кластер пересечений полезен только при достоверных наблюдениях. Реальные расследования должны учитывать вентиляцию, общую вспышку, топливные пакеты, электрические системы, доказательства от приборов, показания свидетелей, тушение и нарушение обстановки на месте.',
213
+ },
214
+ ],
215
+ faq,
216
+ bibliography,
217
+ howTo,
218
+ schemas: [
219
+ {
220
+ '@context': 'https://schema.org',
221
+ '@type': 'SoftwareApplication',
222
+ name: title,
223
+ description,
224
+ applicationCategory: 'ForensicApplication',
225
+ operatingSystem: 'Any',
226
+ },
227
+ {
228
+ '@context': 'https://schema.org',
229
+ '@type': 'FAQPage',
230
+ mainEntity: faq.map((item) => ({
231
+ '@type': 'Question',
232
+ name: item.question,
233
+ acceptedAnswer: {
234
+ '@type': 'Answer',
235
+ text: item.answer,
236
+ },
237
+ })),
238
+ },
239
+ {
240
+ '@context': 'https://schema.org',
241
+ '@type': 'HowTo',
242
+ name: title,
243
+ step: howTo.map((step) => ({
244
+ '@type': 'HowToStep',
245
+ name: step.name,
246
+ text: step.text,
247
+ })),
248
+ },
249
+ ],
250
+ };