Public Member Functions | Static Public Member Functions | Static Public Attributes

DARDARFileData Class Reference

Inheritance diagram for DARDARFileData:
Inheritance graph
[legend]
Collaboration diagram for DARDARFileData:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 DARDARFileData (const string &name, const string &mode="r")
 constructor
 ~DARDARFileData ()
 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
void load_v_pixel ()
 load the list data pixels
void close_data_file ()
 closes the file.
void open_data_file ()
 opens the file.
const int get_nb_geo_points ()
 retrieve the number of (lat,lon) pixels in the file
string get_product () const
 access to the product name
string get_version () const
 access to the version of the product
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=DARDARFileData::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
virtual 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]
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
void get_pixel_coord (const vector< int > &ipix, float &lat, float &lon, double &time)
 retrieve the coordinates of a pixel using its index
void get_pixel_coord (const int ipix, float &lat, float &lon, double &time)
 retrieve the coordinates of a pixel using its index

Static Public Member Functions

static const int16 * get_dardar_height ()
 accessor to the altitudes of the bins

Static Public Attributes

static const int nb_dardar_bin = 436
static const int16 dardar_height []

Detailed Description

Author:
Nicolas PASCAL reading of CLOUSAT files

Constructor & Destructor Documentation

DARDARFileData::DARDARFileData ( const string &  name,
const string &  mode = "r" 
)

constructor

Parameters:
name the filename
mode opening mode. only "r" at this time

Member Function Documentation

const bool DARDARFileData::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

Warning:
it's an EVENTUAL coincidence. That is not a proof !!!
Parameters:
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.
Returns:
true if can eventually contain a coincidence with the point.
Warning:
at this time always true. I don't have a good way to do it

Reimplemented from FileData.

References contain_location(), and FileData::contain_time().

const bool DARDARFileData::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.

Parameters:
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
Returns:
true if a point in the data has been found in the colocation frame

Reimplemented from FileData.

References get_index().

Referenced by contain_data().

static const int16* DARDARFileData::get_dardar_height (  )  [inline, static]

accessor to the altitudes of the bins

Returns:
a vector with the bins altitudes in meters

References dardar_height.

const bool DARDARFileData::get_index ( const float &  lat,
const float &  lon,
int &  nearest_pix_idx,
const float  colocation_tolerance = 0.01 
) [virtual]

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]

Parameters:
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.
Returns:
true if the coincidence has been found

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 DARDARFileData::get_nb_geo_points (  )  [inline]

retrieve the number of (lat,lon) pixels in the file

Returns:
the number of (lat,lon) pixels
const float DARDARFileData::get_nearest_point_distance ( const float &  lat,
const float &  lon,
const float  coloc_tolerance = DARDARFileData::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

Parameters:
lat the latitude
lon the longitude
coloc_tolerance the -/+ maximal tolerance for 2 points considered as colocated
Returns:
the distance to the nearest point, or -1 if no point in the colocalisation frame has been found.

References free_geolocation_data(), get_index(), SatelliteFileData::is_geolocation_data_loaded(), SatelliteFileData::lat_data, load_geolocation_data(), and SatelliteFileData::lon_data.

void DARDARFileData::get_pixel_coord ( const int  ipix,
float &  lat,
float &  lon,
double &  time 
) [inline]

retrieve the coordinates of a pixel using its index

Parameters:
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.

void DARDARFileData::get_pixel_coord ( const vector< int > &  ipix,
float &  lat,
float &  lon,
double &  time 
) [inline]

retrieve the coordinates of a pixel using its index

Parameters:
ipix [IN] index of the pixel in a unique value vector for interface implementation purpose
lat [OUT] latitude of the pixel
lon [OUT] longitude of the pixel
time [OUT] timestamp of the pixel
string DARDARFileData::get_product (  )  const [inline]

access to the product name

Returns:
the product name
string DARDARFileData::get_version (  )  const [inline]

access to the version of the product

Returns:
the version of the product
void DARDARFileData::get_vindex ( vector< vector< int > > &  v_index,
const float &  lat,
const float &  lon,
const float  colocation_tolerance = 0.01 
) [inline]

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

Parameters:
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.
Returns:
the list of indices of pixels

Member Data Documentation

const int16 DARDARFileData::dardar_height [static]
Initial value:
 {
25080, 25020, 24960, 24900, 24840, 24780, 24720, 24660, 24600, 24540, 24480, 24420, 24360, 24300, 24240, 24180, 24120, 24060, 24000, 23940, 23880, 23820, 23760, 23700, 23640, 23580, 23520, 23460, 23400, 23340, 23280, 23220, 23160, 23100, 23040, 22980, 22920, 22860, 22800, 22740, 22680, 22620, 22560, 22500, 22440, 22380, 22320, 22260, 22200, 22140, 22080, 22020, 21960, 21900, 21840, 21780, 21720, 21660, 21600, 21540, 21480, 21420, 21360, 21300, 21240, 21180, 21120, 21060, 21000, 20940, 20880, 20820, 20760, 20700, 20640, 20580, 20520, 20460, 20400, 20340, 20280, 20220, 20160, 20100, 20040, 19980, 19920, 19860, 19800, 19740, 19680, 19620, 19560, 19500, 19440, 19380, 19320, 19260, 19200, 19140, 19080, 19020, 18960, 18900, 18840, 18780, 18720, 18660, 18600, 18540, 18480, 18420, 18360, 18300, 18240, 18180, 18120, 18060, 18000, 17940, 17880, 17820, 17760, 17700, 17640, 17580, 17520, 17460, 17400, 17340, 17280, 17220, 17160, 17100, 17040, 16980, 16920, 16860, 16800, 16740, 16680, 16620, 16560, 16500, 16440, 16379, 16320, 16260, 16200, 16139, 16080, 16020, 15960, 15900, 15840, 15780, 15720, 15660, 15600, 15540, 15480, 15420, 15360, 15300, 15240, 15180, 15120, 15060, 15000, 14940, 14880, 14820, 14760, 14700, 14640, 14580, 14520, 14460, 14400, 14340, 14280, 14220, 14160, 14100, 14040, 13980, 13920, 13860, 13800, 13740, 13680, 13620, 13560, 13500, 13440, 13380, 13320, 13260, 13200, 13140, 13080, 13020, 12960, 12900, 12840, 12780, 12720, 12660, 12600, 12540, 12480, 12420, 12360, 12300, 12240, 12180, 12120, 12060, 12000, 11940, 11880, 11820, 11760, 11700, 11640, 11580, 11520, 11460, 11400, 11340, 11280, 11220, 11160, 11100, 11040, 10980, 10920, 10860, 10800, 10740, 10680, 10620, 10560, 10500, 10440, 10380, 10320, 10260, 10200, 10140, 10080, 10020, 9960, 9900, 9840, 9780, 9720, 9660, 9600, 9540, 9480, 9420, 9360, 9300, 9240, 9180, 9120, 9060, 9000, 8940, 8880, 8820, 8760, 8700, 8640, 8580, 8520, 8460, 8400, 8340, 8280, 8220, 8160, 8100, 8040, 7980, 7920, 7860, 7800, 7740, 7680, 7620, 7560, 7500, 7440, 7380, 7320, 7260, 7200, 7140, 7080, 7020, 6960, 6900, 6840, 6780, 6720, 6660, 6600, 6540, 6480, 6420, 6360, 6300, 6240, 6180, 6120, 6060, 6000, 5940, 5880, 5820, 5760, 5700, 5640, 5580, 5520, 5460, 5400, 5340, 5280, 5220, 5160, 5100, 5040, 4980, 4920, 4860, 4800, 4740, 4680, 4620, 4560, 4500, 4440, 4380, 4320, 4260, 4200, 4140, 4080, 4020, 3960, 3900, 3840, 3780, 3720, 3660, 3600, 3540, 3480, 3420, 3360, 3300, 3240, 3180, 3120, 3060, 3000, 2940, 2880, 2820, 2760, 2700, 2640, 2580, 2520, 2460, 2400, 2340, 2280, 2220, 2160, 2100, 2040, 1980, 1920, 1860, 1800, 1740, 1680, 1620, 1560, 1500, 1440, 1380, 1320, 1260, 1200, 1140, 1080, 1020, 960, 900, 840, 780, 720, 660, 600, 540, 480, 420, 360, 300, 240, 180, 120, 60, -0, -60, -120, -180, -240, -300, -360, -420, -480, -540, -600, -660, -720, -780, -840, -900, -960, -1020
}

altitudes of the bins (m)

Referenced by get_dardar_height().

const int DARDARFileData::nb_dardar_bin = 436 [static]

Number of vertical bins of a DARDAR (MASK+CLOUD) profile (fixed)


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