Remap Reference Manual

0

Generated by Doxygen 1.3.9.1

Wed Apr 19 14:36:57 2006

Contents

1 Remap Directory Hierarchy 1 1.1 Remap Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Remap Hierarchical Index 3 2.1 Remap Class Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Remap Class Index 5 3.1 Remap Class List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 Remap File Index 7 4.1 Remap File List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

5 Remap Directory Documentation 9 5.1 src/Pixel/ Directory Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2 src/VFiles/seviri_latlon/ Directory Reference . . . . . . . . . . . . . . . . . . . . . 10 5.3 src/ Directory Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.4 src/VFiles/ Directory Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

6 Remap Class Documentation 13 6.1 grid_type_Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.2 Nearer_from< Pixel_type > Class Template Reference . . . . . . . . . . . . . . . 17 6.3 Pixel_base< T, V > Class Template Reference . . . . . . . . . . . . . . . . . . . . 18 6.4 PRODUCT Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.5 VFile Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.6 VHdf Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.7 VHdf_Seviri Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.8 VIIR Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.9 VModis Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.10 VXRIT_SEVIRI Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7 Remap File Documentation 37

7.1 src/allocation.hpp File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.2 src/common.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 7.3 src/debug.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.4 src/Pixel/debug.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.5 src/VFiles/debug.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 7.6 src/filetypes.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.7 src/grid.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.8 src/hdf_utils.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.9 src/parse_argument.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.10 src/Pixel/Pixel.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.11 src/reproject.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.12 src/tokenize.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.13 src/VFiles/normalize_cal_factors.h File Reference . . . . . . . . . . . . . . . . . . 55 7.14 src/VFiles/seviri_latlon/geostat.h File Reference . . . . . . . . . . . . . . . . . . . 56 7.15 src/VFiles/VFile.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 7.16 src/VFiles/VFiles.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 7.17 src/VFiles/VHdf.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 7.18 src/VFiles/VHdf_Seviri.h File Reference . . . . . . . . . . . . . . . . . . . . . . . 61 7.19 src/VFiles/VIIR.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 7.20 src/VFiles/VModis.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 63 7.21 src/VFiles/VModis_interpol.h File Reference . . . . . . . . . . . . . . . . . . . . . 64 7.22 src/VFiles/VModis_latlon_resolve.h File Reference . . . . . . . . . . . . . . . . . 66 7.23 src/VFiles/VXRIT_SEVIRI.h File Reference . . . . . . . . . . . . . . . . . . . . . 67

Chapter 1

Remap Directory Hierarchy

1.1 Remap Directories

This directory hierarchy is sorted roughly, but not completely, alphabetically:

src . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Pixel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 VFiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

seviri_latlon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2  Remap Directory Hierarchy

Chapter 2

Remap Hierarchical Index

2.1 Remap Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:

grid_type_. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Nearer_from< Pixel_type > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Pixel_base< T, V > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 PRODUCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 VFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

VHdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 VHdf_Seviri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 VIIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 VModis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

VXRIT_SEVIRI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4  Remap Hierarchical Index

Remap Class Index

3.1 Remap Class List

Here are the classes, structs, unions and interfaces with brief descriptions:

grid_type_. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Nearer_from< Pixel_type > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Pixel_base< T, V > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 PRODUCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 VFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 VHdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 VHdf_Seviri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 VIIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 VModis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 VXRIT_SEVIRI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6  Remap Class Index

Remap File Index

4.1 Remap File List

Here is a list of all files with brief descriptions:

src/allocation.hpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 src/common.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 src/debug.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 src/filetypes.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 src/grid.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 src/hdf_utils.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 src/parse_argument.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 src/reproject.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 src/tokenize.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 src/Pixel/debug.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 src/Pixel/Pixel.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 src/VFiles/debug.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 src/VFiles/normalize_cal_factors.h . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 src/VFiles/VFile.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 src/VFiles/VFiles.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 src/VFiles/VHdf.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 src/VFiles/VHdf_Seviri.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 src/VFiles/VIIR.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 src/VFiles/VModis.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 src/VFiles/VModis_interpol.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 src/VFiles/VModis_latlon_resolve.h . . . . . . . . . . . . . . . . . . . . . . . . . . 66 src/VFiles/VXRIT_SEVIRI.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 src/VFiles/seviri_latlon/geostat.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8  Remap File Index

Chapter 5

Remap Directory Documentation

5.1 src/Pixel/ Directory Reference

Files

• file debug.h

• file Pixel.h

10  Remap Directory Documentation

5.2 src/VFiles/seviri_latlon/ Directory Reference

Files

• file geostat.h

5.3 src/ Directory Reference

Directories

• directoryPixel

• directoryVFiles

Files

• file allocation.hpp

• file common.h

• file debug.h

• file filetypes.h

• file grid.h

• file hdf_utils.h

• file parse_argument.h

• file reproject.h

• file tokenize.h

5.4 src/VFiles/ Directory Reference

Directories

• directoryseviri_latlon

Files

• file debug.h

• file normalize_cal_factors.h

• file VFile.h

• file VFiles.h

• file VHdf.h

• file VHdf_Seviri.h

• file VIIR.h

• file VModis.h

• file VModis_interpol.h

• file VModis_latlon_resolve.h

• file VXRIT_SEVIRI.h

Remap Class Documentation

6.1 grid_type_Struct Reference

#include <grid.h>

Public Attributes

• char file [STRING_MAXLEN+1]

field used as the file source or target (for the grid contents) by functions load_grid(p. 47) and save_grid(p. 48)

• char input_dataset [STRING_MAXLEN+1]

input dataset of the grid, in the input file (relevant for source and target grids)

• char output_dataset [STRING_MAXLEN+1]

output dataset of the grid, in the output file (relevant for source and target grids), should be equal to input_dataset by default

• int ichannel

only relevant for 3-dimensional input data (stacks of 2-dimensional planes), e.g. Modis. The first plane is numbered 1. Should be set to 0 when unused.

• int rank

rank of the grid buffers (should always be 2 for the time being)

• int nrows

number of rows of the grid buffers (common to all the buffers lat, lon, tim, data, distance_- from_ref, time_from_ref)

• int ncols

number of columns of the grid (common to all the buffers lat, lon tim, data, distance_from_ref, time_from_ref)

• coord_type ∗ lat

buffer for latitudes (nrows∗ncols elements)

• coord_type ∗ lon

buffer for longitudes (nrows∗ncols elements)

• time_type ∗ tim

buffer for times of acquisition (nrows∗ncols elements)

• data_type ∗ data

buffer for measures, currently in 16-bit unsigned integer counts (nrows∗ncols elements)

• distance_type ∗ distance_from_ref

buffer for distances between pixels in the target (reference) grid and their nearest neighbour in the source grid (nrows∗ncols elements)

• time_type ∗ time_from_ref

buffer for time differences between pixels in the target (reference) grid and their nearest neighbour in the source grid (nrows∗ncols elements)

• float64 slope

calibration scale factor (slope) to apply to a measure count to convert it into a physical value: phys_val = slope∗(count - offset)

• float64 offset

calibration offset factor to apply to a measure count to convert it into a physical value: phys_val = slope∗(count - offset)

• bool is_target

• int ∗ src_irows

• int ∗ src_icols

6.1.1 Detailed Description

Grids are the main data structures handled by the software. They should have been designed as a class instead of a simple struct with functions to handle it, but by lack of time the software had to be delivered as is. A rewritten code with a grid class instead of a struct should be much clearer and easier to maintain, but will need a substantial amount of time to reimplement (and of course redocument !), that is not available today.

Grids are abstracts for reprojection. Their main purpose is to handle 2-dimensional buffers of geolocated data (measures along with their latitudes, longitudes and times of acquisition). The reprojection algorithm remaps a grid of data (from one instrument product) into another one. For convenience, origin and target of the data (files and datasets) are also maintained in the structure (although this is not a very clever design, I have to confess, I hope I’ll have a chance to change this if more time is given to this project)

6.1.2 Member Data Documentation

6.1.2.1 data_type∗ grid_type_::data

buffer for measures, currently in 16-bit unsigned integer counts (nrows∗ncols elements)

6.1 grid_type_Struct Reference  15

6.1.2.2 distance_type∗ grid_type_::distance_from_ref buffer for distances between pixels in the target (reference) grid and their nearest neighbour in the source grid (nrows∗ncols elements)

6.1.2.3 char grid_type_::file[STRING_MAXLEN+1] field used as the file source or target (for the grid contents) by functions load_grid(p. 47) and save_grid(p. 48)

6.1.2.4 int grid_type_::ichannel only relevant for 3-dimensional input data (stacks of 2-dimensional planes), e.g. Modis. The first plane is numbered 1. Should be set to 0 when unused.

6.1.2.5 char grid_type_::input_dataset[STRING_MAXLEN+1] input dataset of the grid, in the input file (relevant for source and target grids)

6.1.2.6 bool grid_type_::is_target specifies if a grid is a source (is_target == false) or a target (is_target == true) currently not used (intended as a future optimization of the reprojection code, in order to reuse precomputed source rows and cols instead of recomputing them again and again)

6.1.2.7 coord_type∗ grid_type_::lat buffer for latitudes (nrows∗ncols elements)

6.1.2.8 coord_type∗ grid_type_::lon buffer for longitudes (nrows∗ncols elements)

6.1.2.9 int grid_type_::ncols number of columns of the grid (common to all the buffers lat, lon tim, data, distance_from_ref, time_from_ref)

6.1.2.10 int grid_type_::nrows number of rows of the grid buffers (common to all the buffers lat, lon, tim, data, distance_from_- ref, time_from_ref)

6.1.2.11 float64 grid_type_::offset calibration offset factor to apply to a measure count to convert it into a physical value: phys_val = slope∗(count - offset)

Generated on Wed Apr 19 14:36:57 2006 for Remap by Doxygen

6.1.2.12 char grid_type_::output_dataset[STRING_MAXLEN+1]

output dataset of the grid, in the output file (relevant for source and target grids), should be equal to input_dataset by default

6.1.2.13 int grid_type_::rank

rank of the grid buffers (should always be 2 for the time being)

6.1.2.14 float64 grid_type_::slope

calibration scale factor (slope) to apply to a measure count to convert it into a physical value: phys_val = slope∗(count - offset)

6.1.2.15 int∗ grid_type_::src_icols

buffer to store, for each pixel of the target grid, its nearest neighbour’s column in the source grid (nrows∗ncols elements); valid only if grid_type::is_target(p. 15) == true; currently not used (intended as a future optimization of the reprojection code, in order to reuse precomputed source rows and cols instead of recomputing them again and again)

6.1.2.16 int∗ grid_type_::src_irows

buffer to store, for each pixel of the target grid, its nearest neighbour’s row in the source grid (nrows∗ncols elements); valid only if grid_type::is_target(p. 15) == true; currently not used (intended as a future optimization of the reprojection code, in order to reuse precomputed source rows and cols instead of recomputing them again and again)

6.1.2.17 time_type∗ grid_type_::tim

buffer for times of acquisition (nrows∗ncols elements)

6.1.2.18 time_type∗ grid_type_::time_from_ref

buffer for time differences between pixels in the target (reference) grid and their nearest neighbour in the source grid (nrows∗ncols elements)

The documentation for this struct was generated from the following file:

• src/grid.h

6.2 Nearer_from< Pixel_type > Class Template Reference  17

6.2 Nearer_from< Pixel_type > Class Template Reference

#include <Pixel.h>

Public Member Functions

• Nearer_from (const Pixel_type &this_pixel)

• bool operator() (const Pixel_type &pixel1, const Pixel_type &pixel2) const

Private Attributes

• const Pixel_type this_pixel

template<typename Pixel_type> class Nearer_from< Pixel_type >

6.2.1 Constructor & Destructor Documentation

6.2.1.1 template<typename Pixel_type> Nearer_from< Pixel_type

>::Nearer_from (const Pixel_type & this_pixel) [inline]

6.2.2 Member Function Documentation

6.2.2.1 template<typename Pixel_type> bool Nearer_from< Pixel_type >::operator() (const Pixel_type & pixel1, const Pixel_type & pixel2) const

        [inline]

6.2.3 Member Data Documentation

6.2.3.1 template<typename Pixel_type> const Pixel_type Nearer_from<

Pixel_type >::this_pixel [private]

The documentation for this class was generated from the following file:

• src/Pixel/Pixel.h

6.3 Pixel_base< T, V > Class Template Reference

#include <Pixel.h>

Public Types

• typedef Pixel_base< T, V > Pixel_type

• typedef T coord_type

• typedef T distance_type

• typedef V value_type

• enum unit_type { RADIANS, DEGREES }

Public Member Functions

• Pixel_base ()

• Pixel_base (const coord_type lat, const coord_type lon, const value_type &val, const unit_type unit=RADIANS)

• bool operator< (const Pixel_type &other) const

• bool operator== (const Pixel_type &other) const

• coord_type lat () const

• coord_type lon () const

• value_type val () const

• distance_type distance (const Pixel_type &other) const

• void get_neighbours (std::vector< Pixel_type > &neighbours, std::multiset< Pixel_- type > &pixels, distance_type resolution, bool sorted=false) const

Static Public Member Functions

• coord_type get_resolution ()

• void set_resolution (distance_type new_resolution)

Static Public Attributes

• const coord_type DEFAULT_RESOLUTION = 1.

• const coord_type R_EARTH = 6371.005076

• const distance_type DEG2RAD = M_PI/180.

• const distance_type RAD2DEG = 180.∗M_1_PI

Private Attributes

• coord_type lat_

• coord_type lon_

• value_type val_

• int ilat

• int ilon

Static Private Attributes

• distance_type resolution = DEFAULT_RESOLUTION

6.3 Pixel_base< T, V > Class Template Reference  19

Friends

• std::ostream & operator<< (std::ostream &os, const Pixel_type &pixel)

template<typename T, typename V> class Pixel_base< T, V >

6.3.1 Member Typedef Documentation

6.3.1.1 template<typename T, typename V> typedef T Pixel_base< T, V

>::coord_type

6.3.1.2 template<typename T, typename V> typedef T Pixel_base< T, V

>::distance_type

6.3.1.3 template<typename T, typename V> typedef Pixel_base<T, V>

Pixel_base< T, V >::Pixel_type

6.3.1.4 template<typename T, typename V> typedef V Pixel_base< T, V

>::value_type

6.3.2 Member Enumeration Documentation

6.3.2.1 template<typename T, typename V> enum Pixel_base::unit_type Enumeration values:

RADIANS

DEGREES

Generated on Wed Apr 19 14:36:57 2006 for Remap by Doxygen

6.3.3 Constructor & Destructor Documentation

6.3.3.1 template<typename T, typename V> Pixel_base< T, V >::Pixel_base ()

[inline]

6.3.3.2 template<typename T, typename V> Pixel_base< T, V >::Pixel_base (const coord_type lat, const coord_type lon, const value_type & val, const unit_type unit = RADIANS) [inline]

6.3.4 Member Function Documentation

6.3.4.1 template<typename T, typename V> distance_type Pixel_base< T, V >::distance (const Pixel_type & other) const [inline]

6.3.4.2 template<typename T, typename V> void Pixel_base< T, V >::get_neighbours (std::vector< Pixel_type > & neighbours, std::multiset< Pixel_type > & pixels, distance_type resolution, bool sorted = false)

const [inline]

6.3.4.3 template<typename T, typename V> coord_type Pixel_base< T, V >::get_resolution () [inline, static]

6.3.4.4 template<typename T, typename V> coord_type Pixel_base< T, V >::lat

() const [inline]

6.3.4.5 template<typename T, typename V> coord_type Pixel_base< T, V >::lon

() const [inline]

6.3.4.6 template<typename T, typename V> bool Pixel_base< T, V >::operator< (const Pixel_type & other) const [inline]

6.3.4.7 template<typename T, typename V> bool Pixel_base< T, V >::operator== (const Pixel_type & other) const [inline]

6.3.4.8 template<typename T, typename V> void Pixel_base< T, V >::set_resolution (distance_type new_resolution) [inline, static]

6.3.4.9 template<typename T, typename V> value_type Pixel_base< T, V >::val

() const [inline]

6.3.5 Friends And Related Function Documentation

6.3.5.1 template<typename T, typename V> std::ostream& operator<< (std::ostream & os, const Pixel_type & pixel) [friend]

6.3.6 Member Data Documentation

6.3.6.1 template<typename T, typename V> const Pixel_base< T, V >::coord_type Pixel_base< T, V >::DEFAULT_RESOLUTION = 1.

[static]

6.3.6.2 template<typename T, typename V> const Pixel_base< T, V >::distance_type Pixel_base< T, V >::DEG2RAD = M_PI/180. [static]

6.3.6.3 template<typename T, typename V> int Pixel_base< T, V >::ilat

[private]

6.3.6.4 template<typename T, typename V> int Pixel_base< T, V >::ilon

[private]

6.3.6.5 template<typename T, typename V> coord_type Pixel_base< T, V

>::lat_[private]

6.3.6.6 template<typename T, typename V> coord_type Pixel_base< T, V

>::lon_[private]

6.3.6.7 template<typename T, typename V> const Pixel_base< T, V >::coord_type Pixel_base< T, V >::R_EARTH = 6371.005076 [static]

6.3.6.8 template<typename T, typename V> const Pixel_base< T, V >::distance_type Pixel_base< T, V >::RAD2DEG = 180.∗M_1_PI

[static]

6.3.6.9 template<typename T, typename V> Pixel_base< T, V >::distance_type Pixel_base< T, V >::resolution = DEFAULT_RESOLUTION [static,

private]

6.3.6.10 template<typename T, typename V> value_type Pixel_base< T, V

 >::val_[private]

The documentation for this class was generated from the following file:

Generated on Wed Apr 19 14:36:57 2006 for Remap by Doxygen

6.3 Pixel_base< T, V > Class Template Reference  21

• src/Pixel/Pixel.h

Generated on Wed Apr 19 14:36:57 2006 for Remap by Doxygen

22  Remap Class Documentation

6.4 PRODUCT Struct Reference

#include <VModis_interpol.h>

Public Attributes

• struct {

int Nl int Np

} sds

• struct {

PROJTYPE type } projparam

• int Nl_geo

• int Np_geo

• float rowoffset

• float rowstep

• float coloffset

• float colstep

6.4.1 Member Data Documentation

6.4.1.1 float PRODUCT::coloffset 6.4.1.2 float PRODUCT::colstep 6.4.1.3 int PRODUCT::Nl 6.4.1.4 int PRODUCT::Nl_geo 6.4.1.5 int PRODUCT::Np 6.4.1.6 int PRODUCT::Np_geo 6.4.1.7 struct { ... } PRODUCT::projparam 6.4.1.8 float PRODUCT::rowoffset 6.4.1.9 float PRODUCT::rowstep 6.4.1.10 struct { ... } PRODUCT::sds 6.4.1.11 PROJTYPE PRODUCT::type The documentation for this struct was generated from the following file:

• src/VFiles/VModis_interpol.h

6.5 VFile Class Reference

#include <VFile.h>

Inheritance diagram for VFile::

Public Member Functions

• VFile (const char ∗filename, const char ∗dataset, int ichannel=0, const char ∗sds_time=NULL, const char ∗sds_latitude="Latitude", const char ∗sds_- longitude="Longitude")

• virtual std::string filename () const

• virtual std::string dataset () const

• virtual ∼VFile ()

• virtual void get_calibration (double &slope, double &offset) const =0

• virtual coord_type ∗ lat () const =0

• virtual coord_type ∗ lon () const =0

• virtual time_type ∗ time () const =0

• virtual data_type ∗ data () const =0

• virtual std::vector< int > dimensions () const

• virtual int rank () const

• virtual int dimension (int idim) const

Protected Attributes

• char latlon_filename_[STRING_MAXLEN+1]

• char time_filename_[STRING_MAXLEN+1]

• char data_filename_[STRING_MAXLEN+1]

• char sds_lat_[STRING_MAXLEN+1]

• char sds_lon_[STRING_MAXLEN+1]

• char sds_time_[STRING_MAXLEN+1]

• char sds_data_[STRING_MAXLEN+1]

• int ichannel_

• std::vector< int > dimensions_

24  Remap Class Documentation

6.5.1 Constructor & Destructor Documentation

6.5.1.1 VFile::VFile (const char ∗ filename, const char ∗ dataset, int ichannel = 0, const char ∗ sds_time = NULL, const char ∗ sds_latitude = "Latitude", const char ∗ sds_longitude = "Longitude") [inline]

6.5.1.2 virtual VFile::∼VFile () [inline, virtual]

6.5.2 Member Function Documentation

6.5.2.1 virtual data_type∗ VFile::data () const [pure virtual] Implemented in VHdf (p. 27), VModis (p. 31), and VXRIT_SEVIRI (p. 34).

6.5.2.2 virtual std::string VFile::dataset () const [inline, virtual] 6.5.2.3 virtual int VFile::dimension (int idim) const [inline, virtual] 6.5.2.4 virtual std::vector<int> VFile::dimensions () const [inline, virtual] 6.5.2.5 virtual std::string VFile::filename () const [inline, virtual] 6.5.2.6 virtual void VFile::get_calibration (double & slope, double & offset) const

        [pure virtual]

Implemented in VHdf (p. 27), VHdf_Seviri (p. 29), VIIR (p. 30), VModis (p. 32), and VXRIT_SEVIRI (p. 34).

6.5.2.7 virtual coord_type∗ VFile::lat () const [pure virtual] Implemented in VHdf (p. 27), VModis (p. 32), and VXRIT_SEVIRI (p. 34).

6.5.2.8 virtual coord_type∗ VFile::lon () const [pure virtual] Implemented in VHdf (p. 27), VModis (p. 32), and VXRIT_SEVIRI (p. 34).

6.5.2.9 virtual int VFile::rank () const [inline, virtual] 6.5.2.10 virtual time_type∗ VFile::time () const [pure virtual] Implemented in VHdf (p. 28), VModis (p. 32), and VXRIT_SEVIRI (p. 34).

Generated on Wed Apr 19 14:36:57 2006 for Remap by Doxygen

6.5 VFile Class Reference  25

6.5.3 Member Data Documentation

6.5.3.1 char VFile::data_filename_[STRING_MAXLEN+1] [protected] 6.5.3.2 std::vector<int> VFile::dimensions_[protected] 6.5.3.3 int VFile::ichannel_[protected] 6.5.3.4 char VFile::latlon_filename_[STRING_MAXLEN+1] [protected] 6.5.3.5 char VFile::sds_data_[STRING_MAXLEN+1] [protected] 6.5.3.6 char VFile::sds_lat_[STRING_MAXLEN+1] [protected] 6.5.3.7 char VFile::sds_lon_[STRING_MAXLEN+1] [protected] 6.5.3.8 char VFile::sds_time_[STRING_MAXLEN+1] [protected] 6.5.3.9 char VFile::time_filename_[STRING_MAXLEN+1] [protected] The documentation for this class was generated from the following file:

• src/VFiles/VFile.h

6.6 VHdf Class Reference

#include <VHdf.h>

Inheritance diagram for VHdf::

Public Member Functions

• VHdf (const char ∗filename, const char ∗dataset, int ichannel=0, const char ∗sds_time=NULL, const char ∗sds_latitude="Latitude", const char ∗sds_- longitude="Longitude")

• int ichannel ()

• virtual void get_calibration (double &slope, double &offset) const

• coord_type ∗ lat () const

• coord_type ∗ lon () const

• time_type ∗ time () const

• data_type ∗ data () const

• virtual ∼VHdf ()

Protected Member Functions

• virtual void read_data_2D (const char ∗dataset)

• virtual void read_data_3D (const char ∗dataset, int ichannel)

• virtual void read_lat_lon_time ()=0

• virtual void destroy ()

Protected Attributes

• float32 ∗ lat_

• float32 ∗ lon_

• time_type ∗ time_

• uint16 ∗ data_

6.6 VHdf Class Reference  27

6.6.1 Constructor & Destructor Documentation

6.6.1.1 VHdf::VHdf (const char ∗ filename, const char ∗ dataset, int ichannel = 0, const char ∗ sds_time = NULL, const char ∗ sds_latitude = "Latitude", const char ∗ sds_longitude = "Longitude")

6.6.1.2 virtual VHdf::∼VHdf () [virtual]

6.6.2 Member Function Documentation

6.6.2.1 data_type∗ VHdf::data () const [inline, virtual] Implements VFile (p. 24). Reimplemented in VModis (p. 31).

6.6.2.2 virtual void VHdf::destroy () [protected, virtual] Reimplemented in VModis (p. 32).

6.6.2.3 virtual void VHdf::get_calibration (double & slope, double & offset) const

        [virtual]

Implements VFile (p. 24). Reimplemented in VHdf_Seviri (p. 29), VIIR (p. 30), and VModis (p. 32).

6.6.2.4 int VHdf::ichannel () [inline] Reimplemented in VModis (p. 32).

6.6.2.5 coord_type∗ VHdf::lat () const [inline, virtual] Implements VFile (p. 24). Reimplemented in VModis (p. 32).

6.6.2.6 coord_type∗ VHdf::lon () const [inline, virtual] Implements VFile (p. 24). Reimplemented in VModis (p. 32).

6.6.2.7 virtual void VHdf::read_data_2D (const char ∗ dataset) [protected,

        virtual]

6.6.2.8 virtual void VHdf::read_data_3D (const char ∗ dataset, int ichannel)

        [protected, virtual]

6.6.2.9 virtual void VHdf::read_lat_lon_time () [protected, pure virtual] Implemented in VHdf_Seviri (p. 29), VIIR (p. 30), and VModis (p. 32).

Generated on Wed Apr 19 14:36:57 2006 for Remap by Doxygen

28  Remap Class Documentation

6.6.2.10 time_type∗ VHdf::time () const [inline, virtual] Implements VFile (p. 24). Reimplemented in VModis (p. 32).

6.6.3 Member Data Documentation

6.6.3.1 uint16∗ VHdf::data_[protected] 6.6.3.2 float32∗ VHdf::lat_[protected] 6.6.3.3 float32∗ VHdf::lon_[protected] 6.6.3.4 time_type∗ VHdf::time_[protected] The documentation for this class was generated from the following file:

• src/VFiles/VHdf.h

6.7 VHdf_Seviri Class Reference  29

6.7 VHdf_Seviri Class Reference

#include <VHdf_Seviri.h>

Inheritance diagram for VHdf_Seviri::

Public Member Functions

• VHdf_Seviri (const char ∗filename, const char ∗dataset)

• void get_calibration (double &slope, double &offset) const

Protected Member Functions

• void read_lat_lon_time ()

6.7.1 Constructor & Destructor Documentation

6.7.1.1 VHdf_Seviri::VHdf_Seviri (const char ∗ filename, const char ∗ dataset)

6.7.2 Member Function Documentation

6.7.2.1 void VHdf_Seviri::get_calibration (double & slope, double & offset) const

        [virtual]

Reimplemented from VHdf (p. 27).

6.7.2.2 void VHdf_Seviri::read_lat_lon_time () [protected, virtual] Implements VHdf (p. 27). The documentation for this class was generated from the following file:

• src/VFiles/VHdf_Seviri.h

30  Remap Class Documentation

6.8 VIIR Class Reference

#include <VIIR.h>

Inheritance diagram for VIIR::

Public Member Functions

• VIIR (const char ∗filename, const char ∗dataset, int ichannel=0)

• void get_calibration (double &slope, double &offset) const

Protected Member Functions

• void read_lat_lon_time ()

6.8.1 Constructor & Destructor Documentation

6.8.1.1 VIIR::VIIR (const char ∗ filename, const char ∗ dataset, int ichannel = 0)

6.8.2 Member Function Documentation

6.8.2.1 void VIIR::get_calibration (double & slope, double & offset) const

        [virtual]

Reimplemented from VHdf (p. 27).

6.8.2.2 void VIIR::read_lat_lon_time () [protected, virtual] Implements VHdf (p. 27). The documentation for this class was generated from the following file:

• src/VFiles/VIIR.h

6.9 VModis Class Reference

#include <VModis.h>

Inheritance diagram for VModis::

Public Member Functions

• VModis (const char ∗filename, const char ∗dataset, int ichannel=0)

• int ichannel ()

• void get_calibration (double &slope, double &offset) const

• coord_type ∗ lat () const

• coord_type ∗ lon () const

• time_type ∗ time () const

• data_type ∗ data () const

• ∼VModis ()

Protected Member Functions

• void read_lat_lon_time ()

• void destroy ()

Private Member Functions

• void interpol (int sample_nrows, int sample_ncols, const coord_type ∗sample_lat, const coord_type ∗sample_lon, int full_nrows, int full_ncols, coord_type ∗full_lat, coord_- type ∗full_lon)

6.9.1 Constructor & Destructor Documentation

6.9.1.1 VModis::VModis (const char ∗ filename, const char ∗ dataset, int ichannel = 0)

6.9.1.2 VModis::∼VModis ()

6.9.2 Member Function Documentation

6.9.2.1 data_type∗ VModis::data () const [inline, virtual]

Reimplemented from VHdf (p. 27).

32  Remap Class Documentation

6.9.2.2 void VModis::destroy () [protected, virtual] Reimplemented from VHdf (p. 27).

6.9.2.3 void VModis::get_calibration (double & slope, double & offset) const

        [virtual]

Reimplemented from VHdf (p. 27).

6.9.2.4 int VModis::ichannel () [inline] Reimplemented from VHdf (p. 27).

6.9.2.5 void VModis::interpol (int sample_nrows, int sample_ncols, const coord_type ∗ sample_lat, const coord_type ∗ sample_lon, int full_nrows, int full_ncols, coord_type ∗ full_lat, coord_type ∗ full_lon) [private]

6.9.2.6 coord_type∗ VModis::lat () const [inline, virtual] Reimplemented from VHdf (p. 27).

6.9.2.7 coord_type∗ VModis::lon () const [inline, virtual] Reimplemented from VHdf (p. 27).

6.9.2.8 void VModis::read_lat_lon_time () [protected, virtual] Implements VHdf (p. 27).

6.9.2.9 time_type∗ VModis::time () const [inline, virtual] Reimplemented from VHdf (p. 28). The documentation for this class was generated from the following file:

• src/VFiles/VModis.h

6.10 VXRIT_SEVIRI Class Reference

#include <VXRIT_SEVIRI.h>

Inheritance diagram for VXRIT_SEVIRI::

Public Member Functions

• VXRIT_SEVIRI (const char ∗filename, const char ∗dataset)

• void get_calibration (double &slope, double &offset) const

• coord_type ∗ lat () const

• coord_type ∗ lon () const

• time_type ∗ time () const

• data_type ∗ data () const

• ∼VXRIT_SEVIRI ()

Private Member Functions

• void read_seviri_latlon (const char ∗filename, size_t nbuffer, float ∗buffer)

• void allocate (size_t n)

• void destroy ()

Private Attributes

• float ∗ lat_

• float ∗ lon_

• time_type ∗ time_

• uint16_t ∗ data_

• MSG_Prologue prologue_

Static Private Attributes

• const int SEVIRI_NROWS = 3712

• const int SEVIRI_NCOLS = 3712

34  Remap Class Documentation

6.10.1 Constructor & Destructor Documentation

6.10.1.1 VXRIT_SEVIRI::VXRIT_SEVIRI (const char ∗ filename, const char ∗

dataset)

6.10.1.2 VXRIT_SEVIRI::∼VXRIT_SEVIRI ()

6.10.2 Member Function Documentation

6.10.2.1 void VXRIT_SEVIRI::allocate (size_t n) [private] 6.10.2.2 data_type∗ VXRIT_SEVIRI::data () const [inline, virtual] Implements VFile (p. 24).

6.10.2.3 void VXRIT_SEVIRI::destroy () [private] 6.10.2.4 void VXRIT_SEVIRI::get_calibration (double & slope, double & offset)

          const [virtual]

Implements VFile (p. 24).

6.10.2.5 coord_type∗ VXRIT_SEVIRI::lat () const [inline, virtual] Implements VFile (p. 24).

6.10.2.6 coord_type∗ VXRIT_SEVIRI::lon () const [inline, virtual] Implements VFile (p. 24).

6.10.2.7 void VXRIT_SEVIRI::read_seviri_latlon (const char ∗ filename, size_t

nbuffer, float ∗ buffer) [private]

6.10.2.8 time_type∗ VXRIT_SEVIRI::time () const [inline, virtual] Implements VFile (p. 24).

Generated on Wed Apr 19 14:36:57 2006 for Remap by Doxygen

6.10 VXRIT_SEVIRI Class Reference  35

6.10.3 Member Data Documentation

6.10.3.1 uint16_t∗ VXRIT_SEVIRI::data_[private] 6.10.3.2 float∗ VXRIT_SEVIRI::lat_[private] 6.10.3.3 float∗ VXRIT_SEVIRI::lon_[private] 6.10.3.4 MSG_Prologue VXRIT_SEVIRI::prologue_[private] 6.10.3.5 const int VXRIT_SEVIRI::SEVIRI_NCOLS = 3712 [static, private] 6.10.3.6 const int VXRIT_SEVIRI::SEVIRI_NROWS = 3712 [static, private] 6.10.3.7 time_type∗ VXRIT_SEVIRI::time_[private] The documentation for this class was generated from the following file:

• src/VFiles/VXRIT_SEVIRI.h

36  Remap Class Documentation

Remap File Documentation

7.1 src/allocation.hpp File Reference

#include <new>
#include <cassert>

Defines

• #define PDEBUG

Functions

• template<typename data_type> void allocate (data_type ∗∗&data, int nrows, int ncols)

• template<typename data_type> void deallocate (data_type ∗∗&data)

7.1.1 Define Documentation

7.1.1.1 #define PDEBUG

7.1.2 Function Documentation

7.1.2.1 template<typename data_type> void allocate (data_type ∗∗& data, int

nrows, int ncols)

7.1.2.2 template<typename data_type> void deallocate (data_type ∗∗& data)

7.2 src/common.h File Reference

#include <iostream>
#include <cassert>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <stdint.h>
#include <ctime>
#include "Hdf.hpp"
#include "debug.h"

Defines

• #define STRING_MAXLEN 255

• #define APPNAME "remap"

• #define OPT_VERBOSE 0x00000001

• #define DATA_TYPE_MIN 0

• #define DATA_TYPE_MAX 65535

• #define HDF_COORD_TYPE DFNT_FLOAT32

• #define HDF_DISTANCE_TYPE DFNT_FLOAT32

• #define HDF_TIME_TYPE DFNT_FLOAT64

• #define HDF_DATA_TYPE DFNT_UINT16

• #define DATA_TYPE uint16_t

• #define FLOAT_TYPE float

Typedefs

• typedef FLOAT_TYPE float_type

• typedef float_type distance_type

• typedef float_type coord_type

• typedef float64 time_type

• typedef DATA_TYPE data_type

Variables

• const float FLOAT_NAN = 0./0.

• const double DOUBLE_NAN = 0./0.

• const distance_type DEFAULT_DISTANCE_FILL_VALUE = FLOAT_NAN • const coord_type DEFAULT_COORD_FILL_VALUE = FLOAT_NAN

• const time_type DEFAULT_TIME_FILL_VALUE = DOUBLE_NAN

• const data_type DEFAULT_DATA_FILL_VALUE = DATA_TYPE_MAX

• bool g_verbose

7.2 src/common.h File Reference  39

7.2.1 Define Documentation

7.2.1.1 #define APPNAME "remap" 7.2.1.2 #define DATA_TYPE uint16_t 7.2.1.3 #define DATA_TYPE_MAX 65535 7.2.1.4 #define DATA_TYPE_MIN 0 7.2.1.5 #define FLOAT_TYPE float 7.2.1.6 #define HDF_COORD_TYPE DFNT_FLOAT32 7.2.1.7 #define HDF_DATA_TYPE DFNT_UINT16 7.2.1.8 #define HDF_DISTANCE_TYPE DFNT_FLOAT32 7.2.1.9 #define HDF_TIME_TYPE DFNT_FLOAT64 7.2.1.10 #define OPT_VERBOSE 0x00000001 7.2.1.11 #define STRING_MAXLEN 255

7.2.2 Typedef Documentation

7.2.2.1 typedef float_type coord_type 7.2.2.2 typedef DATA_TYPE data_type 7.2.2.3 typedef float_type distance_type 7.2.2.4 typedef FLOAT_TYPE float_type 7.2.2.5 typedef float64 time_type

7.2.3 Variable Documentation

7.2.3.1 const coord_type DEFAULT_COORD_FILL_VALUE = FLOAT_NAN 7.2.3.2 const data_type DEFAULT_DATA_FILL_VALUE =

DATA_TYPE_MAX

7.2.3.3 const distance_type DEFAULT_DISTANCE_FILL_VALUE =

FLOAT_NAN

7.2.3.4 const time_type DEFAULT_TIME_FILL_VALUE = DOUBLE_NAN 7.2.3.5 const double DOUBLE_NAN = 0./0. 7.2.3.6 const float FLOAT_NAN = 0./0. 7.2.3.7 bool g_verbose

Generated on Wed Apr 19 14:36:57 2006 for Remap by Doxygen

40  Remap File Documentation

7.3 src/debug.h File Reference

#include <iostream>
#include <cassert>

Defines

• #define Debug(code)

• #define PDEBUG

• #define Bench(code) do { code } while (0)

7.3.1 Define Documentation

7.3.1.1 #define Bench(code) do { code } while (0) 7.3.1.2 #define Debug(code) 7.3.1.3 #define PDEBUG

7.4 src/Pixel/debug.h File Reference

#include <iostream>
#include <cassert>
#include <ctime>

Defines

• #define Debug(code)

• #define Bench(code) do { code } while (0)

7.4.1 Define Documentation

7.4.1.1 #define Bench(code) do { code } while (0)

7.4.1.2 #define Debug(code)

42  Remap File Documentation

7.5 src/VFiles/debug.h File Reference

#include <iostream>
#include <cassert>

Defines

• #define Debug(code)

• #define PDEBUG

• #define Bench(code) do { code } while (0)

7.5.1 Define Documentation

7.5.1.1 #define Bench(code) do { code } while (0) 7.5.1.2 #define Debug(code) 7.5.1.3 #define PDEBUG

7.6 src/filetypes.h File Reference

Enumerations

• enum filetype_type {

FILETYPE_MODIS_AQUA_1KM, FILETYPE_MODIS_TERRA_1KM, FILETYPE_CAL_IIR_L1, FILETYPE_HDF_SEVIRI,

FILETYPE_XRIT_SEVIRI, FILETYPE_UNKNOWN }

Functions

• char ∗ filetype_to_cstr (filetype_type filetype)

• filetype_type get_filetype (const char ∗filename)

• void print_supported_filetypes ()

7.6.1 Enumeration Type Documentation

7.6.1.1 enum filetype_type

Enum type for filetypes (files identifiers). Once a file is resolved into a filetype (or file identifier), the latter will be used to instantiate a specific file object able to handle its contents

Enumeration values: FILETYPE_MODIS_AQUA_1KM enum code identifying MYD021KM files (Modis over Aqua products)

FILETYPE_MODIS_TERRA_1KM enum code identifying MOD021KM files (Modis over Terra products)

FILETYPE_CAL_IIR_L1 enum code identifying CAL_IIR_L1 files (IIR over CALIPSO products)

FILETYPE_HDF_SEVIRI enum code identifying SEVIRI mosaic files (SEVIRI hdf products, from Icare)

FILETYPE_XRIT_SEVIRI enum code identifying SEVIRI original files (SEVIRI XRIT products)

FILETYPE_UNKNOWN enum code for not known or not supported products (should always be the last field of the enum)

7.6.2 Function Documentation

7.6.2.1 char∗ filetype_to_cstr (filetype_type filetype)

resolves a filetype into a static C-style (char ∗) string (one of the enum codes from filetype_type).

cautious: as the returned value is a pointer to a static zone of memory, the function should never be called more than once in the same expression, nor in a multithread application (in theses cases its behaviour is undefined)

Parameters: filetypeone of the filetypes owned by the filetype_type enumeration Returns: a pointer adressing a static array of chars containing a human readable description of the

filetype

7.6.2.2 filetype_type get_filetype (const char ∗ filename)

resolves a filename into one of the filetypes from the filetype_type enumeration

Parameters: filename the name of one of the software-supported products

Returns: one of the filetypes from the filetype_type enumeration, or FILETYPE_UNKNOWN is the argument is invalid or not supported

7.6.2.3 void print_supported_filetypes ()

an helper function that prints every supported types of files in the application

it simply calls filetype_to_cstr for each field of the filetype_type enumeration (except FILETYPE_UNKNOWN) and prints the result on the standard error

See also: filetype_type(p. 43)

filetype_to_cstr(filetype_type filetype)(p. 43)

usage()

7.7 src/grid.h File Reference

#include <ctime>
#include "Hdf.hpp"
#include "common.h"
#include "VFiles.h"

Classes

• struct grid_type_

Typedefs

• typedef grid_type_grid_type

Functions

• void create_grid (grid_type ∗grid, int nrows=0, int ncols=0, float64 slope=1., float64 offset=0., data_type data_fill_value=DEFAULT_DATA_FILL_VALUE, coord_type coord_fill_value=DEFAULT_COORD_FILL_VALUE, distance_- type distance_fill_value=DEFAULT_DISTANCE_FILL_VALUE, time_type time_fill_value=DEFAULT_TIME_FILL_VALUE)

• void reset_grid (grid_type ∗grid, data_type data_fill_value, coord_type coord_- fill_value, distance_type distance_fill_value, time_type time_fill_value)

• void reset_grid (grid_type ∗grid, data_type data_fill_value, distance_type distance_fill_value, time_type time_fill_value)

• void destroy_grid (grid_type ∗grid)

• int load_grid (grid_type ∗grid, data_type data_fill_value=DEFAULT_DATA_- FILL_VALUE, coord_type coord_fill_value=DEFAULT_COORD_FILL_- VALUE, distance_type distance_fill_value=DEFAULT_DISTANCE_FILL_- VALUE, time_type time_fill_value=DEFAULT_TIME_FILL_VALUE)

• int save_grid (grid_type ∗grid, bool record_delta, bool record_latlontime)

• void copy_grid (grid_type ∗target_grid, grid_type ∗src_grid)

• void copy_grid_footprint (grid_type ∗target_grid, grid_type ∗src_grid)

• bool have_same_grid_footprint (grid_type ∗grid1, grid_type ∗grid2)

7.7.1 Typedef Documentation

7.7.1.1 typedef struct grid_type_grid_type

Grids are the main data structures handled by the software. They should have been designed as a class instead of a simple struct with functions to handle it, but by lack of time the software had to be delivered as is. A rewritten code with a grid class instead of a struct should be much clearer and easier to maintain, but will need a substantial amount of time to reimplement (and of course redocument !), that is not available today.

Grids are abstracts for reprojection. Their main purpose is to handle 2-dimensional buffers of geolocated data (measures along with their latitudes, longitudes and times of acquisition). The reprojection algorithm remaps a grid of data (from one instrument product) into another one. For convenience, origin and target of the data (files and datasets) are also maintained in the structure (although this is not a very clever design, I have to confess, I hope I’ll have a chance to change this if more time is given to this project)

7.7.2 Function Documentation

7.7.2.1 void copy_grid (grid_type ∗ target_grid, grid_type ∗ src_grid)

intended to copy src_grid into target_grid (does correct allocation and copies) this function is not used in the current implementation

7.7.2.2 void copy_grid_footprint (grid_type ∗ target_grid, grid_type ∗ src_grid)

intended to copy the footprint of a grid (the footprint includes lightweight data, namely scalar fields, but not buffers) this function is not used in the current implementation

7.7.2.3 void create_grid (grid_type ∗ grid, int nrows = 0, int ncols = 0, float64 slope = 1., float64 offset = 0., data_type data_fill_value = DEFAULT_DATA_FILL_VALUE, coord_type coord_fill_value = DEFAULT_COORD_FILL_VALUE, distance_type distance_fill_value = DEFAULT_DISTANCE_FILL_VALUE, time_type time_fill_value = DEFAULT_TIME_FILL_VALUE)

the grid constructor

Parameters: grid the address of a grid structure to initialize. All fields will be allocated (for field pointers)

and initialized with the values of the subsequent parameters. nrows the number of rows of the grid (common number of rows of all the buffers in the grid) ncols the number of columns of the grid (common number of columns of all the buffers in

the grid) slope the initialization value for the slope field of the grid offset the initialization value for the offset field of the grid data_fill_value the initialization value for the grid_type::data(p. 14) buffer of the grid

(after allocation of nrows∗ncols elements) coord_fill_value the initialization value the grid_type::lat(p. 15) and grid_- type::lon(p. 15) buffers of the grid (after allocation of nrows∗ncols elements) distance_fill_value the initialization value for the grid_type::distance_from_-

ref(p. 15) buffer of the grid (after allocation of nrows∗ncols elements) time_fill_value the initialization value for the grid_type::tim(p. 16) and grid_- type::time_from_ref(p. 16) buffers of the grid (after allocation of nrows∗ncols elements)

See also: reset_grid(grid_type ∗, data_type, coord_type, distance_type, time_- type)(p. 48)

cautious: create_grid currently does not initialize the grid_type::is_target(p. 15) field (this one had to be added to meet some user’s new requirements, only after the interface of create_- grid(p. 46) was designed. So for the time being, the grid_type::is_target(p. 15) field must be set directly before create_grid(p. 46) is called, in order to allow create_grid(p. 46) to allocate and initialize correctly the grid_type::src_irows(p. 16) and grid_type::src_icols(p. 16) fields. This should be fixed in a future release (this will imply to break the interface of create_- grid(p. 46), in order to pass the initialization value of grid_type::is_target(p. 15) as an argument).

7.7.2.4 void destroy_grid (grid_type ∗ grid)

the destructor of a grid

it resets all the scalars fields and deallocates (and nullifies) all the pointer fields of a grid structure

Parameters: grid a pointer to the grid to destroy

See also: create_grid(p. 46)

load_grid(p. 47)

7.7.2.5 bool have_same_grid_footprint (grid_type ∗ grid1, grid_type ∗ grid2)

intended to compare two grids footprints (the footprint includes lightweight data, namely scalar fields, but not buffers) this function is not used in the current implementation

7.7.2.6 int load_grid (grid_type ∗ grid, data_type data_fill_value = DEFAULT_DATA_FILL_VALUE, coord_type coord_fill_value = DEFAULT_COORD_FILL_VALUE, distance_type distance_fill_value = DEFAULT_DISTANCE_FILL_VALUE, time_type time_fill_value = DEFAULT_TIME_FILL_VALUE)

loads data from the dataset grid_type::input_dataset(p. 15) of the file grid_type::file(p. 15) into a grid. The function calls create_grid(p. 46), so don’t do it yourself. Grids allocated and filled by load_grid must be destroyed by the caller with destroy_grid(p. 47)

Parameters: grid a pointer to the grid_type(p. 45) structure to allocate and fill with the file data

data_fill_value the new initialization value of the grid_type::data(p. 14) buffer elements

coord_fill_value the new initialization value of the grid_type::lat(p. 15), grid_- type::lon(p. 15) buffer elements

distance_fill_value the new initialization value of the grid_type::distance_from_- ref(p. 15) buffer elements

time_fill_value the new initialization value of the grid_type::tim(p. 16) and grid_- type::time_from_ref(p. 16) buffer_elements

See also: create_grid(p. 46) (called by this one)

destroy_grid(p. 47) (to call when the grid is not used anymore)

7.7.2.7 void reset_grid (grid_type ∗ grid, data_type data_fill_value, distance_type distance_fill_value, time_type time_fill_value)

resets all the fields of a grid, except grid_type::lat(p. 15), grid_type::lon(p. 15), grid_- type::tim(p. 16)

It is used for the target grid whose geolocation fields never change. On the other hand, grid_type::data(p. 14) (measures), grid_type::distance_from_ref(p. 15) and grid_- type::time_from_ref(p. 16) buffers must be reset with each new source grid (as source will be remapped into target). This function is essentially called from the main loop in the ::main function.

Parameters: grid the pointer to the grid to reset data_fill_value the new initialization value of the grid_type::data(p. 14) buffer elements distance_fill_value the new initialization value of the grid_type::distance_from_-

ref(p. 15) buffer elements time_fill_value the new initialization value of the grid_type::time_from_ref(p. 16)

buffer_elements

7.7.2.8 void reset_grid (grid_type ∗ grid, data_type data_fill_value, coord_type coord_fill_value, distance_type distance_fill_value, time_type time_fill_value)

resets all the fields of a grid. It is essentially called by create_grid(p. 46) after allocations of pointers have been done.

Parameters: grid the pointer to the grid to reset data_fill_value the new initialization value of the grid_type::data(p. 14) buffer elements coord_fill_value the new initialization value of the grid_type::lat(p. 15), grid_-

type::lon(p. 15) buffer elements distance_fill_value the new initialization value of the grid_type::distance_from_-

ref(p. 15) buffer elements time_fill_value the new initialization value of the grid_type::tim(p. 16) and grid_-

type::time_from_ref(p. 16) buffer_elements

See also: create_grid(p. 46)

7.7.2.9 int save_grid (grid_type ∗ grid, bool record_delta, bool record_latlontime)

saves grid_type::data(p. 14) buffer (with its slope and offset) into the grid_type::output_- dataset(p. 16) of the file grid_type::file(p. 15) recorded in the grid structure.

Parameters: grid a pointer to the grid to save into a file

record_delta if true, saves grid_type::distance_from_ref(p. 15) and grid_- type::time_from_ref(p. 16) (namely ’delta’ buffers) along with the grid_- type::data(p. 14) buffer (this parameter may be controled by a user option, see ::main) record_latlontime if true, saves grid_type::lat(p. 15), grid_type::lon(p. 15) and

grid_type::tim(p. 16) buffers along with the grid_type::data(p. 14) buffer (this is currently only used to save latitudes, longitudes and times of acquisition of the reference grid, see ::main)

7.8 src/hdf_utils.h File Reference

#include "Hdf.hpp"

Functions

• int hdf_create_empty_file (const char ∗file)

• int hdf_add_empty_sds (const char ∗file, const char ∗sds_name, int32 sds_type, int32 rank, int32 ∗dimensions, const float64 cal=1., const float64 offset=0., const float64 cal_- err=0., const float64 off_err=0.)

7.8.1 Function Documentation

7.8.1.1 int hdf_add_empty_sds (const char ∗ file, const char ∗ sds_name, int32 sds_type, int32 rank, int32 ∗ dimensions, const float64 cal = 1., const float64 offset = 0., const float64 cal_err = 0., const float64 off_err = 0.)

creates a new dataset in an existing hdf file (will fail if a dataset with the same name already exists)

Parameters: file the hdf file to update

sds_name the name of the new dataset (sds: scientific dataset) to add

sds_type the hdf type code of the new dataset, e.g. DFNT_UINT16, DFNT_FLOAT32... (see HDF documentation for valid type codes)

rank the rank (number of dimensions) of the new dataset to create

dimensions a pointer to the array of dimensions of the new dataset

cal the calibration factor linked to the new dataset (also named slope); relation between calibrated and uncalibrated data is: cal_data = cal∗(uncal_data - offset)

offset the offset factor linked to the new dataset; relation between calibrated and uncalibrated data is: cal_data = cal∗(uncal_data - offset)

cal_err error on the calibration factor (unused for the time being)

off_err error on the offset (unused for the time being)

Returns: 0 on success, -1 on failure

7.8.1.2 int hdf_create_empty_file (const char ∗ file)

creates a new (empty) hdf file

Parameters: file the name of the file to create

Returns: 0 on success, -1 on failure

7.9 src/parse_argument.h File Reference

#include "grid.h"

Functions

• int parse_argument (int iarg, char ∗argv[ ], grid_type ∗grid)

7.9.1 Function Documentation

7.9.1.1 int parse_argument (int iarg, char ∗ argv[ ], grid_type ∗ grid)

parses a user argument in order to extract some useful values for a grid_type structure. Expected argument must match the regular expression ^{∧}([^{∧}[@/]+)(\[([0-9]+)\])?(/[^{∧}@]+)?@(.∗)$ which means in clear one of the four alternatives :

• input_dataset@input_file

• input_dataset[ichannel]@input_file

• input_dataset/output_dataset@input_file

• input_dataset[ichannel]/output_dataset@input_file

(with : ichannel an integer, input_dataset a char ∗, output_dataset a char ∗, and input_file a char ∗)

Parameters: iarg the index of the argument to parse (between 1 and argc - 1)

argv the list of the command arguments, from ::main

grid a pointer to a grid_type structure to update with infos found in the i-th argument

Returns: 0 on success, -1 on failure; the current implementation actually exits in a brutal way when a invalid argument is found, simply sending an error message on the standard error as a side effect. Indeed, an invalid argument was seen as a fatal error in the application context (no processing can be done), so it was judged useless to continue.

The fields of grid_type updated by parse_argument include:

• grid_type::input_dataset(p. 15)

• grid_type::output_dataset(p. 16) (set to grid_type::input_dataset(p. 15) if not found in the regexp)

• grid_type::file(p. 15)

• grid_type::ichannel(p. 15) (set to 0 if not found in the regexp)

7.10 src/Pixel/Pixel.h File Reference

#include <cassert>
#include <set>
#include <algorithm>
#include <utility>
#include <functional>
#include <cmath>
#include <vector>
#include <iostream>
#include "debug.h"

Classes

• class Nearer_from< Pixel_type >

• class Pixel_base< T, V >

Defines

• #define BENCH

Functions

• template<typename T> T sqr (T x)

7.10.1 Define Documentation

7.10.1.1 #define BENCH

7.10.2 Function Documentation

7.10.2.1 template<typename T> T sqr (T x) [inline]

7.11 src/reproject.h File Reference

#include "common.h"
#include "grid.h"

Functions

• void reproject (grid_type ∗src_grid, grid_type ∗target_grid, distance_type distance, time_type max_dtime)

7.11.1 Function Documentation

7.11.1.1 void reproject (grid_type ∗ src_grid, grid_type ∗ target_grid,

distance_type distance, time_type max_dtime)

reprojects src_grid over target_grid The current implementation uses a "nearest neighbour" policy, an optional argument might be added to choose the reprojection policy (with this one by default) Source and target grids must meet some requirements :

• their grid_type::lat(p. 15), grid_type::lon(p. 15) and grid_type::tim(p. 16) fields must be filled

• grid_type::lat(p. 15) must contain values in degrees between MIN_LAT and MAX_LAT • grid_type::lon(p. 15) must contain values in degrees between MIN_LON and MAX_LON • grid_type::tim(p. 16) must contain values in time_type(p. 39) (TAI93, Temps Atomique

International 1993), e.g. a number of seconds since the 1st Jan 1993, 0h00 UTC

Parameters: src_grid the grid whose content is to reproject target_grid the grid over which reprojection is to be done distance the maximal search distance for the nearest neighbour max_dtime the maximal time difference for the nearest neighbour

reproject(p. 53) updates the following fields of target_grid :

• grid_type::data(p. 14)

• grid_type::distance_from_ref(p. 15)

• grid_type::time_from_ref(p. 16)

• grid_type::src_irows(p. 16) (currently not used)

• grid_type::src_icols(p. 16) (currently not used)

7.12 src/tokenize.h File Reference

Typedefs

• typedef enum etok_type_etok_type

Enumerations

• enum etok_type_{ ETOK_SUCCESS, ETOK_REGCOMP, ETOK_MEMORY, ETOK_- NOMATCH, ETOK_ESPACE }

Functions

• etok_type tokenize (const char ∗pattern, const char ∗a_string, size_t ∗ntokens, char ∗∗∗ptokens)

• void free_tokens (size_t ntokens, char ∗∗tokens)

7.12.1 Typedef Documentation

7.12.1.1 typedef enum etok_type_etok_type

7.12.2 Enumeration Type Documentation

7.12.2.1 enum etok_type_

Enumeration values: ETOK_SUCCESS ETOK_REGCOMP ETOK_MEMORY ETOK_NOMATCH ETOK_ESPACE

7.12.3 Function Documentation

7.12.3.1 void free_tokens (size_t ntokens, char ∗∗ tokens)

7.12.3.2 etok_type tokenize (const char ∗ pattern, const char ∗ a_string, size_t ∗ ntokens, char ∗∗∗ ptokens)

7.13 src/VFiles/normalize_cal_factors.h File Reference  55

7.13 src/VFiles/normalize_cal_factors.h File Reference

Functions

• void normalize_seviri_factors (int met8_channel, double &slope, double &offset)

• void normalize_seviri_factors (const char ∗dataset, double &slope, double &offset)

7.13.1 Function Documentation

7.13.1.1 void normalize_seviri_factors (const char ∗ dataset, double & slope,

double & offset)

7.13.1.2 void normalize_seviri_factors (int met8_channel, double & slope, double & offset)

7.14 src/VFiles/seviri_latlon/geostat.h File Reference

Typedefs

• typedef enum channel_enum channel_t

• typedef enum geostat_err_enum geostat_err_t

Enumerations

• enum channel_enum { GEOSTAT_CHNL_IR = 1, GEOSTAT_CHNL_VIS = 2, GEOSTAT_CHNL_WV = 3 }

• enum geostat_err_enum { GEOSTAT_ERR_OK = 0, GEOSTAT_ERR_- OUT_OF_RANGE = -1, GEOSTAT_ERR_BAD_INIT = -2, GEOSTAT_- ERR_BAD_INPUT_COORD = -3 }

Functions

• geostat_err_t geostat_init (const char ∗satellite)

• geostat_err_t geostat_latlon_to_lincol_double (double latitude, double longitude, double ∗line, double ∗column)

• geostat_err_t geostat_lincol_to_latlon_double (double line, double column, double ∗latitude, double ∗longitude)

• geostat_err_t geostat_latlon_to_lincol (const double latitude, const double longitude, unsigned long ∗line, unsigned long ∗column)

• geostat_err_t geostat_lincol_to_latlon (const unsigned long line, const unsigned long column, double ∗latitude, double ∗longitude)

• geostat_err_t geostat_get_azimut_and_zenithal (const double latitude, const double longitude, double ∗azimut, double ∗zenithal)

7.14.1 Typedef Documentation

7.14.1.1 typedef enum channel_enum channel_t

7.14.1.2 typedef enum geostat_err_enum geostat_err_t

7.14.2 Enumeration Type Documentation

7.14.2.1 enum channel_enum

Enumeration values: GEOSTAT_CHNL_IR

GEOSTAT_CHNL_VIS

GEOSTAT_CHNL_WV

7.14.2.2 enum geostat_err_enum

Enumeration values: GEOSTAT_ERR_OK

7.14 src/VFiles/seviri_latlon/geostat.h File Reference  57

GEOSTAT_ERR_OUT_OF_RANGE GEOSTAT_ERR_BAD_INIT GEOSTAT_ERR_BAD_INPUT_COORD

7.14.3 Function Documentation

7.14.3.1 geostat_err_t geostat_get_azimut_and_zenithal (const double latitude,

const double longitude, double ∗ azimut, double ∗ zenithal)

7.14.3.2 geostat_err_t geostat_init (const char ∗ satellite) 7.14.3.3 geostat_err_t geostat_latlon_to_lincol (const double latitude, const

double longitude, unsigned long ∗ line, unsigned long ∗ column)

7.14.3.4 geostat_err_t geostat_latlon_to_lincol_double (double latitude, double

longitude, double ∗ line, double ∗ column)

7.14.3.5 geostat_err_t geostat_lincol_to_latlon (const unsigned long line, const

unsigned long column, double ∗ latitude, double ∗ longitude)

7.14.3.6 geostat_err_t geostat_lincol_to_latlon_double (double line, double column, double ∗ latitude, double ∗ longitude)

7.15 src/VFiles/VFile.h File Reference

#include <cassert>
#include <stdint.h>
#include <cstring>
#include <vector>
#include "common.h"
#include "debug.h"

Classes

• class VFile

Defines

• #define DEBUG

7.15.1 Define Documentation

7.15.1.1 #define DEBUG

7.16 src/VFiles/VFiles.h File Reference

#include "VFile.h"
#include "VHdf.h"
#include "VIIR.h"
#include "VHdf_Seviri.h"
#include "VXRIT_SEVIRI.h"
#include "VModis.h"

7.17 src/VFiles/VHdf.h File Reference

#include <cstring>
#include "VFile.h"
#include "Hdf.hpp"

Classes

• class VHdf

7.18 src/VFiles/VHdf_Seviri.h File Reference  61

7.18 src/VFiles/VHdf_Seviri.h File Reference

#include "VHdf.h"

Classes

• class VHdf_Seviri

62  Remap File Documentation

7.19 src/VFiles/VIIR.h File Reference

#include "VHdf.h"

Classes

• class VIIR

7.20 src/VFiles/VModis.h File Reference

#include <cstring>
#include "VHdf.h"
#include "Hdf.hpp"

Classes

• class VModis

7.21 src/VFiles/VModis_interpol.h File Reference

#include "common.h"

Classes

• struct PRODUCT

Enumerations

• enum PROJTYPE { INTERP_SWATH }

• enum INTERP_OUTPUT { INTERP_BOUNDS, INTERP_CENTERS }

Functions

• void get_step_and_offset (int n1, int n2, float ∗offset, float ∗step, int rowsperscan, int georowsamplingstep, unsigned char crosstrack)

• void resample_row_geolocation (INTERP_OUTPUT output, double ∗oldlon, double ∗oldlat, PRODUCT ∗product, coord_type ∗newlon, coord_type ∗newlat)

• void get_virtual_row (const coord_type ∗lon1, const coord_type ∗lat1, const coord_type ∗lon2, const coord_type ∗lat2, double t, int ncols, double ∗lon3, double ∗lat3)

• void get_georows (double fractrow, PRODUCT ∗input, int iscan, int ∗georow1, int ∗georow2, double ∗t)

7.21.1 Enumeration Type Documentation

7.21.1.1 enum INTERP_OUTPUT

Enumeration values: INTERP_BOUNDS

INTERP_CENTERS

7.21.1.2 enum PROJTYPE

Enumeration values: INTERP_SWATH

7.21.2 Function Documentation

7.21.2.1 void get_georows (double fractrow, PRODUCT ∗ input, int iscan, int ∗ georow1, int ∗ georow2, double ∗ t)

7.21.2.2 void get_step_and_offset (int n1, int n2, float ∗ offset, float ∗ step, int rowsperscan, int georowsamplingstep, unsigned char crosstrack)

7.21.2.3 void get_virtual_row (const coord_type ∗ lon1, const coord_type ∗ lat1, const coord_type ∗ lon2, const coord_type ∗ lat2, double t, int ncols, double ∗ lon3, double ∗ lat3)

7.21.2.4 void resample_row_geolocation (INTERP_OUTPUT output, double ∗ oldlon, double ∗ oldlat, PRODUCT ∗ product, coord_type ∗ newlon, coord_type ∗ newlat)

66  Remap File Documentation

7.22 src/VFiles/VModis_latlon_resolve.h File Reference

Functions

• char ∗ VModis_latlon_resolve (char ∗modis_file, char ∗modis_latlon_path=NULL)

7.22.1 Function Documentation

7.22.1.1 char∗ VModis_latlon_resolve (char ∗ modis_file, char ∗ modis_latlon_path = NULL)

7.23 src/VFiles/VXRIT_SEVIRI.h File Reference

#include <vector>
#include <stdint.h>
#include "VFile.h"
#include "libxrit.h"

Classes

• class VXRIT_SEVIRI

Index

∼VFile

VFile, 24 ∼VHdf

VHdf, 27 ∼VModis

VModis, 31 ∼VXRIT_SEVIRI

VXRIT_SEVIRI, 34

allocate allocation.hpp, 37 VXRIT_SEVIRI, 34

allocation.hpp allocate, 37 deallocate, 37 PDEBUG, 37

APPNAME common.h, 39

BENCH

Pixel.h, 52 Bench

debug.h, 40 Pixel/debug.h, 41 VFiles/debug.h, 42

channel_enum

geostat.h, 56 channel_t

geostat.h, 56 coloffset

PRODUCT, 22 colstep

PRODUCT, 22 common.h

APPNAME, 39 coord_type, 39 DATA_TYPE, 39 data_type, 39 DATA_TYPE_MAX, 39 DATA_TYPE_MIN, 39 DEFAULT_COORD_FILL_VALUE, 39 DEFAULT_DATA_FILL_VALUE, 39 DEFAULT_DISTANCE_FILL_VALUE, DEFAULT_TIME_FILL_VALUE, 39 distance_type, 39 DOUBLE_NAN, 39 FLOAT_NAN, 39 FLOAT_TYPE, 39 float_type, 39 g_verbose, 39 HDF_COORD_TYPE, 39 HDF_DATA_TYPE, 39 HDF_DISTANCE_TYPE, 39 HDF_TIME_TYPE, 39 OPT_VERBOSE, 39 STRING_MAXLEN, 39 time_type, 39

coord_type common.h, 39 Pixel_base, 19

copy_grid

grid.h, 46 copy_grid_footprint

grid.h, 46 create_grid

grid.h, 46

data grid_type_, 14 VFile, 24 VHdf, 27 VModis, 31 VXRIT_SEVIRI, 34

data_ VHdf, 28 VXRIT_SEVIRI, 35

data_filename_

VFile, 25 DATA_TYPE

common.h, 39 data_type

common.h, 39 DATA_TYPE_MAX

common.h, 39 DATA_TYPE_MIN

common.h, 39 dataset

\underline{INDEX 69}

VFile, 24 deallocate

allocation.hpp, 37 DEBUG

VFile.h, 58 Debug

debug.h, 40 Pixel/debug.h, 41 VFiles/debug.h, 42

debug.h Bench, 40 Debug, 40 PDEBUG, 40

DEFAULT_COORD_FILL_VALUE

common.h, 39 DEFAULT_DATA_FILL_VALUE

common.h, 39 DEFAULT_DISTANCE_FILL_VALUE

common.h, 39 DEFAULT_RESOLUTION

Pixel_base, 20 DEFAULT_TIME_FILL_VALUE

common.h, 39 DEG2RAD

Pixel_base, 20 DEGREES

Pixel_base, 19 destroy

VHdf, 27 VModis, 31 VXRIT_SEVIRI, 34

destroy_grid

grid.h, 47 dimension

VFile, 24 dimensions

VFile, 24 dimensions_

VFile, 25 distance

Pixel_base, 20 distance_from_ref

grid_type_, 14 distance_type

common.h, 39 Pixel_base, 19

DOUBLE_NAN common.h, 39

ETOK_ESPACE

tokenize.h, 54 ETOK_MEMORY

tokenize.h, 54 ETOK_NOMATCH

tokenize.h, 54 ETOK_REGCOMP

tokenize.h, 54 ETOK_SUCCESS

tokenize.h, 54 etok_type

tokenize.h, 54 etok_type_

tokenize.h, 54

file

grid_type_, 15 filename

VFile, 24 FILETYPE_CAL_IIR_L1

filetypes.h, 43 FILETYPE_HDF_SEVIRI

filetypes.h, 43 FILETYPE_MODIS_AQUA_1KM

filetypes.h, 43 FILETYPE_MODIS_TERRA_1KM

filetypes.h, 43 filetype_to_cstr

filetypes.h, 43 filetype_type

filetypes.h, 43 FILETYPE_UNKNOWN

filetypes.h, 43 FILETYPE_XRIT_SEVIRI

filetypes.h, 43 filetypes.h

FILETYPE_CAL_IIR_L1, 43 FILETYPE_HDF_SEVIRI, 43 FILETYPE_MODIS_AQUA_1KM, 43 FILETYPE_MODIS_TERRA_1KM, 43 filetype_to_cstr, 43 filetype_type, 43 FILETYPE_UNKNOWN, 43 FILETYPE_XRIT_SEVIRI, 43 get_filetype, 44 print_supported_filetypes, 44

FLOAT_NAN

common.h, 39 FLOAT_TYPE

common.h, 39 float_type

common.h, 39 free_tokens

tokenize.h, 54

g_verbose

common.h, 39 geostat.h

\underline{70 INDEX}

channel_enum, 56 channel_t, 56 GEOSTAT_CHNL_IR, 56 GEOSTAT_CHNL_VIS, 56 GEOSTAT_CHNL_WV, 56 GEOSTAT_ERR_BAD_INIT, 57 GEOSTAT_ERR_BAD_INPUT_-

COORD, 57 geostat_err_enum, 56 GEOSTAT_ERR_OK, 56 GEOSTAT_ERR_OUT_OF_RANGE,

56 geostat_err_t, 56 geostat_get_azimut_and_zenithal, 57 geostat_init, 57 geostat_latlon_to_lincol, 57 geostat_latlon_to_lincol_double, 57 geostat_lincol_to_latlon, 57 geostat_lincol_to_latlon_double, 57

GEOSTAT_CHNL_IR

geostat.h, 56 GEOSTAT_CHNL_VIS

geostat.h, 56 GEOSTAT_CHNL_WV

geostat.h, 56 GEOSTAT_ERR_BAD_INIT

geostat.h, 57 GEOSTAT_ERR_BAD_INPUT_COORD

geostat.h, 57 geostat_err_enum

geostat.h, 56 GEOSTAT_ERR_OK

geostat.h, 56 GEOSTAT_ERR_OUT_OF_RANGE

geostat.h, 56 geostat_err_t

geostat.h, 56 geostat_get_azimut_and_zenithal

geostat.h, 57 geostat_init

geostat.h, 57 geostat_latlon_to_lincol

geostat.h, 57 geostat_latlon_to_lincol_double

geostat.h, 57 geostat_lincol_to_latlon

geostat.h, 57 geostat_lincol_to_latlon_double

geostat.h, 57 get_calibration

VFile, 24 VHdf, 27 VHdf_Seviri, 29 VIIR, 30 VModis, 32 VXRIT_SEVIRI, 34 get_filetype

filetypes.h, 44 get_georows

VModis_interpol.h, 65 get_neighbours

Pixel_base, 20 get_resolution

Pixel_base, 20 get_step_and_offset

VModis_interpol.h, 65 get_virtual_row

VModis_interpol.h, 65 grid.h

copy_grid, 46 copy_grid_footprint, 46 create_grid, 46 destroy_grid, 47 grid_type, 45 have_same_grid_footprint, 47 load_grid, 47 reset_grid, 47, 48 save_grid, 48

grid_type

grid.h, 45 grid_type_, 13

data, 14 distance_from_ref, 14 file, 15 ichannel, 15 input_dataset, 15 is_target, 15 lat, 15 lon, 15 ncols, 15 nrows, 15 offset, 15 output_dataset, 15 rank, 16 slope, 16 src_icols, 16 src_irows, 16 tim, 16 time_from_ref, 16

have_same_grid_footprint

grid.h, 47 hdf_add_empty_sds

hdf_utils.h, 50 HDF_COORD_TYPE

common.h, 39 hdf_create_empty_file

hdf_utils.h, 50 HDF_DATA_TYPE

common.h, 39 HDF_DISTANCE_TYPE

common.h, 39 HDF_TIME_TYPE

common.h, 39 hdf_utils.h

hdf_add_empty_sds, 50 hdf_create_empty_file, 50

ichannel grid_type_, 15 VHdf, 27 VModis, 32

ichannel_

VFile, 25 ilat

Pixel_base, 20 ilon

Pixel_base, 20 input_dataset

grid_type_, 15 INTERP_BOUNDS

VModis_interpol.h, 64 INTERP_CENTERS

VModis_interpol.h, 64 INTERP_OUTPUT

VModis_interpol.h, 64 INTERP_SWATH

VModis_interpol.h, 64 interpol

VModis, 32 is_target

grid_type_, 15

lat grid_type_, 15 Pixel_base, 20 VFile, 24 VHdf, 27 VModis, 32 VXRIT_SEVIRI, 34

lat_ Pixel_base, 20 VHdf, 28 VXRIT_SEVIRI, 35

latlon_filename_

VFile, 25 load_grid

grid.h, 47 lon

grid_type_, 15 Pixel_base, 20 VFile, 24 VHdf, 27 VModis, 32

VXRIT_SEVIRI, 34 lon_

Pixel_base, 20

VHdf, 28

VXRIT_SEVIRI, 35

ncols

grid_type_, 15 Nearer_from, 17

Nearer_from, 17 operator(), 17 this_pixel, 17

Nl

PRODUCT, 22 Nl_geo

PRODUCT, 22 normalize_cal_factors.h

normalize_seviri_factors, 55 normalize_seviri_factors

normalize_cal_factors.h, 55 Np

PRODUCT, 22 Np_geo

PRODUCT, 22 nrows

grid_type_, 15

offset

grid_type_, 15 operator()

Nearer_from, 17 operator<

Pixel_base, 20 operator<<

Pixel_base, 20 operator==

Pixel_base, 20 OPT_VERBOSE common.h, 39

output_dataset grid_type_, 15

parse_argument

parse_argument.h, 51 parse_argument.h

parse_argument, 51 PDEBUG

allocation.hpp, 37

debug.h, 40

VFiles/debug.h, 42 Pixel.h

BENCH, 52 sqr, 52 Pixel/debug.h Bench, 41 Debug, 41

Pixel_base, 18 coord_type, 19 DEFAULT_RESOLUTION, 20 DEG2RAD, 20 DEGREES, 19 distance, 20 distance_type, 19 get_neighbours, 20 get_resolution, 20 ilat, 20 ilon, 20 lat, 20 lat_, 20 lon, 20 lon_, 20 operator<, 20 operator<<, 20 operator==, 20 Pixel_base, 20 Pixel_type, 19 R_EARTH, 20 RAD2DEG, 20 RADIANS, 19 resolution, 20 set_resolution, 20 unit_type, 19 val, 20 val_, 20 value_type, 19

Pixel_type

Pixel_base, 19 print_supported_filetypes

filetypes.h, 44 PRODUCT, 22

coloffset, 22 colstep, 22 Nl, 22 Nl_geo, 22 Np, 22 Np_geo, 22 projparam, 22 rowoffset, 22 rowstep, 22 sds, 22 type, 22

projparam

PRODUCT, 22 PROJTYPE

VModis_interpol.h, 64 prologue_

VXRIT_SEVIRI, 35 R_EARTH

Pixel_base, 20 RAD2DEG

Pixel_base, 20 RADIANS

Pixel_base, 19 rank

grid_type_, 16

VFile, 24 read_data_2D VHdf, 27 read_data_3D VHdf, 27 read_lat_lon_time VHdf, 27 VHdf_Seviri, 29 VIIR, 30 VModis, 32 read_seviri_latlon

VXRIT_SEVIRI, 34 reproject

reproject.h, 53 reproject.h

reproject, 53 resample_row_geolocation VModis_interpol.h, 65

reset_grid

grid.h, 47, 48 resolution

Pixel_base, 20 rowoffset

PRODUCT, 22 rowstep

PRODUCT, 22

save_grid

grid.h, 48 sds

PRODUCT, 22 sds_data_

VFile, 25 sds_lat_

VFile, 25 sds_lon_

VFile, 25 sds_time_

VFile, 25 set_resolution

Pixel_base, 20 SEVIRI_NCOLS

VXRIT_SEVIRI, 35 SEVIRI_NROWS

VXRIT_SEVIRI, 35 slope

grid_type_, 16 sqr

Pixel.h, 52 src/ Directory Reference, 11 src/allocation.hpp, 37 src/common.h, 38 src/debug.h, 40 src/filetypes.h, 43 src/grid.h, 45 src/hdf_utils.h, 50 src/parse_argument.h, 51 src/Pixel/ Directory Reference, 9 src/Pixel/debug.h, 41 src/Pixel/Pixel.h, 52 src/reproject.h, 53 src/tokenize.h, 54 src/VFiles/ Directory Reference, 12 src/VFiles/debug.h, 42 src/VFiles/normalize_cal_factors.h, 55 src/VFiles/seviri_latlon/ Directory Reference,

10 src/VFiles/seviri_latlon/geostat.h, 56 src/VFiles/VFile.h, 58 src/VFiles/VFiles.h, 59 src/VFiles/VHdf.h, 60 src/VFiles/VHdf_Seviri.h, 61 src/VFiles/VIIR.h, 62 src/VFiles/VModis.h, 63 src/VFiles/VModis_interpol.h, 64 src/VFiles/VModis_latlon_resolve.h, 66 src/VFiles/VXRIT_SEVIRI.h, 67 src_icols

grid_type_, 16 src_irows

grid_type_, 16 STRING_MAXLEN

common.h, 39

this_pixel

Nearer_from, 17 tim

grid_type_, 16 time

VFile, 24 VHdf, 27 VModis, 32 VXRIT_SEVIRI, 34

time_ VHdf, 28 VXRIT_SEVIRI, 35

time_filename_

VFile, 25 time_from_ref

grid_type_, 16 time_type

common.h, 39 tokenize

tokenize.h, 54 tokenize.h

ETOK_ESPACE, 54 ETOK_MEMORY, 54 ETOK_NOMATCH, 54 ETOK_REGCOMP, 54 ETOK_SUCCESS, 54 etok_type, 54 etok_type_, 54 free_tokens, 54 tokenize, 54

type PRODUCT, 22

unit_type Pixel_base, 19

val

Pixel_base, 20 val_

Pixel_base, 20 value_type

Pixel_base, 19 VFile, 23

∼VFile, 24 data, 24 data_filename_, 25 dataset, 24 dimension, 24 dimensions, 24 dimensions_, 25 filename, 24 get_calibration, 24 ichannel_, 25 lat, 24 latlon_filename_, 25 lon, 24 rank, 24 sds_data_, 25 sds_lat_, 25 sds_lon_, 25 sds_time_, 25 time, 24 time_filename_, 25 VFile, 24

VFile.h

DEBUG, 58 VFiles/debug.h

Bench, 42 Debug, 42 PDEBUG, 42 VHdf, 26

∼VHdf, 27 data, 27 data_, 28 destroy, 27 get_calibration, 27 ichannel, 27 lat, 27 lat_, 28 lon, 27 lon_, 28 read_data_2D, 27 read_data_3D, 27 read_lat_lon_time, 27 time, 27 time_, 28 VHdf, 27

VHdf_Seviri, 29 get_calibration, 29 read_lat_lon_time, 29 VHdf_Seviri, 29

VIIR, 30 get_calibration, 30 read_lat_lon_time, 30 VIIR, 30

VModis, 31 ∼VModis, 31 data, 31 destroy, 31 get_calibration, 32 ichannel, 32 interpol, 32 lat, 32 lon, 32 read_lat_lon_time, 32 time, 32 VModis, 31

VModis_interpol.h get_georows, 65 get_step_and_offset, 65 get_virtual_row, 65 INTERP_BOUNDS, 64 INTERP_CENTERS, 64 INTERP_OUTPUT, 64 INTERP_SWATH, 64 PROJTYPE, 64 resample_row_geolocation, 65

VModis_latlon_resolve

VModis_latlon_resolve.h, 66 VModis_latlon_resolve.h

VModis_latlon_resolve, 66 VXRIT_SEVIRI, 33

∼VXRIT_SEVIRI, 34 allocate, 34 data, 34 data_, 35 destroy, 34 get_calibration, 34 lat, 34 lat_, 35 lon, 34 lon_, 35 prologue_, 35 read_seviri_latlon, 34 SEVIRI_NCOLS, 35 SEVIRI_NROWS, 35 time, 34 time_, 35 VXRIT_SEVIRI, 34