LUT_interpolate.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:6S_emulator 作者: samsammurphy 项目源码 文件源码
def create_interpolator(filename):
  """
  Loads a LUT file and creates an interpolated LUT object.
  The interpolant is constructed by triangulating the input data using Qhull
  and performing linear barycentric interpolation on each triangle

  """

  #load LUT
  LUT = pickle.load(open(filename,"rb"))

  # LUT inputs (H2O, O3, etc.) and outputs (i.e. atmcorr coeffs)
  inputs = permutate_invars(LUT['config']['invars'])
  outputs = LUT['outputs']

  # piecewise linear interpolant in N dimensions
  t = time.time()
  interpolator = LinearNDInterpolator(inputs,outputs)
  print('Interpolation took {:.2f} (secs) = '.format(time.time()-t))

  # sanity check
  print('Quick check..')
  i = 0
  true   = (outputs[i][0],outputs[i][1])
  interp = interpolator(inputs[i][0],inputs[i][1],inputs[i][2],inputs[i][3],inputs[i][4]) 
  print('true   = {0[0]:.2f} {0[1]:.2f}'.format(true))
  print('interp = {0[0]:.2f} {0[1]:.2f}'.format(interp))

  return interpolator
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号