paudetseis / PyRaysum

Teleseismic body wave modeling through stacks of (dipping/anisotropic) layers
https://paudetseis.github.io/PyRaysum/
MIT License
42 stars 14 forks source link

Error AttributeError: module 'fraysum' has no attribute 'run_full' #15

Closed seismoprocess closed 1 year ago

seismoprocess commented 1 year ago

While executing streamlist = prs.run(model, geom, rc) i am getting error as

lib/python3.7/site-packages/pyraysum/prs.py", line 2128, in run traces, traveltimes, amplitudes, phaselist = fraysum.run_full( AttributeError: module 'fraysum' has no attribute 'run_full

Plz suggest a answer.

paudetseis commented 1 year ago

Dear @seismoprocess thank you for raising this issue. This suggests pyraysum did not install successfully. Your error message above also suggests perhaps you did not use conda to install pyraysum (?) and used the fortran compiler available on your system by default. Can you copy and paste the commands you used to install the software? As well as the full log (screen capture) of the result? Thanks

seismoprocess commented 1 year ago

Thanks for your comment. I installed the pyraysum using the below command.

git clone https://github.com/paudetseis/PyRaysum.git cd PyRaysum pip install .

Error: when I am trying for more than 15 layer cases using below code

import numpy as np from pyraysum import prs, Model, Geometry, Control

Vs=np.loadtxt('swave_vel.txt') Vp = Vs 1.732
rho = 0.5+0.5
Vs H = np.loadtxt("thickness.txt") H=np.array(H)

flag = np.repeat(1,len(Vs)) aniso = np.repeat(0.0,len(Vs)) trend = np.repeat(0.0,len(Vs)) plunge = np.repeat(0.0,len(Vs)) strike = np.repeat(0.0,len(Vs)) dip = np.repeat(0.0,len(Vs)) model = Model(H,rho,Vp,Vs,flag,aniso,trend,\ plunge,strike,dip,maxlay=20) geom = Geometry(30., 0.05) rc = Control(dt=0.01, npts=3000, mults=1, rot=1,shift=5.0) streamlist = prs.run(model, geom, rc)

And the error is streamlist = prs.run(model, geom, rc) File "/home/seiamo/pgms/anaconda3/envs/pyrays/lib/python3.7/site-packages/pyraysum/prs.py", line 2129, in run model.parameters, geometry.parameters, *rc.parameters ValueError: failed in converting 1st argument `thick' of fraysum.run_full to C/Fortran array

wasjabloch commented 1 year ago

Unfortunately, the current installation workflow does not re-compile the .o files upon installation. You can either try a fresh installation from source, making sure to change the parameters in param.h before installation, or, if your system allows that, call make in pyraysum/src. Either way, I hope that resolving https://github.com/paudetseis/PyRaysum/issues/14#issue-1519480264 will also resolve this issue.

wasjabloch commented 1 year ago

Here is a step-by-step guide on how to approach this issue: https://github.com/paudetseis/PyRaysum/issues/18#issuecomment-1770327533