static-interpolation
Fast interpolation of paneled detector data, optimized for static sampling positions.
Main features
- Plan first -> execute fast approach.
- Mask aware interpolation.
- Native support for paneled data
- EXtra-geom integration.
Installation
It is available on pipy so you can simply pip install the package
pip install static-interpolation
Usage
AGIPD_1M Detector & polar grid on Ewald's sphere
import static_interpolation as si
from extra_geom import AGIPD_1MGeometry,agipd_asic_seams
from matplotlib import pyplot as plt
geom = AGIPD_1MGeometry.from_quad_positions(quad_pos=[
(-525, 625), # in mm
(-550, -10),
(520, -160),
(542.5, 475),
])
# Things that are not in geom but needed
nr,nphi = (512,2048) # polar coord shape
detector_origin = (0,0,0.2) # in meters
xray_energy = 7000 # in eV
# Instanciate the interpolator
agipd_interp = si.AGIPD_1MInterpolator.from_polar_ewald(geom,
nr,
nphi,
xray_energy,
detector_origin
)
# make test data
data,masks = si.utils._generate_test_data(geom,n_images=150)
# Interpolate 150 agipd patterns in one go
out,out_masks = agipd_interp(data,masks)
# Plotting
fig = si.utils._plot_detector_test(data[0],masks[0],out[0],out_masks[0],geom,figsize=(32,12))
plt.show()
General example
import numpy as np
import static_interpolation as si
from matplotlib import pyplot as plt
# simple cubic interpolation using 1 panel
# generate test data
rng = np.random.RandomState(12345)
nx,ny = 5,5
n_samples = 100
n_images = 20
data = rng.random((n_images,nx,ny))
# define image layout
layout = si.data_structures.ImageLayout.from_shape((nx,ny))
# define sampling points
sampling_points = np.stack(np.meshgrid(np.arange(n_samples)*(nx-1)/n_samples,np.arange(n_samples)*(ny-1)/n_samples,indexing='ij'),axis=-1)
samples = si.data_structures.SamplingGrid(points = sampling_points[None,...],n_panels=1)
# options
options = si.config.InterpolationPolicy()
options.method = options.Method.linear
# Instanciate interpolatiors
interp_cubic = si.interpolators.StaticInterpolator(samples,layout=layout)
interp_linear = si.interpolators.StaticInterpolator(samples,layout=layout,policy=options)
# Execute interpolations for all 20 images
out = interp_cubic(data)
out_linear = interp_linear(data)
# Plot Result
fig,axs = plt.subplots(1,3,figsize=(10,5))
axs[0].imshow(data[0])
axs[0].set_title("Data")
axs[1].imshow(out[0])
axs[1].set_title("Cubic interpolation")
axs[2].imshow(out_linear[0])
axs[2].set_title("Linear interpolation")
plt.show()
Metadata
Release files for static-interpolation 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| static_interpolation-0.6.2.tar.gz | 37.9 kB | Without provenance | Details for static_interpolation-0.6.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| static_interpolation-0.6.2-py3-none-any.whl | Python 3 | none | any | Details for static_interpolation-0.6.2-py3-none-any.whl |
Total release size: 71.1 kB
Release files / static_interpolation-0.6.2.tar.gz
| Download URL | static_interpolation-0.6.2.tar.gz |
|---|---|
| Size | 37.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99c3ed337947bcfcbf54a37bafeeffb5a37d0c32c8c226a4060b5880f5c2078d
|
|
BLAKE2b-256 checksum How to use checksums |
6577b72117959097ee0e335cd6ff248182c1c9b2166893d09c633b32a6d7345d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|
Release files / static_interpolation-0.6.2-py3-none-any.whl
| Download URL | static_interpolation-0.6.2-py3-none-any.whl |
|---|---|
| Size | 33.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
98d66b8a90ab9138b1ff50eefd40667d76d53d3ac4cbbbd3f6973afd630e77e4
|
|
BLAKE2b-256 checksum How to use checksums |
9afda21e1c540caec59bcc29a90803f8cc5b62171611d818289d315aa73a41c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|
Security for static-interpolation 0.6.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.