Read a beamformer filter. Parameters ---------- fname : path-like The filename of the HDF5 file. Returns ------- filter : instance of Beamformer The beamformer filter.
(fname)
| 545 | |
| 546 | |
| 547 | def read_beamformer(fname): |
| 548 | """Read a beamformer filter. |
| 549 | |
| 550 | Parameters |
| 551 | ---------- |
| 552 | fname : path-like |
| 553 | The filename of the HDF5 file. |
| 554 | |
| 555 | Returns |
| 556 | ------- |
| 557 | filter : instance of Beamformer |
| 558 | The beamformer filter. |
| 559 | """ |
| 560 | read_hdf5, _ = _import_h5io_funcs() |
| 561 | beamformer = read_hdf5(fname, title="mnepython") |
| 562 | if "csd" in beamformer: |
| 563 | beamformer["csd"] = CrossSpectralDensity(**beamformer["csd"]) |
| 564 | # h5io seems to cast `bool` to `int` on round-trip, probably a bug |
| 565 | # we should fix at some point (if possible -- could be HDF5 limitation) |
| 566 | for key in ("normalize_fwd", "is_free_ori", "is_ssp"): |
| 567 | if key in beamformer: |
| 568 | beamformer[key] = bool(beamformer[key]) |
| 569 | for key in ("data_cov", "noise_cov"): |
| 570 | if beamformer.get(key) is not None: |
| 571 | for pi, p in enumerate(beamformer[key]["projs"]): |
| 572 | p = Projection(**p) |
| 573 | p["active"] = bool(p["active"]) |
| 574 | beamformer[key]["projs"][pi] = p |
| 575 | beamformer[key] = Covariance( |
| 576 | *[ |
| 577 | beamformer[key].get(arg) |
| 578 | for arg in ( |
| 579 | "data", |
| 580 | "names", |
| 581 | "bads", |
| 582 | "projs", |
| 583 | "nfree", |
| 584 | "eig", |
| 585 | "eigvec", |
| 586 | "method", |
| 587 | "loglik", |
| 588 | ) |
| 589 | ] |
| 590 | ) |
| 591 | return Beamformer(beamformer) |
| 592 | |
| 593 | |
| 594 | def _proj_whiten_data(M, proj, filters): |