Code Monkey home page Code Monkey logo

mtfit's Introduction

Hi there 👋

Checkout my page

mtfit's People

Contributors

djpugh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mtfit's Issues

Composite mechanism?

Hi again David,

I'm looking at a seismic warm with near-repeating waveforms. Polarity / amplitude data are sparse, so I'd like to compute a single moment tensor / focal mechanism for all events using all available polarities.

I really like using the NLLoc take-off angle uncertainties to compute the range of focal mechanisms, but I was wondering how easy it might be to do this for multiple events? I.e. to read multiple NLL .hyp files to compute a single composite moment tensor? Do you have any thoughts on whether you think this might be feasible?
Thanks!

Add test for examples

I thought there was a test for the examples to run them through, but not sure where it's got to in the reorganisation - need to find it again and re-implement it within tox

Error from pdf_sample.append()

krafla_axample.py now runs fine in parallel but, as it finishes, the following error is thrown:

Traceback (most recent call last):
  File "/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.54.g931200b-py3.6-linux-x86_64.egg/mtfit/inversion.py", line 2485, in _random_sampling_forward
    MTs, end = self._parse_job_result(result)
  File "/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.54.g931200b-py3.6-linux-x86_64.egg/mtfit/inversion.py", line 2804, in _parse_job_result
    return self.algorithm.iterate(job_result)
  File "/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.54.g931200b-py3.6-linux-x86_64.egg/mtfit/algorithms/monte_carlo.py", line 103, in iterate
    self.pdf_sample.append(**result)
  File "/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.54.g931200b-py3.6-linux-x86_64.egg/mtfit/sampling.py", line 88, in append
    elif not isinstance(ln_pdf, (float, long, int, np.float64, np.float32)) and moment_tensors.shape[1] != ln_pdf.shape[1]:
AttributeError: 'dict' object has no attribute 'shape'

--------
DC inversion complete, elapsed time: 184.96504020690918
Worker-1 Ending

This is Ubuntu 14.04, python 3.6. Haven't tried on py 2.7 yet.

Installing using pip doesn't get latest version

Raised by Jesse Hutchinson -
It turned out that installing from pip led to many of the references to MTfit to be mtfit. When installing from the Github zip with setup.py, I didn’t experience the same issue.

cprobability exception

Please fill in the following details as much as possible when submitting your issue as this will help with testing and reproducing the issue

Environment Information

{
"version": "1.0.5",
"c_extensions present": [
"cmarkov_chain_monte_carlo",
"cprobability",
"cmoment_tensor_conversion",
"cscatangle"
],
"platform": "darwin",
"num_threads": 8,
"python version": "3.7.1 (default, Dec 14 2018, 13:28:58) \n[Clang 4.0.1 (tags/RELEASE_401/final)]",
"python version info": [
3,
7,
1,
"final",
0
],
"dependency info": {
"numpy": "1.15.4",
"scipy": "1.1.0",
"matplotlib": "3.0.2",
"cython": "0.29.2",
"sphinx": "1.8.2",
"h5py": "2.8.0"
}
}

What error you are getting

Error running cython code
Traceback (most recent call last):
File "/Users/jesse/anaconda3/lib/python3.7/site-packages/MTfit/probability/probability.py", line 871, in ln_marginalise
return cprobability.ln_marginalise(ln_pdf.astype(np.float64))
File "src/MTfit/probability/cprobability.pyx", line 130, in MTfit.probability.cprobability.ln_marginalise
ValueError: Buffer has wrong number of dimensions (expected 2, got 1)
Error running cython code
Traceback (most recent call last):
File "/Users/jesse/anaconda3/lib/python3.7/site-packages/MTfit/probability/probability.py", line 1269, in exp
return cprobability.ln_exp(self._ln_pdf)
File "src/MTfit/probability/cprobability.pyx", line 1817, in MTfit.probability.cprobability.ln_exp
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)

What behaviour you would expect

To not get the errors, hopefully!

Reproduction steps

This occurs after every inversion I have attempted. I could send in the input pickle file to see if the issue can be reproduced.

MTplot beachballs not working

Raised by Jesse Hutchinson - Here is the output from my terminal:

 

In [7]: >>> import MTfit.plot as plot

 

In [8]: >>> import numpy as np

 

In [9]: >>> plot.MTplot(np.array([[1],[0],[-1],[0],[0],[0]]),'beachball',

   ...:         fault_plane=True)

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-9-dc0ffaf1a397> in <module>()

      1 plot.MTplot(np.array([[1],[0],[-1],[0],[0],[0]]),'beachball',

----> 2         fault_plane=True)

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/MTfit-develop-py2.7-macosx-10.4-x86_64.egg/MTfit/plot/plot_classes.pyc in __init__(self, MTs, plot_type, stations, plot, label, save_file, save_dpi, *args, **kwargs)

    894         # initialisation arguments

    895         if plot:

--> 896             self.plot(**kwargs)

    897 

    898     def _prep_data(self, param, name):

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/MTfit-develop-py2.7-macosx-10.4-x86_64.egg/MTfit/plot/plot_classes.pyc in plot(self, *args, **kwargs)

    954         """

    955         for plot_class in self.plot_classes:

--> 956             plot_class(*args, **kwargs)

    957         self.fig.patch.set_facecolor('w')

    958         if self.show:

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/MTfit-develop-py2.7-macosx-10.4-x86_64.egg/MTfit/plot/plot_classes.pyc in __call__(self, *args, **kwargs)

   1070         Plots the result

   1071         """

-> 1072         self.plot(*args, **kwargs)

   1073 

   1074     def plot(self, MTs=False, *args, **kwargs):

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/MTfit-develop-py2.7-macosx-10.4-x86_64.egg/MTfit/plot/plot_classes.pyc in plot(self, MTs, *args, **kwargs)

   1095                                                                     'text', 'colormap', 'linewidth',

   1096                                                                     'hex_bin']}

-> 1097         handle = self._ax_plot(*args, **plot_kwargs)

   1098         self._background(handle)

   1099         if self.show:

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/MTfit-develop-py2.7-macosx-10.4-x86_64.egg/MTfit/plot/plot_classes.pyc in _ax_plot(self, *args, **kwargs)

   1950 #         self.ydata = self.ydata[np.isfinite(self.ydata)] #

   1951 #         print(len(self.xdata),len(self.ydata),len(self.zdata))

-> 1952         return self._surf_plot(self.xdata, self.ydata, self.zdata, self.cdata, *args, **kwargs)

   1953 

   1954     def _background(self, handle):

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/MTfit-develop-py2.7-macosx-10.4-x86_64.egg/MTfit/plot/plot_classes.pyc in _surf_plot(self, x, y, z, c, zorder, **kwargs)

   1161         """

   1162         if self.dimension < 3:

-> 1163             return self._2d_surf_plot(x, y, c, **kwargs)

   1164         return self._3d_surf_plot(x, y, z, c, **kwargs)

   1165 

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/MTfit-develop-py2.7-macosx-10.4-x86_64.egg/MTfit/plot/plot_classes.pyc in _2d_surf_plot(self, x, y, c, zorder, **kwargs)

   1258         kwargs.pop('colormap', None)

   1259         kwargs.pop('bins', None)

-> 1260         return self.ax.pcolormesh(x, y, c, cmap=self.colormap, shading='flat', zorder=zorder, **kwargs)

   1261 

   1262     def _2d_scatter_plot(self, x, y, c, marker='.', markersize=10, zorder=0, **kwargs):

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/matplotlib/__init__.pyc in inner(ax, *args, **kwargs)

   1853                         "the Matplotlib list!)" % (label_namer, func.__name__),

   1854                         RuntimeWarning, stacklevel=2)

-> 1855             return func(ax, *args, **kwargs)

   1856 

   1857         inner.__doc__ = _add_data_doc(inner.__doc__,

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc in pcolormesh(self, *args, **kwargs)

   5928         allmatch = (shading == 'gouraud')

   5929 

-> 5930         X, Y, C = self._pcolorargs('pcolormesh', *args, allmatch=allmatch)

   5931         Ny, Nx = X.shape

   5932         X = X.ravel()

 

/opt/antelope/python2.7.8/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc in _pcolorargs(funcname, *args, **kw)

   5539                 if np.ma.is_masked(X) or np.ma.is_masked(Y):

   5540                     raise ValueError(

-> 5541                         'x and y arguments to pcolormesh cannot have '

   5542                         'non-finite values or be of type '

   5543                         'numpy.ma.core.MaskedArray with masked values')

 

ValueError: x and y arguments to pcolormesh cannot have non-finite values or be of type numpy.ma.core.MaskedArray with masked values

I traced down the exact line where the issue comes up. After line 1952, above which I believe is 1950 in the original version of the script, has non-finite values for xdata and ydata. Earlier in the script, the values of x and y are finite, so I believe _2d_surf_plot command is altering the xdata and ydata values. I just used a very simple input here, so that shouldn’t be the problem. I haven’t been able to figure out what the solution would be.

Multiprocessing errors on 2.7 and 3.6

Hi David,

I've been having a go at the tutorial data and have been running into issues when running with multiprocessing. The examples work fine on a single thread.

I've compiled from the most recent commits to develop (as of about 24 hours ago) and have run into the same issue on both py 2.7 and 3.6, in separate conda envs.

I ran mtfit from the command prompt like so:

mtfit --location_pdf_file_path=krafla_event.scatangle --algorithm=iterate -m=1 --double-couple -n 5 --max_samples=100000 -i=PPolarity --convert --bin_scatangle -V 4 krafla_event_data_py36.inv

krafla_event_data_py36.inv was pickled with:

from example_data import krafla_event
data = krafla_event()
pickle.dump(data, open('krafla_event_data_py36.inv', 'wb'))

This being multiprocessing, the traceback isn't very useful, but here it is anyways:

*********



Event 1
--------

UID: krafla_event

Number of Random Samples: 49823 with 26372 location samples and 20 stations
Iterate algorithm chosen, maximum samples: 100000

Initialisation Complete

Beginning Inversion

/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.51.g44ce305.dirty-py3.6-linux-x86_64.egg/mtfit/inversion.py:200: DeprecationWarning: elementwise == comparison failed; this will raise an error in the future.
  marginalised=int(self.marginalise), location_samples_multipliers=ln_location_sample_multipliers)
/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.51.g44ce305.dirty-py3.6-linux-x86_64.egg/mtfit/inversion.py:200: DeprecationWarning: elementwise == comparison failed; this will raise an error in the future.
  marginalised=int(self.marginalise), location_samples_multipliers=ln_location_sample_multipliers)
/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.51.g44ce305.dirty-py3.6-linux-x86_64.egg/mtfit/inversion.py:200: DeprecationWarning: elementwise == comparison failed; this will raise an error in the future.
  marginalised=int(self.marginalise), location_samples_multipliers=ln_location_sample_multipliers)
/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.51.g44ce305.dirty-py3.6-linux-x86_64.egg/mtfit/inversion.py:200: DeprecationWarning: elementwise == comparison failed; this will raise an error in the future.
  marginalised=int(self.marginalise), location_samples_multipliers=ln_location_sample_multipliers)
/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/site-packages/mtfit-0+untagged.51.g44ce305.dirty-py3.6-linux-x86_64.egg/mtfit/inversion.py:200: DeprecationWarning: elementwise == comparison failed; this will raise an error in the future.
  marginalised=int(self.marginalise), location_samples_multipliers=ln_location_sample_multipliers)
Traceback (most recent call last):
  File "/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/multiprocessing/queues.py", line 234, in _feed
    obj = _ForkingPickler.dumps(obj)
  File "/home/chet/anaconda3/envs/mtfit_36/lib/python3.6/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
TypeError: 'NoneType' object is not callable

Which, I guess points to an issue with pickling the data before they're passed to the Pool, but I haven't the foggiest what the actuall issue would be.

All 5 jobs encounter this error and cease working, but no cleanup is done and the process hangs up.

I'm having a go at debugging, but I wanted to leave this here on the off chance that you had a hunch as to what was causing this.

-Chet

Install - Missing 'src/mtfit/probability/cprobability.c'

Hi David,

currently missing 'src/mtfit/probability/cprobability.c' on install.

Current return from running 'python setup.py install'
running install running bdist_egg running egg_info writing requirements to src/mtfit.egg-info/requires.txt writing src/mtfit.egg-info/PKG-INFO writing top-level names to src/mtfit.egg-info/top_level.txt writing dependency_links to src/mtfit.egg-info/dependency_links.txt writing entry points to src/mtfit.egg-info/entry_points.txt reading manifest file 'src/mtfit.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'src/mtfit.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_py UPDATING build/lib.linux-x86_64-2.7/mtfit/_version.py set build/lib.linux-x86_64-2.7/mtfit/_version.py to '1.0.0+5.g750c2a6' running build_ext building 'mtfit.probability.cprobability' extension gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/jds70/miniconda2/lib/python2.7/site-packages/numpy/core/include -I/home/jds70/miniconda2/include/python2.7 -c src/mtfit/probability/cprobability.c -o build/temp.linux-x86_64-2.7/src/mtfit/probability/cprobability.o -O3 -march=native gcc: error: src/mtfit/probability/cprobability.c: No such file or directory gcc: fatal error: no input files compilation terminated. error: command 'gcc' failed with exit status 4

Automatically build windows wheels using appveyor

What error you are getting

Travis CI can't build windows wheels so need to manually build and publish the wheels

What behaviour you would expect

Automatic wheel building in the build steps using e.g. appveyor

It does not recognizes the MTfit attributes on Python scripts

Environment Information

{
"version": "1.0.6a5",
"c_extensions present": [
"cprobability",
"cmoment_tensor_conversion"
],
"platform": "darwin",
"num_threads": 4,
"python version": "3.7.4 (default, Aug 13 2019, 15:17:50) \n[Clang 4.0.1 (tags/RELEASE_401/final)]",
"python version info": [
3,
7,
4,
"final",
0
],
"dependency info": {
"numpy": "1.17.2",
"scipy": "1.3.1",
"matplotlib": "3.1.1",
"cython": "0.29.13",
"sphinx": "2.2.0",
"h5py": "2.9.0"
}
}

What error you are getting

1
python setup.py build-docs
invalid command name 'build-docs'
2.
python setup.py testFAILED (errors=1)Test failed: <unittest.runner.TextTestResult run=1 errors=1 failures=0>error: Test failed: <unittest.runner.TextTestResult run=1 errors=1 failures=0>                   3.

import MTfit
MTfit.run_tests()
Traceback (most recent call last):  File "", line 1, in AttributeError: module 'MTfit' has no attribute 'run_tests'

What behavior you would expect

I did not have any error for installing. I created the c files with cython on the src directory and I can import MTfit correctly in terminal and python scipt. But in python it is not recognized aby atribute (eg. MTfit.run() , inversion=MTfit.Inversion(*args,**kwargs) , etc. )

Reproduction steps

What do we need to do to reproduce the issue?
just in a python enviroment write import MTfit and then try to call any attribute MTfit.run_tests()

mcmc failing to run

Please fill in the following details as much as possible when submitting your issue as this will help with testing and reproducing the issue

Environment Information

{
"version": "1.0.5",
"c_extensions present": [
"cmarkov_chain_monte_carlo",
"cprobability",
"cmoment_tensor_conversion",
"cscatangle"
],
"platform": "darwin",
"num_threads": 8,
"python version": "3.7.1 (default, Dec 14 2018, 13:28:58) \n[Clang 4.0.1 (tags/RELEASE_401/final)]",
"python version info": [
3,
7,
1,
"final",
0
],
"dependency info": {
"numpy": "1.15.4",
"scipy": "1.1.0",
"matplotlib": "3.0.2",
"cython": "0.29.2",
"sphinx": "1.8.2",
"h5py": "2.8.0"
}
}

What error you are getting

Warning: divide by zero encountered in log
Cython Error
Traceback (most recent call last):
File "/Users/jesse/anaconda3/lib/python3.7/site-packages/MTfit/algorithms/markov_chain_monte_carlo.py", line 1582, in _acceptance_check
dc_prior=getattr(self, 'dc_prior', 0.))
TypeError: Argument 'x' has incorrect type (expected list, got dict)

What behaviour you would expect

This causes the program to stop, should be performing an McMC inversion. The regular 'iterate' algorithm works fine.

Reproduction steps

Run an McMC inversion using the following parameters:

algorithm = 'mcmc'
dc = False
parallel = False
phys_mem = 1
output_format = 'pickle'
conversion = False
inversion_options = ['PPolarity','P/SHAmplitudeRatio']
burn_length = 30000
chain_length = 100000
min_acceptance_rate = 0.1
max_acceptance_rate = 0.3

inversion_object = Inversion(event,algorithm=algorithm, dc=dc,parallel=parallel,phys_mem=phys_mem,convert=conversion,output_format=output_format, inversion_options=inversion_options, burn_length=burn_length,chain_length=chain_length, min_acceptance_rate=min_acceptance_rate,max_acceptance_rate=max_acceptance_rate)

inversion_object.forward()

Setup CI

Setup the CI scripts to run and build MTfit

Fix deprecation warning

There's a deprecation warning occuring in cprobability - combined_ln_pdf function which needs investigation (I think it is line 1499 that is causing the problem, but this needs a bit more debugging.

Strange moment tensor to fault plane behaviour

Hi David,
The following moment tensor configuration plots incorrectly and produces the incorrect fault planes

mt = np.array([[0.0, 0.0, 0.0], [0.0, 0.0, -1.0], [0.0, -1.0, 0.0]])
a = mtfit.convert.MT33_SDR(np.array(mt))
print("a", np.degrees(a))

Seems like there is some numerical issue for this particular case. Most other MT configurations seem to work ok.

hudson plot gridlines off

Please fill in the following details as much as possible when submitting your issue as this will help with testing and reproducing the issue

Environment Information

use (print(MTfit.get_details_json())) in a python terminal (or MTfit --details from the command line)
{
"version": "1.0.5",
"c_extensions present": [
"cprobability",
"cmoment_tensor_conversion"
],
"platform": "win32",
"num_threads": 12,
"python version": "3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)]",
"python version info": [
3,
7,
3,
"final",
0
],
"dependency info": {
"numpy": "1.16.2",
"scipy": "1.2.1",
"matplotlib": "3.1.1",
"cython": "0.29.6",
"sphinx": "1.8.5",
"h5py": "2.9.0"
},
"windows version": [
10,
0,
17134,
2,
""
]
}

What error you are getting

two gridlines on hudson plot are off
Capture

What behaviour you would expect

all gridlines in their correct place

Reproduction steps

What do we need to do to reproduce the issue?
MTfit.plot.MTplot(np.array([[1],[0],[-1],[0],[0],[0]]),'hudson',text=True)

Is this pkg still maintained ?

Is there an existing issue for this?

  • I have searched the existing issues

Question

I ask because the installation instructions I find here:
https://djpugh.github.io/MTfit/setup.html#running-the-test-suite
do not seem to correspond with the repo I just cloned from:
https://github.com/djpugh/MTfit.git

setup.py does not recognize build-docs or build-ext so neither of those work.
e.g.,

python setup.py build-docs
invalid command name 'build-docs'

Thx!

Anything else?

No response

plot_krafla.py example has an issue in the plotting script

Raised by Jesse Hutchinson

File "/opt/antelope/python2.7.8/lib/python2.7/site-packages/matplotlib/artist.py", line 881, in _update_property

raise AttributeError('Unknown property %s' % k)

AttributeError: Unknown property show_max

I tried removing the show_max argument from the script, and I no longer experienced a crash. After going through the code, I found a values called ‘show_max_likelihood’.

cprobability

Please fill in the following details as much as possible when submitting your issue as this will help with testing and reproducing the issue

Environment Information

{
"python version info": "sys.version_info(major=2, minor=7, micro=9, releaselevel='final', serial=0)",
"num_threads": 8,
"python version": "2.7.9 (default, Sep 14 2019, 20:00:08) \n[GCC 4.9.2]",
"c_extensions present": [
"cmarkov_chain_monte_carlo",
"cprobability",
"cmoment_tensor_conversion",
"cscatangle"
],
"platform": "linux2",
"dependency info": {
"cython": "0.29.21",
"pyqsub": "unknown",
"scipy": "0.14.0",
"numpy": "1.16.6",
"matplotlib": "1.4.2"
},
"version": "1.0.5"
}

What error you are getting

ERROR:MTfit.probability:Error running cython code
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/MTfit/probability/probability.py", line 871, in ln_marginalise
return cprobability.ln_marginalise(ln_pdf.astype(np.float64))
File "src/MTfit/probability/cprobability.pyx", line 130, in MTfit.probability.cprobability.ln_marginalise
ValueError: Buffer has wrong number of dimensions (expected 2, got 1)
ERROR:MTfit.probability:Error running cython code
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/MTfit/probability/probability.py", line 1269, in exp
return cprobability.ln_exp(self._ln_pdf)
File "src/MTfit/probability/cprobability.pyx", line 1817, in MTfit.probability.cprobability.ln_exp
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)

What behaviour you would expect

Solve the issue

Reproduction steps

This issue comes up once inversion has started and it's blocking solutions.

Run Automatic Bayesian Polarity

Dear djpugh

Me and my team would like to include the algorithm to automatic determination of Polarity in "Integrated Seismic Program":
Pugh, D J, White, R S and Christie, P A F, 2016b, Automatic Bayesian polarity determination, GJI, 206(1), 275-291.

However, I cannot find it anywhere. Please do you mind let a link to download it or send it this via,
Thank you very much in advance!

Best Regards,

Roberto Cabieces

inconsistent station propagation coefficients with Pugh et al. 2016 Appendix A

Please fill in the following details as much as possible when submitting your issue as this will help with testing and reproducing the issue

Environment Information

use (print(MTfit.get_details_json())) in a python terminal (or MTfit --details from the command line)

What error you are getting

I studied your paper Pugh et al. 2016 A Bayesian method for microseismic source inversion
where you list in appendix A the station propagation coefficients. Thanks a lot for this! Nevertheless, I was comparing your notation from the paper with the station_angles function implementation in inversion.py l. https://github.com/djpugh/MTfit/blob/develop/src/MTfit/inversion.py#L3217

Some of these lines are vastly inconsistent with the equations from the paper. Do you use a different coordinate system here or other transformations, that I did not find? Thanks a lot for your response!

What behaviour you would expect

Consistent implementation to paper.

Reproduction steps

What do we need to do to reproduce the issue?

Setup pdflatex on travis-ci

What error you are getting

Want to automatically build and publish gh-pages but currently include epub/pdf and unable to compile latex automatically

Traceback (most recent call last):
  File "build_docs.py", line 283, in build_docs
    build_pdf()
  File "build_docs.py", line 340, in build_pdf
    p = subprocess.Popen(['pdflatex', '-interaction=nonstopmode', 'MTfit.tex'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
  File "/opt/python/3.6.3/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/opt/python/3.6.3/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'pdflatex': 'pdflatex'

What behaviour you would expect

pdflatex to be installed/available (docker image?)

autopol

More of a question than an issue, but as autopol is referenced in the docs, are there plans to provide access to that or a link to where it lives?

Clarification in the docs

First off, the amount of documentation for MTfit is really excellent. Thank you for putting in the time. It makes the package accessible to a wider audience.

There are a couple of places where the input parameters could benefit from additional details.

On the following page: https://djpugh.github.io/MTfit/inversion.html

Azimuth: numpy matrix of azimuth values in degrees

Is this from station to earthquake or earthquake to station?

Measured: numpy matrix of corrected numerator and denominator amplitude ratio observations, needs to have two columns, one for the numerator and one for the denominator.

In the Pugh et al., 2016 paper, there is a correction (Z) based on the Vp/Vs ratio that is applied to the numerator of the ratio (equation 36). Is this what you mean by the "corrected numerator"? Or are you referring to a Q correction? Note: we are assuming a constant Vp/Vs.

Error: numpy matrix of uncertainty (standard deviation) in the amplitude ratio observations, needs to have two columns, one for the numerator and one for the denominator.

Back to equation 37 of the Pugh et al., 2016 paper, the standard deviation of the individual waves is normalized by the amplitude. Should this correction be applied for the standard deviations for the "error" input, or is this taken care of with theoretical amplitudes inside the code?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.