arup-group / elara

Command line utility for processing MATSim events output files.
MIT License
14 stars 4 forks source link

Support for experienced plans #123

Closed gac55 closed 3 years ago

gac55 commented 3 years ago

We are now aware that the final, output_plans consist of the so called "planned" plans. MATSim can output the final "experienced" plans which consists of the actual experienced reality for that agent. We therefore should use these as the final outputs.

When running elara on these plans:

07-22 17:07 elara.inputs INFO Building Tool Subpopulations
Traceback (most recent call last):
  File "/home/ssm-user/elara/venv/bin/elara", line 11, in <module>
    load_entry_point('elara', 'console_scripts', 'elara')()
  File "/home/ssm-user/elara/venv/lib64/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/ssm-user/elara/venv/lib64/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/ssm-user/elara/venv/lib64/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/ssm-user/elara/venv/lib64/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/ssm-user/elara/venv/lib64/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/ssm-user/elara/elara/main.py", line 611, in run
    main(config)
  File "/home/ssm-user/elara/elara/main.py", line 677, in main
    factory.build(config_requirements)
  File "/home/ssm-user/elara/elara/factory.py", line 620, in build
    current.build(write_path=write_path)
  File "/home/ssm-user/elara/elara/factory.py", line 407, in build
    tool.build(self.supplier_resources, write_path)
  File "/home/ssm-user/elara/elara/inputs.py", line 494, in build
    for elem in get_elems(path, "person")
  File "/home/ssm-user/elara/elara/inputs.py", line 494, in <listcomp>
    for elem in get_elems(path, "person")
  File "/home/ssm-user/elara/elara/inputs.py", line 521, in get_person_attribute_from_plans
    attribute = elem.find(f'./attributes/attribute[@name="{tag}"]').text
AttributeError: 'NoneType' object has no attribute 'text'

I can point to example output_plans.xml.gz and output_experienced_plans.xml.gz. The difference is unclear at initial inspection. The experienced plans appear to feature "empty" plans.

andkay commented 3 years ago

Resolved by #127.