Hello OQ Group,
I'm writing to seek assistance with a scenario-based risk calculation I'm attempting in OpenQuake version 3.20. My goal is to assess risk specifically for the intensity measure type SA(0.3). In the input file I inserted 'intensity_measure_types = SA(0.3)'
While my vulnerability model incorporates a range of SA values (0.3 to 10.0), I'm encountering an error when trying to limit the calculation to just SA(0.3).
Would you be able to offer any insights or troubleshooting steps to help me resolve this error and successfully perform the risk calculation for SA(0.3)?
Thanks in advance for your assistance.
-----------------------------------------------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 256, in run
raise exc from None
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 245, in run
self.result = self.execute()
^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\event_based_risk.py", line 444, in execute
smap.reduce(self.agg_dicts)
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 945, in reduce
return self.submit_all().reduce(agg, acc)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 647, in reduce
for result in self:
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 633, in __iter__
yield from self._iter()
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 623, in _iter
out = result.get()
^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 446, in get
raise RuntimeError(msg) # nicer message
^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError:
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 471, in new
val = func(*args)
^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\event_based_risk.py", line 187, in ebr_from_gmfs
yield event_based_risk(df[s0:s1], oqparam, monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\event_based_risk.py", line 212, in event_based_risk
avg, alt = aggreg(outs, crmodel, ARK, aggids, rlz_id, ideduc.any(),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\event_based_risk.py", line 110, in aggreg
for out in outputs:
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\event_based_risk.py", line 240, in gen_outputs
out = crmodel.get_output(
^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\risklib\riskmodels.py", line 835, in get_output
return rc.output(haz, sec_losses, rndgen)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\risklib\scientific.py", line 1653, in output
out = rm(lt, self.asset_df, haz, col, rndgen)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\risklib\riskmodels.py", line 276, in __call__
res = meth(loss_type, assets, gmf_df, col, rndgen)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\risklib\riskmodels.py", line 399, in event_based_risk
return vf(asset_df, gmf_df, col, rndgen,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\risklib\scientific.py", line 304, in __call__
ratio_df = self.interpolate(gmf_df, col) # really fast
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\risklib\scientific.py", line 259, in interpolate
gmvs = gmf_df[col].to_numpy()
~~~~~~^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\pandas\core\frame.py", line 3761, in __getitem__
indexer = self.columns.get_loc(key)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\pandas\core\indexes\base.py", line 3655, in get_loc
raise KeyError(key) from err
KeyError: 'SA(0.5)'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\engine\engine.py", line 281, in run_calc
calc.run(shutdown=True)
File "C:\Users\bahar\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 272, in run
os.remove(self.datastore.tempname)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\bahar\\oqdata\\calc_567_tmp.hdf5'
----------------------------------------------------------------------
Sincerely,
Bahar