# Trilinear interpolation in Julia?

**URL:** <https://discourse.julialang.org/t/trilinear-interpolation-in-julia/73547>\
**Category:** General Usage\
**Tags:** interpolations\
**Created:** [December 23, 2021, 7:58pm UTC](https://discourse.julialang.org/t/trilinear-interpolation-in-julia/73547 "2021-12-23T19:58:25Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![DeepQ](https://avatars.discourse-cdn.com/v4/letter/d/2bfe46/32.png) [@DeepQ](https://discourse.julialang.org/u/DeepQ)\
**Post date:** [December 23, 2021, 7:58pm UTC](https://discourse.julialang.org/t/trilinear-interpolation-in-julia/73547/1 "2021-12-23T19:58:25Z")

</div>

I need a package for graphics applications. Which package contains spatial mappings such as trilinear interpolation?

---

<div class="post-metadata">

**Author:** ![markmbaum](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/markmbaum/32/32745_2.png) [@markmbaum](https://discourse.julialang.org/u/markmbaum)\
**Post date:** [December 23, 2021, 8:30pm UTC](https://discourse.julialang.org/t/trilinear-interpolation-in-julia/73547/2 "2021-12-23T20:30:19Z")

</div>

Seems like [Dierckx.jl](https://github.com/kbarbary/Dierckx.jl) has 2D splines for unstructured points, if that suits your needs.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [December 24, 2021, 1:16am UTC](https://discourse.julialang.org/t/trilinear-interpolation-in-julia/73547/3 "2021-12-24T01:16:34Z")

</div>

Are you asking for [ternary plots](https://www.generic-mapping-tools.org/GMT.jl/dev/gallery/ternary/ternary/)?

---

<div class="post-metadata">

**Author:** ![DeepQ](https://avatars.discourse-cdn.com/v4/letter/d/2bfe46/32.png) [@DeepQ](https://discourse.julialang.org/u/DeepQ)\
**Post date:** [December 24, 2021, 11:31am UTC](https://discourse.julialang.org/t/trilinear-interpolation-in-julia/73547/4 "2021-12-24T11:31:59Z")

</div>

I need 3d trilinear interpolation for spatial data.

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [December 24, 2021, 11:37am UTC](https://discourse.julialang.org/t/trilinear-interpolation-in-julia/73547/5 "2021-12-24T11:37:08Z")

</div>

We don’t have trilinear interpolation specifically, but it should be quite straightforward to write such solver in the GeoStats.jl ecosystem, which already supports 3D unstructured grids: [Built-in · GeoStats.jl](https://juliaearth.github.io/GeoStats.jl/stable/solvers/builtin.html)

The unstructured grids are coming from the Meshes.jl package, which is another package I am actively working on: [https://github.com/JuliaGeometry/Meshes.jl](https://github.com/JuliaGeometry/Meshes.jl)

We’ve designed these interpolation methods in GeoStats.jl in a way that they work with any Hilbert space. This means that you can interpolate any Julia type with well-defined scalar product, vector addition and inner product.

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [December 24, 2021, 12:10pm UTC](https://discourse.julialang.org/t/trilinear-interpolation-in-julia/73547/6 "2021-12-24T12:10:41Z")

</div>

For [trilinear interpolation](https://en.wikipedia.org/wiki/Trilinear_interpolation), I think you can use `Interpolations.jl`:

```julia
using Interpolations
f(x,y,z) = 2x + 3y + 5z
x = y = z = -10:5.0:10
v = [f(x,y,z) for x in x, y in y, z in z]
itp = interpolate((x,y,z),v, Gridded(Linear()))
itp(1.,1.,1.) ≈ f(1.,1.,1.) # true (= 10.0)

```

See also [interesting github discussion here](https://github.com/JuliaMath/Interpolations.jl/issues/91).
