// // C++ Implementation: test_IDW_interp // // Description: Test cases for the IDW_interp method // // // Author: Nicolas PASCAL , (C) 2009 // // Copyright: See COPYING file that comes with this distribution // // #include "sphere_geometry.h" #include "modisfiledata.h" #include int main(int argc, char *argv[]) { long ref_idx[2], idx [2]; float32 lat, lon; // // Read the extremal pixels geolocations of a MODIS granule situed near the equator // fd = MODISFileData("/DATA/MODIS/MYD02QKM/2009/2009_01_01/MYD02QKM.A2009001.0440.005.2009003202238.hdf"); // fd.load_geolocation_data(); // // // // the geolocation of the granule corners // // vector < float32 > lat_gran_corner(4); // // vector < float32 > lon_gran_corner(4); // // vector < long > gran_sz(2); // // lat_gran_corner = fd.get_lat_gran_corner (); // // lon_gran_corner = fd.get_lon_gran_corner (); // // gran_sz = fd.get_sds_dimension( "Latitude" ); // // printf ( "Granule Size : [ %d, %d ]\n", gran_sz[0], gran_sz[1] ); // // printf ( "Latitude of the granule corners : %f %f %f %f\n", lat_gran_corner[0], lat_gran_corner[1], lat_gran_corner[2], lat_gran_corner[3] ); // // printf ( "Longitude of the granule corners : %f %f %f %f\n", lon_gran_corner[0], lon_gran_corner[1], lon_gran_corner[2], lon_gran_corner[3] ); // // // search a coincidence by brute force // lat = 3.2, lon = 126.; // fd.get_index_brute_force ( lat, lon, ref_idx ); // printf ( "Brute Force Index of Pixel ( %f, %f ) : [ %d, %d ]\n", lat, lon, ref_idx [0], ref_idx [1] ); // fd.get_index_IDW ( lat, lon, idx ); // printf ( "IDW Index of Pixel ( %f, %f ) : [ %d, %d ]\n", lat, lon, idx [0], idx [1] ); // MODIS Granule Near the poles MODISFileData fd("/DATA/MODIS/MYD02QKM/2009/2009_01_01/MYD02QKM.A2009001.0410.005.2009003203321.hdf"); fd.load_geolocation_data(); // search a coincidence by brute force lat = -72.49, lon = -50.06; fd.get_index_brute_force ( lat, lon, ref_idx ); printf ( "Brute Force Index of Pixel ( %f, %f ) : [ %ld, %ld ]\n", lat, lon, ref_idx [0], ref_idx [1] ); fd.get_index_IDW ( lat, lon, idx ); printf ( "IDW Index of Pixel ( %f, %f ) : [ %ld, %ld ]\n", lat, lon, idx [0], idx [1] ); fflush ( stdout ); return 0; }