event_based_damage + infrastructure_connectivity_analysis → KeyError: 'structural'

51 views
Skip to first unread message

Paraskevi Tsoumani

unread,
Dec 4, 2025, 5:04:01 AM (13 days ago) Dec 4
to OpenQuake Users

Hello everyone,

I am trying to run an event_based_damage calculation with
infrastructure_connectivity_analysis = true, based on the infrastructure demo that normally runs under scenario_damage.

However, the event-based calculation fails at the post-risk stage with the following error:

[2025-12-04 11:25:30 #194 INFO] Running PostRiskCalculator with concurrent_tasks = 12
[2025-12-04 11:25:30 #194 INFO] Aggregating by []
[2025-12-04 11:25:30 #194 INFO] Building aggrisk from 7.16 KB of risk_by_event
[2025-12-04 11:25:30 #194 INFO] Performing 1 aggregations
[2025-12-04 11:25:30 #194 INFO] Building aggcurves
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Scripts\oq.exe\__main__.py", line 7, in <module>
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\commands\__main__.py", line 48, in oq
    sap.run(commands, prog='oq')
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\sap.py", line 212, in run
    return _run(parser(funcdict, **parserkw), argv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\sap.py", line 203, in _run
    return func(**dic)
           ^^^^^^^^^^^
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\commands\engine.py", line 180, in main
    run_jobs(jobs, nodes=nodes, sbatch=True, precalc=not multi)
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\engine\engine.py", line 407, in run_jobs
    run_calc(jobctx)
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\engine\engine.py", line 269, in run_calc
    calc.run(shutdown=True)
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 289, in run
    raise exc from None
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 275, in run
    self.post_execute(self.result)
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\event_based_damage.py", line 276, in post_execute
    prc.run(exports='')
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 289, in run
    raise exc from None
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 273, in run
    self.result = self.execute()
                  ^^^^^^^^^^^^^^
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\post_risk.py", line 576, in execute
    self.aggrisk = build_store_agg(
                   ^^^^^^^^^^^^^^^^
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\post_risk.py", line 390, in build_store_agg
    store_aggcurves(
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\post_risk.py", line 282, in store_aggcurves
    units = dstore['exposure'].cost_calculator.get_units(oq.loss_types)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Paraskevi Tsoumani\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\risklib\asset.py", line 171, in get_units
    unit = self.units[lt]
           ~~~~~~~~~~^^^^
KeyError: 'structural'

Any guidance would be extremely helpful.

Thank you in advance!

Paraskevi

Reply all
Reply to author
Forward
0 new messages