All Projects → JuliaMath → Interpolations.jl

JuliaMath / Interpolations.jl

Licence: other
Fast, continuous interpolation of discrete datasets in Julia

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to Interpolations.jl

pangeo-pyinterp
Python library for optimized interpolation.
Stars: ✭ 61 (-76.26%)
Mutual labels:  grid, interpolation
vue-virtual-scroll-grid
A Vue 3 component that can render a list with 1000+ items as a grid in a performant way.
Stars: ✭ 64 (-75.1%)
Mutual labels:  grid
gridy
A Flexbox Grid System powered by SASS
Stars: ✭ 28 (-89.11%)
Mutual labels:  grid
2D-Elliptic-Mesh-Generator
2D orthogonal elliptic mesh generator which solves the Winslow partial differential equations
Stars: ✭ 36 (-85.99%)
Mutual labels:  grid
tubular-dotnet
Tubular .NET Library
Stars: ✭ 16 (-93.77%)
Mutual labels:  grid
choco-selenium
Installs and configures selenium standalone, hub, or node server
Stars: ✭ 16 (-93.77%)
Mutual labels:  grid
ng-mazdik
Angular UI component library
Stars: ✭ 86 (-66.54%)
Mutual labels:  grid
react-native-reseau
[WIP] An ios-like grid view based on react-native.
Stars: ✭ 13 (-94.94%)
Mutual labels:  grid
NM
Numerical Methods (NM) for BE Electrical II Year / II Part, Email: [email protected]
Stars: ✭ 13 (-94.94%)
Mutual labels:  interpolation
tubular
A set of AngularJS directives designed to rapidly build modern web applications
Stars: ✭ 44 (-82.88%)
Mutual labels:  grid
gridder
A Grid based 2D Graphics library
Stars: ✭ 51 (-80.16%)
Mutual labels:  grid
Online-Tools
Webpage offering a wide range of online tools
Stars: ✭ 38 (-85.21%)
Mutual labels:  interpolation
Jikan
A new CSS framework for better, faster and more beautiful UIs.
Stars: ✭ 19 (-92.61%)
Mutual labels:  grid
google-docs-mustaches
📝Interpolate Google Docs files using mustaches and formatters
Stars: ✭ 23 (-91.05%)
Mutual labels:  interpolation
gymnast
🤸 Configurable grid and layout engine for React
Stars: ✭ 35 (-86.38%)
Mutual labels:  grid
Katana
Katana is CSS Layout System made with Flexbox
Stars: ✭ 57 (-77.82%)
Mutual labels:  grid
gutter-grid
A Sass flexbox based grid system that is able to replicate CSS grid-gap in IE11
Stars: ✭ 18 (-93%)
Mutual labels:  grid
React Native Grid Component
🔲 React native grid component
Stars: ✭ 255 (-0.78%)
Mutual labels:  grid
storybook-addon-grid
⚜️ Column guides that help you align your stories
Stars: ✭ 17 (-93.39%)
Mutual labels:  grid
ember-gridstack
Ember components to build drag-and-drop multi-column grids powered by gridstack.js
Stars: ✭ 31 (-87.94%)
Mutual labels:  grid

Interpolations

Build Status

NEWS This package is currently under new maintainership. Please be patient while the new maintainer learns the new package. If you would like to volunteer, please mention this in an issue.

NEWS v0.9 was a breaking release. See the news for details on how to update.

This package implements a variety of interpolation schemes for the Julia language. It has the goals of ease-of-use, broad algorithmic support, and exceptional performance.

Currently this package's support is best for B-splines and also supports irregular grids. However, the API has been designed with intent to support more options. Initial support for Lanczos interpolation was recently added. Pull-requests are more than welcome! It should be noted that the API may continue to evolve over time.

Other interpolation packages for Julia include:

Some of these packages support methods that Interpolations does not, so if you can't find what you need here, check one of them or submit a pull request here.

At the bottom of this page, you can find a "performance shootout" among these methods (as well as SciPy's RegularGridInterpolator).

Installation

Just

using Pkg
Pkg.add("Interpolations")

from the Julia REPL.

Performance shootout

In the perf directory, you can find a script that tests interpolation with several different packages. We consider interpolation in 1, 2, 3, and 4 dimensions, with orders 0 (Constant), 1 (Linear), and 2 (Quadratic). Methods include Interpolations BSpline (IBSpline) and Gridded (IGridded), methods from the Grid.jl package, methods from the Dierckx.jl package, methods from the GridInterpolations.jl package (GI), methods from the ApproXD.jl package, and methods from SciPy's RegularGridInterpolator accessed via PyCall (Py). All methods are tested using an Array with approximately 10^6 elements, and the interpolation task is simply to visit each grid point.

First, let's look at the two B-spline algorithms, IBspline and Grid. Here's a plot of the "construction time," the amount of time it takes to initialize an interpolation object (smaller is better):

construction

The construction time is negligible until you get to second order (quadratic); that's because quadratic is the lowest order requiring the solution of tridiagonal systems upon construction. The solvers used by Interpolations are much faster than the approach taken in Grid.

Now let's examine the interpolation performance. Here we'll measure "throughput", the number of interpolations performed per second (larger is better):

throughput

Once again, Interpolations wins on every test, by a factor that ranges from 7 to 13.

Now let's look at the "gridded" methods that allow irregular spacing along each axis. For some of these, we compare interpolation performance in both "vectorized" form itp[xvector, yvector] and in "scalar" form for y in yvector, x in xvector; val = itp[x,y]; end.

First, construction time (smaller is better):

construction

Missing dots indicate cases that were not tested, or not supported by the package. (For construction, differences between "vec" and "scalar" are just noise, since no interpolation is performed during construction.) The only package that takes appreciable construction time is Dierckx.

And here's "throughput" (larger is better). To ensure we can see the wide range of scales, here we use "square-root" scaling of the y-axis:

throughput

For 1d, the "Dierckx scalar" and "GI" tests were interrupted because they ran more than 20 seconds (far longer than any other test). Both performed much better in 2d, interestingly. You can see that Interpolations wins in every case, sometimes by a very large margin.

Contributing

Work is very much in progress, but and help is always welcome. If you want to help out but don't know where to start, take a look at issue #5 - our feature wishlist =) There is also some developer documentation that may help you understand how things work internally.

Contributions in any form are appreciated, but the best pull requests come with tests!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].