Skip to content

Releases: gem/oq-engine

OpenQuake Engine 3.26.1

Choose a tag to compare

@nastasi-oq nastasi-oq released this 15 Jul 06:27
6b1bc29

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_lse and
    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_tags and aggrisk_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_smr in the SES.hdf5 file
  • Introduced strict flag to disable checks which are possibly too strict
  • Internal: storing the real occurrence_rate in the ruptures dataset,
    not multiplied by smweight
  • 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 year and ses_id in 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 --kfilter capability to oq 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 db to 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_ses to store oqparam/{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 a hypoDepthDist for 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_by outputs if avg_losses_by is 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 MorikawaFujiwara2013 to 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 GridAdjustedGMPE to 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 the MorikawaFujiwara2013 and 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 a MagDepAratio
    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 MorikawaFujiwara2013 GSIM
    and some unit tests.
  • Add ability to specify sentinel (-999) z_ref values when using the
    prepare_site_model command.
  • 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 with MorikawaFujiwara2013).

[Michele Simionato (@micheles)]

  • Internal: added an utility hdf5.reduce_file to reduce HDF5 files
  • Added parameter rupture_id to be used with rupture_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 (setAspectRatioAbsolute and
    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_trt to select a branchset in the gsim logic tree
  • Filtering the sites around the rupture also in scenario_damage
  • Extended oq shakemap2gmfs to work without a site model file

[Christopher Brooks (@CB-quakemodel)]

  • Added the AlternativeCharacteristicMFD class (unit tests and also
    a QA test in classical/case_10)
  • Fix some unit conversion bugs in the MorikawaFujiwara2013 and
    also a bug where the xvf cap of 75 km was being applied incorrectly.
  • Modify openquake/hazardlib/tests/gsim/utils.py to 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_gsims to permit unsupported IMTs when a weight
    of...
Read more

OpenQuake Engine 3.26.0

Choose a tag to compare

@nastasi-oq nastasi-oq released this 13 Jul 16:44
225fba0

[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_lse and
    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_tags and aggrisk_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_smr in the SES.hdf5 file
  • Introduced strict flag to disable checks which are possibly too strict
  • Internal: storing the real occurrence_rate in the ruptures dataset,
    not multiplied by smweight
  • 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 year and ses_id in 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 --kfilter capability to oq 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 db to 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_ses to store oqparam/{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 a hypoDepthDist for 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_by outputs if avg_losses_by is 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 MorikawaFujiwara2013 to 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 GridAdjustedGMPE to 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 the MorikawaFujiwara2013 and 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 a MagDepAratio
    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 MorikawaFujiwara2013 GSIM
    and some unit tests.
  • Add ability to specify sentinel (-999) z_ref values when using the
    prepare_site_model command.
  • 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 with MorikawaFujiwara2013).

[Michele Simionato (@micheles)]

  • Internal: added an utility hdf5.reduce_file to reduce HDF5 files
  • Added parameter rupture_id to be used with rupture_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 (setAspectRatioAbsolute and
    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_trt to select a branchset in the gsim logic tree
  • Filtering the sites around the rupture also in scenario_damage
  • Extended oq shakemap2gmfs to work without a site model file

[Christopher Brooks (@CB-quakemodel)]

  • Added the AlternativeCharacteristicMFD class (unit tests and also
    a QA test in classical/case_10)
  • Fix some unit conversion bugs in the MorikawaFujiwara2013 and
    also a bug where the xvf cap of 75 km was being applied incorrectly.
  • Modify openquake/hazardlib/tests/gsim/utils.py to 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_gsims to 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...
Read more

OpenQuake Engine 3.25.1

Choose a tag to compare

@nastasi-oq nastasi-oq released this 10 Mar 14:44
e6e77c8

[Michele Simionato (@micheles)]

  • Disabled prefiltering across the International Date Line
  • Listed h3 as a dependency in setup.py
  • Making sure save_rates uses the processpool distribution
  • Listed AvgSA as primary IMT

OpenQuake Engine 3.25.0

Choose a tag to compare

@nastasi-oq nastasi-oq released this 02 Mar 15:00
723e17d

[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_by in 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 specify custom_tmp for 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_stddevs from the
    GSIMs; you can use the helper function contexts.mean_stds instead
  • Internal: changed cmaker.from_srcs to 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_ini to 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_rates was not overridden by the child calculation
  • Extended install.py devel to 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 --lhc and oq engine --lrc to 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-stats output 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_input to accept workflow files
  • Added an output "Average Losses By Taxonomy"
  • Extended oq run to accept .toml files and to use the job cache
  • Replaced dbserver.cache parameter 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 siteid in job.ini to specify the custom_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_info to the global SES file
  • Optimized _save_events for large calculations over 100,000 events
  • Parallelized the rupture prefiltering
  • Fixed count_ruptures producing 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 --hc to accept paths to datastore files and removed the
    experimental feature rupture_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_sm to 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 ...
Read more

OpenQuake Engine 3.23.4

Choose a tag to compare

@nastasi-oq nastasi-oq released this 24 Nov 16:57
ad69281

[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

Choose a tag to compare

@nastasi-oq nastasi-oq released this 18 Nov 09:50
8f0ca2e

[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_moment to the TaperedGRMFD class
  • Fixed KiteSurface.get_middle_point to manage NaNs

[Michele Simionato (@micheles)]

  • Doing the check on the export_dir only if --exports is 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_around to work in terms of h3 hexagons;
    changed the exposure.hdf5 accordingly
  • Added a private endpoint /v1/calc/run_ini to 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_effects since 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_id to 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_default in AELO calculations
  • Extended oq export_mean_disagg_by_src to multiple sites
  • Extended oq export_mag_dst_eps_sig to 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 affectedpop and
    injured loss types, due to missing units

[Michele Simionato (@micheles)]

  • Extended override_vs30 to multiple values
  • Forbidden GMF correlation with more then max_sites_correl=1000
  • Made minimum_intensity and minimum_magnitude mandatory 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 tau in 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 abMaxMagAbsolute to 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_node and
    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 ...

Read more

OpenQuake Engine 3.23.3

Choose a tag to compare

@nastasi-oq nastasi-oq released this 06 Oct 09:57
5610636

[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

Choose a tag to compare

@nastasi-oq nastasi-oq released this 17 Apr 12:30
4a29fb7

[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

Choose a tag to compare

@nastasi-oq nastasi-oq released this 18 Mar 08:54
9af0416

[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

Choose a tag to compare

@nastasi-oq nastasi-oq released this 19 Feb 13:11
38b747e

[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_rate column 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 msr and aspect_ratio parameters
  • 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_intensity mandatory
  • 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;