ocssw
V2022
|
mtl_grid.c
Go to the documentation of this file.
51 if ( calc_grid_point( parms, smeta, dellon, band_index, sca+1, ecfsun, &bgrid->sgrid[sca].pgrid[nrow][ncol] ) != SUCCESS )
106 if ( (bgrid->sgrid = (MTL_GRID_SCA_LS *)malloc( bgrid->nsca * sizeof( MTL_GRID_SCA_LS ) )) == NULL )
126 if ( calc_grid_point_ls( parms, smeta, dellon, band_index, sca+1, ecfsun, &bgrid->sgrid[sca].pgrid[nrow][ncol] ) != SUCCESS )
176 gline = (sgrid->pgrid[nrow][ncol].l1t_line - sgrid->min_line) / (sgrid->max_line - sgrid->min_line);
177 gsamp = (sgrid->pgrid[nrow][ncol].l1t_samp - sgrid->min_samp) / (sgrid->max_samp - sgrid->min_samp);
215 sgrid->ls_to_ndet[nrow] = norm[nrow][0]*rhs1[0] + norm[nrow][1]*rhs1[1] + norm[nrow][2]*rhs1[2] + norm[nrow][3]*rhs1[3];
216 sgrid->ls_to_frow[nrow] = norm[nrow][0]*rhs2[0] + norm[nrow][1]*rhs2[1] + norm[nrow][2]*rhs2[2] + norm[nrow][3]*rhs2[3];
246 gline = (sgrid->pgrid[nrow][ncol].l1t_line - sgrid->min_line) / (sgrid->max_line - sgrid->min_line);
247 gsamp = (sgrid->pgrid[nrow][ncol].l1t_samp - sgrid->min_samp) / (sgrid->max_samp - sgrid->min_samp);
285 sgrid->ls_to_ndet[nrow] = norm[nrow][0]*rhs1[0] + norm[nrow][1]*rhs1[1] + norm[nrow][2]*rhs1[2] + norm[nrow][3]*rhs1[3];
286 sgrid->ls_to_frow[nrow] = norm[nrow][0]*rhs2[0] + norm[nrow][1]*rhs2[1] + norm[nrow][2]*rhs2[2] + norm[nrow][3]*rhs2[3];
348 pathrow_to_posvel( parms, smeta.wrs_path, dellon, (double)smeta.wrs_row+gpt->frow, &pos, &vel );
390 if ( smeta_proj_to_l1t( &smeta, smeta.band_smeta[band_index].band, proj_x, proj_y, &gpt->l1t_line, &gpt->l1t_samp ) != SUCCESS )
433 pathrow_to_posvel( parms, smeta.wrs_path, dellon, (double)smeta.wrs_row+gpt->frow, &pos, &vel );
476 if ( smeta_proj_to_l1t( &smeta, smeta.band_smeta_ls[band_index].band, proj_x, proj_y, &gpt->l1t_line, &gpt->l1t_samp ) != SUCCESS )
534 sline = (line - bgrid.sgrid[sca].min_line) / (bgrid.sgrid[sca].max_line - bgrid.sgrid[sca].min_line);
535 ssamp = (samp - bgrid.sgrid[sca].min_samp) / (bgrid.sgrid[sca].max_samp - bgrid.sgrid[sca].min_samp);
632 if ( MIN( curr_det[0], bgrid.num_detectors-curr_det[0] ) < MIN( curr_det[1], bgrid.num_detectors-curr_det[1] ) )
685 sline = (line - bgrid.sgrid[sca].min_line) / (bgrid.sgrid[sca].max_line - bgrid.sgrid[sca].min_line);
void pathrow_to_posvel(WRS2 parms, int path, double dellon, double wrsrow, VECTOR *pos, VECTOR *vel)
Definition: mtl_geometry.c:1003
int calc_los(SMETA_BAND band_smeta, int sca, double ndet, VECTOR *los)
Definition: mtl_geometry.c:19
int calc_band_grid(WRS2 parms, SMETA smeta, double dellon, VECTOR ecfsun, int band_index, MTL_GRID_BAND *bgrid)
Definition: mtl_grid.c:14
int smeta_angles_ls(double line, double samp, MTL_GRID_BAND_LS bgrid, short *sat_zn, short *sat_az, short *sun_zn, short *sun_az)
Definition: mtl_grid.c:644
Definition: mtl_grid.h:23
Definition: mtl_grid.h:34
Definition: mtl_geometry.h:35
Definition: mtl_grid.h:58
int smeta_proj_to_l1t(SMETA *smeta, int band, double proj_x, double proj_y, double *l1t_line, double *l1t_samp)
Definition: smeta_geometry.c:73
Definition: mtl_geometry.h:21
int calc_yaw_steering_gp(WRS2 parms, VECTOR pos, VECTOR vel, VECTOR i_los, double roll, double *gp_lat, double *gp_lon)
Definition: mtl_geometry.c:100
int calc_yaw_steering_gp_ls(WRS2 parms, VECTOR pos, VECTOR vel, VECTOR i_los, double roll, double *gp_lat, double *gp_lon)
Definition: mtl_geometry.c:265
Definition: mtl_grid.h:46
int smeta_geodetic_to_ecf2lsr(double lat, double lon, double ecf2lsr[3][3])
Definition: smeta_geometry.c:48
int calc_band_grid_ls(WRS2 parms, SMETA smeta, double dellon, VECTOR ecfsun, int band_index, MTL_GRID_BAND_LS *bgrid)
Definition: mtl_grid.c:91
int smeta_angles(double line, double samp, MTL_GRID_BAND bgrid, short *sca_num, short *det_num, double *sat_zn, double *sat_az, double *sun_zn, double *sun_az)
Definition: mtl_grid.c:485
Definition: mtl_grid.h:68
int calc_grid_point(WRS2 parms, SMETA smeta, double dellon, int band_index, int sca, VECTOR ecfsun, MTL_GRID_PT *gpt)
Definition: mtl_grid.c:315
int calc_grid_point_ls(WRS2 parms, SMETA smeta, double dellon, int band_index, int sca, VECTOR ecfsun, MTL_GRID_PT *gpt)
Definition: mtl_grid.c:400
Definition: ias_structures.h:24
int smeta_geodetic_to_ecef(double lat, double lon, double hgt, IAS_VECTOR *ecef)
Definition: smeta_geometry.c:29
int smeta_geodetic_to_proj(SMETA_SCENE_PROJ proj, double lat, double lon, double *proj_x, double *proj_y)
Definition: smeta_geometry.c:158
Definition: smeta.h:118
PGE01 indicating that PGE02 PGE01 V6 for and PGE01 V2 for MOD03 were used to produce the granule By convention adopted in all MODIS Terra PGE02 code versions are The fourth digit of the PGE02 version denotes the LUT version used to produce the granule The source of the metadata environment variable ProcessingCenter was changed from a QA LUT value to the Process Configuration A sign used in error in the second order term was changed to a
Definition: HISTORY.txt:424
int calc_los_ls(SMETA_BAND_LS band_smeta, double frow, double npix, double ndet, VECTOR *los)
Definition: mtl_geometry.c:52