REgular Grid Linear Interpolator.
Project description
regli
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ea3623da13a021fd71ac8a1fbf18a9e0f295520c1109588e6b64f0c0a01dae5 |
|
MD5 | bc5fd8f540cc519f127eae599f2072a3 |
|
BLAKE2b-256 | 430e683638287e91a9af180747750485dc93fc31043f1fca23d2bfb886b01605 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25dc0d4fa9ffa3a607286476628f5ea611b1fc26f870f76235bdca5f24b0483a |
|
MD5 | e95b8edb70cf96d8e0ccfdc0debd8434 |
|
BLAKE2b-256 | e5f0ef1ac7e6a7c309b201a33cb41dd9ea10847fd0b413d2d04fffa4c893ee18 |