Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

hypergravity/regli

Repository files navigation

regli DOI

REgular Grid Linear Interpolator, capable to deal with spectral library or similar model data.

This package implements the basic bilinear interpolation in multi-dimension. However, as commented in Numerical Recipes:

Bilinear interpolation is frequently "close enough for government work." As the interpolating point wanders from grid square to grid square, the interpolated func- tion value changes continuously. However, the gradient of the interpolated function changes discontinuously at the boundaries of each grid square.

As a consequence, the interpolation model can not, in general, be used as a forward model and incorporated with Gradient-based optimization algorithms to estimate parameters.

author

Bo Zhang, bozhang@nao.cas.cn

home page

install

  • for the latest stable version: pip install -U regli
  • for the latest github version: pip install -U git+git://github.com/hypergravity/regli
  • for the Zenodo version: https://zenodo.org/record/3461514

test

from regli import test
test()

output:

regli.interp3 x 10000: 0.5675415992736816 sec
regli.interpn x 10000: 2.5326197147369385 sec
rgi x 10000: 5.4028871059417725 sec

doc

# import Regli
from regli import Regli
import numpy as np
# construct grid coordinates
x1 = np.linspace(-1, 1, 30) 
x2 = np.linspace(-1, 1, 30)
x3 = np.linspace(-1, 1, 30)
# initiate regli using coordinates
regli = Regli(x1, x2, x3)
# an arbitrary function of coordinates (for demo)
f = lambda _x1, _x2, _x3: _x1 + _x2 + _x3
# regli.flats stores flattened coordinates of ND grid
flats = regli.flats
# evaluate your function on flats
values = np.array([f(*_) for _ in flats]).reshape(-1, 1)
# set values for regli
regli.set_values(values) 
regli(pos) # use any of the 3 ways to interpolate
regli.interpn(pos) # method 1 is equivalent to 2
regli.interp3(pos) # this is accelerated for 3D

How to cite the code

BibTex:

@misc{https://doi.org/10.5281/zenodo.3461514,
 doi = {10.5281/zenodo.3461514},
 url = {https://zenodo.org/record/3461514},
 author = {Zhang, Bo},
 title = {hypergravity/regli: The Zenodo version},
 publisher = {Zenodo},
 year = {2019}
}

Please go to https://search.datacite.org/works/10.5281/zenodo.3461514 for other formats.

About

REgular Grid Linear Interpolator

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /