Skip to content

Releases: gem/oq-engine

OpenQuake Engine 3.21.0

02 Oct 08:14
94b797e
Compare
Choose a tag to compare

[Paolo Tormene (@ptormene)]

  • Added commands oq plot "rupture?" and oq plot "rupture_3d?"

[Michele Simionato (@micheles)]

  • Extended oq reset to also remove the custom_tmp directory, if any
  • Added classes CampbellBozorgnia2019, CampbellBozorgnia2019HighQ, CampbellBozorgnia2019LowQ
  • Reduced the size of the large CSV files in hazardlib and added a check
    to forbid files larger than 600k
  • Added a check on the signatures of get_std_dev_mag and get_median_area
    and fixed the signature of StrasserIntraslab.get_std_dev_mag

[Enrico Abcede (@emabcede30), Francis Bernales (@ftbernales)]

  • Implemented Campbell and Bozorgnia (2019) IA and CAV to campbell_bozorgnia_2014

[Michele Simionato (@micheles)]

  • Fixed scenario_risk from GMFs when the intensity measure types were
    incorrectly identified

[Marco Pagani (@mmpagani), Michele Simionato (@micheles)]

  • Added a median spectrum post-processor

[Michele Simionato (@micheles)]

  • Added a parameter mea_tau_phi in the job.ini to save mean, tau and phi
    for each rupture, site, gsim and imt in a GMF calculation
  • Internal: changed oq run to automatically generate the db when possible
  • Added a check on missing risk files
  • Reduced the space used by the CollapsedPointSources (2.7x)
  • Fixed the site model association procedure to work in conditioned
    scenario calculations
  • Used oq engine --run to submit asynchronous jobs to SLURM and
    oq run to submit interactive jobs

[Christopher Brooks (@CB-quakemodel)]

  • Added the Japan region versions of the NGAWest2 relations used to obtain
    z1pt0 and z2pt5 from vs30 in prepare sites command

[Michele Simionato (@micheles)]

  • Fixed oq reduce_sm for calculations with nonparametric sources
  • Fixed logging the classical time with --sample-sources
  • Improved the progress log in classical calculations

[Kendra Johnson (@kejohnso)]

  • Fixed an error invalid literal for int() with base 10 affecting
    event based calculations using mutex sources and a nontrivial logic tree

[Michele Simionato (@micheles)]

  • Optimized the --sample-sources feature
  • Honored the custom_tmp in classical calculations and saved data transfer
    by using TileGetters, then parallelized the saving of the rates

[Lana Todorovic (@LanaTodorovic93)]

  • Implemented Nowicki Jessee et al. (2018) landslide geospatial model that
    computes the areal coverage by landslide occurrence.

[Paolo Tormene (@ptormene)]

  • Updated extractor for gmf_data for a single event id (used by the IRMT
    QGIS plugin), including data for secondary perils

[Michele Simionato (@micheles)]

  • Refined the tiling calculator (partial tiling, task weighting, saving memory)
  • Optimized "computing pnes" in classical calculations (3x in the common case)
    and fully switched to 32 bit rates, thus saving memory and improving performance

[Nicolas Schmid (@schmidni)]

  • Fixed a regression in the ShakeMap to_gmfs code, a forgotten sigma^2/2 term

[Marco Pagani (@mmpagani)]

  • Fixed aliases for Kuehn2020 GMPEs (signalled by Eric Thompson)

[Michele Simionato (@micheles)]

  • Internal: splitting in groups with homogeneous temporal occurrence model
  • Optimized the calculation of mean and stdevs in event based calculations, with
    a speedup of 13x for the EUR model

[Chris di Caprio (@chrisdicaprio)]

  • Allowed extrapolation in the Kuehn (2020) GMPEs to solve numeric issues

[Michele Simionato (@micheles)]

  • Fixed an encoding error when exporting the realizations
  • Fixed a bug with multifault sources raising a cryptic error
    "object has no attribute msparams"
  • Fixed a critical memory bug causing over 80 GB per core to be needed for
    event based calculations with ~6 million sites
  • Made minimum_intensity mandatory in event based calculations
  • Reduced the memory consumption in event_based calculations: now even calculations
    with 5 million sites can be run with ~2 GB per core
  • Reduced the memory occupation in gen_poes
  • Using half the memory in postclassical by using 32 bit arrays
  • Using half the memory on Windows by using half the threads by default
  • Fixed a bug in conditional spectrum calculations with a non-contributing TRT

[Savvinos Aristeidou (@Savvinos-Aristeidou)]

  • Added new GMM in the gsim library, named aristeidou_2023
  • Added new IM, that is the inelastic spectral displacement, SDi,
    which takes as input one additional parameter (i.e., strength ratio, R)

[Fatemeh Alishahiha (@FatemehAlsh)]

  • Added a new gsim module named zafarani_2018.
  • Added a new gsim module named ambraseys_2005.

[Kyle Smith (@kslytherin)]

  • Added a new gsim file sandikkaya_akkar_2017.py to implement the
    Arias Intensity and Cumulative Absolute Velocity ground motion
    models from Sandikkaya and Akkar (2017).

[Michele Simionato (@micheles)]

  • Making sure that the tiles contains at least 100 sites in classical tiling
    calculations
  • Rewritten the SLURM algorithm to work around the submission limit
  • Added uniqueness check for the station coordinates
  • Internal: removed parameter [dbserver]listen in openquake.cfg
  • Added command oq submit n job_ini for usage in supercomputers
  • Reimplemented the sensitivity analysis in a supercomputer-friendly way
  • Fixed export realizations which was truncating the branch_path
  • Extended logic tree filtering via smlt_branch
  • Worked on disaggregation by multifault source

[Michele Simionato (@micheles), Christopher Brooks (@CB-quakemodel)]

  • Internal: added a function for filtering sites around a rupture

[Michele Simionato (@micheles)]

  • Internal: added method GsimLogicTree.to_node
  • Internal: added commands oq compare oqparam and oq plot_sites csvfiles
  • Fixed exporting the ruptures when imported from a CSV
  • Fixed the issue of small negative eigenvalues in conditioned GMFs
    calculations by adding a correlation_cutoff
  • Internal: extended Starmap.apply to split DataFrames
  • Fixed the avg_gmf exporter in presence of a filtered site collection

[Lana Todorovic (@LanaTodorovic93)]

  • Improved secondary perils documentation

[Michele Simionato (@micheles)]

  • Fixed the ordering of the realizations to depend on the source model
    branch path also in the case of full enumeration: this is crucial to
    get consistent results with the two approaches
  • Saved data transfer in the context makers in classical calculations
  • Internal: added utility oq info geohash:<lon>,<lat>
  • Changed the scenario calculators to discard the sites far away from
    the rupture, with the effect of generating different GMFs
  • Cached get_realizations and optimized the memory occupation; now
    302_990_625 realizations (i.e. EUR) require only 90 GB

[Anna Rood (@AnnaRood)]

  • Updates to the AELO workflow: added additional spectral periods ranging
    from 0.02 to 10 s and added option to use ASCE7-22. NB: minor changes in
    the results of year 1 are expected

[Michele Simionato (@micheles)]

  • Changed the GMF-based calculators to always set a custom_site_id
  • Internal: added variable OQ_SITE_DEBUG

OpenQuake Engine 3.20.1

07 Jun 09:44
17381ef
Compare
Choose a tag to compare

[Paolo Tormene (@ptormene), Antonio Ettorre (@antonioettorre), , Armando Scarpati (@hascar)]

  • Improved installation documentation

from previous OpenQuake Engine 3.20.0 version:

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Internal: added commands oq compare assetcol and oq compare sitecol

[Michele Simionato (@micheles)]

  • Internal: added a command oq reducexp exposure_xml site_model_csv

[Paul Henshaw (@pslh), Antonio Ettorre (@antonioettorre), Michele Simionato (@micheles)]

  • Updated the documentation about installing the engine

[Michele Simionato (@micheles)]

  • Raised the default max_potential_paths to 1,000,000
  • Optimized the calculation of mean hazard curves when use_rates=true;
    now it is possible to compute exactly mean curves even with millions
    of realizations

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Added command oq plot 'gmf_scenario?imt=PGA&kind=rlz-0'

[Fatemeh Alishahiha (@FatemehAlsh)]

  • Added vertical component to abrahamson_silva_1997 gsim library

[Michele Simionato (@micheles)]

  • Internal: removed ProbabilityCurve and rename ProbabilityMap->MapArray
  • Optimized building the CompositeSourceModel for complex logic trees
  • Optimized "reading rates" in postclassical
  • Extended the delta_loss warning to scenario_risk calculations
    and documented it

[Michele Simionato (@micheles), Marco Pagani (@mmpagani)]

  • Fixed the multifault rupture indices and the MultiLine class so
    that the New Zealand model can run

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Added a new parameter asce_version for AELO calculations

[Michele Simionato (@micheles)]

  • Saving memory and disk space in conditioned GMFs scenarios, improving
    also the performance in many cases
  • Fixed the passing of parameters to the underlying GMPE in NRCan15SiteTerm
  • Added another check for missing gsim in scenario calculations
  • Using custom hcurves and uhs exporters in AELO mode

[Fatemeh Alishahiha (@FatemehAlsh)]

  • Added a new gsim library named ghasemi_2009 developed for Iran.

[Marco Pagani (@mmpagani)]

  • Added a new epistemic uncertainty for modelling relative uncertainty on
    MMax

[Michele Simionato (@micheles)]

  • Added a check to forbid individual_rlzs=true and collect_rlzs=true
  • Fixed a bug in oq extract "ruptures?rup_id=XXX
  • Raising an early error if the user forgets to specify a site_model_file
    when needed (i.e. for parameters region and xvf)

[Marco Pagani (@mmpagani), Christopher Brooks (@CB-quakemodel)]

  • Refactored Chiou and Youngs (2014) GMM to be adjustable using methodology
    of the Boore et al (2022) paper

[Michele Simionato (@micheles)]

  • Discarded the stations (if any) from the avg_gmf plot
  • Added an early check for homeless consequences
  • Improved the check for missing site parameters
  • Internal: fixed the serialization of logic trees using
    simpleFaultGeometryAbsolute, complexFaultGeometryAbsolute or
    characteristicFaultGeometryAbsolute
  • Added a check when importing hazard_curves.csv files: the values must be
    probabilities
  • Internal: functions must be shorter than 100 lines and have less than
    16 arguments to enter in the engine codebase
  • Fixed scenarios with CanadaSHM6 GMPEs and ModifiableGMPE
  • Fixed avg_losses-stats exporter in the case of a single realization
  • Managed duplicated multi fault sources in event based for the New
    Zealand model
  • Forbidden characters .:; in the branchID

[Michal Kolaj (@MichalKolaj)]

  • Fixed a couple bugs in the Canadians GMPEs (can_shm6_inslab) causing wrong
    means

[Michele Simionato (@micheles), Paolo Tormene (@ptormene)]

  • Extended the engine and the WebUI to accept a rupture_file
    in the contexts of the Aristotle project
  • Extended the engine and the WebUI to run scenario_risk calculations
    from USGS ruptures in the contexts of the Aristotle project

[Michele Simionato (@micheles)]

  • Raised a clear error for GMF-conditioned calculations with too many sites
  • Rounding lon, lat with numpy in oqparam.sites
  • Reduced by half the data transfer in classical by using 32 bit rates
  • Fixed a bug in oq zip which was missing the exposure.csv files
  • Introduced a parameter config.memory.avg_losses_max
  • Changed import_gmfs_hdf5 to not use ExternalLinks
  • Added oq show usgs_rupture:<usgs_id> printing the rupture parameters

[Matteo Nastasi (@nastasi-oq)]

  • Add helper to check consistency between debian/changelog and
    CONTRIBUTORS.txt

[Michele Simionato (@micheles)]

  • Added an optional flag config.distribution.compress to reduce the
    data transfer by compressing pickles larger than 1 MB
  • Optimized postclassical both for regular and tiling calculations
  • Saving disk space in classical calculations (~4x) by gzipping the rates
  • Removed Python version checks in install.py

OpenQuake Engine 3.20.0

03 Jun 13:08
574d834
Compare
Choose a tag to compare

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Internal: added commands oq compare assetcol and oq compare sitecol

[Michele Simionato (@micheles)]

  • Internal: added a command oq reducexp exposure_xml site_model_csv

[Paul Henshaw (@pslh), Antonio Ettorre (@antonioettorre), Michele Simionato (@micheles)]

  • Updated the documentation about installing the engine

[Michele Simionato (@micheles)]

  • Raised the default max_potential_paths to 1,000,000
  • Optimized the calculation of mean hazard curves when use_rates=true;
    now it is possible to compute exactly mean curves even with millions
    of realizations

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Added command oq plot 'gmf_scenario?imt=PGA&kind=rlz-0'

[Fatemeh Alishahiha (@FatemehAlsh)]

  • Added vertical component to abrahamson_silva_1997 gsim library

[Michele Simionato (@micheles)]

  • Internal: removed ProbabilityCurve and rename ProbabilityMap->MapArray
  • Optimized building the CompositeSourceModel for complex logic trees
  • Optimized "reading rates" in postclassical
  • Extended the delta_loss warning to scenario_risk calculations
    and documented it

[Michele Simionato (@micheles), Marco Pagani (@mmpagani)]

  • Fixed the multifault rupture indices and the MultiLine class so
    that the New Zealand model can run

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Added a new parameter asce_version for AELO calculations

[Michele Simionato (@micheles)]

  • Saving memory and disk space in conditioned GMFs scenarios, improving
    also the performance in many cases
  • Fixed the passing of parameters to the underlying GMPE in NRCan15SiteTerm
  • Added another check for missing gsim in scenario calculations
  • Using custom hcurves and uhs exporters in AELO mode

[Fatemeh Alishahiha (@FatemehAlsh)]

  • Added a new gsim library named ghasemi_2009 developed for Iran.

[Marco Pagani (@mmpagani)]

  • Added a new epistemic uncertainty for modelling relative uncertainty on
    MMax

[Michele Simionato (@micheles)]

  • Added a check to forbid individual_rlzs=true and collect_rlzs=true
  • Fixed a bug in oq extract "ruptures?rup_id=XXX
  • Raising an early error if the user forgets to specify a site_model_file
    when needed (i.e. for parameters region and xvf)

[Marco Pagani (@mmpagani), Christopher Brooks (@CB-quakemodel)]

  • Refactored Chiou and Youngs (2014) GMM to be adjustable using methodology
    of the Boore et al (2022) paper

[Michele Simionato (@micheles)]

  • Discarded the stations (if any) from the avg_gmf plot
  • Added an early check for homeless consequences
  • Improved the check for missing site parameters
  • Internal: fixed the serialization of logic trees using
    simpleFaultGeometryAbsolute, complexFaultGeometryAbsolute or
    characteristicFaultGeometryAbsolute
  • Added a check when importing hazard_curves.csv files: the values must be
    probabilities
  • Internal: functions must be shorter than 100 lines and have less than
    16 arguments to enter in the engine codebase
  • Fixed scenarios with CanadaSHM6 GMPEs and ModifiableGMPE
  • Fixed avg_losses-stats exporter in the case of a single realization
  • Managed duplicated multi fault sources in event based for the New
    Zealand model
  • Forbidden characters .:; in the branchID

[Michal Kolaj (@MichalKolaj)]

  • Fixed a couple bugs in the Canadians GMPEs (can_shm6_inslab) causing wrong
    means

[Michele Simionato (@micheles), Paolo Tormene (@ptormene)]

  • Extended the engine and the WebUI to accept a rupture_file
    in the contexts of the Aristotle project
  • Extended the engine and the WebUI to run scenario_risk calculations
    from USGS ruptures in the contexts of the Aristotle project

[Michele Simionato (@micheles)]

  • Raised a clear error for GMF-conditioned calculations with too many sites
  • Rounding lon, lat with numpy in oqparam.sites
  • Reduced by half the data transfer in classical by using 32 bit rates
  • Fixed a bug in oq zip which was missing the exposure.csv files
  • Introduced a parameter config.memory.avg_losses_max
  • Changed import_gmfs_hdf5 to not use ExternalLinks
  • Added oq show usgs_rupture:<usgs_id> printing the rupture parameters

[Matteo Nastasi (@nastasi-oq)]

  • Add helper to check consistency between debian/changelog and
    CONTRIBUTORS.txt

[Michele Simionato (@micheles)]

  • Added an optional flag config.distribution.compress to reduce the
    data transfer by compressing pickles larger than 1 MB
  • Optimized postclassical both for regular and tiling calculations
  • Saving disk space in classical calculations (~4x) by gzipping the rates
  • Removed Python version checks in install.py

OpenQuake Engine 3.19.1

14 May 08:42
4ba9c42
Compare
Choose a tag to compare

[Antonio Ettorre (@vot4anto)]

  • Upgrade pyzmq to 26.0.3

[Michele Simionato (@micheles)]

  • Backported fix to oq extract ruptures?rup_id=XXX
  • Backported fix to a fake error in case of a nontrivial
    maximum_distance together with a minimum_magnitude
  • Backported fixes to the Canada SHM6 GMPEs

OpenQuake Engine 3.19.0

04 Mar 16:35
532424b
Compare
Choose a tag to compare

[Graeme Weatherill (@g-weatherill)]

  • Contributed new GMPEs Weatherill2024ESHM20AvgSA,
    Weatherill2024ESHM20SlopeGeologyAvgSA, Weatherill2024ESHM20Homokedastic
    and GmpeIndirectAvgSA

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Added geometry_file to discard ruptures

[Michele Simionato (@micheles)]

  • Fixed exporting from calculations with a grand parent
  • Added an uniqueness check to source IDs in the same branch
  • Extended the command oq sample to multi fault sources
  • Fixed the reading of ruptures with a multisurface with meshes
    of different lengths
  • Fixed oq compare: the tolerance parameters were ignored
  • Fixed a numerical precision error affecting the hazard curves at
    very high intensities
  • Optimized multi fault sources by moving surface calculations in the
    preclassical phase
  • Fixed disaggregation in case of mutex sources

[Paolo Tormene (@ptormene)]

  • Added the possibility to display/hide announcements on top of all WebUI
    pages, setting them up via the Django admin interface

[Michele Simionato (@micheles)]

  • Fixed ZalachorisRathje2019 (mag > Mb_ -> mag >= Mb_)
  • Reduced memory consumption in multiFaultSources
  • Implemented batch processing for AELO calculations

[Anirudh Rao (@raoanirudh)]

  • Improved the performance of non-parametric liquefaction models

[Michele Simionato (@micheles)]

  • Renamed 'fpeak' as 'f0' in the HassaniAtkinson2020 GMPE so that the
    Manea2021 GMPE can work
  • Internal: extended the command oq mosaic sample_rups to multiple models
  • After 3 years of deprecation, forbidden custom methods in GMPE classes
  • Changed the universal installer to recreate the venv
  • Reduced the number of tasks generated by disagg_by_src and added
    more checks on the naming conventions for the source IDs
  • Fixed the gmf_data exporter with a filtered site collection
  • Added missing validation on duplicate source IDs for source models
    in format nrml/0.5
  • The calculation_mode=ebrisk was not honored when starting from GMFs
  • Fixed an ordering bug in the IMTs causing two peaks in the UHS in
    some situations
  • Fixed bug in the WongEtAl2022 GMPEs, reported by Thomas Bornstein
  • Added a job.ini parameter smlt_branch to reduce the logic tree to
    a specific branch
  • Internal: extended oq info to shapefiles

[Anirudh Rao (@raoanirudh)]

  • Fixed the conditioned GMFs calculator in the case all the
    stations are filtered away

[Marco Pagani (@mmpagani)]

  • Fixed the algorithm used to generate kite surfaces

[Michele Simionato (@micheles)]

  • Changed the weighted quantile algorithm to not depend on numpy.argsort
    (since numpy 1.25 argsort produces a different sorting on machines with
    AVX-512 enabled processors, causing different quantiles when the weights
    are not all equal)
  • Improved error message for missing fields in the exposure CSV files
  • Internal: removed dbserver.user in openquake.cfg
  • Fixed extract_from_zip when managing zip files coming from MACOSX

[Paolo Tormene (@ptormene)]

  • Internal: extended the MosaicGetter to a GlobalModelGetter class with
    the ability to associate points to countries

[Michele Simionato (@micheles)]

  • Removed the obsolete by_country hack when managing the global exposures
  • Changed oq sample to use pandas for reading/writing CSVs, thus fixing
    the issue of quoted newlines
  • Fixed oq check_input exposure.xml
  • Added rupture_dict parameter to be used in scenarios

[Marco Pagani (@mmpagani)]

  • Fixed a bug in the calculation of Rjb for gridded surfaces and added a
    dependency from alpha_shapes

[Chris di Caprio (@chrisdicaprio)]

  • Contributed many new GMPEs for the New Zealand model

[Michele Simionato (@micheles)]

  • Fixed wrong mean_rates_by_src in presence of the colon convention
  • If there are no sources close to the (single) site, do not raise an error
  • Fixed a bug with --hc taking the parent site collection instead of
    the child site collection
  • Extended the exposure field mapping functionality to map the same
    input field to multiple columns in the asset collection
  • Removed the experimental aftershock calculator; aftershocks can
    be computed by simply including a file delta_rates.csv

[Anirudh Rao (@raoanirudh)]

  • Limited the cross-correlation coefficient of GodaAtkinson2009
    to have an upper bound of 1.0

[Paolo Tormene (@ptormene)]

  • Added commands oq plot mean_hcurves_rtgm,governing_mce,disagg_by_src

[Michele Simionato (@micheles)]

  • Raised the limit on the product num_assets * num_rlzs when using
    full enumeration by a factor of 10
  • Fixed exporting-reimporting GMFs in hdf5 format
  • Fixed a bug causing the insured losses to be larger than the
    ground losses in some cases
  • Added command oq info executing
  • Added extract/relevant_gmfs?threshold= functionality
  • Added extract/ruptures?threshold= functionality
  • Disabling the DbServer with dbserver.host = local
  • Fixed disagg_source for same ID sources
  • Disambiguated same ID sources by appending the branch ID after
    the exclamation mark and fixed disagg_by_src accordingly
  • Fixed another bug in disaggregation for mutex sources
  • Fixed a bug in disagg_source for mutex sources: src_mutex
    was not passed
  • Internal: forced the colon convention on mutex sources
  • Fixed a bug in the disaggregation with mutex sources incorrectly
    averaging over the rates and not the poes

OpenQuake Engine 3.16.7

26 Oct 14:31
e0a08fc
Compare
Choose a tag to compare

[Antonio Ettorre (@vot4anto)]

  • Upgraded Django version to version 3.2.21 with a security fix

[Michele Simionato (@micheles)]

  • In case of a well known IndexError in disaggregation calculations, solved in
    newer versions of the engine, a helpful message is printed
  • Backported fix on sanity check for avg_losses and aggrisk
  • Backported fix to avg_gmf
  • Backported a fix to oq reaggregate
  • Backported fix to event based risk calculations with
    aggregate_by(parent) != aggregate_by(child)
  • Backported fix to the risk_by_event exporter for some calculations
    starting from GMFs on a CSV file
  • Backported fix to import_gmfs_csv, which was breaking sometimes with a
    filtered site collection

OpenQuake Engine 3.18.0

25 Oct 13:11
988aba4
Compare
Choose a tag to compare

[Michele Simionato (@micheles)]

  • Fixed the command oq extract ruptures producing wrong newlines on
    Windows

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Fixed an ordering bug in the tagnames in extract_agg_curves breaking
    the QGIS plugin

[Michele Simionato (@micheles)]

  • Fixed the function get_mean_stddevs_cy14 to recover the same results
    for the Canada SHM6 model as in engine 3.11
  • Required at least Python 3.10.6 on mac and windows

[Claudio Schill (@claudio525)]

  • Optimized the Kuehn sigma_mu_adjustment calculation by replacing the
    multi-step interpolation with a single 2D/3D space interpolation

[Michele Simionato (@micheles)]

  • Fixed a bug in calculations with a filtered site collection using the
    HM2018CorrelationModel
  • Internal: raised a clear error message when get_composite_source_model is
    called without passing a datastore in presence of multifault sources

[Christopher Brooks (@CB-quakemodel)]

  • Added non-ergodic implementation of Zhao et al. (2016) GMM (ray-tracing
    of travel paths through anelastically attenuating volcanic regions and
    subsequent adjustment of the path term based on this distance to reduce
    the predicted ground-motion).

[Michele Simionato (@micheles)]

  • Optimized (2x) the generation of ground motion fields
  • Internal: using a single random number generator inside the GmfComputer
    and not one for each gsim, causing an artificial correlation between gsims
  • Implemented maximum_distance_stations and fixed another site
    collection filtering bug in conditioned GMFs
  • Extended conditioned GMFs to number_of_ground_motion_fields > 1
  • Disabled SLOW MODE on macOS, since the amount of free memory returned by
    psutil cannot be trusted
  • Speeding up count_ruptures for multifault sources, which gives a huge
    in some calculations (like event_based for Dominican Republic)

[Marco Pagani (@mmpagani)]

  • Fixed a bug in the code that resamples a line, with a small effect
    on the hazard of models containing simple fault sources

[Michele Simionato (@micheles)]

  • Optimized the calculation of quantile hazard maps (7x)
  • Internal: stored _rates instead of _poes in classical calculations

[Lana Todorovic (@LanaTodorovic93), Anirudh Rao (@raoanirudh)]

  • Added several regional liquefaction models to the secondary perils module,
    including:
    ZhuEtAl2017LiquefactionCoastal and ZhuEtAl2017LiquefactionGeneral,
    RashidianBaise2020Liquefaction, AllstadtEtAl2022Liquefaction,
    AkhlagiEtAl2021LiquefactionA and AkhlagiEtAl2021LiquefactionB
    (experimental),
    Bozzoni2021LiquefactionEurope, TodorovicSilva2022NonParametric
  • Added new site parameters required by some of these new models to site.py
  • Added LiqOccur as a valid IMT, referring to the occurrence or
    non-occurrence of liquefaction at a site
  • Added basic documentation for the secondary perils module
    (originally written by @cossatot and extended by @LanaTodorovic93)
  • Added rock-slope co-seismic failure computation of Grant et al. (2016)

[Michele Simionato (@micheles)]

  • Fixed sanity check on avg_losses and aggrisk breaking for event_based_damage
    calculations following event_based_risk calculations
  • Fixed a bug in avg_gmf causing the average to be computed incorrectly
  • Removed the XML exporters for hazard curves, maps and uniform hazard spectra
    after nearly 5 years of deprecation

[Paolo Tormene (@ptormene)]

  • In the WebUI users are not allowed to see other users outputs by default
    (the old default can be obtained setting ACL_ON = False)

[Manuela Villani (@mvillani), Michele Simionato (@micheles), Paolo Tormene (@ptormene)]

  • Produced ASCE-7 and ASCE-41 outputs for the AELO project and hidden
    a few internal outputs

[Athanasios Papadopoulos (@thpap)]

  • Adjusted the Swiss-specific implementations of the GMPEs used
    in the Swiss national seismic hazard (SUIhaz15) and risk (ERM-CH23) models.
    The new implementation returns all of total, intra- and inter-event sigmas,
    rather than just the total one

  • Extended the ModifiableGMPE class by adding an
    apply_swiss_amplification_sa method that is used in ERM-CH23 to
    apply site specific adjustments for site effects and intra-event
    uncertainty

  • Added ch_ampl03, ch_ampl06, ch_phis2s03, ch_phis2s06,
    ch_phisss03, ch_phis2s06 site parameters to the site.py file

[Paolo Tormene (@ptormene)]

  • Upgraded requirements: Shapely to version 2.0.1 and Pandas to version 2.0.3

[Michele Simionato (@micheles), Paolo Tormene (@ptormene)]

  • Implemented AEP, OEP curves

[Michele Simionato (@micheles)]

  • Internal: changed events.year to be in the range 1..eff_time
  • Enhanced oq engine --delete-calculation to remove calculation files
    even if the DbServer is on a remote machine
  • Fixed another site collection filtering bug in conditioned GMFs
  • Fixed a regression in oq reaggregate
  • Better error message for logic trees with branchsets exceeding the limit
  • Fixed a bug with mutex sources and disagg_by_src

[Manuela Villani (@mvillani), Kendra Johnson (@kejohnso), Michele Simionato (@micheles)]

  • Implemented Risk Targeted Ground motion for the AELO project

[Paolo Tormene (@ptormene)]

  • Fixed consequence calculations for 'homeless', 'fatality' and 'injury'
    with/without a specified 'time_event'
  • Raise an early error if any station data has zero intensity value

[Michele Simionato (@micheles), Paolo Tormene (@ptormene)]

  • Internal: checking encoding and newlines of all CSV files in the repository

[Christopher Brooks (@CB-quakemodel)]

  • Implemented the Atkinson (2015) GMPE with the alt. eff. depth model

[Michele Simionato (@micheles)]

  • Fixed a bug in event based risk calculations with
    aggregate_by(parent) != aggregate_by(child)
  • Fixed a bug when exporting risk_by_event in absence of ruptures
  • Fixed a bug by not exporting event_based_mfd in absence of ruptures
  • Enabled the pointsource_distance approximation by default at 100 km
  • Fixed an error with sources below the minimum_magnitude
  • Introduced support for SLURM (experimental)
  • Fixed bug in conditioned GMFs, due to the station sites being excluded
    from the complete site collection
  • Reduced slow tasks and memory consumption
    in the event_based_risk calculator (3x for Chile)

[Paolo Tormene (@ptormene)]

  • Raise an error if files specified in site_model_file do not have the same
    headers
  • Give a better error message for risk calculations where the aggregate_by
    tag is specified but it doesn't exist in the exposure model

[Michele Simionato (@micheles)]

  • Improved error message when quantiles are not supported in event based risk
  • Reduced memory consumption in the master node in post_risk
  • Reduced slow tasks in the ebrisk calculator and memory consumption
    in the master node

[Paolo Tormene (@ptormene)]

  • Fixed bug #8907: unable to run ClassicalDamage demo on Windows

[Astha Poudel (@asthapoudel), Anirudh Rao (@raoanirudh), Paolo Tormene (@ptormene)]

  • Updates to the infrastructure risk assessment and connectivity analysis
    module to incorporate additional performance metrics including Complete
    Connectivity Loss (CCL), Partial Connectivity Loss (PCL), Weighted
    Connectivity Loss (WCL), and Efficiency Loss (EL) based on
    Poudel et al. (2023).
  • Implemented the possibility of including both weighted and unweighted
    graphs for infrastructure risk.
  • Implemented the possibility of including simple undirected graphs, simple
    directed graphs, multigraphs and multi-directed graphs.
  • Implemented the Bradley (2012) cross-correlation equations between peak
    ground velocity (PGV), peak ground acceleration (PGA), and 5% damped
    pseudo-spectral acceleration (SA)

[Michele Simionato (@micheles)]

  • Moved the generation of the hazard curves from the GMFs in post_execute
  • Fixed the error "You must supply a list of magnitudes as 2-digit strings"
    when starting from ruptures in a model with GMPETables (i.e. Canada)
  • Replaced sequential tiling with parallel tiling in large classical
    calculations
  • Huge reduction of the memory usage in the event_based calculator; also,
    reduced the slow tasks

OpenQuake Engine 3.17.1

14 Jul 10:02
bca99a7
Compare
Choose a tag to compare

[Michele Simionato (@micheles)]

  • Fixed the associations event_id, rup_id, rlz_id

OpenQuake Engine 3.17.0

12 Jul 14:19
dd9f20b
Compare
Choose a tag to compare

[Michele Simionato (@micheles)]

  • Raise an early error if the user disable both realizations and statistics
  • Internal: added dbserver.user in openquake.cfg
  • Solved the hanging of classical calculations due to large zmq packets
    and reduced memory occupation

[Marco Pagani (@mmpagani), Michele Simionato (@micheles)]

  • Added support for the "direct" method in MRD calculations

[Michele Simionato (@micheles)]

  • Reimplemented the conditional_spectrum calculator as a post-processor

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Raise an error when the same parameter is set in different sections
    of the job.ini file

[Michele Simionato (@micheles)]

  • Fixed tau-phi inversion in LanzanoLuzi2019
  • Fixed another bug with conditioned GMFs appearing as the error
    array[m, n, bad] = exp(mean_covs[0, g, m, n], im) TypeError: list indices must be integers or slices, not tuple

[Claudio Schill (@claudio525)]

  • Fixed sorting bug in the sigma_mu adjustment factor in
    the Kuehn et al. (2020) GMM

[Michele Simionato (@micheles)]

  • Fixed a subtle filtering bug in conditioned GMFs
  • Fixed shakemap calculations to take the risk IMTs and not the hazard IMTs
  • Extended shakemap2gmfs to amplify the GMFs based on user-provided vs30
    values
  • Removed sorting of the sections in the multiFaultSource reader to keep
    the rup_idxs consistent with the order in the files
  • GMFs too small to produce losses now give a warning rather than an error
  • Fixed bug in get_ry0_distance breaking conditioned GMFs
  • Made sure lon and lat are rounded to 5 digits in the site collection

[Graeme Wheaterill]

  • Fixes to bchydro_2016_epistemic, eshm20_craton and lanzano_2019

[Michele Simionato (@micheles)]

  • Extended sensitity analysis to file parameters
  • Introduced new loss type residents

[Marco Pagani (@mmpagani)]

  • Fixed bug in get_profiles_from_simple_fault_data affecting KiteSurfaces

[Michele Simionato (@micheles)]

  • Fixed the rupture exporter in presence of GMPETables
  • Optimized the postclassical phase
  • Fixed a serious issue in the classical calculator with tiles
  • Vectorized the association assets <-> hazard sites (up to 32x speedup)
  • Fixed bug in disaggregation calculations associated to an error
    in the line [mag] = np.unique(np.round(ctx.mag, 6))
  • Optimized the calculation of geohashes by using numba

[Paolo Tormene (@ptormene)]

  • Extended total_losses to include business_interruption

[Michele Simionato (@micheles)]

  • Recognized occupants_avg field in the exposure
  • Optimized reading the exposure (both speed and memory)
  • Optimized the rupture sampling for MultiFaultSources and improved
    the parallelization for MultiFaultSources and MultiPointSources
  • Made the parameter truncation_level mandatory
  • Fixed the damage state header in the aggrisk outputs
  • Changed the order of the IMTs to be by period and not lexicographic
  • Fixed the realizations extractor for scenario calculations reading
    ruptures with multiple different tectonic region types

[Kendra Johnson (@kejohnso)]

  • Fixed a bug in disaggregation by Lon-Lat-TRT when there are multifault
    ruptures and multiple sites

[Michele Simionato (@micheles)]

  • Deprecated the conversion in the exposure
  • Added new loss types "area" and "number" for usage in risk calculations
  • Made the contexts immutable and fixed mutability bugs potentially
    affecting the modules akkar_bommer_2010, bindi_2011_ipe, can_shm6_inslab,
    lanzano_2019, youd_etal_2002, zhang_zhao_2005, cauzzi_faccioli_2008_swiss,
    chiou_youngs_2008_swiss campbell_bozorgnia_2014
  • Changed the disaggregation algorithm (see manual)
  • Added a view risk_by_rup
  • Internal: added command oq compare med_gmv <imt>
  • Extended extract/ruptures to extract a single rupture given the rup_id
  • Fixed a bug in classical_damage causing a ValueError: could not broadcast
    input array from shape (X,Y) into shape (X,)
  • Added check for missing site parameters

[Paolo Tormene (@ptormene)]

  • Internal: reduced the size of the gsim column in the view
    required_params_per_trt in the .rst report

[Michele Simionato (@micheles)]

  • Optimized the generation of events
  • Fixed the GMFs CSV importer so that it can import exported GMFs even in
    the presence of a custom_site_id
  • Implemented sampling for mutex sources with grp_probability
  • Introduced extreme_gmv parameter in the job.ini
  • Introduced a new output "Annual Frequency of Events" and refined the command
    oq plot event_based_mfd?
  • Moved the minimum magnitude filtering after the rupture sampling
  • Changed the internals of rupture sampling and fixed the generated MFD
    in the case of a same source appearing in multiple logic tree branches
  • Fixed a bug in scenario calculations causing a mysterious IndexError in the
    line rctx.clon = c.lons[rctx.sids]
  • Changed the disaggregation exporter to add a column with the IML
    associated to the PoE for the mean disaggregation outputs
  • Internal: added a parameter override_vs30 in the job.ini

[Marco Pagani (@mmpagani), Michele Simionato (@micheles)]

  • Fixed a bug in the source writer when writing NonParametricSources

[Michele Simionato (@micheles)]

  • Changed the conditional spectrum storage and fixed the exporter to export
    all PoEs

[Marco Pagani (@mmpagani)]

  • Fixed conditional spectrum with investigation time different from 1 year

[Michele Simionato (@micheles)]

  • Fixed documentation of the Extractor for hazard curves and maps
  • Fixed bug in oq zip: when starting from a directory different from the
    job.ini directory, .hdf5 files for nonparametric ruptures were not included
  • Honored minimum_magnitude for MultiFaultSources
  • Overhauled the experimental postprocessing framework and fixed many
    bugs in the compute_mrd postprocessor

[Anirudh Rao (@raoanirudh)]

  • Added a verification test suite for the Conditioned GMFs calculator

[Michele Simionato (@micheles)]

  • Added output rates_by_src
  • Fixed method '/v1/ini_defaults' returning NaNs for the site parameters
  • Added output mean_disagg_bysrc for single site calculations with use_rates
  • Added command oq reduce_smlt
  • Fixed reinsurance calculations when there is a single loss type
  • Changed the source seed generation to not depend on the source ID suffix
  • Tracebacks were printed 3 times in the console: this is finally fixed
  • Forbidden duplicate sources in atomic groups
  • Forbidden duplicate mutually exclusive sources
  • Fixed conditional spectrum calculator with multiple sites and implemented
    parallelization
  • Fixed the source ID generation for CollapsedPointSources
  • Fixed the error message for wrong weights in the gsim logic tree file
  • Fixed KeyError in calculations using the EasternCan15Mid with PGA
  • Replaced hard-coded limit to 25 levels in the MRD postprocessor
    with a simple warning

[Kendra Johnson (@kejohnso)]

  • Added a job parameter 'reqv_ignore_sources', which indicates which
    sources - specified as a list of thier source ids - should not be collapsed
    using the equivalent distance

[Michele Simionato (@micheles)]

  • Extended (re)insurance calculations to manage insurance deductibles at asset
    level
  • Internal: added a parameter use_rates to compute statistical hazard curves
    in terms of rates, not probabilities
  • Internal: changed disagg_by_src to work in terms of rates
  • Added command oq runsite <lon>,<lat> for mosaic PSHA calculations
  • Enhanced --reuse-input to reuse preclassical calculations if possible
  • Normalized IMTs in the minimum_intensity dictionary (i.e. SA(1.)=>SA(1.0))
  • Fixed event based calculations running out of memory due to hazard curve
    arrays being instantiated without need

[Julián Santiago Montejo Espitia (@SantiMon1417)]

  • Contributed the GMPE Arteta et al. (2023) for crustal events on northern
    South America

[Michele Simionato (@micheles)]

  • Setting both sites and site_model_file now works also for models
    with nonstandard site parameters, like EUR

[Paolo Tormene (@ptormene)]

  • Added AELO mode for the engine webui, providing a web form to insert input
    values and launch a calculation. Input values are validated and the
    progress of the calculation can be monitored through the webui. On
    completion, the server sends an email to the job owner, providing feedback
    about failure or completion, with a link to retrieve a traceback or to
    browse the calculation outputs. Corresponding tests were added and the
    existing tests for the webui were improved, cleaning up calculations after
    they have been checked.

[Michele Simionato (@micheles)]

  • Changed the default: now all realizations are consider in disaggregation
    calculations, not only the one closest to the mean hazard curve
  • Added feature infer_occur_rates for multiFault sources
  • Sampling the ruptures was raising a BlockingIOError sometimes

[Kendra Johnson (@kejohnso)]

  • Made it possible to use extendModel for multiple branchSets in the
    source model logic tree

[Michele Simionato (@micheles)]

  • Added an exporter for disagg_by_src
  • Implemented mean disaggregation outputs, with the means computed in terms
    of rates, not probabilities

[Kendra Johnson (@kejohnso)]

  • Corrected a bug when using the reqv feature: all sources were
    collapsed instead of the ones with the specified tectonic region types

[Michele Simionato (@micheles)]

  • Changed the lon-lat binning algorithm to produce 4 times less bins
  • Fixed install.py: it must not set the shared_dir
  • Optimized disaggregation in performance, memory consumption and data
    transfer; also changed the task distribution algorithm

OpenQuake Engine 3.16.5

12 Jul 08:37
d8b97fa
Compare
Choose a tag to compare

[Kendra Johnson (@kejohnso)]

  • Added DEFINED_FOR_INTENSITY_MEASURE_COMPONENT = const.IMC.RotD50 to
    the NGAEast and NSHMP2014 GMPEs

[Michele Simionato (@micheles)]

  • Fixed the hanging of classical calculations due to large zmq packets