version 1.37, 2015/03/11 21:46:52
|
version 1.38, 2015/03/18 00:28:26
|
|
|
// Nyqvist rate at disk center is 0.03 degree. Oversample above 0.015 degree | // Nyqvist rate at disk center is 0.03 degree. Oversample above 0.015 degree |
#define NYQVIST (0.015) | #define NYQVIST (0.015) |
| |
|
// Maximum variation of LONDTMAX-LONDTMIN |
|
#define MAXLONDIFF (1.2e-4) |
|
|
// Some other things | // Some other things |
#ifndef MIN | #ifndef MIN |
#define MIN(a,b) (((a)<(b)) ? (a) : (b)) | #define MIN(a,b) (((a)<(b)) ? (a) : (b)) |
Line 1086 int findPosition(DRMS_Record_t *inRec, s |
|
Line 1089 int findPosition(DRMS_Record_t *inRec, s |
|
| |
/* Size */ | /* Size */ |
// Rounded to 1.d3 precision first. Jun 16 2014 XS | // Rounded to 1.d3 precision first. Jun 16 2014 XS |
|
// The previous fix does not work. LONDTMAX-LONDTMIN varies from frame to frame |
|
// Need to find out the maximum possible difference, MAXLONDIFF (1.2e-4) |
|
// Now, ncol = (maxlon-minlon)/xscale, if the decimal part is outside 0.5 \pm (MAXLONDIFF/xscale) |
|
// proceed as it is. else, all use floor on ncol |
|
|
|
float dpix = (MAXLONDIFF / mInfo->xscale) * 1.5; // "danger zone" |
|
float ncol = (maxlon - minlon) / mInfo->xscale; |
|
float d_ncol = fabs(ncol - floor(ncol) - 0.5); // distance to 0.5 |
|
if (d_ncol < dpix) { |
|
mInfo->ncol = floor(ncol); |
|
} else { |
|
mInfo->ncol = round(ncol); |
|
} |
|
|
|
mInfo->nrow = round((maxlat - minlat) / mInfo->yscale); |
| |
mInfo->ncol = round(round((maxlon - minlon) * 1.e3) / 1.e3 / mInfo->xscale); |
printf("xcol=%f, ncol=%d, nrow=%d\n", ncol, mInfo->ncol, mInfo->nrow); |
mInfo->nrow = round(round((maxlat - minlat) * 1.e3) / 1.e3 / mInfo->yscale); |
|
| |
return 0; | return 0; |
| |