OpenQuake Engine 3.26.1
Release 3.26.1
[Matteo Nastasi (@nastasi-oq), Antonio Ettorre (@antonioettorre)]
- Fix and improve of post installation scripts
Release 3.26.0
[Amir Shahmohammadian (@Shahmohamadian)]
- Fixed a bug in the treatment of PGV period in the Jayaram and Baker
(2009) spatial correlation model resulting in a wrong coefficient
b = 22.0 instead of b = 25.7
[Michele Simionato (@micheles)]
- Optimized ebrisk calculations by using larger GMF arrays
- Saving memory when running several jobs together with a pool
- Fixed a bug with IMT-dependent weights being not normalized, breaking
the CND model with use_rates=true
[Paolo Tormene (@ptormene)]
- Fixed a unit-scaling bug in GMF calculations; acceleration IMTs are
converted to g as before, while velocity measures (PGV) preserve their
native cm/s units.
[Paolo Tormene (@ptormene)]
- Added exporter for
exposure_by_liquefaction_lseand
exposure_by_landslide_lse(Exposure grouped by Region and by
Liquefaction/Landslide LSE)
[Michele Simionato (@micheles)]
- Parallelized the exports in workflow calculations
- Fixed the exporters
aggexp_tagsandaggrisk_tags - Reduced the number of tasks and the memory consumption in event_based_risk
- Optimized rupture sampling for sources with high multiplicity
- Internal: storing
occ_by_trt_smrin the SES.hdf5 file - Introduced
strictflag to disable checks which are possibly too strict - Internal: storing the real
occurrence_ratein therupturesdataset,
not multiplied bysmweight - Fixed the slow tasks in AELO, due to accidental disabling of the filtering
[Savas Ceylan (@sceylan)]
- Added EdwardsFah2013Foreland3Bars, BindiEtAl2011Rhypo,
ECOS2009VariableDepth and ECOS2009FixedDepth GSIMs with
verification tests.
[Michele Simionato (@micheles)]
- ebrisk calculations with not enough GMFs now just log an error
instead of failing - Cached the multifault sections, with a 6x speedup when sampling the
ruptures of the NZL model - Avoided copying sources when building the CompositeSourceModel,
thus reducing the memory occupation and time by 75% for NZL
[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]
- Implemented secondary perils for ShakeMap calculations
[Catarina Costa (@catarinaquintela)]
- Fixed landcover coefficient assignment on Nowicki Jessee landslide model
[Michele Simionato (@micheles)]
- Saving
yearandses_idin the events dataset of SES.hdf5 files - Splitting multifault and multipoint sources with the colon convention
- Fixed missing weight in AvgPoeGMPE breaking the realization exporter
[Christopher Brooks (@CB-quakemodel)]
- Fix a bug observed in the Aki and Richard's convention check in
complex faults.
[Michele Simionato (@micheles)]
- Added
--kfiltercapability tooq run workflow.toml - Optimized reading and sampling multiFaultSources
- Saved memory in classical calculations with large sources affecting many
sites, by yieldings contexts - Changed the rupture sampling algorithm so that the source groups are
consistent between event based and classical calculations; removed
useless copies of the sources and improved the performance and memory usage
[Fahrettin Kuran (@kurannn)]
- Added additional magnitude-scaling relationships to wc1994.py
- Added additional magnitude-scaling relationships to thingbaijam2017.py
[Michele Simionato (@micheles)]
- Added checks on MAX_NUM_RUPTURES and ps_grid_spacing
- Added command
oq info dbto extract the path to the sqlite file - Implemented a workflow to run the 2026 Global Risk Model
[Thuany Costa de Lima (@thuanycostadelima)]
- Fix Allen (2022) depth truncation bug: hypocentral depth is now
clamped to [10, 500] km before evaluating the cubic log-depth
scaling term, as recommended in the original paper (Eq. 4, p. 1049). - Updated test CSVs to reflect the corrected implementation.
- Added Bayless and Somerville (2024) GMM for Australia:
BaylessSomerville2024Cratonic and BaylessSomerville2024NonCratonic.
[Michele Simionato (@micheles)]
- Changed
postjobs.build_sesto storeoqparam/{model} - Saved memory in the rupture sampling algorithm for fault sources
(simple, complex, characteristic) - Extended use_rates to work also with IMT-dependent weights
[Christopher Brooks (@CB-quakemodel)]
- Add ability to specify a down-dip fraction for hypocentre placement
on the rupture surface within ahypoDepthDistfor area, point and
multi-point sources with a QA test in classical/case_31. - Fix exporting of ruptures with surfaces defined using a
GriddedSurface
[Michele Simionato (@micheles)]
- Storing also
aggexp_byoutputs ifavg_losses_byis enabled - Extended the rupture exporter to also work with multi-model SES files
- Keeping the correlation matrices at 32 bit to save memory and to double
the speed
[Christopher Brooks (@CB-quakemodel)]
- Modify
MorikawaFujiwara2013to compute the distance to volcanic
front (xvf) on a ctx-by-ctx basis instead of requiring it as a
site parameter for consistency with NIED's own implementation. - Expand
GridAdjustedGMPEto provide raytracing capabilities for
distance-based corrections and update the QA test (classical/case_11)
to test this feature. - Add the 2025 NSHM variants of the anomalous intensity correction
and the PH correction to theMorikawaFujiwara2013and some QA
tests to check the site location-specific component of these
corrections (classical/case_30). - Added ability to specify a distribution of hypocenters within a
simple fault source. Tested in classical/case_28 and unit tests. - Added the BCHydro adjusted versions of the original NGA GMMs (median
scaling and single station sigma) and some unit tests.
[Marco Pagani (@mmpagani)]
- Fixing the calculation of ruptures with clusters and mutually exclusive
sources
[Michele Simionato (@micheles)]
- Computing the GMFs with a single core in scenario calculations,
changing a bit the numbers (akin to a change of seed), but saving a
lot of memory, especially in conditioned computations - Changed the distribution in damage calculations to split in blocks
of assets, with a huge performance benefit for large scenarios
[Christopher Brooks (@CB-quakemodel)]
- Add ability to specify a magnitude-dependent aspect ratio which
is evaluated using a predefined expression via aMagDepAratio
class. - Add the magnitude-scaling relationship used in the Northern
Volcanic Arc (NVA) source zone of the BC Hydro SSC logic tree. - Add the NIED 2025 sigma model to the
MorikawaFujiwara2013GSIM
and some unit tests. - Add ability to specify sentinel (-999) z_ref values when using the
prepare_site_modelcommand. - Add a relative epistemic uncertainty for seismogenic depths in the
source model logic tree. Some unit tests added and a QA test in
logictree/case_33. - Add ability to specify reference z1pt4 (like for z1pt0, z2pt5 etc.) in
the job file (QA test in classical/case_13 withMorikawaFujiwara2013).
[Michele Simionato (@micheles)]
- Internal: added an utility
hdf5.reduce_fileto reduce HDF5 files - Added parameter
rupture_idto be used withrupture_model_file
to run scenarios starting from a SES.hdf5 file
[Christopher Brooks (@CB-quakemodel)]
- Added new epistemic uncertainties in the source model logic tree
for the rupture aspect ratio (setAspectRatioAbsoluteand
setAspectRatioRelative). Unit tests added and a QA test in
logictree/case_32.
[Michele Simionato (@micheles), Paolo Tormene (@ptormene)]
- Updated build_exposure_hdf5 to work with the 2026 Global Risk Model
[Amirhossein Mohammadi (@amirxdbx)]
- Add Karimzadeh 2023 Azores Islands GSIM implementation with
verification tests.
[Michele Simionato (@micheles)]
- In event based calculations do not collect together sources following
the colon convention to avoid duplicated rupture IDs
[Christopher Brooks (@CB-quakemodel)]
- Add
GridAdjustedGMPE- a utility GSIM class allowing the
adjustment of a GMPE using h3-gridded adjustments already
defined within a hdf5 file. Examples of the hdf5 file structure
are available in classical/case_11 and the associated unit tests. - Introduce explicit handling of sentinel z_sed values (-999) within
the Conterminous US 2023 NSHM's Coastal Plains site amplification
adjustment model to turn off this correction for such sites.
[Michele Simionato (@micheles)]
- Logging and storing the engine version and not the DbServer version
[Matteo Nastasi (@nastasi-oq)]
- Integrate Christopher Brooks (@CB-quakemodel) PAPERS script to run calculation
starting from hypothetical ruptures into engine as new API
entry-point
[Michele Simionato (@micheles)]
- Added variable
keep_trtto select a branchset in the gsim logic tree - Filtering the sites around the rupture also in scenario_damage
- Extended
oq shakemap2gmfsto work without a site model file
[Christopher Brooks (@CB-quakemodel)]
- Added the
AlternativeCharacteristicMFDclass (unit tests and also
a QA test in classical/case_10) - Fix some unit conversion bugs in the
MorikawaFujiwara2013and
also a bug where thexvfcap of 75 km was being applied incorrectly. - Modify
openquake/hazardlib/tests/gsim/utils.pyto support checking
of JMA values too (supported IMT for MF13 GSIM).
[Paolo Tormene (@ptormene)]
- If any station is farther than the site association distance,
the job keeps running instead of raising a SiteAssociationError
[Michele Simionato (@micheles)]
- Internal: added postproc.debug_rupture
- Saved avg_gmf always in impact mode
- Saved relevant_events always when using --hc
[Christopher Brooks (@CB-quakemodel)]
- Refactored
check_gsimsto permit unsupported IMTs when a weight
of zero is specified for them in an IMT-dependent weighted GMC LT.
A test case (classical/case_39) is added which checks this behaviour
(permit zero weight for unsupported IMT, and raise error if non-zero
for same unsupported IMT).
[Michele Simionato (@micheles)]
- Added
maximum_depthdictionary (in km per tectonic region type)
to the job.ini accepted parameters, used to discard deep ruptures
in event based calculations
[Paolo Tormene (@ptormene), Michele Simionato (@micheles), Paul Henshaw (@pslh)]
- If any worker dies before completion, the corresponding master and
all its subprocesses are killed and the event causing the
interruption is logged
[Christopher Brooks (@CB-quakemodel)]
- Added capability to specify an IMT-dependent vector of deltas
to apply to total sigma, tau and phi within ModifiableGMPE. - Fix a bug where ESHM20 subclasses of BCHydro without a FABA
taper model incorrectly fellback to the original BCHydro backarc
term, causing a missing attribute error forbackarc. Updated
classical/case_61 to now test this scenario. - Correct the
_apply_subduction_trench_correctionterm in
Si and Midorikawa (1999)'sNorthEastCorrectionsubclasses
to userhypoinstead ofrrup.
[Anirudh Rao (@raoanirudh)]
- Support sampling from the truncated multivariate normal distribution
using Paul Brunzema's implementation of the Botev (2017) algorithm
(https://github.com/brunzema/truncated-mvn-sampler), permitting
truncation in calculations employing a cross-IM correlation model - Introduce two new job parameters:
truncation_level_betweenand
truncation_level_withinallowing the user to specify different
truncation levels for between-event residuals and within-event
residuals in a scenario or event-based calculation
[Christopher Brooks (@CB-quakemodel)]
- Add ability to specify deltas for tau and phi within ModifiableGMPE.
[Michele Simionato (@micheles)]
- Extended the cross checking between IMTs and GSIMs to ConditionalGMPEs
- Extended export_job_zip to scenario calculations
[Anirudh Rao (@raoanirudh)]
- Added the Holmgren et al. (2024) GMM for Southeastern Africa
- Removed experimental liquefaction models and refactored
the secondary perils test suite - Supported embodied carbon as a new loss category
[Michele Simionato (@micheles)]
- Improved error message when all assets are filtered out
- Fixed a bug when prefiltering sources around the poles
- Made it possible to run risk calculations depending on AvgSA
- Internal: inferring the slow tasks information from starmap_info
- Removed numpy.random.seed in the engine code base
- The NegativeBinomialTOM can now be applied to all parametric sources