Skip to content
Snippets Groups Projects
  1. Nov 10, 2016
    • Marcus Herrmann's avatar
      Improve amp-mag regression · 76cff6f6
      Marcus Herrmann authored
      - using statsmodels for regression
           --> better statistical analysis
           --> enable Weighted LS (if desired)
                  (plotted by scaling scatter plot size)
      - plotting confidence + prediction intervals
      - plot a line with slope = 1
      - improve residual plot
    • Marcus Herrmann's avatar
      Improve FMD plotting · 654d2f09
      Marcus Herrmann authored
      - take binning as argument
      - visualize non-cumulative bins as bar histogram(s)
      - proper adjustment of non-cumulative bins
      654d2f09
    • Marcus Herrmann's avatar
      Improve rate plotting · 7b304f3a
      Marcus Herrmann authored
      - if variant=='adaptive-interval', report about last (incomplete rate interval)
      7b304f3a
    • Marcus Herrmann's avatar
      Improve helicorder plotting · 9e28b360
      Marcus Herrmann authored
       - more beautiful:
          - label doesn't overlap with waveform anymore
          - use transparencies
      - revamp setting of channel name
      - memory improvement
      - misc fixes
      9e28b360
    • Marcus Herrmann's avatar
      Improve timeline plotting · 050e4c5d
      Marcus Herrmann authored
       - plot blubbles correctly at the borders using gmtselect
       - one more time range category: "one month to 6 months"
       - misc fixes
      050e4c5d
    • Marcus Herrmann's avatar
      Outsource cluster analysis from utils · e6ff1695
      Marcus Herrmann authored
      e6ff1695
    • Marcus Herrmann's avatar
      Misc Improvements + Fixes · a1416424
      Marcus Herrmann authored
       - revamped FDSN settings
       - set FLOAT32 encoding correctly
       - revamped other/plot_waveform.py
       - update MPI readme
      a1416424
    • Marcus Herrmann's avatar
      GREATLY facilitated setting of station infos (mostly automatic) · 550f9d53
      Marcus Herrmann authored
      ... which means that the config instance got smarter!
      
      Now making use of station meta:
      1. config.load_station_info(): loads all available channels and their infos
         (sampling rate, active period, channel name, etc.)
           - either from FDSN, or from file if specified
      2. config.set_channels() to set preferred channel group ... OR let it determine
         automatically with '*' (i.e. auto-select the channel group with the highest
         sampling rate - per active period)
      3. config.set_resampling() to specify the ultimate (re)sampling rate. Either
         automatically or manually. Many outcomes are possible, which might depend on
         the actual case and the set upper BP filter limit. Esp. when the sampling rate
         changes over time, it tries to solve certain issues by making compromises;
         7 cases are implemented (for certain periods under certain circumstances,
         it might result into UPSAMPLING).
         It always reports about the taken action and warns in one case (if BP limit
         is not appropriate for any period).
      
      All of these steps report the available/remaining channel groups to give the user
      an overview of the automatic (or his/her) actions.
      
      As a consequence, reorganized Setup class (and thus config instance)
       - e.g. no 'channel' parameter anymore since may vary in time.
         The channel at a certain time can be determined with
             config.get_channels_at_time()  
               --> made use and replaced old style throughout the project
       - NEW: config.get_sensitivity_at_time()
       - NEW: config.select_fastest_approach() (moved from TM.utils module)
      550f9d53
  2. Oct 20, 2016
    • Marcus Herrmann's avatar
      Skip days with many gaps (>50) ... again + allow upsampling · 11363262
      Marcus Herrmann authored
      allow upsampling in waveform_processing if resample parameter differs from the waveform stats
      
      + other minor things in TM.waveformops
      11363262
    • Marcus Herrmann's avatar
      Further improved (and fixed) FFT resampling · db0f4159
      Marcus Herrmann authored
      Fixed: correctly set length of IFFT size: make dependent on FFT size (again)
             ... to not strech the resampled signal!
      
      New:
       - case separation:
          1. if factor is an integer, resampling can be speed up for BOTH FFT and IFFT
             (optimized by 5-smooth number length padding)
          2. if factor is non-integer, optimize the longer signal (input for downsampling)
       - also consider UPsampling - the above optimization applies as well:
          1. optimize both FFT and IFFT length with optimal padding
          2. if factor is non-integer, optimize the longer signal (the output)
       - use pyfftw for non-integer resampling to not get stuck infinitely
       
       - for the future: might woth exploring 'scipy.signal.resample_poly()'
      db0f4159
  3. Oct 13, 2016
    • Marcus Herrmann's avatar
      Resample also array mask + misc. reorganize to speedup whole resampling · 75a10f42
      Marcus Herrmann authored
      ... to allow ANY resampling factor (even non-integer).
      
      tl;dr: resampling is now a lot faster than before.
      
      How did I advance:
      
      1. I split the _process_mask() function into two separate  functions
         (one for resampling, one for extending the chunks)
      
      2. I updated my mask resampling approach.
      Idea: instead of
             mask[::factor]
      now do :
             np.interp(np.linspace(0, old_len, new_len), range(old_len), mask)
      Quite slow.
      
      3. Discovered my old lines of code that made use of obspy's .merge(fill_value=None)
         function to generate a resampled mask (& merged trace) right away. But this
         approach seemed slower than mine before.
         While reviewing the _waveform_processing_trace() function, I reorganized it 
         and made it more compact.
         
      4. All in all, I compared speeds again and it's considerably FASTER now!
      75a10f42
  4. Oct 12, 2016
  5. Oct 11, 2016
  6. Oct 10, 2016
  7. Oct 06, 2016
  8. Oct 04, 2016
    • Marcus Herrmann's avatar
      Some further improvements · 75f99075
      Marcus Herrmann authored
       - more comments + checks in main.py (non-MPI approach)
       - renaming getWaveform --> get_waveform
       - revising other/plot_waveform.py
      75f99075
    • Marcus Herrmann's avatar
      Implemented get_waveform_SDS() · ab250203
      Marcus Herrmann authored
      ... usable like a FDSN, but reads from a (local or mounted) SeisComP Data Structure (SDS) directory
      ab250203
    • Marcus Herrmann's avatar
      Merge branch 'mpi' · 7e3470ac
      Marcus Herrmann authored
      Conflicts:Solved conflicts in
       - main.py
       - io.py
       - waveformops.py
      
      Plus: Functions that were outsourced in 'mpi' now got updated with changes that were made in the meantime on master)
      
      Also introduced further improvents:
       - concering template preloading and reading
       - revising do_xcorr_oneday()
      	TM/eventops.py
      	TM/io.py
      	TM/main.py
      	TM/setupclass.py
      	TM/utils.py
      7e3470ac
  9. Oct 03, 2016
  10. Oct 01, 2016
  11. Sep 30, 2016
  12. Sep 29, 2016
Loading