stilt.transport.hysplit.HysplitModel.run#

HysplitModel.run(receptor, config, met, window, workdir=None, timeout=None)[source]#

Run HYSPLIT for one receptor in workdir and return its particles.

It finds the met files that cover window, up to the met step at or after its end, which HYSPLIT interpolates, cropped when the met is. Its output is stilt.log in workdir, returned as the run’s log. Without workdir it runs in a temporary directory. The release heights and the near-field correction are added by the caller, as for any model (stilt.transport.run_model()).

Raises:
  • SimulationError – With HYSPLIT’s log in log, and reason TIMEOUT when the run exceeded timeout seconds; the FailureReason of a known failure message in the log or WARNING file, such as the met running out (MET_COVERAGE); EXIT_STATUS when hycs_std was killed by a signal or exited with a non-zero status, whatever it had written; PARTICLE_LIMIT when maxpar stopped a release from several locations before the last ones got their particles; or NO_PARTICLE_DATA when HYSPLIT wrote no particle file. A run whose particles stopped before n_hours well inside the met’s domain fails as MET_COVERAGE too, when outdt is 0: more than 5 grid cells from every side of the met grid. Particles that all left the met’s domain before the end of the run are kept.

  • MeteorologyError – Before HYSPLIT runs, when a met file the run needs is missing or damaged, or the files do not hold every time the run covers (Met.check()).

Return type:

ModelRun

Parameters:
  • receptor (stilt.receptor.Receptor)

  • config (HysplitConfig)

  • met (MetConfig)

  • window (tuple[datetime, datetime])

  • workdir (Path | None)

  • timeout (int | None)