Esempio n. 1
0
def transInvWylliePhi(sat=1, vm=4000, vw=1600, va=330):
    """Inverse Wyllie transformation function porosity(slowness)."""
    if va != 330 or sat != 1.0:
        raise BaseException('TODO')
    a1 = 1. / vm
    b1 = 1. / vw - 1. / vm
    return pg.RTransLin(1. / b1, -a1 / b1)
Esempio n. 2
0
    def __init__(self, **kwargs):
        self.__verbose = kwargs.pop('verbose', False)
        self.__debug = kwargs.pop('debug', False)

        self.dataVals = None
        self.errorVals = None

        self.transData = pg.RTransLin()

        self.inv = pg.Inversion(self.__verbose, self.__debug)

        self.maxIter = kwargs.pop('maxIter', 20)

        fop = kwargs.pop('fop', None)
        if fop is not None:
            self.setForwardOperator(fop)

        self.inv.setDeltaPhiAbortPercent(0.5)
Esempio n. 3
0
    def test_Trans(self):
        """
        """
        f = pg.RTrans()

        x = pg.RVector(3, 1.0)

        np.testing.assert_array_equal(f(x), x)
        np.testing.assert_array_equal(f.inv(x), x)
        np.testing.assert_array_equal(f.inv(f(x)), x)
        self.assertEqual(f.trans(x=1.0), 1.0)
        self.assertEqual(f(1.0), 1.0)
        self.assertEqual(f.inv(1.0), 1.0)

        f = pg.RTransLin(factor=2., offset=4.)
        np.testing.assert_array_equal(f(x), x*2. + 4.)
        np.testing.assert_array_equal(f.trans(x), x*2. + 4.)
        np.testing.assert_array_equal(f.inv(f(x)), x)
        self.assertEqual(f(1.0), 6.0)
        self.assertEqual(f.trans(1.0), 6.0)
        self.assertEqual(f.inv(6.0), 1.0)
        self.assertEqual(f.invTrans(6.0), 1.0)
Esempio n. 4
0
def transInvWyllieS(phi, vm=4000, vw=1600, va=330):
    """Inverse Wyllie transformation function slowness(saturation)."""
    a2 = 1. / vm * (1 - phi) + phi * 1. / va
    b2 = phi * (1. / vw - 1. / va)
    return pg.RTransLin(1. / b2, -a2 / b2)
Esempio n. 5
0
def transFwdWyllieS(phi, vm=4000, vw=1600, va=330):
    """Wyllie transformation function slowness(saturation)."""
    if va != 330.0:
        print(va, "Air velocity is not 330.0 m/s")
        raise BaseException('TODO')
    return pg.RTransLin((1 / vw - 1. / va) * phi, (1 - phi) / vm + phi / va)
Esempio n. 6
0
def transFwdWylliePhi(sat=1, vm=4000, vw=1600, va=330):
    """Wyllie transformation function porosity(slowness)."""
    if va != 330 or sat != 1.0:
        raise BaseException('TODO')
    return pg.RTransLin(1. / vw - 1. / vm, 1. / vm)