Skip to main content

REgular Grid Linear Interpolator.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

regli-2023.829.0.tar.gz (13.1 kB view hashes)

Uploaded Source

Built Distribution

regli-2023.829.0-py3-none-any.whl (13.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page