Skip to content

Commit

Permalink
version 1.3-6
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanlees authored and gaborcsardi committed Jan 16, 2013
1 parent 5803177 commit fbf7058
Show file tree
Hide file tree
Showing 49 changed files with 1,212 additions and 205 deletions.
19 changes: 11 additions & 8 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
Package: geophys
Type: Package
Title: Geophysics, Continuum Mechanics, Mogi Model
Version: 1.2-1
Date: 2010-05-12
Depends: R (>= 2.13), RPMG, RFOC, MASS, cluster, stats
Version: 1.3-6
Date: 2013-01-16
Depends: R (>= 2.15)
Imports: RPMG, RSEIS, RFOC, GEOmap, cluster
Suggests: stats
Author: Jonathan M. Lees
Maintainer: Jonathan M. Lees<jonathan.lees@unc.edu>
Description: Geophysics, Continuum Mechanics, Mogi Model, Okada Model
License: GPL
Packaged: 2011-10-17 19:46:11 UTC; lees
Maintainer: Jonathan M. Lees <jonathan.lees@unc.edu>
Description: Geophysics, Continuum Mechanics, Mogi Model, Okada Model, Gravity
License: GPL (>= 2)
Packaged: 2014-01-06 17:33:59 UTC; lees
NeedsCompilation: no
Repository: CRAN
Date/Publication: 2011-10-19 07:39:56
Date/Publication: 2014-01-13 08:25:19
82 changes: 46 additions & 36 deletions MD5
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
751c09ff578db2398a0972521749a255 *DESCRIPTION
78e3a88f875665cfbd477496fbecae0b *NAMESPACE
a3f9386943ceeae2741c81f1a739f136 *DESCRIPTION
1db369b2f6e0c6c79f2bf71f87372fd7 *NAMESPACE
d68f5aaa53f39bd96a78a52944395736 *R/AXB.prod.R
7802df3993bc444dec70356f9df29432 *R/BMOD.R
330d42e7e0a8d390b4c8fdd6a104a7bf *R/DGzx.R
9fd1fc4dcf081967c5f17d259b2fa184 *R/DO.DYKE.R
7ad8dbab73eaf43f08c5d526ad06a953 *R/DO.HALFSPACE.R
d0ce33f8e28ad778b942c71407027915 *R/DoMohr.R
773e02288d1185948a3278eec3d3c51b *R/DoMohrFig1.R
8da5ea6d532134486fda8c589ecb656d *R/DoMohr.R
a49454efd7b476686a25f3185d0b1ebe *R/DoMohrFig1.R
01d334b2ee94c27c7787e3f510811079 *R/Maxstress.R
e3363734d4b8bcbfe7f805413b49dee7 *R/NORMvec.R
8e0f7daa4c06c6413e4d4748b8d174a8 *R/NinePointCircle.R
4ef75bc5fee38557d1b7d72f21007d05 *R/ModelG.R
95476c665f499cda7c7e12367e263ea1 *R/NORMvec.R
16c31700c86a7ee9a66fefab900e3935 *R/NinePointCircle.R
bbdae863dc8c03947214d4630dc67fb5 *R/PLOTbox.R
034892b427db33b107b607275d82dde4 *R/PLOTplane.R
75322f4e4ed433a95dcf51bbae0ce51e *R/PolarDecomp.R
ca31b2ee68ac52ffe5946f0708baced9 *R/REplane.R
438c6a58a2aec322b5cd2fa66c3bed28 *R/Sect2vex.R
1e21b12c0a2777e398b5aba8786a3b76 *R/Showfry.R
2b69a0a067a70a6ca7dedb6dba0b1bba *R/TriangleCenter.R
aece5c9adedfd619bd7756e5a46364b9 *R/TriangleInfo.R
213d9ac3fb36e2964bcbc40a5a1742c3 *R/Showfry.R
e3f0cdef2b755937ae3f844ce92800fb *R/TriangleCenter.R
aa3d0b141e35173ce00129bdc3d49276 *R/TriangleInfo.R
862e38b2b3b450bfffd1151d608e1241 *R/annotatebox.R
05caf48d18483102b1136312222164cc *R/annotateplane.R
4ef61f9da6f57ba8492304e45c6f4449 *R/darc.R
50091670aeb6c59c2758972a5c406acd *R/desh.R
9a54cba71c50104c54431a5edbe98527 *R/dofry.R
1b40995fe9802e4260993022edc395cb *R/draw.brachiopod.R
Expand All @@ -29,29 +31,31 @@ ab7f5fb768d4d55925fb57e2aa1f4bfe *R/erf.R
b5a76326f4e68e4d7b3f8980103290e7 *R/get.brachiopod.R
16809f811111c6da40430bbf9cc8ff46 *R/get.heat.R
3f5c22135034fea5387a5858c5752724 *R/get.heat2.R
e829eedb10ff7648e7fce3b58b910d8a *R/gravsub.R
956b3f1474f618eb39f330e1d35a5316 *R/heat.sol.R
e6e2cadc47fdf88542fecdcf41677a45 *R/labelLine.R
35bf027e06e07231e8eba4f75ae408bc *R/lipper.R
20a86ee50a701c16f8b9f889a61b783d *R/mogi1.R
bcf5933810a3505a8f777264f972e366 *R/mogiM.R
24d9be15e65fddde9f4035590b6e50dd *R/mohrleg.R
21ad77d91ecd8e3ef340f0d44c224d41 *R/okada85.R
00b00029bfe257b9f675378962d54948 *R/perpproj.R
8cd4ac6e639528b4cbff4f232861f6d2 *R/perpproj.R
3301f4de4ca7cd251fad799d3e887268 *R/philpotts.erf.R
5680187b5faae30877f40548f5f71a06 *R/plotfry.R
47333ec1f4c12af62e24f70771577380 *R/pointproj.R
3b6c3c230333dc967a07fb0a34ceb3d8 *R/points2line.R
aff03243b64622b9e37192283a52ef63 *R/pstart.R
47a08d80988e550bcb6b4ea322ec4717 *R/randFRY.R
faa17e2227d8ddbc6b37ab9201a393bd *R/randpoles.R
22f8cdbac1ecb10487a2caf8d83e8475 *R/rot2Zplane.R
7fa9adb8d9cbf7e59085c1ef9bc034ec *R/randpoles.R
ece3528b61cbd3142a03c59eac8a9951 *R/rot2Zplane.R
8b8300e5c9e53ae70c8d7ea1c46b99c2 *R/setSTRESS.R
7ddab7cf79680ad9c8add2245475f510 *R/stress.R
5b70ad1d2b7d3b47e857a20ca771d4b3 *R/stressSETUP.R
252926cc8c7c644513e867e1202884bc *R/stress.R
63bb453b4ec8f1f4e4fb50cdc038daa6 *R/stressSETUP.R
96cee510a8eab4c2e8fb9ecc21cb22ab *R/tauline.R
5756b18750994287396e1f6c28dd213d *R/tauplane.R
b968598cad1f79c4e8de99aaa1c890de *R/vecproj.R
76a9dc14d8793c040dad4914f7df054b *R/vlength.R
80c33cee5461d3bc7209d633b4ac9902 *R/xtractlip.R
367fd8650d1303ba33f9a91336ec9440 *R/xtractlip.R
b0bdf7507d1c84c14bd915d311d25b8e *data/Glines.RData
918036c1726de75d3da9e52cbbb4ada3 *data/PPoints.RData
0ed8828999059f69a1cbd5b42cfa69a3 *data/PXY.RData
Expand All @@ -60,16 +64,19 @@ ecb332fea683ddc2c9265308b037f27a *demo/00Index
537cfa95906a33712c62803ff9e720fb *demo/Fry.R
77a5b6e058fa2685181221d09b43896b *demo/Sdemo.R
4d1019513d78693aa6fca7abb97e40cf *man/AXB.prod.Rd
967b21e4d3bfaf04152d9d1259d0c193 *man/BMOD.Rd
6cdda73df0f09b70d9a05046f712220e *man/DGzx.Rd
cc4b6276b6b85d3d2a7548b6cdfd72dd *man/DO.DYKE.Rd
05df0d96a2e7163f949c0780de2e1808 *man/DO.HALFSPACE.Rd
5ce6b46d72f92bd335a9b8df3978db14 *man/DoMohr.Rd
5469a64d3366085f1feaa33fb2cbc62d *man/DoMohrFig1.Rd
b01353a7382a5cc8edb5e7c90cd79815 *man/Glines.Rd
ace8d1a5eddc8cad41e77bef0c003ddd *man/Maxstress.Rd
69b17cef0e79eb3c2065be0cb564fb3f *man/NORMvec.Rd
e70be82bdd4cb6c6bd11007b3971a206 *man/Maxstress.Rd
d9eda7098690ceef916ae2cbf5f77244 *man/ModelG.Rd
d364b9e5b5ea82bbbf1c7b961e751a77 *man/NORMvec.Rd
712b691b7ee0dc81c05374b7f833917e *man/NinePointCircle.Rd
15523bfcb5b0036fa4d56a87b6d8afac *man/PLOTbox.Rd
526eb0da71cf21f4ef56c3c6f75d311f *man/PLOTplane.Rd
d657608d1987183bf30b629727280a1e *man/PLOTbox.Rd
28943b65dc7a86eb262f1201dcfd251b *man/PLOTplane.Rd
584b7e7cf21403003ca3951a9cebc3e8 *man/PPoints.Rd
428e395349996059d53ff82b8be0f3b8 *man/PXY.Rd
84853363b7443bb03e57e88d499a3692 *man/PolarDecomp.Rd
Expand All @@ -80,33 +87,36 @@ ace8d1a5eddc8cad41e77bef0c003ddd *man/Maxstress.Rd
83889b7a6fb45761cb1517f466f11b99 *man/TriangleInfo.Rd
99c00665c48ebc38112ce6eebe655ac9 *man/annotatebox.Rd
319f2696a749f274fce0515c9927a359 *man/annotateplane.Rd
1666931ff4ab02eef3448e005c56aa46 *man/darc.Rd
2e10e278063ad8f556a71389c34a06ac *man/desh.Rd
aae19195d3a7f365d54f3d89dac28865 *man/dofry.Rd
92a21c1df50341e382c5840c04288c85 *man/centroid.Rd
3881051f0aa3d7cc648ef832db305a49 *man/desh.Rd
4a8513659364d64a1f9639173a7b3158 *man/dircheck.Rd
6ab955be890a105db4a40d9162067bd2 *man/dofry.Rd
a8c162db4c082e42850ac8371b7395f5 *man/draw.brachiopod.Rd
16085a0410ad08b4feb6482f2814edf2 *man/elipfit.Rd
2b57461c7daa62112f625f2a911c8047 *man/elipfit.Rd
fb3bde895ada90b724b4df02b829741d *man/erf.Rd
6c107a64a8a1f98ef597ddba304b4d98 *man/geophys-package.Rd
142e8bb2b6a6c4dca55883eb77aebbd0 *man/flipZEE.Rd
962df9305ee4fdebc92dc3be66ed34e1 *man/geophys-package.Rd
01a6081597aaaf925b23cf3747f54932 *man/get.brachiopod.Rd
ab586cc15a1192b9c19fafb0b10371d0 *man/get.heat2.Rd
96496ff9844fdab29f44d94a9f058923 *man/heat.sol.Rd
9e4b7dd978ac6e3814d75a116387fc9a *man/labelLine.Rd
a4ef925279f8adead47cedc341a37126 *man/labelLine.Rd
14a0b12c7e2a930a741ab21d55dfd0c1 *man/lipper.Rd
e425b357f5f643fd05ddfbd7fd3a2d89 *man/mogi1.Rd
c64c4ebd1176b6c1f4ef0e402131509b *man/mogiM.Rd
dd3825bc70b6c852942d59dc619e2e6d *man/mogi1.Rd
15e6c35c45bcdd0e3be778f5d1790812 *man/mogiM.Rd
3228ef01a570bb60df6ba57a9897487b *man/mohrleg.Rd
0bbac9a3fd564d17db6da64edc17aeb5 *man/okada85.Rd
7648b4c7a4a3eedb730952dcadf3edb1 *man/perpproj.Rd
c6404536d5caf1f0dcd94d9d5f5c7b90 *man/plotfry.Rd
e8b5617175dcac48e8fccb083d5407c4 *man/points2line.Rd
5188299391c39aab61a384fc9e7f39f3 *man/okada85.Rd
7499483859e8d619c621e2251e4a4913 *man/perpproj.Rd
b0714a2614f813f3242efd3d287a22c4 *man/plotfry.Rd
11acb35a7eff14628ca3d75b66e4a4d4 *man/points2line.Rd
908721b2af4bd6a3c28d770dddb60b58 *man/pstart.Rd
f33af48d19162335db1d97a7903166d6 *man/randFRY.Rd
0abbfd3ed61bbe78b647d44e2669b460 *man/randpoles.Rd
354818e2adae81dcf268a136fee7c102 *man/randpoles.Rd
65171b00d0f2aacf2a1705172ce9f0ab *man/rev2RH.Rd
90ef7ae1b9805aa51306e5c756d2bd40 *man/rot2Zplane.Rd
a76930bab22437990d2809c05911a964 *man/setSTRESS.Rd
1768d29db732be0a4e4ac4270af14697 *man/stress.Rd
2e737b06e8372ff3d42a282c36d93ff8 *man/stress.Rd
fe96bc2305cb458f9ea961fa77b0b004 *man/stressSETUP.Rd
f745b126cac782c4d3efc1c2ce4bb120 *man/tauline.Rd
8ca97e37cd44cf0c80cef60209370ed8 *man/vecproj.Rd
555c6faf5b320efd8bfc556e7a2d397c *man/vecproj.Rd
26840208bf1dc8c97c6b7ec27d0ab8fd *man/vlength.Rd
716b8b001c4a7f6b51d2d73e35eb6f16 *man/xtractlip.Rd
208d436a1589a5ed0ef9e5e566e5ed5c *man/xtractlip.Rd
5 changes: 5 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
# Export all names
exportPattern(".")
import(RPMG)
import(RSEIS)
import(RFOC)
import(GEOmap)
importFrom(cluster, ellipsoidhull, predict.ellipsoid)
110 changes: 110 additions & 0 deletions R/BMOD.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
BMOD<-function(bill, nstn=100, PLOT=TRUE, obs=NULL )
{
####### two parts - model and plotting
if(missing(nstn)) nstn = 100
if(missing(PLOT)) PLOT=TRUE

ZCOLS = RPMG::pastel.colors(12, seed=1 )

DZ = abs( bill$zmax - bill$zmin)

PZ = DZ*0.2

ZMAX = bill$zmin+PZ
ZMIN = bill$zmin+DZ*0.02

xstart = bill$xmin
xend = bill$xmax

xs = seq(from=xstart, by=(xend-xstart)/nstn , length=nstn)
zs = rep(0, length=length(xs))

den = 0.2
n = length(bill$mod)

ALLgravZ = rep(0, length(xs))

for(i in 1:bill$n)
{
den = bill$mod[[i]]$rho
if(is.na(den)) den=0.2
if(is.null(den)) den=0.2


pol = flipZEE(bill$mod[[i]])

dc = dircheck(pol)
## print(dc)
L1 = length(which(dc>0))
if(L1>=(length(pol$x)/2))
{
cat(paste("Reversing", i, sep=":") , sep="\n")
pol = rev2RH(pol)
}

Ngrav = DGzx(xs, zs, pol$x, pol$y, den)
ALLgravZ = ALLgravZ + Ngrav$Gz
}
## plot(xs, ALLgravZ )
#########################
if(PLOT==TRUE)
{
plot(c(bill$xmin, bill$xmax), c( bill$zmax, ZMAX), type='n' , axes=FALSE, ann=FALSE )
grid()
title(xlab="X-m", ylab="Depth, m")
rect(bill$xmin, bill$zmin, bill$xmax, bill$zmax, col=NA, border="black", xpd=TRUE )

for(i in 1:bill$n)
{

den = bill$mod[[i]]$rho
pol = (bill$mod[[i]])
polygon(pol$x, pol$y, col=ZCOLS[i], border="black")

### need to check to make sure the polygon is right handed

text(pol$x, pol$y, labels=1:length(pol$x))
cenP = centroid(pol)
text( cenP[1], cenP[2], paste(i,":", den, sep="" ))
}

g1 = min(ALLgravZ)
g2 = max(ALLgravZ)
RGz = RESCALE(ALLgravZ, ZMIN, ZMAX, g1, g2)

rect( bill$xmin, ZMIN, bill$xmax, ZMAX, col='white', border=grey(.9) )

axis(1)
paz = pretty(c( bill$zmin, bill$zmax))
axis(2, at=paz)

## gravaxis
gzmin = min(ALLgravZ)
gzmax = max(ALLgravZ)

text(bill$xmax, ZMIN, labels=format(gzmin, digits=4), pos=4, xpd=TRUE )
text(bill$xmax, ZMAX, labels=format(gzmax, digits=4), pos=4, xpd=TRUE )

pgz = pretty(range(ALLgravZ))
pgz = pgz[ pgz>gzmin & pgz<gzmax ]
rpgz = RESCALE(pgz, ZMIN, ZMAX, g1, g2)

segments(bill$xmin, rpgz, bill$xmax, rpgz, lty=2, col=grey(.9) )
lines(xs, RGz, col='blue')


if(!is.null(obs))
{
## obsGz = RESCALE(obs$g, ZMIN, ZMAX, g1, g2)
obsGz = RESCALE(obs$g, ZMIN, ZMAX, min(obs$g), max(obs$g) )
points(obs$x, obsGz, pch=3, col='red')
text(bill$xmin, ZMIN, labels=format(min(obs$g), digits=4), pos=2, xpd=TRUE, col='red' )
text(bill$xmin, ZMAX, labels=format( max(obs$g), digits=4), pos=2, xpd=TRUE, col='red' )

}


}

invisible(ALLgravZ)
}
81 changes: 81 additions & 0 deletions R/DGzx.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
DGzx<-function(xs, zs, xv, zv, den)
{
### Compute the gravity anomaly following Won and Bevis
twopi = 2*pi
con=13.3464E-03

nvert = length(xv)

#### make sure the polygon is closed

if(xv[1]!=xv[nvert] & zv[1]!=zv[nvert])
{
xv = c(xv, xv[1])
zv = c(zv, zv[1])

}
nvert = length(xv)
### create output vector
gravz = rep(NA, length(xs))
gravx = rep(NA, length(xs))
### loop over the stations
for(i in 1:length(xs))
{

xst = xs[i]
zst = zs[i]

x1 = xv[1:(nvert-1)]-xst;
z1 = zv[1:(nvert-1)]-zst;
x2 = xv[2:(nvert)]-xst;
z2 = zv[2:(nvert)]-zst;

### calculate the angles
theta1 = atan2(z1, x1);
theta2 = atan2(z2, x2);
### need to get rid of pathology here.

dsign = sign(z1) != sign(z2)
if(any(dsign))
{
theta1[ dsign & (x1*z2<x2*z1) & z2>=0] = theta1[ dsign & (x1*z2<x2*z1) & z2>=0]+twopi
theta2[ dsign & (x1*z2>x2*z1) & z1>=0] = theta2[ dsign & (x1*z2>x2*z1) & z1>=0 ]+twopi
}

dx = x2-x1;
dz = z2-z1;

r1 = sqrt(x1*x1 + z1*z1);
r2 = sqrt(x2*x2 + z2*z2);


dxz2 = (dx*dx + dz*dz)
A = dx*( x1*z2 - x2*z1 )/(dx*dx + dz*dz);

B = dz/dx;


ZEE = A*( (theta1 - theta2) + B*log(r2/r1))
EX = A*(-((theta1 - theta2) )*B + log(r2/r1))

ZEE[x1*z2 == x2*z1] = 0
EX[x1*z2 == x2*z1] = 0

ZEE[ (x1==0 & z1==0) | (x2==0 & z2==0) ] = 0
EX[ (x1==0 & z1==0) | (x2==0 & z2==0) ] = 0

ZEE[x1==x2] = x1[x1==x2] * log(r2[x1==x2]/r1[x1==x2])

EX[x1==x2] = -1*x1[x1==x2] *(theta1[x1==x2] - theta2[x1==x2])

Z = sum( ZEE );
X = sum( EX );

gravz[i] = con*den*Z
gravx[i] = con*den*X

}

invisible(list(Gz=gravz, Gx=gravx))

}

0 comments on commit fbf7058

Please sign in to comment.