使用Python中的三角加权函数进行转换?

时间:2014-06-04 15:02:30

标签: python-2.7 math transformation

我试图构建一个水文模型,根据模型,我需要使用以下公式转换我的QGW变量:

|triangular transformation function

其中:QGW =是一个列表,MAXBIAS =常量(通常为5)。

我真的不知道从哪里开始......使用python 2.7构建它。

1 个答案:

答案 0 :(得分:0)

这个答案有几点需要注意。我不是Python或水文模型专家。以下是一个开始,最终答案。因此,您可以从这个起点解决任何问题。

class HydroModel:
  def __init__(self, maxbias, qcw):
    self.maxbias = maxbias
    self.qcw = qcw

  def Fu(u): 
    # antiderivative
    # needs fixing because antiderivatives of absolute values have to be split
    maxbias = self.maxbias
    return u*2/maxbias - u * math.fabs(u - maxbias/2) * 4 / (maxbias*maxbias)

  def c(i): 
    return Fu(i-1)-Fu(i)

  def Qsim(t):
    # is this meant to return a value or a list/vector?
    sum = 0
    for (i = 1; i < self.maxbias; i++):
        sum += self.c(i) * self.qcw[ t - i + 1]
    return sum