遇见数据集

A Physics-Informed Graph Attention Enhanced CNN-GRU Coupling Model for Fire Spread Path Prediction in Chemical Industrial Parks

收藏
Zenodo2026-09-25 更新2026-10-01 收录
官方服务:

资源简介:

# PI-GAT-CNN-GRU **Physics-informed graph attention enhanced CNN-GRU coupling model forfire spread path prediction in chemical industrial parks.** This repository accompanies the study on tank-to-tank fire cascadeforecasting in chemical industrial parks. It provides a fullimplementation of a hybrid deep learning framework that couples aphysics-aware graph attention network with a multiscale causaltemporal convolution stack and a GRU decoder, together with thedataset, trained checkpoints, and result figures. --- ## Repository layout The release is split into two packages so that the source code andthe data can be downloaded independently: | Package | Description | Size ||---|---|---|| `pigatcnngru_code.zip` | Source code, training scripts, empty `data/` folder | ~90 KB || `fire_cascade_dataset.zip` | Pre-processed dataset, checkpoints, figures, results | ~7 MB | To reproduce every table and figure end-to-end: ```bashunzip pigatcnngru_code.zipunzip fire_cascade_dataset.zipcp fire_cascade_dataset/processed/*.npz pigatcnngru_code/data/cp fire_cascade_dataset/checkpoints/*.pt pigatcnngru_code/outputs/checkpoints/cd pigatcnngru_codepip install -r requirements.txtpython reproduce.py``` --- ## Model The model consumes per-tank static features (volume, wall thickness,flash point, critical heat flux), per-tank dynamic features (incidentflux, ignition state), and park-level covariates (wind speed, winddirection, ambient temperature) at 30 s resolution and predicts theignition probability of every tank at every future step. - **Physics-aware graph attention layer.** Each attention head computes an attention logit conditioned on the point-source radiative flux prior derived from the Cozzani et al. atmospheric tank failure correlation. A learnable coefficient blends the physics prior with the learned similarity so the attention weights remain consistent with the underlying radiation transport.- **Multiscale causal temporal convolution.** Three parallel causal branches with dilation {1, 2, 4} capture short, medium and long temporal patterns, and are fused by a 1x1 convolution.- **GRU decoder with autoregressive rollout.** A GRU cell rolls the hidden state forward; two heads output the ignition logit and the reconstructed incident flux at every step.- **Composite loss.** Focal binary cross-entropy on the ignition targets, Huber loss on the reconstructed flux, and a physics regularization term that anchors the predicted flux to the point-source prior. Hyperparameters are search-optimized via an improved whaleoptimization algorithm (IWOA) that includes Levy-flight perturbation,opposition-based learning, and a nonlinear inertia schedule. --- ## Dataset The primary study park contains 32 vertical atmospheric tanksdistributed across five dikes and five fuel media(Gasoline, Diesel, Benzene, Toluene, Xylene). The scenario matrixspans 12 ignition tanks x 4 wind speeds x 8 wind directions x 3 ambient temperatures = 1152 scenarios, sampled at 30 s over 3600 s (120 time steps per scenario). Threeadditional parks (24 / 16 / 37 tanks) support transfer evaluation,and a 15-tank reconstruction of the 2019 Deer Park terminal eventsupports external validation. Every archive under `processed/` follows the same schema: X_static (N, 4) tank-level static features X_dyn (S, T, N, 2) tank-level dynamic features X_park (S, T, 3) park-level covariates Y (S, T, N) ignition labels dist / az / shield / vf (N, N) topology matrices --- ## Results Evaluation on the random test split (mean over five seeds): | Metric | PI-GAT-CNN-GRU | GAT-GRU | GCN-GRU | CNN-GRU | LSTM | Random Forest ||-------------|----------------|---------|---------|---------|--------|---------------|| F1 | 0.6187 | 0.5714 | 0.5417 | 0.5086 | 0.4715 | 0.4402 || PR-AUC | 0.6521 | 0.6031 | 0.5628 | 0.5301 | 0.4938 | 0.4645 || PHR@Top-3 | 0.6784 | 0.6290 | 0.5474 | 0.5163 | 0.4802 | 0.4485 || TCI | 0.7326 | 0.6821 | 0.6421 | 0.6067 | 0.5824 | 0.5601 | Transfer performance on the three additional parks (direct transfer,F1 retention against source-park F1): | Target park | F1 | PR-AUC | Retention ||--------------|--------|--------|-----------|| Alternative | 0.5470 | 0.5754 | 88.4 % || Compact | 0.5168 | 0.5459 | 83.5 % || Mixed | 0.4985 | 0.5265 | 80.6 % | Hyperparameter search comparison (fitness = 0.6 F1 + 0.4 PR-AUC): | Optimizer | Best fitness ||----------------|--------------|| Random search | 0.5975 || WOA | 0.6108 || PSO | 0.6167 || IWOA | 0.6321 | Uncertainty on the test split: | Estimator | ECE | 95 % PI coverage ||-----------------|-------|------------------|| MC dropout (100 passes) | 0.045 | 89.4 % || Deep ensemble (5 seeds) | 0.031 | 91.7 % | External validation on the 2019 Deer Park event yields a Kendall'stau of 0.59 between the predicted cascade order and the documentedescalation order. --- ## Quick start Minimal example: ```pythonimport numpy as np, torchfrom src.model import PIGATCNNGRUfrom src import data_loader as dl, graph_builder as gb data = dl.load_dataset("data/study_park_dataset.npz")tanks = dl.study_park_tanks()scenarios = dl.build_scenarios(tanks, n_wanted=data["X_dyn"].shape[0]) model = PIGATCNNGRU(n_tanks=32)model.load_state_dict(torch.load("outputs/checkpoints/pigat_seed42.pt", weights_only=False))model.eval() priors = gb.edge_weight_prior_batch(tanks, data["dist"], data["shield"], scenarios[:1])edge_feat = gb.build_edge_features_torch(tanks, data["dist"], data["az"], data["shield"], data["vf"])# forward-pass one scenario ...``` Individual training stages: ```bashpython scripts/train_main.py --model pigat --seeds 42 43 44 45 46python scripts/run_ablation.pypython scripts/run_transfer.pypython scripts/run_iwoa.pypython scripts/run_uncertainty.pypython scripts/run_deer_park.pypython scripts/plot_figures.py``` --- ## Requirements - Python 3.10+- PyTorch 2.0+- NumPy, SciPy, scikit-learn, Matplotlib, pandas, openpyxl Install with `pip install -r requirements.txt`. --- ## Directory reference ```pigatcnngru_code/├── src/│ ├── config.py hyperparameters, fuel-property database│ ├── data_loader.py dataset loader and topology utilities│ ├── graph_builder.py directed weighted graph construction│ ├── physics.py Cozzani correlation, view factor, shielding│ ├── model.py PI-GAT-CNN-GRU network│ ├── baselines.py GCN-GRU baseline│ ├── losses.py focal + auxiliary flux + physics regularization│ ├── metrics.py F1, PR-AUC, PHR@Top-3, TCI│ ├── trainer.py autoregressive rollout trainer│ ├── iwoa.py IWOA / WOA / PSO / random search│ ├── uncertainty.py MC dropout, deep ensemble, LHS perturbation│ ├── transfer.py transfer parks and Deer Park validation│ └── calibration.py temperature scaling├── scripts/ eight runnable stage scripts├── data/ dataset archives go here├── outputs/ training logs, checkpoints, figures, metrics├── reproduce.py end-to-end pipeline├── run_all.py subprocess-based pipeline driver└── requirements.txt fire_cascade_dataset/├── raw_materials/ fuel & topology xlsx, FDS scripts, layouts├── processed/ five NumPy dataset archives├── checkpoints/ three trained state dictionaries├── figures/ twelve 300 DPI result figures├── results/ six JSON metric summaries└── logs/ per-epoch CSV training logs```

提供机构:
Zenodo
创建时间:
2026-09-25
二维码
社区交流群
二维码
科研交流群
商业服务