ARTS
2.3.1285(git:92a29ea9-dirty)
|
A telsem atlas. More...
#include <telsem.h>
Static Private Attributes | |
static const std::array< Numeric, 30 > | a0_k0 |
static const std::array< Numeric, 30 > | a0_k1 |
static const std::array< Numeric, 30 > | a0_k2 |
static const std::array< Numeric, 30 > | a0_eveh |
static const std::array< Numeric, 30 > | a1_eveh |
static const std::array< Numeric, 30 > | a2_eveh |
static const std::array< Numeric, 30 > | a3_eveh |
static const std::array< Numeric, 30 > | b0_eveh |
static const std::array< Numeric, 30 > | b1_eveh |
static const std::array< Numeric, 30 > | b2_eveh |
static const std::array< Numeric, 30 > | b3_eveh |
static const std::array< Numeric, 4 > | rapport43_32 |
static const std::array< Numeric, 4 > | rapport54_43 |
Friends | |
std::ostream & | operator<< (std::ostream &os, const TelsemAtlas &ta) |
void | xml_write_to_stream (ostream &, const TelsemAtlas &, bofstream *, const String &, const Verbosity &) |
Writes TelsemAtlas to XML output stream. More... | |
void | xml_read_from_stream (istream &, TelsemAtlas &, bifstream *, const Verbosity &) |
Reads TelsemAtlas from XML input stream. More... | |
A telsem atlas.
Represents a Telsem2 atlas containing land surface microwave emissivities. Since the Atlas contains emissivities only for land surfaces, the data is stored in a sparse format.
The emissivities are represented on an equal area grid and numbered sequentially starting with the first latitude band at -90 degrees and moving up to 90 degrees.
The correspondance array contains the data indices for each cellnumber if it is contained in the Atlas and NAN otherwise.
|
default |
|
default |
|
default |
|
default |
TelsemAtlas::TelsemAtlas | ( | String | filename | ) |
Compute the cellnumber corrsponding to given coordinates.
Computes the cellnumber of the lon/lat grid that contains the given coordinates.
Note: The cell may not be contained in the atlas if it is above the sea. The result should be checked using the contains(...) member function before it is used.
[in] | lat | The latitude coordinate for which to compute the containing cell. |
[out] | lon | The longitude coordinates for which to compute the containing cell. |
Definition at line 142 of file telsem.cc.
References dlat, i, and ncells.
Referenced by calc_cellnum_nearest_neighbor(), operator[](), surfaceTelsem(), telsemAtlasLookup(), telsemStandalone(), telsemSurfaceTypeLandSea(), test_telsem_interpolate(), and test_telsem_read().
Compute the cellnumber of closest cell contained in atlas.
[in] | lat | The latitude coordinate for which to compute the containing cell. |
[out] | lon | The longitude coordinates for which to compute the containing cell. |
Definition at line 174 of file telsem.cc.
References calc_cellnum(), contains(), cycle_lat_lon(), dlat, and i.
Referenced by operator[](), surfaceTelsem(), and telsemStandalone().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Check if cell is contained in atlas.
cellnumber | The cellnumber for given coordinates obtained from calc cellnum. |
Definition at line 83 of file telsem.h.
References correspondence, and Array< base >::nelem().
Referenced by calc_cellnum_nearest_neighbor(), surfaceTelsem(), telsemAtlasLookup(), telsemStandalone(), and telsemSurfaceTypeLandSea().
|
inline |
|
inline |
Definition at line 332 of file telsem.h.
References correspondence.
|
inline |
std::pair< Numeric, Numeric > TelsemAtlas::emis_interp | ( | Numeric | theta, |
Numeric | freq, | ||
Index | class1, | ||
Index | class2, | ||
const ConstVectorView & | ev, | ||
const ConstVectorView & | eh | ||
) | const |
Interpolat emissivities to given zenith angle and frequency.
theta | The zenith angle |
freq | The frequency in GHz (!!!) |
class1 | The surface type class |
class2 | The sruface type class |
ev | The vertical emissivities from the atlas |
eh | The horizontal emissivities from atlas |
Definition at line 291 of file telsem.cc.
References a0_eveh, a0_k0, a0_k1, a0_k2, a1, a1_eveh, a2, a2_eveh, a3_eveh, b0, b0_eveh, b1, b1_eveh, b2, b2_eveh, b3_eveh, i, interp_freq2(), and pow().
Referenced by operator[](), and telsemStandalone().
void TelsemAtlas::equare | ( | ) |
Compute the number of cells in each latitude band.
Telsem surface emissivities are represented on an equal area grid. This functions computes the number of grid cells for each latitude band as well as the cell number of the first grid cell in each band.
Definition at line 93 of file telsem.cc.
References DEG2RAD, dlat, EARTH_RADIUS, firstcells, i, ncells, and PI.
Referenced by operator[](), and read().
|
inline |
Definition at line 313 of file telsem.h.
References firstcells.
Class of a given cell. Return the class1 value of the given cell. Indexed by cellnumber obtained from calc_cellnum(...).
Throws a runtime error if cellnumber is not contained in the atlas, i.e. is not over land.
cellnumber | The cellnumber for which to lookup the class. |
Definition at line 100 of file telsem.h.
References classes1, and correspondence.
Referenced by surfaceTelsem(), and telsemStandalone().
Class of a given cell. Return the class2 value of the given cell. Indexed by cellnumber obtained from calc_cellnum(...).
Throws a runtime error if cellnumber is not contained in the atlas, i.e. is not over land.
cellnumber | The cellnumber for which to lookup the class. |
Definition at line 118 of file telsem.h.
References classes2, and correspondence.
Referenced by surfaceTelsem(), and telsemStandalone().
Compute corrdinates of a given cell.
[in] | cellnum | The cell number for which to compute the coordinates. |
[out] | The | latitiude and longitude coordinates of the cell. |
Definition at line 229 of file telsem.cc.
References dlat, firstcells, i, and ncells.
Referenced by operator[](), surfaceTelsem(), and telsemStandalone().
|
inline |
Horizontally polarized emissivities at 19, 37 and 85 GHz.
The horizontally polarized emissivities that are used for the Telsem2 emissivity interpolation. The index here is the cellnumber obtained for given latitude and longitude using calc_cellnum(...).
cellnum | The atlas' cellunmber from which to extract the emissivities. |
Definition at line 157 of file telsem.h.
References correspondence, and emis.
Referenced by surfaceTelsem(), and telsemStandalone().
Verically polarized emissivities at 19, 37 and 85 GHz.
The vertically polarized emissivities that are used for the Telsem2 emissivity interpolation. The index here is the cellnumber obtained for given latitude and longitude using calc_cellnum(...).
cellnum | The atlas' cellunmber from which to extract the emissivities. |
Definition at line 135 of file telsem.h.
References correspondence, emis, and i.
Referenced by surfaceTelsem(), and telsemStandalone().
|
inline |
Numeric TelsemAtlas::interp_freq2 | ( | Numeric | emiss19, |
Numeric | emiss37, | ||
Numeric | emiss85, | ||
Numeric | f, | ||
Index | class2 | ||
) | const |
Inter-/Extrapolate emissivities to given frequency.
This function interpolates the SSMI emissivities at 19, 37, 85 GHz to the given frequency value.
emiss19 | The SSMI emissivity at 19 GHz |
emiss37 | The SSMI emissivity at 37 GHz |
emiss85 | The SSMI emissivity at 85 GHz |
f | The frequency in GHz (!) |
class2 | The surface class |
Definition at line 250 of file telsem.cc.
Referenced by emis_interp(), and operator[]().
|
default |
|
default |
|
inline |
ConstVectorView on emissivities at given index.
The vector containing the seven SSMI emissivities contained in the atlas.
Throws a runtime error if cellnumber is not contained in the atlas, i.e. over land.
The | cellnumber |
Definition at line 181 of file telsem.h.
References calc_cellnum(), calc_cellnum_nearest_neighbor(), correspondence, emis, emis_interp(), equare(), get_coordinates(), interp_freq2(), joker, operator<<, read(), telsem_calc_correspondence(), xml_read_from_stream, and xml_write_to_stream.
Definition at line 346 of file telsem.h.
References i, and rapport43_32.
Definition at line 347 of file telsem.h.
References i, and rapport54_43.
void TelsemAtlas::read | ( | std::istream & | is | ) |
Read Telsem Atlas from input stream.
Definition at line 46 of file telsem.cc.
References cellnums, classes1, classes2, dlat, emis, emis_err, equare(), i, name, nchan, ndat, Matrix::resize(), sqrt(), and telsem_calc_correspondence().
Referenced by operator[](), telsem_atlasReadAscii(), and TelsemAtlas().
|
inline |
|
inline |
void TelsemAtlas::telsem_calc_correspondence | ( | ) |
Compute cell indices in sparse data storage.
For each cell in the Atlas, this function stores the corresponding index in the data array in the correspondence member of this atlas object.
Definition at line 134 of file telsem.cc.
References cellnums, correspondence, and ndat.
Referenced by operator[](), read(), and xml_read_from_stream().
|
friend |
Definition at line 346 of file telsem.cc.
Referenced by operator[]().
|
friend |
Reads TelsemAtlas from XML input stream.
is_xml | XML Input stream |
pm | TelsemAtlas return value |
pbifs | Pointer to binary input stream. NULL in case of ASCII file. |
Definition at line 2057 of file xml_io_compound_types.cc.
Referenced by operator[]().
|
friend |
Writes TelsemAtlas to XML output stream.
os_xml | XML Output stream |
pm | TelsemAtlas |
pbofs | Pointer to binary file stream. NULL for ASCII output. |
name | Optional name attribute |
Definition at line 2089 of file xml_io_compound_types.cc.
Referenced by operator[]().
|
staticprivate |
Definition at line 382 of file telsem.h.
Referenced by A0_EVEH(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 379 of file telsem.h.
Referenced by A0_K0(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 380 of file telsem.h.
Referenced by A0_K1(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 381 of file telsem.h.
Referenced by A0_K2(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 383 of file telsem.h.
Referenced by A1_EVEH(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 384 of file telsem.h.
Referenced by A2_EVEH(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 385 of file telsem.h.
Referenced by A3_EVEH(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 386 of file telsem.h.
Referenced by B0_EVEH(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 387 of file telsem.h.
Referenced by B1_EVEH(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 388 of file telsem.h.
Referenced by B2_EVEH(), emis_interp(), and operator<<().
|
staticprivate |
Definition at line 389 of file telsem.h.
Referenced by B3_EVEH(), emis_interp(), and operator<<().
|
private |
Definition at line 374 of file telsem.h.
Referenced by Cellnumber(), read(), telsem_calc_correspondence(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 371 of file telsem.h.
Referenced by Classes1(), get_class1(), read(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 372 of file telsem.h.
Referenced by Classes2(), get_class2(), read(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 369 of file telsem.h.
Referenced by Correlations(), get_correl(), set_correl(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 376 of file telsem.h.
Referenced by contains(), Correspondance(), get_class1(), get_class2(), get_emis_h(), get_emis_v(), operator[](), and telsem_calc_correspondence().
|
private |
Definition at line 359 of file telsem.h.
Referenced by calc_cellnum(), calc_cellnum_nearest_neighbor(), equare(), get_coordinates(), Lat(), read(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 365 of file telsem.h.
Referenced by Emis(), get_emis_h(), get_emis_v(), operator[](), read(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 367 of file telsem.h.
Referenced by Emis_err(), read(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 363 of file telsem.h.
Referenced by equare(), FirstCells(), and get_coordinates().
|
private |
Definition at line 357 of file telsem.h.
Referenced by get_month(), Month(), set_month(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 355 of file telsem.h.
Referenced by Name(), operator<<(), read(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 361 of file telsem.h.
Referenced by calc_cellnum(), Cells(), equare(), and get_coordinates().
|
private |
Definition at line 353 of file telsem.h.
Referenced by ChannelCount(), read(), xml_read_from_stream(), and xml_write_to_stream().
|
private |
Definition at line 351 of file telsem.h.
Referenced by DataCount(), read(), telsem_calc_correspondence(), xml_read_from_stream(), and xml_write_to_stream().
|
staticprivate |
Definition at line 390 of file telsem.h.
Referenced by operator<<(), and RAPPORT43_32().
|
staticprivate |
Definition at line 391 of file telsem.h.
Referenced by operator<<(), and RAPPORT54_43().