Releases: gem/oq-engine
OpenQuake Engine 3.15.0
[Michele Simionato (@micheles)]
- Added a check on sum(srcs_weights) == 1 for mutex sources
[Kendra Johnson (@kejohnso)]
- Fixed disaggregation by lon, lat in presence of multiFaultSources
[Michele Simionato (@micheles)]
- Replaced command
oq download_shakemap
withoq shakemap2gmfs
- Raised an error for missing required IMTs in ShakeMap grid files
- Extended the
custom_site_id
to 8 characters - Restricted the accepted characters in risk IDs
- Extended
disagg_by_src
to mutually exclusive sources (i.e. Japan)
and managed "colon" sources specially
[Anne Hulsey (@annehulsey)]
- Contributed
Mag_Dist_TRT
andMag_Dist_TRT_Eps
disaggregations
[Michele Simionato (@micheles)]
- Internal: added a way to disable the DbServer from openquake.cfg or
by setting OQ_DATABASE=local - Implemented
total_losses
, even for insurance calculations - Optimized "computing risk" in the event_based_risk calculator (~30% faster)
- Changed the magnitude binning formula, thus fixing some disaggregation
calculations (for instance when there is a single magnitude for a TRT) - Changed the aggrisk/aggcurves exporters in presence of insurance losses
- Internal: changed how avg_losses, src_loss_table and agg_curves-stats are
stored to simplify the management of secondary losses - Internal: we have now repeatable rupture IDs in classical PSHA
[Pablo Iturrieta (@pabloitu)]
- Added support for negative binomial temporal occurrence models
[Marco Pagani (@mmpagani), Michele Simionato (@micheles)]
- Added support for disaggregation in case of mutually exclusive sources
[Michele Simionato (@micheles)]
- Fixed error message when trying to compute disagg_by_src with too many
sources: in some cases, it contained a misleading reference to point sources - Reorganized the Advanced Manual; changed the theme to be consistent with
the OpenQuake manual - Internal: added command
oq db engine_version
- Added a check for required site parameters not passed correctly
- Fixed
ps_grid_spacing
approximation when the grid is degenerate - Logging a warning when starting from an old hazard calculation
- The extra fields of the site collection were lost when using --hc
[Julián Santiago Montejo Espitia]
- Implemented the Arteta et al. (2021) subduction model for Colombia
[Michele Simionato (@micheles)]
- Added
host
field to thejob
table (dbserver restart required) --exports=csv
was not honored for the realizations output; now it is
[Paul Henshaw (@pslh), Sandra Giacomini]
- Ported the OpenQuake manual from latex to reStructuredText format
[Michele Simionato (@micheles)]
- Entered automatically in sequential mode if there is not enough memory
- Raised an early error for missing risk IDs in the vulnerability files
- Changed the definition of
aggrisk
again to ensure consistency with the
average losses
[Tom Son (@SnowNooDLe)]
- Added width and hypo_depth estimation to Campbell and Bozorgnia (2014)
[Michele Simionato (@micheles)]
- Improved the precision of the ps_grid_spacing approximation
- Added a check for missing mags when using GMPETables
- Fixed a bug in
upgrade_nrml -m
for point sources with different usd/lsd - Automatically discard irrelevant TRTs in disaggregation calculations
[Ashta Poudel, Anirudh Rao (@raoanirudh), Michele Simionato (@micheles)]
- Added the ability to run connectivity analysis in event_based_damage
and scenario_damage calculation with an appropriate exposure
[Tom Son (@SnowNooDLe), Michele Simionato (@micheles)]
- Added ztor estimation to Campbell and Bozorgnia (2014)
[Michele Simionato (@micheles)]
- Internal: removed REQUIRES_COMPUTED_PARAMETERS
- Using PointMSR when the reqv approximation is enabled
- Internal: changed the rupture storage for classical calculations
- Optimized rupture instantiation for point sources
- Optimized distance calculations for point sources
[Tom Son (@SnowNooDLe), Claudio Schill]
- Simple performance improvement of Kuehn et al. 2020 model
[Michele Simionato (@micheles)]
- Changed again the string representation of logic tree paths and added
an utilityhazardlib.lt.build
to build trees from literal lists - Fixed the field
source_info.trti
in the datastore to point to the
correct tectonic region type index and not to zero - Added a check for inconsistent IDs across different kinds of risk functions
(i.e. fragility and consequence) - Fixed a logging statement that could run out of memory in large calculations
- Optimized
iter_ruptures
for point sources by vectorizing the generation of
planar surfaces by magnitude, nodal plane and hypocenter
[Tom Son (@SnowNooDLe)]
- Implemented a missing piece in Chiou & Youngs (2014) model
Predicted PSA value at T ≤ 0.3s should be set equal to the value of PGA
when it falls below the predicted PGA
[Marco Pagani (@mmpagani)]
- Added the possibility of disaggregating in terms of epsilon*
- Added a method to compute the cross-correlation matrix
- Added Hassani & Atkinson (2018)
- Added Hassani & Atkinson (2020)
[Michele Simionato (@micheles)]
- Fixed disaggregation returning NaNs in some situations with
nonParametric/multiFaultSources - Bug fix: not storing far away ruptures coming from multiFaultSources
- Implemented CScalingMSR
- Optimized context collapsing in classical calculations
- Setting
ps_grid_spacing
now sets thepointsource_distance
too - Saving memory in preclassical calculations on machines with 8 cores or less
- Changed the magnitude-dependent
maximum_distance
feature to discard
ruptures belowminmag
and abovemaxmag
- Added the ability to estimate the runtime of a calculation by using
the--sample-sources
option - Fixed a wrong formula in
modifiable_gmpe.add_between_within_stds
- Reduced the stress on the memory in classical calculations, thus
improving the performance - Setting the truncation_level to the empty string is now forbidden;
some GMFs calculations not setting truncation_level can now give
different results since truncation_level=None is now replaced with
truncation_level=99
OpenQuake Engine 3.14.0
Release 3.14.0
[Michele Simionato (@micheles)]
- Changed the definition of
aggrisk
: dividing by the effective time - Internal: removed flag
save_disk_space
since now it is always on - Slightly changed the collapsing of nodal planes and hypocenters in
presence of the equivalent distance approximation (reqv
) - Extended
oq reduce_sm
to multiFaultSources - Fixed the check on unique section IDs for multiFaultSources
- Implemented multi-aggregation with a syntax like
aggregate_by=taxonomy,region;taxonomy;region
- Removed the obsolete commands
oq to_shapefile
andoq from_shapefile
and turned pyshp into an optional dependency - Setting
num_rlzs_disagg=0
is now valid and it means considering
all realizations in a disaggregation calculation - Rounded the magnitudes in multiFaultSources to two digits
[Marco Pagani (@mmpagani)]
- Extended ModifiableGMPE to work with GMPETable and subclasses
[Michele Simionato (@micheles)]
- Upgraded shapely from version 1.7 to version 1.8: this causes slight
changes in the results for most calculations - Removed the not used (and not working) functionality
applyToSourceType
- Raised an error when the total standard deviation is zero, unless
truncation_level is set to zero
[Tom Son (@SnowNooDLe)]
- Fixed a typo and a few bugs within Kuehn et al. (2020) model to include
Z2.5 when the given region is JAPAN
[Michele Simionato (@micheles)]
- Changed /extract/events to return events sorted by ID
- Changed the default amplification method to "convolution"
- Fixed a bug with discard_trts sometimes discarding too much
- Raised a helpful error message when ensurepip is missing
- Fixed parentdir bug in event_based_damage
- Fixed sorting bug in the
/v1/calc/run
web API - Internal: introduced limited unique rupture IDs in classical calculations
with few sites
[Prajakta Jadhav (@Prajakta-Jadhav-25), Dharma Wijewickreme (@Dharma-Wijewickreme)]
- Added GMPE Youd et al. (2002) and the corresponding site parameters
[Michele Simionato (@micheles)]
- Fixed the exporter
aggrisk-stats
in the case of zero losses - Vectorized all GMPEs and forbidden non-vectorized GMPEs
- Raised the limit to 94 GMPEs per tectonic region type
- Optimized the NBCC2015_AA13 GMPEs
- Optimized the GMPETable and the derived NGAEast GMPEs
- Fixed a 32/64 bit bug in
oq export loss_maps-stats
[Marco Pagani (@mmpagani)]
- Added a more flexible version of the GC2 implementation
- Added caching of distances in multi fault ruptures
- Added the NRCan site term to the modifiable GMPE
[Michele Simionato (@micheles)]
- Optimized .get_bounding_box, .polygon and .mesh_size for MultiFaultSources
- Fixed bug in presence of mixed vectorized/nonvectorized GMPEs
- Extended
oq postzip
to multiple files andoq abort
to multiple jobs - Internal: changed install.py to install the venv in /opt/openquake/venv
- Fixed a BOM issue on Windows when reading job.ini files
OpenQuake Engine 3.11.5
OpenQuake Engine 3.13.0
[Michele Simionato (@micheles)]
- Improved the precision of the
pointsource_distance
approximation - Added command
oq show rlz:<no>
- Internal: added an environment variable OQ_DATABASE
[Manuela Villani (@mvillani)]
- Added a function in the modifiable GMPE to convert ground-motion assuming
different representations of the horizontal component.
[Kendra Johnson (@kejohnso)]
- Implemented possibility of assigning the parameters
floating_x_step
and
floating_y_step
for kite fault sources in the job configuration file
[Michele Simionato (@micheles)]
- The
branchID
is now autogenerated in the gsim logic tree files, thus
solving the issue of wrong branch paths for duplicated branchIDs - Added a check for missing gsim information in the job.ini file
- Fixed the case of continuous fragility functions with minIML=noDamageLimit
[Miguel Leonardo-Suárez (@mleonardos)]
- Added GMPE from Jaimes et al. (2020) for Mexican intraslab earthquakes
[Michele Simionato (@micheles)]
- Enforced ps_grid_spacing <= pointsource_distance
- Internal: added command
oq plot source_data?
- The engine is now splitting the MultiFaultSources, thus improving the task
distribution
[Claudia Mascandola (@mascandola)]
- Added a new class to the abrahamson_2015 gmm.
- Added a new class to the lanzano_luzi_2019 and skarlatoudis_2013 gmms
[Marco Pagani (@mmpagani), Shreyasvi Chandrasekhar (@Shreyasvi91)]
- Added GMM from Bora et al. (2019)
- Fixed bug in the multifault surface when defined using kite fault surfaces
[Giuseppina Tusa (@gtus23)]
- Added a new gsim file tusa_langer_azzaro_2019.py to implement the GMMs
from Tusa et al. (2020).
[Michele Simionato (@micheles)]
- Added command
oq compare uhs CALC_1 CALC_2
split_sources=false
is now honored in disaggregation calculations- Internal: rup/src_id now refers to the row in the source_info table
[Miguel Leonardo-Suárez (@mleonardos)]
- Added the GMPE Arroyo et al. (2010) for Mexican subduction interface events
[Marco Pagani (@mmpagani)]
- Added a new method to the modifiable GMPE with which is possible to
compute spatially correlated ground-motion fields even when the initial
GMM only provides the total standard deviation. - Fixed a bug in the
modify_recompute_mmax
- Added a
get_coeffs
method to the CoeffTable class - Added support for EAS, FAS, DRVT intensitity measure types
[Michele Simionato (@micheles)]
- Extended the mag-dependent filtering to the event based calculator
- The flag discrete_damage_distribution=true was incorrectly ignored when
computing the consequences - Implemented
reaggregate_by
feature - Supported the
custom_site_id
in the GMF exporters - Bug fix: the site collection of the child calculation was ignored when
using the --hazard-calculation-id option - Supported Python 3.9 and deprecated Python 3.6
- Extended
oq prepare_site_model
to support .csv.gz files - Solved the issue of "compute gmfs" slow tasks in event_based and used
the same approach in classical calculations too - Made sure
valid.gsim
instantiates the GSIM - ShakeMap calculations failing with a nonpositive definite correlation
matrix now point out to the manual for the solution of the problem - Introduced the GodaAtkinson2009 cross correlation between event model
- Specifying consequence files without fragility files now raises an error
- Fixed a bug in event_based_risk with nontrivial taxonomy mapping producing
NaNs in the event loss table - Internal: added kubernetes support from the WebUI
[Shreyasvi Chandrasekhar (@Shreyasvi91)]
- Added a new GMPE for significant duration proposed by Bahrampouri et al
(2021).
[Claudia Mascandola (@mascandola)]
- Added the computation of tau and phi stdevs to the sgobba_2020 GMPE
- Added a new class to the lanzano_2019 gmm.
[Michele Simionato (@micheles)]
- Changed completely the storage of the PoEs and reduced the memory
consumption in classical calculations (plus 4x speedup in "postclassical") - Changed the behavior of
sites_slice
- Changed
custom_site_id
to an ASCII string up to 6 characters - Fixed the error raised in presence of a mag-dep distance for a tectonic
region type and a scalar distance for another one
[Yen-Shin Chen (@vup1120)]
- Added the Thingbaijam et al. (2017) Magnitude Scaling Law for Strike-slip
[Michele Simionato (@micheles)]
- Changed the API of
ContextMaker.get_mean_stds
- Extended the WebUI to run sensitivity analysis calculations
- Changed the string representation of logic tree paths and enforced a
maximum of 64 branches per branchset - Added command
oq info disagg
- Accepted site models with missing parameters by using the global site
parameters instead - Supported the syntax
source_model_logic_tree_file = ${mosaic}/XXX/in/ssmLT.xml
- Fixed a performance bug with ignore_master_seed=true
- Added a command
oq info cfg
to show the configuration file paths - Added a check on the intensity measure levels with
--hc
is used - Bug fix: pointsource_distance = 0 was not honored
- Fixed a small bug of
oq zip job_haz.ini -r job_risk.ini
: now it works
even if the oqdata directory is empty - Optimized the aggregation of losses in event_based_risk and made it possible
to aggregate by site_id for more than 65,536 sites - Fixed the calculation of average insured losses with a nontrivial taxonomy
mapping: now the insured losses are computed before the average procedure,
not after - Unified scenario_risk with event_based_risk, changing the numbers
when producing discrete damage distributions - Added
aggrisk
output to event based damage calculation - Added parameter
discrete_damage_distribution
in scenario damage
calculations and changed the default behavior - Deprecated consequence models in XML format
- Event based damage calculations now explicitly require to specify
number_of_logic_tree_samples
(before it assumed a default of 1)
[Elena Manea (@manea), Laurentiu Danciu (@danciul)]
- Added the GMPE Manea (2021)
[Michele Simionato (@micheles)]
- Added a check against duplicated branchset IDs
- Improved error checking when reading the taxonomy mapping file
- Renamed conversion -> risk_id in the header of the taxonomy mapping file
[Antonio Ettorre (@vot4anto)]
- Bumped h5py to version 3.1.0
[Michele Simionato (@micheles)]
- Renamed the parameter
individual_curves
->individual_rlzs
- Reduced the number of disaggregation outputs and removed the long-time
deprecated XML exporters - Fixed the ShakeMap calculator failing with a TypeError:
get_array_usgs_id() got an unexpected keyword argument 'id' - Added
conseq_ratio
in the aggcurves exporter for event_based_damage - Added a
conditional_spectrum
calculator - Fixed an array<->scalar bug in abrahamson_gulerce_2020
- Restored the classical tiling calculator
OpenQuake Engine 3.12.1
[Michele Simionato (@micheles)]
- Fixed a bug in event_based_risk with nontrivial taxonomy mapping producing
NaNs in the event loss table - Bug fix: pointsource_distance = 0 was not honored
- Improved the universal installer when installing over a previous
installation from packages - Fixed an error in
oq zip job_haz.ini -r job_risk.ini
- Fixed the disaggregation Mag_Lon_Lat exporter header mixup
- Fixed the ShakeMap calculator failing with a TypeError:
get_array_usgs_id() got an unexpected keyword argument 'id' - Fixed the Abrahamson Gulerce GMPE failing with a scalar<->array error
OpenQuake Engine 3.11.4
[Michele Simionato (@micheles)]
- Fixed a bug in the adjustment term in NSHMP2014 breaking the USA model
- Fixed the sanity check in event_based_damage giving false warnings
- Fixed the corner case when there are zero events per realization in
scenario_damage
OpenQuake Engine 3.12.0
[Marco Pagani (@mmpagani)]
- Updated verification tables for Abrahamson et al. (2014) and checked
values with other public resources.
[Michele Simionato (@micheles)]
- Added command
oq info consequences
- Improved error message for
area_source_discretization
too large - Improved command
oq info exports
- Internal: changed the signature of hazardlib.calc.hazard_curve.classical
- Extended the multi-rupture scenario calculator to multiple TRTs
- Removed the experimental feature
pointsource_distance=?
- Refactored the GMPE tests, with a speedup of 1-14 times
- Added a script
utils/build_vtable
to build verification tables oq info gsim_logic_tree.xml
now displays the logic tree- Fixed a bug in the adjustment term in NSHMP2014 breaking the USA model
[Graeme Weatherill (@g-weatherill)]
- Implements Abrahamson & Gulerce (2020) NGA Subduction GMPE
[Nico Kuehn (@nikuehn)/Graeme Weatherill (@g-weatherill)]
- Implements Kuehn et al. (2020) NGA Subduction GMPE
[Chung-Han Chan/Jia-Cian Gao]
- Implements Lin et al. (2011)
[Graeme Weatherill (@g-weatherill)/Nico Kuehn (@nikuehn)]
- Implements Si et al. (2020) NGA Subduction GMPE
[Michele Simionato (@micheles)]
- There is now a huge speedup when computing the hazard curve statistics
if numba is available - Made it possible to compute consequences in presence of a taxonomy mapping
- Fixed a bug in
get_available_gsims
: GSIM aliases were not considered - Optimized the single site case by splitting the sources less
- Restricted the acceptable methods in GMPE subclasses
[Claudia Mascandola (@mascandola)]
- Added the Lanzano et al. (2020) GMPE
[Stanley Sayson (@stansays)]
- Added the Stewart et al. (2016) GMPE for V/H
- Added the Bozorgnia and Campbell (2016) GMPE for V/H
- Added the Gulerce and Abrahamson (2011) GMPE
- Corrected Campbell and Bozorgnia (2014) GMPE
[Michele Simionato (@micheles)]
- Fixed a subtle bug: in presence of a nontrivial taxonomy mapping, loss
curves could be not computed due to duplicated event IDs in the event
loss table coming from a int->float conversion - Forced a name convention on the coefficient tables (must start with COEFFS)
- Replaced IMT classes with factory functions
- Changed the
minimum_distance
from a parameter of the GMPE to a
parameter in the job.ini - Supported consequences split in multiple files
[Claudia Mascandola (@mascandola)]
- Added the Sgobba et al. (2020) GMPE
[Michele Simionato (@micheles)]
- Improved the warning on non-contributing TRTs and made it visible
for all calculators - Fixed a bug in scenarios from CSV ruptures with wrong TRTs
- Added a limit of 12 characters to IMT names
- Forbidded multiple inheritance in GMPE hierarchies
- Added parameter
ignore_encoding_errors
to the job.ini - Extended the damage calculators to generic consequences
- Renamed cname -> consequence in the CSV input files
- Made sure the CSV writer writes in UTF-8
[Graeme Weatherill (@g-weatherill)]
- Updates Kotha et al. (2020) slope/geology model coefficients
[Michele Simionato (@micheles)]
- Improved
post_risk
to use all the cores in a cluster, since it
was using the master only - Improved the validation of the investigation_time in event_based_damage
- Renamed the
losses_by_event
CSV exporter torisk_by_event
and
made it work consistently for losses, damages and consequences; also
removed theno_damage
field
[Marco Pagani (@mmpagani), Michele Simionato (@micheles)]
- Implemented MultiFaultSources
- Added method for computing rjb to kite surfaces
- Added support for new epistemic uncertainties in the SSC LT
[Michele Simionato (@micheles)]
- Fixed newlines in the CSV exports on Windows
[Graeme Weatherill (@g-weatherill)]
- Added Ameri (2014) GMPE for the Rjb case
[Michele Simionato (@micheles)]
- Optimized the slow tasks in event_based calculations
- Added an early check for fragility functions in place of vulnerability
functions or viceversa
[Marco Pagani (@mmpagani)]
- Numeric fix to the amplification with the convolution method
- Implemented the BakerJayaram2008 cross correlation model
- Fixed the calculation of distances for kite surfaces with Nan values
[Michele Simionato (@micheles)]
- Fixed logic tree bug: MultiMFDs were not modified
- Internal: added a view composite_source_model to show the sources by group
[Nicolas Schmid (@schmidni)]
- Added possibility to use *.shp files instead of *.xml files when
doing risk calculations from shakemaps.
[Michele Simionato (@micheles)]
- Rewritten the event_based_damage calculation to support
aggregate_by
- Made it possible to run an event based risk calculation starting from a
parent ran by a different user
[Pablo Heresi (@pheresi)]
- Implemented Idini et al (2017) GSIM.
- Added dynamic site parameter 'soiltype'
[Michele Simionato (@micheles)]
- Added support for traditional disaggregation
- Removed the global site parameter
reference_siteclass
and turned
backarc
,z1pt0
andz2pt
into dynamic site parameters - Internal: storing the SiteCollection in a pandas-friendly way
- Added HDF5 exporter/importer for the GMFs
- Replaced XML exposures with CSV exposures in the demos
[Claudia Mascandola (@mascandola)]
- Fix to LanzanoEtAl2016 in presence of a "bas" term in the site model
[Nicolas Schmid (@schmidni)]
- Improve performance for ShakeMap calculations when spatialcorr and crosscorr
are both set to 'no' - Add feature to do ShakeMap calculations for vulnerability models using MMI.
[Michele Simionato (@micheles)]
- Added a flag
ignore_master_seed
(false by default) - Estimated the uncertainty on the losses due to the uncertainty in the
vulnerability functions in event_based_risk and scenario_risk calculations - Supported exposures with generic CSV fields thanks to the
exposureFields
mapping - Honored
custom_site_id
in the hazard curves and UHS CSV exporters - Added a check for the case of
aValue=-Inf
in the truncatedGR MFD - Extended the engine to read XML ShakeMaps from arbitrary sources (in
particular local path names and web sites different from the USGS site) - Fixed
readinput.get_ruptures
to be able to read ruptures in engine 3.11
format - scenario_risk calculations starting from ruptures in CSV format now
honor the parameter number_of_ground_motion_fields
[Nicolas Schmid (@schmidni)]
- Optimized spatial covariance calculations for ShakeMaps (more than 10x)
- Adjusted logic in cross correlation matrix for ShakeMaps; now calculations
are skipped for corr='no'
[Michele Simionato (@micheles)]
- Added a
cholesky_limit
to forbid large Cholesky decompositions in ShakeMap
calculations - Weighted the heavy sources in parallel in event based calculations
- Supported zero coefficient of variations with the beta distribution
- Internal: changed how the agg_loss_table is stored
- Fixed the avg_losses exporter when aggregate_by=id
- Fully merged the calculators scenario_risk, event_based_risk and ebrisk and
ensured independency from the number of tasks even for the "BT" and "PM"
distributions - Storing the agg_loss_table as 64 bit floats instead of 32 bit floats
- Changed the algorithm used to generate the epsilons to avoid storing the
epsilon matrix
OpenQuake Engine 3.11.3
[Michele Simionato (@micheles)]
- Fixed hdf5.dumps that was generating invalid JSON for Windows pathnames,
thus breaking the QGIS plugin on Windows - Fix a bug when reusing a hazard calculation without
aggregate_by
for a
risk calculation withaggregate_by
- Fixed the aggregate curves exporter for
aggregate_by=id
: it was exporting
b'asset_id' instead of asset_id
OpenQuake Engine 3.11.2
[Matteo Nastasi (@nastasi-oq)]
- Fixed setup.py 'pyproj' dependency
[Antonio Ettorre (@vot4anto)]
- Fixed docker builder
OpenQuake Engine 3.11.1
[Michele Simionato (@micheles)]
- Fixed memory regression in ebrisk calculations