Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
8468d9a
Add animations to SPO, CPO and NRHA analyses and add mode shape plott…
almouayedbellah-nafeh Jan 20, 2026
347ef23
Add FEMA P695 far-field record set for IDA demo
almouayedbellah-nafeh Jan 20, 2026
fff6825
Add incremental dynamic analysis method to modeller.py and refactor m…
almouayedbellah-nafeh Jan 20, 2026
547a8ab
Refactor modeller.py and add animation to NRHA method
almouayedbellah-nafeh Jan 21, 2026
ecff580
Add method to post-process truncated/non-truncated IDA results from NRHA
almouayedbellah-nafeh Jan 21, 2026
d95a8fe
Add README.md to IDA demo
almouayedbellah-nafeh Jan 21, 2026
10ef71c
Refactor plotter to add animation to NRHA, plots for IDA curves, frag…
almouayedbellah-nafeh Jan 21, 2026
76e79c8
Add Jupyter notebook for IDA demo
almouayedbellah-nafeh Jan 21, 2026
8bfe7c5
Cosmetic changes in plotter.py
almouayedbellah-nafeh Jan 21, 2026
39b5840
Cosmetic change to IDA demo notebook
almouayedbellah-nafeh Jan 21, 2026
f136186
Cosmetic change to IDA demo notebook
almouayedbellah-nafeh Jan 21, 2026
0b82abf
Cosmetic changes to NRHA demo notebook
almouayedbellah-nafeh Jan 21, 2026
a2ae528
Refactor plot_demand_profiles function
almouayedbellah-nafeh Jan 21, 2026
8a60add
Update NonlinearTimeHistoryAnalysis demo with animated output
almouayedbellah-nafeh Jan 21, 2026
c7e7699
Update CloudAnalysis demo notebook
almouayedbellah-nafeh Jan 21, 2026
6aa525d
Update plotter class with NRHA animation, refactor of CA analysis plo…
almouayedbellah-nafeh Jan 21, 2026
5313049
Cosmetic changes to CA and IDA notebooks
almouayedbellah-nafeh Jan 21, 2026
04ba827
Added animations to SPO and CPO analyses as outputs
almouayedbellah-nafeh Jan 21, 2026
8bcc94d
Update PushoverAnalysis demo to include animations
almouayedbellah-nafeh Jan 21, 2026
de75891
Update modeller.py with animation arguments to SPO and CPO analysis m…
almouayedbellah-nafeh Jan 21, 2026
a6f4001
Cosmetic changes to PushoverAnalysis demo
almouayedbellah-nafeh Jan 21, 2026
37c78b3
Update CloudAnalysis demo
almouayedbellah-nafeh Jan 24, 2026
30a02ae
Update plotter class with modified cloud analysis regression and frag…
almouayedbellah-nafeh Jan 24, 2026
fe5c4c8
Update postprocessor class with modified cloud analysis post-processi…
almouayedbellah-nafeh Jan 24, 2026
4a6c61b
Increase the default spectrum npts to 500
almouayedbellah-nafeh Jan 24, 2026
df52538
Added animation of MCA as asset for demo
almouayedbellah-nafeh Jan 26, 2026
bac313a
Relocate input ground-motion records of demos
almouayedbellah-nafeh Jan 26, 2026
b2d682b
Cosmetic changes to CloudAnalysis demo
almouayedbellah-nafeh Jan 26, 2026
19d2661
Add variability in DS threshold as input argument for NLTHA methods a…
almouayedbellah-nafeh Jan 29, 2026
247da4c
Delete assets
almouayedbellah-nafeh Jan 29, 2026
a81759b
Refactored AAL and AADP methods
almouayedbellah-nafeh Jan 29, 2026
ec67268
Added static output to ModifiedCloudAnalysis demo
almouayedbellah-nafeh Jan 29, 2026
e64ac5a
Added static output to ModifiedCloudAnalysis demo
almouayedbellah-nafeh Jan 29, 2026
a843723
Refactored ModifiedCloudAnalysis demo
almouayedbellah-nafeh Jan 29, 2026
c207bb0
Cosmetic changes to IntensityMeasureProcessing demo
almouayedbellah-nafeh Jan 29, 2026
d039e7a
Bug fix in postprocessor to stabilise logistic regression if bootstra…
mouayed-nafeh Jan 30, 2026
cc3cb44
Replace MSA record set with Lisbon-consistent set
mouayed-nafeh Feb 12, 2026
9916b83
Merge branch 'incremental-dynamic-analysis' of https://github.com/GEM…
almouayedbellah-nafeh Feb 13, 2026
a3a6e1c
Replace MSA record set with Lisbon-consistent set conditioned at T=0.19s
mouayed-nafeh Feb 13, 2026
4d3cb1c
Merge branch 'incremental-dynamic-analysis' of https://github.com/GEM…
almouayedbellah-nafeh Feb 13, 2026
f270f58
Replace MSA record set with Lisbon-consistent set conditioned at T=0.19s
mouayed-nafeh Feb 13, 2026
5514f0c
Fixes and refactoring of IDA, MSA, MCA demos
almouayedbellah-nafeh Feb 13, 2026
5ec9cf9
Fix bug in plotter.py
almouayedbellah-nafeh Feb 25, 2026
3ea4a56
Update MCA demo after bug fix in plotter
almouayedbellah-nafeh Feb 25, 2026
b97e871
Update MSA demo after changes to plotter.py
almouayedbellah-nafeh Feb 25, 2026
a041f02
Update IDA demo
almouayedbellah-nafeh Feb 25, 2026
233c8f7
Update plot_slf_model method in plotter.py
almouayedbellah-nafeh Feb 25, 2026
0bfb4d8
Update SLF Generation demo after changes in plotter.py
almouayedbellah-nafeh Feb 25, 2026
b5bdae6
Update MCA after update in plot_fragility_from_mca name
almouayedbellah-nafeh Feb 25, 2026
15d0995
Update animate_spo and animate_cpo docstrings and export_path arg
almouayedbellah-nafeh Feb 25, 2026
e72e0ca
Update PushoverAnalysis demo after changes to plotter.py
almouayedbellah-nafeh Feb 25, 2026
7b96827
Update plotter.py docstrings and NLTHA demo
almouayedbellah-nafeh Feb 25, 2026
9c9d6ce
Fixed bug in postprocessor which was exporting NoneType for non-logno…
almouayedbellah-nafeh Feb 25, 2026
e386896
Update calibration.py to displacement-based design methodology
almouayedbellah-nafeh Mar 7, 2026
b456dbc
Update modeller call in calibration module
almouayedbellah-nafeh Mar 7, 2026
5d3be3c
Rename variable floor_heights to storey_heights in calibration
almouayedbellah-nafeh Mar 7, 2026
6b83221
Rename variables pflag and floor_heights to pFlag and storey_heights …
almouayedbellah-nafeh Mar 7, 2026
c669d34
Rename pflag to pFlag in calibration.py
almouayedbellah-nafeh Mar 7, 2026
49a5fff
Update modeller and calibration modules for stability
almouayedbellah-nafeh Mar 7, 2026
1c09548
Update plot_model method in modeller
almouayedbellah-nafeh Mar 7, 2026
ebe1482
Update plot_modes in plotter class
almouayedbellah-nafeh Mar 7, 2026
9b249e9
Stable animations and plots with analysis routine fixes
almouayedbellah-nafeh Mar 8, 2026
46e146a
Cleanup demo outputs
almouayedbellah-nafeh Mar 9, 2026
96f1dba
Refactor im_calculator code structure for improved readability and ma…
mouayed-nafeh Mar 10, 2026
04c66f1
Rename IMCalculator class to imcalculator
mouayed-nafeh Mar 10, 2026
61b0188
Refactor units code structure for improved readability and maintainab…
mouayed-nafeh Mar 10, 2026
eefd8df
Refactor utilities code structure for improved readability and mainta…
mouayed-nafeh Mar 10, 2026
80e21a0
Create test_modeller.py
mouayed-nafeh Mar 10, 2026
1b27692
Refactor modeller code structure for improved readability and maintai…
mouayed-nafeh Mar 10, 2026
0bbe3b4
Update test_postprocessor.py
mouayed-nafeh Mar 11, 2026
cf47cd6
Update allocated storage for node displacements, accelerations in do_…
mouayed-nafeh Mar 11, 2026
8d7b66d
Refactor postprocessor code structure for improved readability and ma…
mouayed-nafeh Mar 11, 2026
7f7af6e
Refactor ModelCompilation Demo to PEP8 standards
almouayedbellah-nafeh Mar 11, 2026
0f337f8
Update .gitignore to remove ipynb_checkpoints
almouayedbellah-nafeh Mar 11, 2026
09b4e0d
Refactor ModelCompilation Demo to PEP8 standards
almouayedbellah-nafeh Mar 11, 2026
13c1d45
Refactor ModalAnalysis Demo to PEP8 standards
almouayedbellah-nafeh Mar 11, 2026
50e3965
Fix bugs in im_calculator class
mouayed-nafeh Mar 12, 2026
325f9c1
Refactor modeller.py to PEP8
mouayed-nafeh Mar 26, 2026
5f951ca
Refactor imcalculator.py to PEP8
mouayed-nafeh Mar 26, 2026
9d33600
Refactor imcalculator test and demo to PEP8
mouayed-nafeh Mar 26, 2026
891b571
Refactor modeller.py test to PEP8
mouayed-nafeh Mar 26, 2026
0251899
Refactor calibration.py to PEP8, update all dependent modules, unit t…
mouayed-nafeh Mar 27, 2026
073dbaf
Refactor postprocessor.py to PEP8, update all dependent modules, unit…
mouayed-nafeh Mar 27, 2026
ec8fc60
Refactor slfgenerator.py to PEP8, update all dependent modules, unit …
mouayed-nafeh Mar 27, 2026
098ed8a
Refactor IncrementalDynamicAnalysis demo to PEP8
mouayed-nafeh Mar 27, 2026
c7e781e
Refactor MultipleStripeAnalysis demo to PEP8
mouayed-nafeh Mar 27, 2026
7e6847f
Refactor plotter.py to PEP8 and create unit test
mouayed-nafeh Mar 27, 2026
3fecd4e
Resolve Flake8 problems on src code and unit tests
mouayed-nafeh Mar 27, 2026
5cb4a25
Resolve Flake8 problems on demo notebooks
mouayed-nafeh Mar 27, 2026
b440c7f
Create imselection.py to measure IM efficiency/sufficiency
mouayed-nafeh Mar 28, 2026
8ab430f
Add RotDxx calculation to imcalculator, update documentation pages
mouayed-nafeh Mar 31, 2026
22f4887
Fix bug in modeller.py
mouayed-nafeh Apr 1, 2026
98eed80
Fix Flake8 unterminated string literal issues
mouayed-nafeh Apr 1, 2026
0f86f42
update requirements for win64
vot4anto Apr 1, 2026
cd1c0e0
update requirements for linux
vot4anto Apr 1, 2026
9804bc9
first requirements for macos arm64
vot4anto Apr 1, 2026
fbb7c65
requirements files for macos arm64
vot4anto Apr 1, 2026
9aba767
Fix sampling bug in slfgenerator.py and out-of-bound beta in postproc…
mouayed-nafeh Apr 9, 2026
7a55dad
add windows and linux first release
vot4anto Apr 16, 2026
7ea43d2
add macos requirements first release
vot4anto Apr 16, 2026
b159444
add statsmodel wheel
vot4anto Apr 16, 2026
22d8670
add 3.13 on workflow
vot4anto Apr 16, 2026
ffbf15a
add 3.13 on pyproject.toml
vot4anto Apr 16, 2026
bece32c
Added MCMC method for modified cloud analysis, added plotter function…
mouayed-nafeh Apr 17, 2026
3f82035
Trigger CI
mouayed-nafeh Apr 17, 2026
1c6f790
Update test_modeller.py
mouayed-nafeh Apr 17, 2026
6ef6814
Fix DeprecationWarnings: use .item() for scalar extraction and direct…
mouayed-nafeh Apr 17, 2026
ab65189
Update test_plotter.py
mouayed-nafeh Apr 17, 2026
d9fda74
Suppress FigureCanvasAgg UserWarning from plt.show() in headless envi…
mouayed-nafeh Apr 17, 2026
bc580b2
Fix RecursionError in _show: call plt.show() not self._show()
mouayed-nafeh Apr 17, 2026
1aa2823
update pyproject
vot4anto Apr 17, 2026
3be6274
add action also for macos
vot4anto Apr 17, 2026
9937ec3
typo
vot4anto Apr 17, 2026
3241361
remove ssh for windows
vot4anto Apr 17, 2026
b6d07fe
Fix openseespy import dependency on OS
mouayed-nafeh Apr 21, 2026
334d3f9
add GITHUB_TOKEN to avoid error on rate limit
vot4anto Apr 21, 2026
e020bf9
Update pyproject.toml
vot4anto Apr 21, 2026
25ca2f9
add = to use scipy as 1.15.3
vot4anto Apr 23, 2026
55ec76a
Merge pull request #33 from GEMScienceTools/ae_ci_ratelimit
vot4anto Apr 24, 2026
423ddb8
Node.js 20 actions are deprecated
vot4anto Apr 24, 2026
2752b00
Verify docs and demos for EQ Spectra review
mouayed-nafeh May 5, 2026
5a0f84f
Update documentation pages
mouayed-nafeh May 5, 2026
19c4306
Update CHANGELOG.md
mouayed-nafeh May 12, 2026
a55df8d
Update CITATION.cff
mouayed-nafeh May 12, 2026
1774f0f
Add generalised CLM to postprocessor, docs, demos
mouayed-nafeh May 12, 2026
930c293
Merge branch 'main' into incremental-dynamic-analysis
vot4anto May 12, 2026
1408fb8
Update CITATION.cff
mouayed-nafeh May 12, 2026
62a0519
Merge branch 'incremental-dynamic-analysis' of https://github.com/GEM…
mouayed-nafeh May 12, 2026
cd89ae1
Update tests
mouayed-nafeh May 13, 2026
91cc76a
Update CITATION.cff
mouayed-nafeh May 13, 2026
c1735fc
Update tests
mouayed-nafeh May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[flake8]
max-line-length = 100
exclude =
.git,
__pycache__,
*.egg-info,
build,
dist,
19 changes: 14 additions & 5 deletions .github/workflows/linux_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
inputs:
git-ref:
description: Git Ref
default: master
default: main
required: true
debug_enabled:
type: boolean
Expand All @@ -24,16 +24,25 @@ jobs:
os: [ubuntu-24.04]
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- name: Clone Repository (Main)
uses: actions/checkout@v6
if: github.event.inputs.git-ref == ''
- name: Clone Repository (Custom Ref)
uses: actions/checkout@v6
if: github.event.inputs.git-ref != ''
with:
ref: ${{ github.event.inputs.git-ref }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Setup debugging session
uses: mxschmitt/action-tmate@v3
timeout-minutes: 60
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
- name: Install Dependencies of OpenQuake engine
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl -L -O https://github.com/gem/oq-engine/raw/master/install.py
python install.py user --version=master
Expand All @@ -56,9 +65,9 @@ jobs:
needs: vulnerability_test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install sphinx and themes
Expand Down
15 changes: 12 additions & 3 deletions .github/workflows/macos_arm_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
inputs:
git-ref:
description: Git Ref
default: master
default: main
required: true
schedule:
- cron: "0 3 * * 0"
Expand All @@ -19,12 +19,21 @@ jobs:
os: [macos-latest]
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- name: Clone Repository (Main)
uses: actions/checkout@v6
if: github.event.inputs.git-ref == ''
- name: Clone Repository (Custom Ref)
uses: actions/checkout@v6
if: github.event.inputs.git-ref != ''
with:
ref: ${{ github.event.inputs.git-ref }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies of OpenQuake engine
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl -L -O https://github.com/gem/oq-engine/raw/master/install.py
python install.py user --version=master
Expand Down
17 changes: 14 additions & 3 deletions .github/workflows/windows_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
inputs:
git-ref:
description: Git Ref
default: master
default: main
required: true
schedule:
- cron: "0 2 * * 0"
Expand All @@ -19,12 +19,23 @@ jobs:
os: [windows-2025]
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- name: Clone Repository (Main)
uses: actions/checkout@v6
if: github.event.inputs.git-ref == ''
with:
ref: ${{ github.head_ref }}
- name: Clone Repository (Custom Ref)
uses: actions/checkout@v6
if: github.event.inputs.git-ref != ''
with:
ref: ${{ github.event.inputs.git-ref }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies of OpenQuake engine
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl.exe -LO https://github.com/gem/oq-engine/raw/master/install.py
python install.py user --version=master
Expand Down
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,5 @@ local_settings.py
venv
*.whl
.vscode/
.ipynb_checkpoints/
demos/notebooks/.ipynb_checkpoints/example_1-checkpoint.ipynb
**/.ipynb_checkpoints/
.virtual_documents/
46 changes: 46 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,51 @@
# Changelog

## v1.1.0 — 2026-05-12

### Added
- **Incremental Dynamic Analysis (IDA)**: New `do_ida_analysis()` method in `modeller.py` runs nonlinear response history analyses at progressively scaled ground-motion intensities using a hunt-and-fill procedure (truncated and non-truncated). Results are post-processed by `process_ida_results()` in `postprocessor.py`, producing fragility functions and vulnerability curves via logistic regression and lognormal fitting. IDA plots (stripe curves, fragility, vulnerability) added to `plotter.py`.
- **IDA demo**: New `IncrementalDynamicAnalysis` notebook with the FEMA P695 far-field ground-motion record set (44 records).
- **MCMC for Modified Cloud Analysis**: Markov Chain Monte Carlo method added to `postprocessor.py` for MCA fragility derivation, alongside classical and bootstrap MCA plotter functions in `plotter.py`.
- **IM Efficiency and Sufficiency module** (`imselection.py`): New module implementing efficiency (dispersion-based IM ranking), practicality (regression slope), proficiency (κ metric), and the Relative Sufficiency Metric (RSM) for both MCA and IDA. Includes `compare_ims()` for tabulated multi-IM comparison.
- **RotDxx spectral calculations**: `get_rotdxx()` added to `imcalculator.py` to compute RotD50/RotD100 and arbitrary rotation-percentile response spectra from two horizontal components.
- **Structural analysis animations**: Animated deformed-shape outputs for SPO, CPO, and NRHA analyses via `modeller.py`. Animated mode shape visualisation via `plot_modes()` in `plotter.py`. All demo notebooks updated with animated GIF outputs.
- **COV calculations and DS threshold variability**: Added coefficient-of-variation methods and DS threshold variability as an input argument for NLTHA post-processing methods in `postprocessor.py`.
- **macOS ARM64 CI workflow** (`macos_arm_test.yml`) and platform-specific requirements files for Linux, Windows, and macOS ARM64.
- **Python 3.13 support** in `pyproject.toml` and CI workflows.
- `CITATION.cff` added.
- `README.md` files added for IDA, MSA, MCA, ModalAnalysis, and ModelCompilation demos.

### Changed
- **Calibration methodology**: `calibration.py` updated to a displacement-based design methodology.
- **Variable renames**: `pflag` → `pFlag` and `floor_heights` → `storey_heights` across `modeller.py`, `calibration.py`, and all dependents.
- **Class rename**: `IMCalculator` renamed to `imcalculator`; module `slf_generator.py` renamed to `slfgenerator.py`.
- **AAL and AADP refactor**: `calculate_average_annual_loss()` and `calculate_average_annual_damage_probability()` restructured in `postprocessor.py`.
- All core modules (`modeller.py`, `calibration.py`, `postprocessor.py`, `plotter.py`, `imcalculator.py`, `slfgenerator.py`, `units.py`, `utilities.py`) refactored to PEP8 standards.
- All demo notebooks and unit tests updated for PEP8 compliance.
- Input ground-motion records for demos relocated into `in/records/` subdirectories.
- Default response spectrum resolution increased to 500 points.
- CI upgraded to Node.js 20 actions; `GITHUB_TOKEN` added to workflows to prevent API rate-limiting.
- `scipy` pinned to `>=1.15.3`; `statsmodels` wheel added for macOS ARM64.

### Fixed
- `postprocessor.py`: Fixed `NoneType` export for non-lognormal fragility methods.
- `postprocessor.py`: Stabilised logistic regression when bootstrap produces too few collapses.
- `postprocessor.py`: Fixed out-of-bound beta values.
- `slfgenerator.py`: Fixed sampling bug.
- `plotter.py`: Fixed `RecursionError` in `_show()` (changed `self._show()` to `plt.show()`).
- `imcalculator.py`: Fixed multiple bugs in IM calculation routines.
- `modeller.py`: Fixed node displacement and acceleration storage allocation in `do_nrha_analysis()`.
- `modeller.py`: Fixed `openseespy` import to be OS-conditional.
- Replaced `.values[0]` scalar extraction with `.item()` to resolve NumPy `DeprecationWarning`.
- Replaced chained `fillna` assignment with direct assignment to resolve Pandas `DeprecationWarning`.
- Suppressed `FigureCanvasAgg UserWarning` from `plt.show()` in headless CI environments.
- Fixed Flake8 unterminated string literal issues across source files and unit tests.

### Removed
- Deprecated `im_calculator.py` and `slf_generator.py` modules (replaced by `imcalculator.py` and `slfgenerator.py`).

---

## v1.0.0

### Added or Changed
Expand Down
31 changes: 31 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
cff-version: 1.2.0
message: >-
If you use this software, please cite both the archived release
(Zenodo DOI below) and the project as a whole.
title: "OpenQuake Vulnerability Modeller's Toolkit (oq-vmtk)"
abstract: >-
An open-source library for modelling single- and multi-degree-of-freedom
systems and assessing them via nonlinear time-history analyses for regional
vulnerability and risk calculations. Developed by the Global Earthquake Model
(GEM) Foundation.
type: software
authors:
- name: "GEM Foundation"
email: risk@globalquakemodel.org
website: "https://www.globalquakemodel.org"
license: AGPL-3.0-only
repository-code: "https://github.com/GEMScienceTools/oq-vmtk"
url: "https://gemsciencetools.github.io/oq-vmtk/"
version: "1.1.0"
date-released: "2026-05-12"
identifiers:
- type: doi
value: 10.5281/zenodo.17524871
description: Zenodo archive of the v1.0.0 release
keywords:
- earthquake-engineering
- seismic-risk
- fragility
- vulnerability
- openquake
- opensees
46 changes: 40 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,17 +99,17 @@ It is highly recommended to use a **virtual environment** to install this tool.


### 3. Install Dependencies
Install the required packages listed in `requirements.txt`.
Install the appropriate requirements file based on your operating system and Python version.

**For Windows Users:** Install the appropriate requirements file based on your Python version:
**For Windows Users:**
```bash
pip install -r requirements-py311-win64.txt # Python 3.11
pip install -r requirements-py312-win64.txt # Python 3.12
```
**For Linux Users:** Install the appropriate requirements file based on your Python version:
**For Linux Users:**
```bash
pip install -r requirements-py311-linux64.txt # Python 3.11
pip install -r requirements-py312-linux64.txt # Python 3.12
pip install -r requirements-py311-linux.txt # Python 3.11
pip install -r requirements-py312-linux.txt # Python 3.12
```
**For macOS Users:** OpenSeesPy does not currently support macOS versions running on arm64 processors, such as M1 and M2 chips. As a result, newer OpenSeesPy versions are not available for macOS. To use OpenSeesPy on a Mac, it is advised to run a virtual machine with Linux or Windows.

Expand All @@ -122,13 +122,25 @@ It is highly recommended to use a **virtual environment** to install this tool.


### 4. Install the Package
Install the `oq-vmtk` package in editable mode:

**Standard install (recommended for users):**
```bash
pip install .
```

**Editable / developer install** — use only if you plan to modify the source:
```bash
pip install -e .
```

<img src="imgs/packaging.gif" alt="Logo" >

### 5. Verify the Installation
```bash
python -c "import openquake.vmtk; print(openquake.vmtk.__version__)"
```
This should print the installed version (e.g., `1.0.0`).


## 📼 Demos

Expand Down Expand Up @@ -167,6 +179,28 @@ This work is licensed under an AGPL v3 license (https://www.gnu.org/licenses/agp

For detailed documentation and user guidance on using the toolkit for vulnerability modeling, including installation instructions, key functionalities, and example workflows, please visit: [https://gemsciencetools.github.io/oq-vmtk](https://gemsciencetools.github.io/oq-vmtk/)

# 📑 Citation

If you use `oq-vmtk` in academic work, please cite the archived release. The v1.0.0 release is permanently archived on Zenodo:

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17524871.svg)](https://doi.org/10.5281/zenodo.17524871)

BibTeX:

```bibtex
@software{oq_vmtk_2025,
author = {{GEM Foundation}},
title = {{OpenQuake Vulnerability Modeller's Toolkit (oq-vmtk)}},
version = {1.0.0},
date = {2025-11-04},
doi = {10.5281/zenodo.17524871},
url = {https://github.com/GEMScienceTools/oq-vmtk}
}
```

A `CITATION.cff` file is also provided at the repository root so that GitHub
displays a "Cite this repository" widget.

# 📑 References

[TBD]
Expand Down
Loading
Loading