Public Member Functions | |
CLOUDSATFileData (const string &name, const string &mode="r") | |
constructor | |
virtual | ~CLOUDSATFileData () |
destructor | |
void | load_geolocation_data () |
read the geolocation data (latitude, longitude and time) This method is used to make the search of the indexes of a (lat,lon,time) point faster. | |
void | free_geolocation_data () |
free eventually loaded geolocation data If the geolocation data are not loaded, doesn't do anything | |
const bool | contain_location (const float &lat, const float &lon, const double &tolerance=0.01) |
check if this file has eventually data coincident with (lat,lon) Actually, it only tests if (lat,lon) is contained in the data's bounding rectangle. | |
const bool | contain_data (const float &lat, const float &lon, const double &time, const double &colocation_tolerance=0.01) |
check if the file has possible (lat,lon) coincidence | |
const float | get_nearest_point_distance (const float &lat, const float &lon, const float coloc_tolerance=CLOUDSATFileData::colocation_tolerance) |
compute the distance to (lat,lon) of the nearest point in the data If coloc_tolerance is given, it will compute only the distance of the points that have a distance to ( lat, lon ) inferior to coloc_tolerance | |
string | get_product () const |
access to the product name | |
string | get_version () const |
access to the version of the product | |
const bool | get_index (const float &lat, const float &lon, int &nearest_pix_idx, const float colocation_tolerance=0.01) |
find the index of the nearest point to (lat,lon) in the data. If (lat,lon) is not found or out of the colocalisation_frame, returned indexes are [-1,-1] | |
virtual void | get_vindex (vector< vector< int > > &v_index, const float &lat, const float &lon, const float colocation_tolerance=0.01) |
build the list of indices of pixels that are in colocation tolerance, sorted by increasing distance to (lat,lon) If (lat,lon) is not found or out of the colocalisation_frame, returns an empty vector | |
const int | get_nb_geo_points () |
retrieve the number of (lat,lon) pixels in the file | |
virtual void | load_v_pixel () |
load the list data pixels | |
virtual void | close_data_file () |
closes the file. | |
virtual void | open_data_file () |
opens the file. | |
virtual void | get_pixel_coord (const vector< int > &ipix, float &lat, float &lon, double &time) |
retrieve the coordinates of a pixel using its index | |
Static Public Attributes | |
static const int | nb_vbins = 125 |
static const int | nb_profile_max = 40000 |
static const int | nb_layers = 5 |
CLOUDSATFileData::CLOUDSATFileData | ( | const string & | name, | |
const string & | mode = "r" | |||
) |
constructor
name | the filename | |
mode | opening mode. only "r" at this time |
const bool CLOUDSATFileData::contain_data | ( | const float & | lat, | |
const float & | lon, | |||
const double & | time, | |||
const double & | colocation_tolerance = 0.01 | |||
) | [virtual] |
check if the file has possible (lat,lon) coincidence
lat | latitude | |
lon | longitude | |
time | time | |
colocation_tolerance | the acceptable bias (in km or degrees. Supposed to be in, a plane approximation) between [lat,lon] and the nearest data point. |
Reimplemented from FileData.
References contain_location(), and FileData::contain_time().
const bool CLOUDSATFileData::contain_location | ( | const float & | lat, | |
const float & | lon, | |||
const double & | tolerance = 0.01 | |||
) | [virtual] |
check if this file has eventually data coincident with (lat,lon) Actually, it only tests if (lat,lon) is contained in the data's bounding rectangle.
lat | the latitude of the event | |
lon | the longitude of the event | |
tolerance | acceptable bias between the nearest point in the data and the given (lat,lon) point |
Reimplemented from FileData.
References get_index().
Referenced by contain_data().
const bool CLOUDSATFileData::get_index | ( | const float & | lat, | |
const float & | lon, | |||
int & | nearest_pix_idx, | |||
const float | colocation_tolerance = 0.01 | |||
) |
find the index of the nearest point to (lat,lon) in the data. If (lat,lon) is not found or out of the colocalisation_frame, returned indexes are [-1,-1]
lat | the latitude | |
lon | the longitude | |
nearest_pix_idx | the index of the nearest measure. -1 if no coincidence found. | |
colocation_tolerance | the acceptable bias (in km or degrees. Supposed to be in, a plane approximation) between [lat,lon] and the nearest data point. |
References free_geolocation_data(), SatelliteFileData::is_geolocation_data_loaded(), SatelliteFileData::lat_data, load_geolocation_data(), SatelliteFileData::lon_data, SatelliteFileData::time_data, and SatelliteFileData::v_pixel.
Referenced by contain_location(), and get_nearest_point_distance().
const int CLOUDSATFileData::get_nb_geo_points | ( | ) | [inline] |
retrieve the number of (lat,lon) pixels in the file
const float CLOUDSATFileData::get_nearest_point_distance | ( | const float & | lat, | |
const float & | lon, | |||
const float | coloc_tolerance = CLOUDSATFileData::colocation_tolerance | |||
) |
compute the distance to (lat,lon) of the nearest point in the data If coloc_tolerance is given, it will compute only the distance of the points that have a distance to ( lat, lon ) inferior to coloc_tolerance
lat | the latitude | |
lon | the longitude | |
coloc_tolerance | the -/+ maximal tolerance for 2 points considered as colocated |
References free_geolocation_data(), get_index(), SatelliteFileData::is_geolocation_data_loaded(), SatelliteFileData::lat_data, load_geolocation_data(), and SatelliteFileData::lon_data.
virtual void CLOUDSATFileData::get_pixel_coord | ( | const vector< int > & | ipix, | |
float & | lat, | |||
float & | lon, | |||
double & | time | |||
) | [inline, virtual] |
retrieve the coordinates of a pixel using its index
ipix | [IN] index of the pixel | |
lat | [OUT] latitude of the pixel | |
lon | [OUT] longitude of the pixel | |
time | [OUT] timestamp of the pixel |
References SatelliteFileData::is_geolocation_data_loaded(), SatelliteFileData::lat_data, load_geolocation_data(), SatelliteFileData::lon_data, and SatelliteFileData::time_data.
string CLOUDSATFileData::get_product | ( | ) | const [inline] |
access to the product name
string CLOUDSATFileData::get_version | ( | ) | const [inline] |
access to the version of the product
virtual void CLOUDSATFileData::get_vindex | ( | vector< vector< int > > & | v_index, | |
const float & | lat, | |||
const float & | lon, | |||
const float | colocation_tolerance = 0.01 | |||
) | [inline, virtual] |
build the list of indices of pixels that are in colocation tolerance, sorted by increasing distance to (lat,lon) If (lat,lon) is not found or out of the colocalisation_frame, returns an empty vector
lat | the latitude | |
lon | the longitude | |
colocation_tolerance | the acceptable bias (in km or degrees. Supposed to be in, a plane approximation) between [lat,lon] and the nearest data point. |
const int CLOUDSATFileData::nb_layers = 5 [static] |
Maximum number of layers for a CLOUDSAT 2B-GEOPROF-LIDAR product
const int CLOUDSATFileData::nb_profile_max = 40000 [static] |
Maximum number of profiles for a CLOUDSAT orbit
const int CLOUDSATFileData::nb_vbins = 125 [static] |
Number of vertical bins of a CLOUDSAT profile (fixed)