🗓️ Last updated: August 4, 2025
Graph Variational State-Space Model for Probabilistic Spatiotemporal Inference of Dynamic Exposure and Vulnerability for Regional Disaster Resilience Assessment
This code depends on MATLAB R2025b, QGIS 3.40.5-Brastislava, or any newer versions. The MATLAB toolboxes for Mapping, Financial, Statistics and Machine Learning, and Deep Learning must also be installed to enable the data import and export of GeoTIFF files (*.tif) and perform the deep learning training. Educational license is available for schools and universities.
Due to the large storage requirement (especially for the 46 countries of METEOR 2.5D), the training data (i.e., tiles) across the three case studies will be made available in the future. However, we provide the resulting maps below.
There are three main modules in this repository, which correspond to three case studies presented in our paper. While the training data are currently unavailable due to large storage requirement, we provide the relevant codes, scripts, and modules, so that anyone can still review the step-by-step implementation of GraphVSSM.
- In
code\main\:QuezonCityPHL_Train.m- a script for training of Case Study 1.QuezonCityPHL_Infer.m- a script for downstream inference of Case Study 1.KhurushkulBGD.m- a script for training and inference of Case Study 2 (Khurushkul).FreetownSLE.m- a script for training and inference of Case Study 2 (Khurushkul).METEOR25D.m- a script for training and inference of Case Study 3 (METEOR 2.5D).
- In
code\models\<OE/TE/OV/TV>\:decoder<OE/TE/OV/TV>.m- a function for decoder networkencoder<OE/TE/OV/TV>.m- a function for encoder networkinitializeP<OE/TE/OV/TV>.m- a function that initializes the encoder-decoder architecturemodel<OE/TE/OV/TV>loss.m- a function that computes losses
- In
code\helper\getWeight\- a set of functions for computing weights for loss calculationsmanuscriptFigures\- a set of functions for Figures 2 and 3 of manuscriptprepInput\- a set of functions to reorganize the structure to be suitable as inputstrainingFigs\- a set of functions to initialize figures for trainingutility\- a set of functions for various purposes like construction of grid-based adjacency matrices
- In
gnn\: contains the trained GraphVSSM models across the three case studies - In
plot\: contains the corresponding loss plots across the three case studies
.
├── LICENSE
├── code
│ ├── helper
│ │ ├── getWeight
│ │ │ ├── getOVInputWeights.m
│ │ │ ├── getTEInputWeights.m
│ │ │ └── getTVInputWeights.m
│ │ ├── manuscriptFigures
│ │ │ ├── figure2.m
│ │ │ └── figure3.m
│ │ ├── prepInput
│ │ │ ├── prepareData.m
│ │ │ ├── prepareOE4TE.m
│ │ │ ├── prepareOV4TV.m
│ │ │ ├── prepareReducedAdj4OVTV.m
│ │ │ └── prepareTE4OV.m
│ │ ├── trainingFigs
│ │ │ ├── initializeOEfig.m
│ │ │ ├── initializeOVfig.m
│ │ │ ├── initializeTEfig.m
│ │ │ └── initializeTVfig.m
│ │ └── utility
│ │ ├── dataSplit.m
│ │ ├── initializeGlorot.m
│ │ ├── masked_grid_adjacency.m
│ │ ├── modelOVlossOSB.m
│ │ ├── modelOVlossSHOCK.m
│ │ ├── nanfilter2.m
│ │ ├── normalizeAdjacency.m
│ │ ├── sparse_dilate_ultra.m
│ │ └── wQReconLoss.m
│ ├── main
│ │ ├── FreetownSLE.m
│ │ ├── KhurushkulBGD.m
│ │ ├── METEOR25D.m
│ │ ├── QuezonCityPHL_Infer.m
│ │ └── QuezonCityPHL_Train.m
│ └── models
│ ├── OE
│ │ ├── decoderOE.m
│ │ ├── encoderOE.m
│ │ ├── initializePOE.m
│ │ └── modelOEloss.m
│ ├── OV
│ │ ├── decoderOV.m
│ │ ├── encoderOV.m
│ │ ├── initializePOV.m
│ │ └── modelOVloss.m
│ ├── TE
│ │ ├── decoderTE.m
│ │ ├── encoderTE.m
│ │ ├── initializePTE.m
│ │ └── modelTEloss.m
│ └── TV
│ ├── decoderTV.m
│ ├── encoderTV.m
│ ├── initializePTV.m
│ └── modelTVloss.m
├── gnn
│ ├── 1-QuezonCityPHL
│ │ ├── GraphVSSM_OEparameters.mat
│ │ ├── GraphVSSM_OVparameters.mat
│ │ ├── GraphVSSM_TEparameters.mat
│ │ └── GraphVSSM_TVparameters.mat
│ ├── 2-FreetownSLE
│ │ └── GraphVSSM_OVparameters.mat
│ ├── 2-KhurushkulBGD
│ │ └── GraphVSSM_OVparameters.mat
│ └── 3-METEOR25D
│ ├── GraphVSSM_OVparameters_AFG.mat
│ ├── GraphVSSM_OVparameters_AGO.mat
│ ├── ...
│ ├── GraphVSSM_OVparameters_YEM.mat
│ └── GraphVSSM_OVparameters_ZMB.mat
├── plot
│ ├── 1-QuezonCityPHL
│ │ ├── OE
│ │ │ ├── OE_KL_BH.fig
│ │ │ ├── OE_KL_BP.fig
│ │ │ └── OE_ReconLoss.fig
│ │ ├── OV
│ │ │ ├── OV_KL.fig
│ │ │ └── OV_ReconLoss.fig
│ │ ├── TE
│ │ │ ├── TE_KL_BH.fig
│ │ │ ├── TE_KL_BP.fig
│ │ │ ├── TE_ReconLoss_BH.fig
│ │ │ └── TE_ReconLoss_BP.fig
│ │ └── TV
│ │ ├── TV_CEL.fig
│ │ ├── TV_KL.fig
│ │ ├── TV_ReconLoss_P.fig
│ │ └── TV_ReconLoss_X.fig
│ ├── 2-FreetownSLE
│ │ ├── OV_KL.fig
│ │ └── OV_ReconLoss.fig
│ ├── 2-KhurushkulBGD
│ │ ├── OV_KL.fig
│ │ └── OV_ReconLoss.fig
│ └── 3-METEOR25D
│ ├── OV-KLloss
│ │ ├── OV_KL_AFG.fig
│ │ ├── OV_KL_AGO.fig
│ │ ├── ...
│ │ ├── OV_KL_YEM.fig
│ │ └── OV_KL_ZMB.fig
│ └── OV-Reconloss
│ ├── OV_ReconLoss_AFG.fig
│ ├── OV_ReconLoss_AGO.fig
│ ├── ...
│ ├── OV_ReconLoss_YEM.fig
│ └── OV_ReconLoss_ZMB.fig
└── README.md