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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file regli-2023.829.0.tar.gz.

File metadata

  • Download URL: regli-2023.829.0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regli-2023.829.0.tar.gz
Algorithm Hash digest
SHA256 8ea3623da13a021fd71ac8a1fbf18a9e0f295520c1109588e6b64f0c0a01dae5
MD5 bc5fd8f540cc519f127eae599f2072a3
BLAKE2b-256 430e683638287e91a9af180747750485dc93fc31043f1fca23d2bfb886b01605

See more details on using hashes here.

File details

Details for the file regli-2023.829.0-py3-none-any.whl.

File metadata

  • Download URL: regli-2023.829.0-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regli-2023.829.0-py3-none-any.whl
Algorithm Hash digest
SHA256 25dc0d4fa9ffa3a607286476628f5ea611b1fc26f870f76235bdca5f24b0483a
MD5 e95b8edb70cf96d8e0ccfdc0debd8434
BLAKE2b-256 e5f0ef1ac7e6a7c309b201a33cb41dd9ea10847fd0b413d2d04fffa4c893ee18

See more details on using hashes here.

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