ARTS  2.2.66
interpolation.h File Reference

Header file for interpolation.cc. More...

#include "arts.h"
#include "matpackVII.h"
#include "mystring.h"
Include dependency graph for interpolation.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  GridPos
 Structure to store a grid position. More...
 

Typedefs

typedef Array< GridPosArrayOfGridPos
 An Array of grid positions. More...
 
typedef Array< Array< GridPos > > ArrayOfArrayOfGridPos
 
typedef Array< Array< Array< GridPos > > > ArrayOfArrayOfArrayOfGridPos
 
typedef Array< Array< Array< Array< GridPos > > > > ArrayOfArrayOfArrayOfArrayOfGridPos
 

Functions

ostream & operator<< (ostream &os, const GridPos &gp)
 Output operator for GridPos. More...
 
void gridpos (ArrayOfGridPos &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Numeric &extpolfac=0.5)
 Set up a grid position Array. More...
 
void gridpos (GridPos &gp, ConstVectorView old_grid, const Numeric &new_grid, const Numeric &extpolfac=0.5)
 gridpos More...
 
void gridpos_1to1 (ArrayOfGridPos &gp, ConstVectorView grid)
 gridpos_1to1 More...
 
void gridpos_copy (GridPos &gp_new, const GridPos &gp_old)
 gridpos_copy More...
 
Numeric fractional_gp (const GridPos &gp)
 fractional_gp More...
 
void gridpos_check_fd (GridPos &gp)
 gridpos_check_fd More...
 
void gridpos_force_end_fd (GridPos &gp, const Index &n)
 gridpos_force_end_fd More...
 
void gridpos_upperend_check (GridPos &gp, const Index &ie)
 gridpos_upperend_check More...
 
void gridpos_upperend_check (ArrayOfGridPos &gp, const Index &ie)
 gridpos_upperend_check More...
 
bool is_gridpos_at_index_i (const GridPos &gp, const Index &i, const bool &strict=true)
 is_gridpos_at_index_i More...
 
Index gridpos2gridrange (const GridPos &gp, const bool &upwards)
 gridpos2gridrange More...
 
void interpweights (VectorView itw, const GridPos &tc)
 Red 1D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPos &tr, const GridPos &tc)
 Red 2D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPos &tp, const GridPos &tr, const GridPos &tc)
 Red 3D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPos &tb, const GridPos &tp, const GridPos &tr, const GridPos &tc)
 Red 4D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPos &ts, const GridPos &tb, const GridPos &tp, const GridPos &tr, const GridPos &tc)
 Red 5D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPos &tv, const GridPos &ts, const GridPos &tb, const GridPos &tp, const GridPos &tr, const GridPos &tc)
 Red 6D interpolation weights. More...
 
Numeric interp (ConstVectorView itw, ConstVectorView a, const GridPos &tc)
 Red 1D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstMatrixView a, const GridPos &tr, const GridPos &tc)
 Red 2D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstTensor3View a, const GridPos &tp, const GridPos &tr, const GridPos &tc)
 Red 3D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstTensor4View a, const GridPos &tb, const GridPos &tp, const GridPos &tr, const GridPos &tc)
 Red 4D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstTensor5View a, const GridPos &ts, const GridPos &tb, const GridPos &tp, const GridPos &tr, const GridPos &tc)
 Red 5D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstTensor6View a, const GridPos &tv, const GridPos &ts, const GridPos &tb, const GridPos &tp, const GridPos &tr, const GridPos &tc)
 Red 6D Interpolate. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPos &cgp)
 Compute 1D interpolation weights. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 2D interpolation weights for a sequence of positions. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 3D interpolation weights for a sequence of positions. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 4D interpolation weights for a sequence of positions. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPos &sgp, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 5D interpolation weights for a sequence of positions. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPos &vgp, const ArrayOfGridPos &sgp, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 6D interpolation weights for a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstVectorView a, const ArrayOfGridPos &cgp)
 Interpolate 1D field. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstMatrixView a, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 2D field to a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstTensor3View a, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 3D field to a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstTensor4View a, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 4D field to a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstTensor5View a, const ArrayOfGridPos &sgp, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 5D field to a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstTensor6View a, const ArrayOfGridPos &vgp, const ArrayOfGridPos &sgp, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 6D field to a sequence of positions. More...
 
void interpweights (Tensor3View itw, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 2D interpolation weights for an entire field. More...
 
void interpweights (Tensor4View itw, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 3D interpolation weights for an entire field. More...
 
void interpweights (Tensor5View itw, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 4D interpolation weights for an entire field. More...
 
void interpweights (Tensor6View itw, const ArrayOfGridPos &sgp, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 5D interpolation weights for an entire field. More...
 
void interpweights (Tensor7View itw, const ArrayOfGridPos &vgp, const ArrayOfGridPos &sgp, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Compute 6D interpolation weights for an entire field. More...
 
void interp (MatrixView ia, ConstTensor3View itw, ConstMatrixView a, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 2D field to another 2D field. More...
 
void interp (Tensor3View ia, ConstTensor4View itw, ConstTensor3View a, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 3D field to another 3D field. More...
 
void interp (Tensor4View ia, ConstTensor5View itw, ConstTensor4View a, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 4D field to another 4D field. More...
 
void interp (Tensor5View ia, ConstTensor6View itw, ConstTensor5View a, const ArrayOfGridPos &sgp, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 5D field to another 5D field. More...
 
void interp (Tensor6View ia, ConstTensor7View itw, ConstTensor6View a, const ArrayOfGridPos &vgp, const ArrayOfGridPos &sgp, const ArrayOfGridPos &bgp, const ArrayOfGridPos &pgp, const ArrayOfGridPos &rgp, const ArrayOfGridPos &cgp)
 Interpolate 6D field to another 6D field. More...
 
Numeric interp_poly (ConstVectorView x, ConstVectorView y, const Numeric &x_i, const GridPos &gp)
 Polynomial interpolation. More...
 
void polint (Numeric &y_int, Numeric &dy_int, ConstVectorView xa, ConstVectorView ya, const Index &i, const Numeric &x)
 Polynomial interpolation. More...
 

Detailed Description

Header file for interpolation.cc.

Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:54:45 2002

Definition in file interpolation.h.

Typedef Documentation

◆ ArrayOfArrayOfArrayOfArrayOfGridPos

◆ ArrayOfArrayOfArrayOfGridPos

Definition at line 87 of file interpolation.h.

◆ ArrayOfArrayOfGridPos

Definition at line 86 of file interpolation.h.

◆ ArrayOfGridPos

An Array of grid positions.

See GridPos for details.

Definition at line 85 of file interpolation.h.

Function Documentation

◆ fractional_gp()

Numeric fractional_gp ( const GridPos gp)

fractional_gp

Returns the complete fractional grid position.

The fractional grid position is the sum of grid index and fraction distance, and is not an integer value.

Returns
Fractional grid position.
Parameters
gpInput: Grid position structure.
Author
Patrick Eriksson
Date
2004-09-28

Definition at line 539 of file interpolation.cc.

References GridPos::fd, and GridPos::idx.

Referenced by is_gp_inside_cloudbox(), iy_interp_cloudbox_field(), iyInterpCloudboxField2(), mcPathTraceGeneral(), mcPathTraceIPA(), ppath_calc(), and ppath_start_stepping().

◆ gridpos() [1/2]

void gridpos ( ArrayOfGridPos gp,
ConstVectorView  old_grid,
ConstVectorView  new_grid,
const Numeric extpolfac 
)

Set up a grid position Array.

This is the function to find the position in the original grid and set the fd for the linear interpolation case.

The old grid has to be strictly sorted. It can be in ascending or descending order. But there must not be any duplicate values. Furthermore, the old grid must contain at least two points.

The new grid doesn't have to be sorted, but the function will be faster if it is sorted or mostly sorted. It is ok if the new grid contains only 1 point.

The beauty is, that this is all it needs to do also interpolation in higher dimensions: You just have to call gridpos for all the dimensions that you want to interpolate.

Note also, that for this step you do not need the field itself at all!

The new grid has basically to be inside the range covered by old grid, but some margins are given for practical reasons. For higher flexibility, a selectable extrapolation is allowed. The allowed extrapolation is given in fractions of the distance between the lowermost two points for extrapolation beyond the lower grid limit and the distance between the uppermost two points for extrapolation beyond the upper grid limit, respectively. For example, if extpolfac is set to 0.5 an extrapolation of half the distance between two outermost points at the respective edge of the grid is allowed. In this case, if the old grid is given as [0, 1, ... , 3, 3.4] the new grid can be extended down to -0.5 and up to 3.6.

0.5 is the default value for extpolfac. Normally, you should just use the function with 3 arguments, which means that the default value will be used.

If a new grid point is exactly on top of an original grid point, then the returned gp.idx is guaranteed to point exactly at this point, so that gp.fd[0] = 0. The only exception from this rule is if the point happens to be the last point in the original grid. In that case gp.idx will point to the original grid point below.

Furthermore, you are guaranteed that for the ascending old grid case: old_grid[tgp.idx]<=tng || tgp.idx==0 And for the descending old grid case: old_grid[tgp.idx]>=tng || tgp.idx==0

Return values
gpGrid position Array.
Parameters
old_gridThe original grid.
new_gridThe new grid where we want to have the interpolated values.
extpolfacExtrapolation factor. Has a default value of 0.5. You should normally not specify this parameter!
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 167 of file interpolation.cc.

References GridPos::fd, GridPos::idx, is_decreasing(), is_increasing(), is_size(), and ConstVectorView::nelem().

Referenced by abs_lookupSetup(), abs_lookupSetupBatch(), abs_vecTransform(), antenna1d_matrix(), antenna2d_simplified(), AntennaConstantGaussian1D(), atm_fields_compactAddSpecies(), AtmFieldsRefinePgrid(), cloud_ppath_update3D(), complex_n_interp(), defocusing_general_sub(), diy_from_path_to_rgrids(), doit_i_fieldSetClearsky(), doit_scat_fieldCalcLimb(), ext_matTransform(), get_perturbation_gridpos(), get_refr_index_1d(), get_refr_index_2d(), get_refr_index_3d(), gridpos(), gridpos_poly(), interp_cloud_coeff1D(), interp_scat_angle_temperature(), SLIData2::interpolate(), interpolate_scat_angle(), InterpSurfaceFieldToPosition(), interpTArray(), iy_interp_cloudbox_field(), jacobianCalcPointingZaInterp(), MCIPA(), mcPathTraceGeneral(), mcPathTraceIPA(), opt_prop_sptFromData(), opt_prop_sptFromMonoData(), opt_propExtract(), p2gridpos(), pha_mat_singleExtract(), pha_mat_sptFromData(), pha_mat_sptFromDataDOITOpt(), pha_mat_sptFromMonoData(), pha_matTransform(), pmomCalc(), pnd_fieldCalc(), pos2refell_r(), pos2true_latlon(), ppath_calc(), ppath_start_3d(), ppath_start_stepping(), rte_pos2gridpos(), scat_data_array_monoCalc(), ScatteringMergeParticles1D(), sensor_summation_vector(), specular_losCalc(), surface_complex_refr_indexFromGriddedField5(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), test01(), test04(), test05(), test06(), test07(), yCloudRadar(), z_at_lat_2d(), z_at_latlon(), and za_gridOpt().

◆ gridpos() [2/2]

void gridpos ( GridPos gp,
ConstVectorView  old_grid,
const Numeric new_grid,
const Numeric extpolfac 
)

gridpos

Creates a grid position structure.

This is a gateway to the function for arrays of grid positions, to be used for e.g. "red interpolation".

Return values
gpThe GridPos structure.
Parameters
old_gridThe original grid.
new_gridThe position where we want to have the interpolated value.
extpolfacExtrapolation factor. Default value is 0.5, which means that extrapolation of half of the last grid distance is allowed. You don't have to specify this.
Author
Patrick Eriksson
Date
2002-12-31
Author
Stefan Buehler
Date
2008-03-03

Definition at line 460 of file interpolation.cc.

References gridpos(), and gridpos_copy().

◆ gridpos2gridrange()

Index gridpos2gridrange ( const GridPos gp,
const bool &  upwards 
)

gridpos2gridrange

Determines which grid range that is of interest for a given grid position.

The purpose of the function is to determine which two grid values that surround the given point. The index of the lower grid value is returned.

For a point exactly on a grid value it is not clear if it is the range below or above that is of interest. The input argument upward is used to resolve such cases, where upward == 1 means that it is the range above that is of interest.

Parameters
gpGrid position structure.
upwardsDirection of interest, see above.
Returns
The index of the lower end of the grid range.
Author
Patrick Eriksson
Date
2002-05-20

Definition at line 747 of file interpolation.cc.

References GridPos::fd, and GridPos::idx.

Referenced by plevel_slope_2d(), plevel_slope_3d(), ppath_start_1d(), ppath_start_2d(), and ppath_start_3d().

◆ gridpos_1to1()

void gridpos_1to1 ( ArrayOfGridPos gp,
ConstVectorView  grid 
)

gridpos_1to1

Creates a position array for a 1-to-1 mapping.

This function treats interpolaton back to the same grid. The function matches: gridpos( gp, grid, grid ), but is faster.

The function gives gp correct size.

Return values
gpArray of GridPos structure.
Parameters
old_gridThe grid.
Author
Patrick Eriksson
Date
2012-06-22

Definition at line 488 of file interpolation.cc.

References ConstVectorView::nelem().

Referenced by rte_pos2gridpos().

◆ gridpos_check_fd()

void gridpos_check_fd ( GridPos gp)

gridpos_check_fd

Checks that the fractional distances have a value in the range [0,1].

This function can be used when you are sure that the fractional distances have been calculated correctly, but the limited numerical precision can give values below 0 or above 1.

Return values
gpGrid position structure.
Author
Patrick Eriksson
Date
2002-05-21

Definition at line 559 of file interpolation.cc.

References GridPos::fd, and FD_TOL.

Referenced by ppath_end_1d(), ppath_end_2d(), ppath_end_3d(), and ppath_start_stepping().

◆ gridpos_copy()

void gridpos_copy ( GridPos gp_new,
const GridPos gp_old 
)

gridpos_copy

Copies the content of a GridPos structure.

Return values
gp_newThe GridPos structure to be filled.
Parameters
gp_oldThe GridPos structure to be copied.
Author
Patrick Eriksson
Date
2002-09-17

Definition at line 517 of file interpolation.cc.

References GridPos::fd, and GridPos::idx.

Referenced by get_ppath_ext(), gridpos(), interp_atmfield_by_gp(), interp_atmsurface_by_gp(), interp_cloudfield_gp2itw(), iy_auxFillParticleVariables(), ppath_append(), ppath_copy(), ppath_start_stepping(), ppathFromRtePos2(), z_at_lat_2d(), and z_at_latlon().

◆ gridpos_force_end_fd()

void gridpos_force_end_fd ( GridPos gp,
const Index n 
)

gridpos_force_end_fd

Forces that the fractional distances is set to OK with respect to interpolation.

This function can be called when it is known that a position is exactly on a grid point. The fractional distance of the grid position is then 0 or 1, but rounding errors can give a slightly deviating value.

The fractional distance is set to 0, beside for end point of the complete grid range where is set to 1.

The difference between this function and gridpos_check_fd is that this function is only applicable for end points, while the other function can be called for every point.

Return values
gpGrid position structure.
Parameters
nNumber of points of the grid.
Author
Patrick Eriksson
Date
2002-05-22

Definition at line 602 of file interpolation.cc.

References GridPos::fd, and GridPos::idx.

Referenced by ppath_end_1d(), ppath_end_2d(), ppath_end_3d(), and ppath_start_2d().

◆ gridpos_upperend_check() [1/2]

void gridpos_upperend_check ( GridPos gp,
const Index ie 
)

gridpos_upperend_check

A function to handle the upper end after shifts of grid positions

The function ensures that a shift of grid positions not results in a too high gp.idx. That happens for positions exactly at the upper cloudbox boundaries.

Return values
gpGrid position structure.
Parameters
ieIndex of upper limit, shifted
Author
Patrick Eriksson
Date
2010-11-18

Definition at line 643 of file interpolation.cc.

References GridPos::fd, and GridPos::idx.

Referenced by cloud_atm_vars_by_gp(), cloud_ppath_update3D(), interp_cloud_coeff1D(), interp_cloudfield_gp2itw(), iy_interp_cloudbox_field(), and iyInterpCloudboxField2().

◆ gridpos_upperend_check() [2/2]

void gridpos_upperend_check ( ArrayOfGridPos gp,
const Index ie 
)

gridpos_upperend_check

A function to handle the upper end after shifts of grid positions

The function ensures that a shift of grid positions not results in a too high gp.idx. That happens for positions exactly at the upper cloudbox boundaries.

Return values
gpArray of grid position structure.
Parameters
ieIndex of upper limit, shifted
Author
Patrick Eriksson
Date
2011-02-28

Definition at line 671 of file interpolation.cc.

References Array< base >::nelem().

◆ interp() [1/17]

Numeric interp ( ConstVectorView  itw,
ConstVectorView  a,
const GridPos tc 
)

Red 1D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the dimension of the interpolation (2^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 1046 of file interpolation.cc.

References ConstVectorView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), ConstVectorView::sum(), and sum_check_epsilon.

Referenced by abs_lookupSetup(), abs_lookupSetupBatch(), abs_lookupTestAccMC(), abs_vecTransform(), antenna1d_matrix(), AntennaConstantGaussian1D(), atm_fields_compactAddSpecies(), AtmFieldsCalc(), AtmFieldsRefinePgrid(), IsotopologueRecord::CalculatePartitionFctAtTempFromData(), cia_interpolation(), cloud_ppath_update3D(), complex_n_interp(), defocusing_general_sub(), doit_i_fieldSetClearsky(), doit_scat_fieldCalcLimb(), ext_matTransform(), GasAbsLookup::Extract(), fos(), get_refr_index_1d(), get_refr_index_2d(), get_refr_index_3d(), GriddedFieldLatLonRegrid(), GriddedFieldPRegrid(), GriddedFieldZToPRegrid(), interp_atmfield_by_itw(), interp_atmsurface_by_itw(), interp_cloud_coeff1D(), interpolate_scat_angle(), interpolate_scat_angleDOIT(), interpTArray(), itw2p(), iy_interp_cloudbox_field(), iyInterpCloudboxField2(), jacobianCalcFreqShift(), jacobianCalcFreqStretch(), jacobianCalcPointingZaInterp(), mcPathTraceGeneral(), mcPathTraceIPA(), opt_prop_sptFromData(), opt_prop_sptFromMonoData(), opt_propExtract(), perturbation_field_1d(), perturbation_field_2d(), perturbation_field_3d(), pha_mat_singleExtract(), pha_mat_sptFromData(), pha_mat_sptFromDataDOITOpt(), pha_mat_sptFromMonoData(), pha_matTransform(), plevel_slope_3d(), pmomCalc(), pnd_fieldCalc(), pos2true_latlon(), ppath_start_stepping(), rte_pos2gridpos(), scat_data_array_monoCalc(), ScatteringMergeParticles1D(), sensor_summation_vector(), specular_losCalc(), surface_complex_refr_indexFromGriddedField5(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), test01(), test04(), test05(), test06(), test07(), test08(), yCloudRadar(), z_at_lat_2d(), z_at_latlon(), z_fieldFromHSE(), and za_gridOpt().

◆ interp() [2/17]

Numeric interp ( ConstVectorView  itw,
ConstMatrixView  a,
const GridPos tr,
const GridPos tc 
)

Red 2D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the dimension of the interpolation (2^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 1089 of file interpolation.cc.

References ConstVectorView::get(), ConstMatrixView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), ConstVectorView::sum(), and sum_check_epsilon.

◆ interp() [3/17]

Numeric interp ( ConstVectorView  itw,
ConstTensor3View  a,
const GridPos tp,
const GridPos tr,
const GridPos tc 
)

Red 3D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the dimension of the interpolation (2^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 1136 of file interpolation.cc.

References ConstTensor3View::get(), ConstVectorView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), ConstVectorView::sum(), and sum_check_epsilon.

◆ interp() [4/17]

Numeric interp ( ConstVectorView  itw,
ConstTensor4View  a,
const GridPos tb,
const GridPos tp,
const GridPos tr,
const GridPos tc 
)

Red 4D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the dimension of the interpolation (2^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 1187 of file interpolation.cc.

References ConstTensor4View::get(), ConstVectorView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), ConstVectorView::sum(), and sum_check_epsilon.

◆ interp() [5/17]

Numeric interp ( ConstVectorView  itw,
ConstTensor5View  a,
const GridPos ts,
const GridPos tb,
const GridPos tp,
const GridPos tr,
const GridPos tc 
)

Red 5D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the dimension of the interpolation (2^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tsThe grid position for the shelf dimension.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 1242 of file interpolation.cc.

References ConstTensor5View::get(), ConstVectorView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), ConstVectorView::sum(), and sum_check_epsilon.

◆ interp() [6/17]

Numeric interp ( ConstVectorView  itw,
ConstTensor6View  a,
const GridPos tv,
const GridPos ts,
const GridPos tb,
const GridPos tp,
const GridPos tr,
const GridPos tc 
)

Red 6D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the dimension of the interpolation (2^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tvThe grid position for the vitrine dimension.
tsThe grid position for the shelf dimension.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 1301 of file interpolation.cc.

References ConstVectorView::get(), ConstTensor6View::get(), GridPos::idx, is_same_within_epsilon(), is_size(), ConstVectorView::sum(), and sum_check_epsilon.

◆ interp() [7/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstVectorView  a,
const ArrayOfGridPos cgp 
)

Interpolate 1D field.

For this 1D case there is no distinction between "blue" and "green" type interpolation.

The output vector ia must have the same length as the grid position vector cgp. And the dimension of itw must be consistent with this.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1729 of file interpolation.cc.

References ConstVectorView::get(), ConstMatrixView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [8/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstMatrixView  a,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 2D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1788 of file interpolation.cc.

References ConstMatrixView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [9/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstTensor3View  a,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 3D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1853 of file interpolation.cc.

References ConstTensor3View::get(), ConstMatrixView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [10/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstTensor4View  a,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 4D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1924 of file interpolation.cc.

References ConstTensor4View::get(), ConstMatrixView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [11/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstTensor5View  a,
const ArrayOfGridPos sgp,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 5D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2001 of file interpolation.cc.

References ConstTensor5View::get(), ConstMatrixView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [12/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstTensor6View  a,
const ArrayOfGridPos vgp,
const ArrayOfGridPos sgp,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 6D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
vgpThe grid position Array for the vitrine dimension.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2084 of file interpolation.cc.

References ConstTensor6View::get(), ConstMatrixView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [13/17]

void interp ( MatrixView  ia,
ConstTensor3View  itw,
ConstMatrixView  a,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 2D field to another 2D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2521 of file interpolation.cc.

References ConstTensor3View::get(), ConstMatrixView::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [14/17]

void interp ( Tensor3View  ia,
ConstTensor4View  itw,
ConstTensor3View  a,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 3D field to another 3D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2591 of file interpolation.cc.

References ConstTensor3View::get(), ConstTensor4View::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [15/17]

void interp ( Tensor4View  ia,
ConstTensor5View  itw,
ConstTensor4View  a,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 4D field to another 4D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2671 of file interpolation.cc.

References ConstTensor4View::get(), ConstTensor5View::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and sum_check_epsilon.

◆ interp() [16/17]

void interp ( Tensor5View  ia,
ConstTensor6View  itw,
ConstTensor5View  a,
const ArrayOfGridPos sgp,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 5D field to another 5D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2760 of file interpolation.cc.

References ConstTensor5View::get(), ConstTensor6View::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), ns, and sum_check_epsilon.

◆ interp() [17/17]

void interp ( Tensor6View  ia,
ConstTensor7View  itw,
ConstTensor6View  a,
const ArrayOfGridPos vgp,
const ArrayOfGridPos sgp,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Interpolate 6D field to another 6D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
vgpThe grid position Array for the vitrine dimension.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2858 of file interpolation.cc.

References ConstTensor6View::get(), ConstTensor7View::get(), GridPos::idx, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), ns, and sum_check_epsilon.

◆ interp_poly()

Numeric interp_poly ( ConstVectorView  x,
ConstVectorView  y,
const Numeric x_i,
const GridPos gp 
)

Polynomial interpolation.

This function performs a polynomial interpolation. Given two vectors x, y the value of y corresponding to x_i is returned. The function uses the common gridpositions (which are also used for linear interpolation).

Parameters
xoriginal grid
yvalues corresponding to x-values
x_ia value x, for which the corresponding y value is requested
gpgrid position of x_i in relation to x
Returns
interpolated value
Author
Claudia Emde
Date
2004-03-17

Definition at line 2955 of file interpolation.cc.

References arts_exit(), GridPos::fd, GridPos::idx, ConstVectorView::nelem(), and polint().

Referenced by doit_scat_fieldCalcLimb(), interp_cloud_coeff1D(), iy_interp_cloudbox_field(), test07(), and za_gridOpt().

◆ interpweights() [1/17]

void interpweights ( VectorView  itw,
const GridPos tc 
)

Red 1D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The length of itw must be consistent with the dimension of the field to be interpolated (2^n).

Return values
itwInterpolation weights.
Parameters
tcThe grid position for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 802 of file interpolation.cc.

References VectorView::get(), is_size(), and LOOPIT.

Referenced by abs_lookupSetup(), abs_lookupSetupBatch(), abs_lookupTestAccMC(), abs_vecTransform(), antenna1d_matrix(), AntennaConstantGaussian1D(), atm_fields_compactAddSpecies(), AtmFieldsCalc(), AtmFieldsRefinePgrid(), IsotopologueRecord::CalculatePartitionFctAtTempFromData(), cia_interpolation(), clear_rt_vars_at_gp(), cloud_atm_vars_by_gp(), cloud_ppath_update3D(), complex_n_interp(), defocusing_general_sub(), doit_i_fieldSetClearsky(), doit_scat_fieldCalcLimb(), ext_matTransform(), GasAbsLookup::Extract(), fos(), get_ppath_atmvars(), get_refr_index_1d(), get_refr_index_2d(), get_refr_index_3d(), GriddedFieldLatLonRegridHelper(), GriddedFieldPRegridHelper(), GriddedFieldZToPRegridHelper(), interp_atmfield_gp2itw(), interp_atmsurface_gp2itw(), interp_cloud_coeff1D(), interp_cloudfield_gp2itw(), interp_scat_angle_temperature(), SLIData2::interpolate(), interpolate_scat_angle(), interpTArray(), iy_interp_cloudbox_field(), iyInterpCloudboxField2(), jacobianCalcFreqShift(), jacobianCalcFreqStretch(), jacobianCalcPointingZaInterp(), mcPathTraceGeneral(), mcPathTraceIPA(), opt_prop_sptFromData(), opt_prop_sptFromMonoData(), opt_propExtract(), perturbation_field_1d(), perturbation_field_2d(), perturbation_field_3d(), pha_mat_singleExtract(), pha_mat_sptFromData(), pha_mat_sptFromDataDOITOpt(), pha_mat_sptFromMonoData(), pha_matTransform(), plevel_slope_3d(), pmomCalc(), pnd_fieldCalc(), pos2true_latlon(), ppath_start_stepping(), rte_pos2gridpos(), scat_data_array_monoCalc(), ScatteringMergeParticles1D(), sensor_responseFillFgrid(), sensor_summation_vector(), specular_losCalc(), surface_complex_refr_indexFromGriddedField5(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), test01(), test04(), test05(), test06(), test07(), test08(), yCloudRadar(), z_at_lat_2d(), z_at_latlon(), z_fieldFromHSE(), and za_gridOpt().

◆ interpweights() [2/17]

void interpweights ( VectorView  itw,
const GridPos tr,
const GridPos tc 
)

Red 2D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The length of itw must be consistent with the dimension of the field to be interpolated (2^n).

Return values
itwInterpolation weights.
Parameters
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 860 of file interpolation.cc.

References VectorView::get(), is_size(), and LOOPIT.

◆ interpweights() [3/17]

void interpweights ( VectorView  itw,
const GridPos tp,
const GridPos tr,
const GridPos tc 
)

Red 3D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The length of itw must be consistent with the dimension of the field to be interpolated (2^n).

Return values
itwInterpolation weights.
Parameters
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 892 of file interpolation.cc.

References VectorView::get(), is_size(), and LOOPIT.

◆ interpweights() [4/17]

void interpweights ( VectorView  itw,
const GridPos tb,
const GridPos tp,
const GridPos tr,
const GridPos tc 
)

Red 4D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The length of itw must be consistent with the dimension of the field to be interpolated (2^n).

Return values
itwInterpolation weights.
Parameters
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 927 of file interpolation.cc.

References VectorView::get(), is_size(), and LOOPIT.

◆ interpweights() [5/17]

void interpweights ( VectorView  itw,
const GridPos ts,
const GridPos tb,
const GridPos tp,
const GridPos tr,
const GridPos tc 
)

Red 5D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The length of itw must be consistent with the dimension of the field to be interpolated (2^n).

Return values
itwInterpolation weights.
Parameters
tsThe grid position for the shelf dimension.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 965 of file interpolation.cc.

References VectorView::get(), is_size(), and LOOPIT.

◆ interpweights() [6/17]

void interpweights ( VectorView  itw,
const GridPos tv,
const GridPos ts,
const GridPos tb,
const GridPos tp,
const GridPos tr,
const GridPos tc 
)

Red 6D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The length of itw must be consistent with the dimension of the field to be interpolated (2^n).

Return values
itwInterpolation weights.
Parameters
tvThe grid position for the vitrine dimension.
tsThe grid position for the shelf dimension.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri Jun 28 10:53:32 2002

Definition at line 1006 of file interpolation.cc.

References VectorView::get(), is_size(), and LOOPIT.

◆ interpweights() [7/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPos cgp 
)

Compute 1D interpolation weights.

For this 1D case there is no distinction between "blue" and "green" type interpolation.

The dimensions of itw must be consistent with cgp.

Note that we still do not need the actual field for this step.

Return values
itwInterpolation weights.
Parameters
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1363 of file interpolation.cc.

References MatrixView::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [8/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 2D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1436 of file interpolation.cc.

References MatrixView::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [9/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 3D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1493 of file interpolation.cc.

References MatrixView::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [10/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 4D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1547 of file interpolation.cc.

References MatrixView::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [11/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPos sgp,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 5D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1606 of file interpolation.cc.

References MatrixView::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [12/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPos vgp,
const ArrayOfGridPos sgp,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 6D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
vgpThe grid position Array for the vitrine dimension.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 1670 of file interpolation.cc.

References MatrixView::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [13/17]

void interpweights ( Tensor3View  itw,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 2D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2172 of file interpolation.cc.

References Tensor3View::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [14/17]

void interpweights ( Tensor4View  itw,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 3D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2234 of file interpolation.cc.

References Tensor4View::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [15/17]

void interpweights ( Tensor5View  itw,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 4D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2295 of file interpolation.cc.

References Tensor5View::get(), is_size(), LOOPIT, and Array< base >::nelem().

◆ interpweights() [16/17]

void interpweights ( Tensor6View  itw,
const ArrayOfGridPos sgp,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 5D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2364 of file interpolation.cc.

References Tensor6View::get(), is_size(), LOOPIT, Array< base >::nelem(), and ns.

◆ interpweights() [17/17]

void interpweights ( Tensor7View  itw,
const ArrayOfGridPos vgp,
const ArrayOfGridPos sgp,
const ArrayOfGridPos bgp,
const ArrayOfGridPos pgp,
const ArrayOfGridPos rgp,
const ArrayOfGridPos cgp 
)

Compute 6D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
vgpThe grid position Array for the vitrine dimension.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler sbueh.nosp@m.ler@.nosp@m.ltu.s.nosp@m.e
Date
Fri May 3 08:55:51 2002

Definition at line 2441 of file interpolation.cc.

References Tensor7View::get(), is_size(), LOOPIT, Array< base >::nelem(), and ns.

◆ is_gridpos_at_index_i()

bool is_gridpos_at_index_i ( const GridPos gp,
const Index i,
const bool &  strict 
)

is_gridpos_at_index_i

Determines if a grid position is at a given grid index.

Returns
True if at index i, else false.
Parameters
gpGrid position structure.
iThe grid index of interest.
strictIf true, fractional distances are demanded to be exactly 0 or 1. Otherwise FD_TOL is considered.
Author
Patrick Eriksson
Date
2002-05-22

Definition at line 702 of file interpolation.cc.

References GridPos::fd, FD_TOL, and GridPos::idx.

Referenced by iy_interp_cloudbox_field(), ppath_calc(), ppath_start_2d(), and ppath_start_3d().

◆ operator<<()

ostream& operator<< ( ostream &  os,
const GridPos gp 
)

Output operator for GridPos.

This is just intended for testing and debugging.

Parameters
osOutput stream.
gpGrid position.
Returns
The output stream.

Definition at line 105 of file interpolation.cc.

References GridPos::fd, and GridPos::idx.

◆ polint()

void polint ( Numeric y_int,
Numeric dy_int,
ConstVectorView  xa,
ConstVectorView  ya,
const Index n,
const Numeric x 
)

Polynomial interpolation.

This function performs a polinomial interpolation. Given arrays xa(n) and ya(n), and a given value x, this function returns a value y and an error estimate dy. This function is (almost) copied from: Numerical Recipies in C, pages 108-110.

Parameters
y_intinterpolated value
dy_interror estimate
xaoriginal grid (n elements)
yacorresponding values (n elements)
norder of polynom
xrequested grid point
Returns
interpolated value
Author
Claudia Emde
Date
2004-03-12

Definition at line 3141 of file interpolation.cc.

References abs, ns, and w().

Referenced by interp_poly().