# obspy.imaging.scripts.scan.Scanner

class `Scanner`(format=None, verbose=False, recursive=True, ignore_links=False)

  Bases: `builtins.object`

  Class to scan contents of waveform files, file by file or recursively across directory trees.

      >>> scanner = Scanner()
      >>> scanner.parse("/some/directory/with/waveforms")
      >>> scanner.plot()

  (Source code)

  Information on gaps can be accessed in a dictionary structure as `scanner._info` after calling `plot()` or `analyze_parsed_data()` (all timing information is in matplotlib date numbers):

      >>> print(scanner._info.keys())
      [u'.LE0083..  Z', u'.RNON..Z', u'.GRB1.. BZ', u'.RNHA..EHN', u'.GRA1.. BN',
       u'ABCD.ABCDE..HHZ', u'.RJOB..Z', u'.CLZ.. BZ',
       u'SEDZ.     ..A ', u'.GRA1.. BZ']
      >>> print(scanner._info[".RJOB..Z"])
      {u'data_startends_compressed': array(
          [[ 732189.10682697,  732189.10752141]]),
       u'data_starts': array(
          [ 732189.10682697,  732189.10682697,  732189.10682697]),
       u'gaps': [],
       u'overlaps': [(732189.10752141208, 732189.10682696756),
                     (732189.10752141208, 732189.10682696756)],
       u'percentage': 100.0}

  Parameters: | format (str) Use fixed format for reading all files (e.g. `MSEED`). This skips file format autodetection and speeds up reading waveform data if file format of all files is known to be the same (files with different waveform format will be skipped!). verbose (bool) Whether to print information messages. recursive (bool) Whether to parse directories recursively. ignore_links (bool) Whether to ignore symbolic links.

  Attributes

  `__dict__` |
  `__doc__` | str(object=’‘) -> str
  `__module__` | str(object=’‘) -> str
  `__weakref__` | list of weak references to the object (if defined)

  Public Methods

  `add_stream` | Add information of provided stream to scanner object.
  `analyze_parsed_data` | Prepare information for plotting.
  `load_npz` | Load information on scanned data from npz file.
  `parse` | Parse file/directory and store information on encountered waveform files.
  `plot` | Plot the information on parsed waveform files.
  `save_npz` | Save information on scanned data to npz file.

  Special Methods

  `__dir__` | default dir() implementation
  `__format__` | default object formatter
  `__init__` | see `Scanner`
  `__new__` | Create and return a new object.
  `__reduce__` | helper for pickle
  `__reduce_ex__` | helper for pickle
  `__sizeof__` | size of object in memory, in bytes
  `__subclasshook__` | Abstract classes can override this to customize issubclass().

### Thank you!

We would like to thank our contributors, whose efforts make this software what it is. These people have helped by writing code and documentation, and by testing. They have created and maintained this product, its associated libraries and applications, our build tools and our web sites.

#### Contributors

- Ackerley, Nick
- Allgeyer, Sebastien
- Ammon, Charles J.
- Antunes, Emanuel
- Arnarsson, Ólafur St.
- Bank, Markus
- Barsch, Robert
- Behr, Yannik
- Bernardi, Fabrizio
- Bernauer, Felix
- Bes de Berc, Maxime
- Beyreuther, Moritz
- Boltz, Shawn
- Bonaimé, Sébastien
- Carothers, Lloyd
- Chamberlain, Calum
- Chambers, Derrick
- Chen, Zhao
- Clark, Adam
- Danecek, Peter
- Egdorf, Sven
- Engels, Fabian
- Ermert, Laura
- Eulenfeld, Tom

- Fabbri, Tommaso
- Falco, Nicholas
- Fee, Jeremy
- Grellier, Clément
- Grunberg, Marc
- Hammer, Conny
- Heimann, Sebastian
- Heiniger, Lukas
- Hope, Gaute
- Igel, Heiner
- Inza, Adolfo
- Isken, Marius
- Ketchum, David
- Koymans, Mathijs
- Kremers, Simon
- Kress, Victor
- Krieger, Lars
- Krischer, Lion
- Kula, Damian
- Käufl, Paul
- Köhler, Andreas
- Lecocq, Thomas
- Leeman, John
- Legovini, Paride

- Lesage, Philippe
- Li, Yulin
- Lomax, Anthony
- Lopes, Rui L.
- MacCarthy, Jonathan
- Maggi, Alessia
- Martin, Henri
- Medlin, Andrew
- Megies, Tobias
- Meschede, Matthias
- Michelini, Alberto
- Miller, Nathaniel C.
- Morgenstern, Bernhard
- Nof, Ran Novitsky
- Panning, Mark P.
- Parker, Tom
- Pestourie, Romain
- Rapagnani, Giovanni
- Reyes, Celso
- Ringler, Adam
- Rothenhäusler, Nicolas
- Russo, Emiliano
- Sales de Andrade, Elliott

- Satriano, Claudio
- Saul, Joachim
- Scheingraber, Chris
- Schneider, Simon
- Sippl, Christian
- Snoke, Arthur
- Stange, Stefan
- Stähler, Simon C.
- Sullivan, Benjamin
- Tian, Dongdong
- Trabant, Chad
- Trani, Luca
- Uieda, Leonardo
- Walker, Andrew
- Walther, Marcus
- Wassermann, Joachim
- Williams, Mark C.
- Winkelman, Andrew
- Zaccarelli, Riccardo
- Zad, Seyed Kasra Hosseini
- Zhu, Lijun
- van Driel, Martin
- van Wijk, Kasper

#### Funds

ObsPy was partially funded by the

- German Science Foundation (DFG) via grant DFG IG 16/9-1
- German Ministry for Education and Research (BMBF), GEOTECHNOLOGIEN grant 03G0646H.
- NERA project (Network of European Research Infrastructures for Earthquake Risk Assessment and Mitigation) under the European Community's Seventh Framework Programme (FP7/2007-2013) grant agreement n° 262330
- Leibniz Institute for Applied Geophysics (LIAG)
- VERCE EU-FP7 project (no. 283543)