Пример #1
0
 def disinfold(self, x, y, aq=None):
     '''Can be called with only one x,y value
     Returns array(Nparam, self.aq.Naq) with order
     order 0, layer[0]
     order 0, layer[1]
     ...
     order 1, layer[0]
     order 1, layer[1]
     etc
     '''
     if aq is None: aq = self.model.aq.find_aquifer_data(x, y)
     rv = np.zeros((2, self.Nparam, aq.Naq))
     if aq == self.aq:
         rv.shape = (2, self.order + 1, self.Nlayers, aq.Naq)
         qx = np.zeros(aq.Naq)
         qy = np.zeros(aq.Naq)
         if aq.ilap:
             for i in range(
                             self.order + 1):  # This should be done inside FORTRAN extension
                 disbeslsho(x, y, self.x1, self.y1, self.x2, self.y2, \
                            aq.Naq, aq.zeropluslab, i, qx,
                            qy)  # Call FORTRAN extension
                 rv[0, i] = self.aq.coef[self.pylayers] * qx
                 rv[1, i] = self.aq.coef[self.pylayers] * qy
         else:
             for i in range(self.order + 1):
                 disbesonlylsho(x, y, self.x1, self.y1, self.x2, self.y2, \
                                aq.Naq + 1, aq.lab, i, qx,
                                qy)  # Need to specify aq.Naq + 1 (bug in besselaes)
                 rv[0, i] = self.aq.coef[self.pylayers] * qx
                 rv[1, i] = self.aq.coef[self.pylayers] * qy
         rv.shape = (2, self.Nparam, aq.Naq)
     return rv
Пример #2
0
def qxqylabbase(x,y):
    qx = zeros(1)
    qy = zeros(1)
    disbesonlylsho(x, y,-1.0, 0.0, 1.0, 0.0, 2, ones(1), 1, qx, qy)
    return qx, qy