Releases: gem/oq-engine
Release list
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...
OpenQuake Engine 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...
OpenQuake Engine 3.25.1
[Michele Simionato (@micheles)]
- Disabled prefiltering across the International Date Line
- Listed h3 as a dependency in setup.py
- Making sure
save_ratesuses the processpool distribution - Listed AvgSA as primary IMT
OpenQuake Engine 3.25.0
[Michele Simionato (@micheles)]
- Reduced the memory consumption with multifault sources by splitting
in more tiles
[Christopher Brooks (@CB-quakemodel)]
- Make source/path adjustment coeff files used in modifications of CY14
as described in Boore et al. (2022) more flexible to avoid need for
dummy values for IMTs with unknown coeffs for source scaling but known
for path scaling or vice versa.
[Michele Simionato (@micheles)]
- Fixed
avg_losses_byin case of a single realization - Optimized the saving of the rates in large classical calculations
- Fixed the rup_id <-> event_id associations in openquake.engine.global_ses
[Yen-Shin Chen (@vup1120)]
- FDHA: added primary surface displacement package (base, Youngs et al. 2003
AD/MD, tests) - FDHA: added primary surface rupture package (base, Youngs et al. 2003
ExC/GB/nBR, tests)
[Michele Simionato (@micheles)]
- Changed the task distribution in classical calculations and reduced the
slow tasks, resulting in huge speedups in same cases (like 2.5x for USA) - Bug fix: using
sites=lon1 lat1, ...with a parent calculation
did not result in the specified sites to be used
[Yen-Shin Chen (@vup1120)]
- Added get_x_l_ratio() method to BaseSurface for computing normalized
along-strike position (x/L) for PFDHA applications - Vectorized get_x_l_ratio() implementation using NumPy broadcasting
for improved performance with large site meshes - Added _get_tor() helper method to extract the top rupture
trace with NaN handling for KiteSurface compatibility
[Christopher Brooks (@CB-quakemodel)]
- Added the EMME24 site model to the existing OQ implementation of the
EMME backbone model for ASCR (files describing the site model were
provided by Abdullah Sandıkkaya).
[Michele Simionato (@micheles)]
- Changed large classical calculations to store the rates in
ds_calc_dir;
removed the need to specifycustom_tmpfor the SLURM distribution - Internal: instantiating a GSIM automagically generates a ._toml
attribute from the GSIM name and arguments, associated to the GSIM hash
[Christopher Brooks (@CB-quakemodel)]
- Fix small bug in Hashash et al. (2020) site term implementation within the
NGA East models and regenerate the test tables (very small differences are
observed and only for SA(0.4)).
[Michele Simionato (@micheles)]
- Removed the long time deprecated method
get_mean_and_stddevsfrom the
GSIMs; you can use the helper functioncontexts.mean_stdsinstead - Internal: changed
cmaker.from_srcsto return a context array and not a
list with a single context array - Fixed AssertionError on len(mags) for GenericGmpeAvgSA with table-based
GMPEs - complex_fault_mesh_spacing is now mandatory in the job.ini file if
the model contains complex fault sources
[Nicholas Clemett (@nc-hsu)]
- Refactored the BaseAvgSACorrelationModel to make avg_periods an optional
argument - Added EmpiricalAvgSACorrelationModel
- Added classes for the Clemett correlation models for active shallow crust,
subduction interface, subduction slab and vrancea regions in europe based
on the ESHM20 GMMs.
[Michele Simionato (@micheles)]
- Internal: introduced subtasks in classical calculations
- Added endpoint
validate_inito validate local files - Optimized preclassical by gridding the point sources in parallel
[Christopher Brooks (@CB-quakemodel)]
- Added support for GMPE tables to be specifiable as the underlying
GSIMs within conditional GMPEs.
[Paolo Tormene (@ptormene)]
- Refactored the WebUI, separating its logic into multiple files
- Added Playwright tests to test the WebUI frontend in different
application modes - Added an extractor
exposure_by_location
[Michele Simionato (@micheles)]
- Turned tiling into an explicit parameter (i.e. you must pass it to
enable the full tiling algorithm, before it was automagic) - Optimized the management of the RateMap in the classical calculator
- Optimized the reading of the rates by vectorizing on the sites
- Bug fix:
use_rateswas not overridden by the child calculation - Extended
install.py develto infer the version from the branch name
[Christopher Brooks (@CB-quakemodel)]
- Added the option of using a modified form of the Campbell and Bozorgnia
(2014) GMM's sigma model within the Kuehn et al. (2020) GMMs as required
for the 2023 USGS Alaska model. - Refactored the indirect AvgSA GMPEs capabilities to permit the
calculation of non-AvgSA IMTs using the underlying GMPE (added
new unit test of classical/case_91 for checking this works within
GmpeIndirectAvgSA and updated classical/case34 for checking this
works within GenericGmpeAvgSA).
[Michele Simionato (@micheles)]
- Internal: removed configuration parameter
pmap_max_gb - Implemented the "ilabel" feature i.e. region-dependent gsim logic trees
- Reduced the number of chunks generated in classical calculations, which
has a huge effect on performance if you have 192 cores or more
[Christopher Brooks (@CB-quakemodel)]
- Fixing class inheritances in MorikawaFujiwara2013 GMMs.
[Amirhossein Mohammadi (@amirxdbx)]
- Added Mohammadi2023Turkiye ML-based GSIM for Turkey.
[Christopher Brooks (@CB-quakemodel)]
- Added the Alaska bias adjustments for the NGASUB GMMs
as required for the USGS 2023 Alaska model.
[Antonio Scala (@antonio-scala)]
- Added Scala et al (2025) GMM
[Michele Simionato (@micheles)]
- Show the GSIM class warnings only once
- Extended
oq engine --lhcandoq engine --lrcto show the
calculation_mode
[Christopher Brooks (@CB-quakemodel)]
- Refactored conditional GMPEs to be specifiable within ModifiableGMPE
on a per-IMT basis (safer handling, more flexibility). - Added documentation for the implementation of conditional GMPEs within
the OpenQuake Engine.
[Michele Simionato (@micheles)]
- Added a consistency check on the effective time when starting from SES
- Added a new exporter hmaps-stats producing one file per IMT,
associated to the display name "Hazard Maps Statistics"
[Maoxin Wang (@MaoxinWang)]
- Added a new gsim file wang_2025_turkey.py to implement the Turkey-specific
ground motion models for Arias Intensity (IA), Cumulative Absolute Velocity
(CAV), 5-75% Significant Duration (RSD575), and 5-95% Significant Duration
(RSD595) developed by Wang et al. (2025)
[Michele Simionato (@micheles)]
- For scenario_risk calculations expose the
aggrisk-statsoutput even if
there is a single gsim; the stats are associated to the simulations - Use PYTHONUTF8 mode, i.e. assume the default encoding to be
UTF8 also on Windows - Internal: extended
oq purge - Included .onnx and .onnx.gz files in MANIFEST.in
- Added command
oq db keep <workflow_id> - Added command
oq checkout workflow.toml - Extended
oq check_inputto accept workflow files - Added an output "Average Losses By Taxonomy"
- Extended
oq runto accept .toml files and to use the job cache - Replaced
dbserver.cacheparameter in openquake.cfg with a cache
parameter in job.ini - If the site parameters are more distant than ASSOC_DIST raise an error
and not a warning - Added parameter
siteidin job.ini to specify thecustom_site_id - Internal: extended baselib.sap to manage command classes
- Saved memory in ebrisk, now most calculations can be run with 2 GB
of RAM per core
[Paolo Tormene (@ptormene)]
- Fixed the management and layout/styling of navigation buttons in the
WebUI, with and without authentication - Improved the default configuration of the TOOLS_ONLY application mode
[Michele Simionato (@micheles)]
- Supported site-specific gsim logic trees via
site_labels - Added
source_infoto the global SES file - Optimized
_save_eventsfor large calculations over 100,000 events - Parallelized the rupture prefiltering
- Fixed
count_rupturesproducing more than 32768 tasks - Removed the distance filtering when sampling the ruptures; removed also the
mosaic model filtering
[Paul Henshaw (@pslh), Paolo Tormene (@ptormene)]
- Force use of utf8 encoding when writing non-binary files.
- Update AreaSource demo to use UTF8 chars that are obviously not ASCII.
- Use utf-8-sig when reading so as to handle BOM
[Anirudh Rao (@raoanirudh)]
- Add missing axis argument in recent bugfix in classical_risk
with nontrivial weights in the taxonomy mapping
[Michele Simionato (@micheles)]
- Extended the global_ses script to accept job.ini files
- Implemented
oq engine --run job1.ini .. jobN.ini --hc parent.hdf5 - Extended
--hcto accept paths to datastore files and removed the
experimental featurerupture_model_file = rups.hdf5 - Using the filtered site collection, thus changing numbers in OQImpact
- Implemented rupture prefiltering for scenario and event based calculators
[Paolo Tormene (@ptormene)]
- Added the possibility to assign tags to jobs and to set a job as the
"preferred" one for a tag
[Michele Simionato (@micheles)]
- Internal: extended
oq reduce_smto accept a source model directory - Implemented event_based_risk from ses.hdf5
- Raised an early error if the vulnerability functions are not
strictly increasing - Fixed a bug in classical_risk with nontrivial weights in the
taxonomy mapping - Removed the ebrisk calculation mode, since it can be replaced
with event_based_risk with ground_motion_fields = false - Turned LSD into a primary IMT, so that the Youd and ZhangZhao GMPE
can be used
[Lana Todorovic (@LanaTodorovic93)]
- Added Abrahamson and Bhasin (2020) GMPE
- Fixed the Macedo2019 GMPE with underlying GMPEs requiring extra parameters
(like the KuehnEtAl2020SInter requiring ztor)
[Michele Simionato (@micheles)]
- Filtering GMFs associated to low secondary intensities to make
secondary peril calculations ...
OpenQuake Engine 3.23.4
[Paul Henshaw (@pslh), Paolo Tormene (@ptormene)]
- Force use of utf8 encoding when writing non-binary files.
- Update AreaSource demo to use UTF8 chars that are obviously not ASCII.
- Use utf-8-sig when reading so as to handle BOM
[Michele Simionato (@micheles)]
- Backported the fix for small negative damages (#10772)
- Fixed the documentation about the installation directories
OpenQuake Engine 3.24.1
[Paul Henshaw (@pslh), Paolo Tormene (@ptormene)]
- Force use of utf8 encoding when writing non-binary files.
- Update AreaSource demo to use UTF8 chars that are obviously not ASCII.
- Use utf-8-sig when reading so as to handle BOM
[Michele Simionato (@micheles)]
- Removed the BASE33489 hack and made the first branch of the source
model logic tree regular, with a single letter abbreviation
[Paolo Tormene (@ptormene)]
- When running a job via the WebUI it is possible to select multiple input
files or a single .zip file - Added a whitelist of resources that can be extracted from the datastore
via the '/v1/calc/<calc_id>/extract/' and the
'/v1/calc/<calc_id>/extract_html_table/' API endpoints. All
resources can still be extracted if the WebUI authentication is disabled
or if the current user has a high profile level (>1) or has the permission
'auth.can_view_'
[Michele Simionato (@micheles)]
- Reduced the number of tiles
- Optimized the management of cluster of sources (the array loop)
- Changed the ps_grid_spacing approximation to use average occurrence rates
[Claudia Mascandola (@mascandola)]
- Added class "LanzanoEtAl2019_RJB_OMO_NESS2" to lanzano_2019 gsim
[Michele Simionato (@micheles)]
- Reduced the memory consumption of multifault sources for the USA model
- Improved the parallelization of disagg_source in AELO calculations
- Fixed the OverflowError: Python integer out of bounds for uint32
happening for extra-large calculations when saving source_info
[Guillermo Aldama-Bustos (@aldabus)]
- Fixed the unit of measure in the Douglas et al (2024) GMM and updated
coefficients for the 3- and 5-branch models to fix an error
[Michele Simionato (@micheles), Kendra Johnson (@kejohnso)]
- Internal: parallelized the AELO mosaic tests and made it possible to pass
the asce_version and vs30 parameters
[Michele Simionato (@micheles)]
- Extended the source_id-filtering feature to use .startswith
- Added a flag "aggregate_exposure" (false by default) to aggregate
the assets with the same taxonomy on the same hazard site - Optimized "building cmakers" and the RateMap in the case of clusters
of sources (260x for the latest USA model)
[Christopher Brooks (@CB-quakemodel)]
- Added BSSA14 site term capability to Modifiable GMPE + unit tests
[Richard Styron (@cossatot)]
- Added method
from_momentto theTaperedGRMFDclass - Fixed
KiteSurface.get_middle_pointto manage NaNs
[Michele Simionato (@micheles)]
- Doing the check on the
export_dironly if--exportsis passed - Fixed a
NameError: Missing liquefaction:LiqProb in gmf_data
when using the TodorovicSilva2022NonParametric model - gzipping the avg_losses reducing the disk space by half or so
- Added an extractor
losses_by_location - Filtering the assets around the rupture according to the maximum distance
in scenario calculations
[Claudia Mascandola (@mascandola)]
- Added a Ramadan et al (2023) gsim
[Michele Simionato (@micheles)]
- Disabled the threads in PicklableInferenceSession, making it possible
to use the TodorovicSilva2022NonParametric model in high concurrency
situations - Made it possible to merge pre_job.ini and job.ini in ShakeMap calculations
- Internal: changed
Exposure.read_aroundto work in terms of h3 hexagons;
changed the exposure.hdf5 accordingly - Added a private endpoint
/v1/calc/run_inito run remote calculations - Added a private endpoint
/v1/calc/jobs_from_inis
[Myles Turner (@mylesturner99), Guillermo Aldama-Bustos (@aldabus)]
- Added GMM of Douglas et al. (2024)
[Michele Simionato (@micheles)]
- Added a parameter config.dbserver.cache to avoid repeating calculations
- Removed the --reuse-input flag, since it was not used (use --hc instead)
- Changed install.py to exit if any of the tools is not installed
- Fixed small negative damages due to numeric errors
- Fixed the MIMETYPE to application/x-zip when needed in the WebUI
- Removed the parameter
site_effectssince it is useless - Changed num_cores to be equal to the pool size when explicit
- On Windows use as default num_cores
num_threads/2 if num_threads > 8 else num_threads - Extended the aggregation by
site_idto multiple tags - Fixed an extract bug in disagg-traditional with realizations
- Fixed a bug with the quantiles in event_based_damage
- Improved loggin the progress in event based risk
- Reduced slow tasks in the USA model
- Added output
mce_defaultin AELO calculations - Extended
oq export_mean_disagg_by_srcto multiple sites - Extended
oq export_mag_dst_eps_sigto multiple sites - Extended aggexp_tags and aggrisk_tags to multi-tags
[Paolo Tormene (@ptormene)]
- The OQ-Impact workflow option 'Use finite rupture from the USGS' was
replaced by two options 'Use ShakeMap fault rupture from the USGS'
and 'Use finite-fault model from the USGS', making it possible to convert
a wider set of ruptures from the USGS data - A sanity check was added to make sure that the hypocenter is inside the
surface of the rupture. Otherwise, it is relocated to the middle point of
the surface and a warning indicates the original and translated
coordinates.
[Christopher Brooks (@CB-quakemodel)]
- Fixed bug in ParkerEtAl2020 epistemic uncertainty scaling factors.
[Michele Simionato (@micheles)]
- Fixed indentation errors in nearly all secondary peril classes
- Reduced the data transfer in avg_losses (20x for Philippines),
thus solving an out-of-memory error; also improved the performance
(25% for Philippines) and reduced the memory occupation on the workers - Print a warning if there are vs30 values distant more than 10% from
DEFINED_FOR_REFERENCE_VELOCITY
[Anirudh Rao (@raoanirudh)]
- Fixed a bug when generating the aggregate curves for
affectedpopand
injuredloss types, due to missing units
[Michele Simionato (@micheles)]
- Extended
override_vs30to multiple values - Forbidden GMF correlation with more then
max_sites_correl=1000 - Made
minimum_intensityandminimum_magnitudemandatory with event based
calculations with many sites
[Paolo Tormene (@ptormene)]
- When a job is deleted, also the corresponding calc_CALCID_tmp.hdf5 file is
removed, if present
[Astha Poudel (@asthapoudel), Catarina Costa (@catarinaquintela)]
- Modified infrastructure risk to avoid calculating efficiency loss for
large networks
[Paolo Tormene (@ptormene)]
- AELO: the management of warnings was made more robust
[Michele Simionato (@micheles)]
- OQImpact: reading the sites around the rupture and not around the hypocenter
- Raised an error if the ShakeMap does not contain SA(0.6) when required
- Fixed the multi-peril implementation (imt_by_lt)
- Raised an error for risk IMTs not covered by the secondary IMTs
- Optimized build_global_exposure
[Michele Simionato (@micheles), Paolo Tormene (@ptormene)]
- OQ-Impact: fixed aggregation by ID_2, which was using indices instead
of strings
[Marco Pagani (@mmpagani)]
- Storing also
tauin the mean spectrum calculator
[Christopher Brooks (@CB-quakemodel)]
- Added ability to specify z1pt0 and z2pt5 as -999 within site model
to inform (basin term considering) GMMs to use their own vs30 to
z1pt0 or z2pt5 relationship to estimate these site parameters, in
effect preventing additional adjustment to GMM basin terms based
on unknown site information. QA tests (classical case_89) + unit
tests (utils_infer_basin_params_test.py) added - Added validation checks for core site params (lon, lat, vs30, z1pt0
and z2pt5) when building the site collection within a calculation
[Paolo Tormene (@ptormene)]
- In the API endpoint listing the outputs for a job, the first available
export_type is specified in each output url
[Michele Simionato (@micheles)]
- Added a new uncertainty
abMaxMagAbsoluteto the logic tree - Internal: refactored lt.Branch, lt.BranchSet and lt.CompositeLogicTree
- Avoided out of memory in calculations starting from the global SES
[Lana Todorovic (@LanaTodorovic93)]
- Updated units of slope (in m/m) in site model.
[Michele Simionato (@micheles)]
- Improved the validation of area source polygons
- Internal: added method
CompositeLogicTree.apply_all - Fixed downloading of uncertainty.xml in OQImpact calculations
[Michele Simionato (@micheles), Paolo Tormene (@ptormene)]
- Added a route /v1/calc/XXX/job_zip and a button to download the archive
from the WebUI, visible only in OQImpact for level 2 users - Fixed an error in
oq plot examples
[Baran Güryuva (@BaranGuryuva), Christopher Brooks (@CB-quakemodel)]
- Implemented the EMME24 backbone GMC for crustal
earthquakes (emme24.py)
[Marco Pagani (@mmpagani), Michele Simionato (@micheles)]
- Added uncertainties for area geometry and seismogenic depths
[Michele Simionato (@micheles)]
- Added a check on duplicate branches in the source model logic tree
- Internal: added methods
CompositeLogicTree.to_nodeand
CompositeLogicTree.to_nrml
[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]
- Added extractor for 'damages-stats'
[Kendra Johnson (@kejohnso)]
- Updated the mosaic geometries for AELO year 4
[Matteo Nastasi (@nastasi-oq)]
- Allow free mapping between standalone apps and their url path prefix
(regardless of their name)
[Claudia Mascandola (@mascandola)]
- Added GMPEs of ambraseys_1996 and sabetta_pugliese_1996
[Graeme Weatherill (@g-weatherill), Michele Simionato (@micheles)]
- Implemented the MacedoEtAl2019SInter and MacedoEtAl2019SSlab conditional
GMMs
[Anirudh Rao (@raoanirudh)]
- In the stations parser, make sure to skip all "vertical" ('z' or 'Z') or
"up" ('u' or 'U') components when extracting the max horizontal component
_[Manuela ...
OpenQuake Engine 3.23.3
[Michele Simionato (@micheles)]
- Disabled the low level threads in TodorovicSilva2022NonParametric model
[Christopher Brooks (@CB-quakemodel), Michele Simionato (@micheles)]
- Improved error management for missing tools in install.py
- Backported fix to Parker (2020)
OpenQuake Engine 3.23.2
[Michele Simionato (@micheles)]
- Backported fix to taxonomy mapping with consequences
- Backported fix to 64 bit poes critical for multifault sources
- Backported fix to workerpool critical for zmq clusters
OpenQuake Engine 3.23.1
[Marco Pagani (@mmpagani)]
- Backported fix to Thingbaijam et al. (2017) scaling relation
[Michele Simionato (@micheles)]
- Backported fix to logs.dbcmd: querying the calculations caused the DbServer
to break in server installations - Backported fix to
oq plot hcurves - Backported fix to Arteta (2021) missing the backarc parameter
OpenQuake Engine 3.23.0
[Michele Simionato (@micheles)]
- Fixed contexts.py: we were incorrectly discarding ruptures with magnitude equal
to the minimum magnitude - Hiding spurious "divide by zero" warnings generated by shapely in
get_joyner_boore_distance
[Fatemeh Alishahiha (@FatemehAlsh)]
- Added GMM Campbell-Bozorgnia (2003)
[Christopher Brooks (@CB-quakemodel)]
- Another small bug fix for NZ 2022 inslab variants of the Kuehn et
al. (2020) GMM - the sigma_mu_model and sigma_mu_epsilon params
were sometimes missing from GSIM object + added a sensitivity test
[Marco Pagani (@mmpagani), Michele Simionato (@micheles)]
- Added an
occurrence_ratecolumn in median_spectrum_disagg and fixed
the exporter to order the ruptures by ID
[Michele Simionato (@micheles)]
- Fixed a bug in classical_damage with sampling reported by Evi Riga
- Added utils/fix_consequences to fix consequence.csv files
containing risk_ids rather than taxonomies, now invalid - Implemented quantiles in scenario_risk, visible in aggrisk_tags
- Added checks on the consequence functions across taxonomies and perils
- Fixed the taxonomy field in consequences.csv to be the exposure
taxonomy and not a fragility function ID - Internal: renamed aristotle -> impact
- Changed the sourcewriter to save the rupture_idxs as compressed datasets,
thus reducing the size of some models a lot (i.e. from 400M to 17M)
[Christopher Brooks (@CB-quakemodel)]
- Small bug fix for NZ 2022 inslab variants of the Kuehn et al. (2020)
and Parker et al. (2020) GMMs - backarc param was not always in the
req. site params but is needed given included in NZ 2022 site model
[Savvinos Aristeidou (@Savvinos-Aristeidou)]
- Added new ANN-based GMM in the gsim library, named
aristeidou_2024 - Added new IMs, that is the FIV3, Sa_avg2, and Sa_avg3
[Michele Simionato (@micheles)]
- Extended rupture_dict to the
msrandaspect_ratioparameters - Fixed the instantiation of file-dependent GMPEs from the datastore
- Optimized slow tasks both in the preclassical and the classical phase
- Reading the site model in calculations with ruptures.hdf5 and making
minimum_intensitymandatory - Added parameter
minimum_engine_version
[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]
- Storing the reduced asset collection and fixing a bug when exporting
the average losses
[Richard Styron (@cossatot), Michele Simionato (@micheles)]
- Extended the preclassical calculator to work in absence of a site collection
[Michele Simionato (@micheles)]
- Added a new output "Aggregated Exposure Values" (
aggexp_tags) and a new extractor
aggrisk_tags;