101 const Index& atmosphere_dim,
108 if( atmosphere_dim == 1 )
114 else if( atmosphere_dim == 2 )
116 assert( gp_lat.
nelem() == n );
121 else if( atmosphere_dim == 3 )
123 assert( gp_lat.
nelem() == n );
124 assert( gp_lon.
nelem() == n );
161 const Index& atmosphere_dim,
170 if( atmosphere_dim == 1 )
172 assert( itw.
ncols() == 2 );
176 else if( atmosphere_dim == 2 )
178 assert( itw.
ncols() == 4 );
182 else if( atmosphere_dim == 3 )
184 assert( itw.
ncols() == 8 );
185 interp( x, itw, x_field, gp_p, gp_lat, gp_lon );
217 const Index& atmosphere_dim,
241 const Index& atmosphere_dim,
251 if( atmosphere_dim > 1 )
257 if( atmosphere_dim > 2 )
309 const Index& atmosphere_dim,
313 if( atmosphere_dim == 1 )
316 gp_p_out.
idx -= cloudbox_limits[0];
318 assert(itw.
nelem() == 2 );
321 else if( atmosphere_dim == 2 )
325 gp_p_out.
idx -= cloudbox_limits[0];
326 gp_lat_out.
idx -= cloudbox_limits[2];
329 assert(itw.
nelem() == 4 );
337 gp_p_out.
idx -= cloudbox_limits[0];
338 gp_lat_out.
idx -= cloudbox_limits[2];
339 gp_lon_out.
idx -= cloudbox_limits[4];
343 assert(itw.
nelem() == 8 );
373 const Index& atmosphere_dim,
377 if( atmosphere_dim == 1 )
383 else if( atmosphere_dim == 2 )
390 else if( atmosphere_dim == 3 )
393 assert( n == gp_lon.
nelem() );
429 const Index& atmosphere_dim,
435 if( atmosphere_dim == 1 )
437 assert( itw.
ncols() == 1 );
441 else if( atmosphere_dim == 2 )
444 assert( itw.
ncols() == 2 );
448 else if( atmosphere_dim == 3 )
451 assert( itw.
ncols() == 4 );
452 interp( x, itw, x_surface, gp_lat, gp_lon );
483 const Index& atmosphere_dim,
505 const Index& atmosphere_dim,
512 if( atmosphere_dim > 1 )
518 if( atmosphere_dim > 2 )
567 assert( itw.
ncols() == 2 );
575 interp( p_values, itw, logpgrid, gp );
620 gridpos( gp, logold, lognew, extpolfac );
692 const Index& atmosphere_dim,
701 if( atmosphere_dim == 1 )
717 gridpos( gp_lat, lat_grid, rte_pos[1] );
719 if( atmosphere_dim == 2 )
721 for(
Index i=0; i<np; i++ )
722 { agp_lat[i] = gp_lat; }
731 gridpos( gp_lon, lon_grid, rte_pos[2] );
733 for(
Index i=0; i<np; i++ )
740 interp( z_grid, itw, z_field, agp_z, agp_lat, agp_lon );
746 gridpos( gp_p, z_grid, rte_pos[0] );
784 assert( z.
nelem() == np );
785 assert( z_field.nrows() == np );
786 assert( z_field.ncols() == lat_grid.nelem() );
793 gridpos( gp_z, p_grid, p_grid );
795 interp( z_matrix, itw, z_field, gp_z, agp_lat );
839 assert( z.
nelem() == np );
840 assert( z_field.npages() == np );
841 assert( z_field.nrows() == lat_grid.nelem() );
842 assert( z_field.ncols() == lon_grid.
nelem() );
850 gridpos( agp_z, p_grid, p_grid );
853 interp( z_tensor, itw, z_field, agp_z, agp_lat, agp_lon );
889 Index gfield_fID = 0;
890 Index gfield_tID = 1;
891 Index gfield_compID = 2;
904 os <<
"The data in *" << varname <<
"* must have exactly two pages. One page " 905 <<
"each\nfor the real and imaginary part of the complex refractive index.";
915 assert( n_real.
nrows() == nf_out && n_real.
ncols() == nt_out );
916 assert( n_imag.
nrows() == nf_out && n_imag.
ncols() == nt_out );
923 Matrix nrf(nf_out,nt_in), nif(nf_out,nt_in);
927 for(
Index i=0; i<nf_out; i++ )
939 gridpos( gp, f_grid_in, f_grid );
941 for(
Index i=0; i<nt_in; i++ )
952 for(
Index i=0; i<nt_out; i++ )
964 gridpos( gp, t_grid_in, t_grid );
966 for(
Index i=0; i<nf_out; i++ )
INDEX Index
The type to use for all integer numbers and indices.
void interp_atmsurface_by_itw(VectorView x, const Index &atmosphere_dim, ConstMatrixView x_surface, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon, ConstMatrixView itw)
interp_atmsurface_by_itw
Index nelem() const
Number of elements.
Declarations having to do with the four output streams.
void interp_atmfield_by_gp(VectorView x, const Index &atmosphere_dim, ConstTensor3View x_field, const ArrayOfGridPos &gp_p, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon)
interp_atmfield_by_gp
void gridpos_upperend_check(GridPos &gp, const Index &ie)
gridpos_upperend_check
ConstVectorView get_numeric_grid(Index i) const
Get a numeric grid.
Numeric interp(ConstVectorView itw, ConstVectorView a, const GridPos &tc)
Red 1D Interpolate.
virtual void checksize_strict() const
Strict consistency check.
void p2gridpos(ArrayOfGridPos &gp, ConstVectorView old_pgrid, ConstVectorView new_pgrid, const Numeric &extpolfac)
p2gridpos
Index nrows() const
Returns the number of rows.
void interp_atmsurface_by_gp(VectorView x, const Index &atmosphere_dim, ConstMatrixView x_surface, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon)
interp_atmsurface_by_gp
Index nelem() const
Returns the number of elements.
Structure to store a grid position.
The implementation for String, the ARTS string class.
Index ncols() const
Returns the number of columns.
void p2gridpos_poly(ArrayOfGridPosPoly &gp, ConstVectorView old_pgrid, ConstVectorView new_pgrid, const Index order, const Numeric &extpolfac)
p2gridpos_poly
Index ncols() const
Returns the number of columns.
void interp_cloudfield_gp2itw(VectorView itw, GridPos &gp_p_out, GridPos &gp_lat_out, GridPos &gp_lon_out, const GridPos &gp_p_in, const GridPos &gp_lat_in, const GridPos &gp_lon_in, const Index &atmosphere_dim, const ArrayOfIndex &cloudbox_limits)
interp_cloudfield_gp2itw
void gridpos(ArrayOfGridPos &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Numeric &extpolfac)
Set up a grid position Array.
NUMERIC Numeric
The type to use for all floating point numbers.
void z_at_latlon(VectorView z, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, const GridPos &gp_lat, const GridPos &gp_lon)
z_at_latlon
void z_at_lat_2d(VectorView z, ConstVectorView p_grid, ConstVectorView lat_grid, ConstMatrixView z_field, const GridPos &gp_lat)
z_at_lat_2d
void gridpos_poly(ArrayOfGridPosPoly &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Index order, const Numeric &extpolfac)
Set up grid positions for higher order interpolation.
void gridpos_copy(GridPos &gp_new, const GridPos &gp_old)
gridpos_copy
void interp_atmfield_gp2itw(Matrix &itw, const Index &atmosphere_dim, const ArrayOfGridPos &gp_p, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon)
interp_atmfield_gp2itw
Header file for special_interp.cc.
Index npages() const
Returns the number of pages.
void rte_pos2gridpos(GridPos &gp_p, GridPos &gp_lat, GridPos &gp_lon, const Index &atmosphere_dim, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstVectorView rte_pos)
rte_pos2gridpos
A constant view of a Tensor3.
A constant view of a Vector.
A constant view of a Matrix.
void transform(VectorView y, double(&my_func)(double), ConstVectorView x)
A generic transform function for vectors, which can be used to implement mathematical functions opera...
void interp_atmsurface_gp2itw(Matrix &itw, const Index &atmosphere_dim, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon)
interp_atmsurface_gp2itw
void gridpos_1to1(ArrayOfGridPos &gp, ConstVectorView grid)
gridpos_1to1
void complex_n_interp(MatrixView n_real, MatrixView n_imag, const GriddedField3 &complex_n, const String &varname, ConstVectorView f_grid, ConstVectorView t_grid)
complex_n_interp
void interpweights(VectorView itw, const GridPos &tc)
Red 1D interpolation weights.
Index nrows() const
Returns the number of rows.
void interp_atmfield_by_itw(VectorView x, const Index &atmosphere_dim, ConstTensor3View x_field, const ArrayOfGridPos &gp_p, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon, ConstMatrixView itw)
interp_atmfield_by_itw
void itw2p(VectorView p_values, ConstVectorView p_grid, const ArrayOfGridPos &gp, ConstMatrixView itw)
itw2p
void resize(Index r, Index c)
Resize function.