Error in OQ Scenario-Based Risk Calculation (SA(0.3))

8 views
Skip to first unread message

bahar r

unread,
Jun 4, 2024, 12:32:08 PMJun 4
to OpenQuake Users

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



Peter Pažák

unread,
Jun 5, 2024, 3:49:59 PMJun 5
to OpenQuake Users
Hi, if you have the other IMTs in your exposure, OQ will complain about not having them available in the risk calculation.
So the only way I see is to remove all risk having different ITMs except for those for SA(0.3).

Peter

Dátum: utorok 4. júna 2024, čas: 18:32:08 UTC+2, odosielateľ: bahar...@gmail.com
Reply all
Reply to author
Forward
0 new messages