1# http://pyrocko.org - GPLv3 

2# 

3# The Pyrocko Developers, 21st Century 

4# ---|P------/S----------~Lg---------- 

5 

6from pyrocko.io.io_common import get_stats, touch # noqa 

7from ... import model 

8 

9 

10def provided_formats(): 

11 return ['datacube'] 

12 

13 

14def detect(first512): 

15 from pyrocko.io import datacube 

16 

17 if datacube.detect(first512): 

18 return 'datacube' 

19 else: 

20 return None 

21 

22 

23def iload(format, file_path, segment, content): 

24 assert format == 'datacube' 

25 

26 from pyrocko.io import datacube 

27 

28 load_data = 'waveform' in content 

29 

30 for itr, tr in enumerate(datacube.iload(file_path, load_data=load_data)): 

31 

32 nsamples = int(round((tr.tmax - tr.tmin) / tr.deltat)) + 1 

33 

34 nut = model.make_waveform_nut( 

35 file_segment=0, 

36 file_element=itr, 

37 codes=tr.codes, 

38 tmin=tr.tmin, 

39 tmax=tr.tmin + tr.deltat * nsamples, 

40 deltat=tr.deltat) 

41 

42 if 'waveform' in content: 

43 nut.content = tr 

44 

45 yield nut