version 1.14, 2013/05/21 17:06:32
|
version 1.15, 2013/06/27 01:58:39
|
|
|
* v0.2 Sep 04 2012 | * v0.2 Sep 04 2012 |
* v0.3 Dec 18 2012 | * v0.3 Dec 18 2012 |
* v0.4 Jan 02 2013 | * v0.4 Jan 02 2013 |
|
* v0.5 Jan 23 2012 |
* | * |
* Notes: | * Notes: |
* v0.0 | * v0.0 |
|
|
* Fixed memory leakage of 0.15G per rec; denoted with "Dec 18" | * Fixed memory leakage of 0.15G per rec; denoted with "Dec 18" |
* v0.4 | * v0.4 |
* Took out convert_inplace(). Was causing all the images to be int | * Took out convert_inplace(). Was causing all the images to be int |
|
* v0.5 |
|
* Corrected ephemeris keywords, added argument mInfo for setKeys() |
* | * |
* Example: | * Example: |
* sharp "mharp=hmi.Mharp_720s[1404][2012.02.20_10:00]" \ | * sharp "mharp=hmi.Mharp_720s[1404][2012.02.20_10:00]" \ |
Line 173 enum projection { |
|
Line 175 enum projection { |
|
lambert | lambert |
}; | }; |
| |
|
// WSC code |
|
char *wcsCode[] = {"CAR", "CAS", "MER", "CEA", "GLS", "TAN", "ARC", "STG", |
|
"SIN", "ZEA"}; |
|
|
// Ephemeris information | // Ephemeris information |
struct ephemeris { | struct ephemeris { |
double disk_lonc, disk_latc; | double disk_lonc, disk_latc; |
Line 269 void computeSWIndex(struct swIndex *swKe |
|
Line 275 void computeSWIndex(struct swIndex *swKe |
|
void setSWIndex(DRMS_Record_t *outRec, struct swIndex *swKeys_ptr); | void setSWIndex(DRMS_Record_t *outRec, struct swIndex *swKeys_ptr); |
| |
/* Set all keywords, no error checking for now */ | /* Set all keywords, no error checking for now */ |
void setKeys(DRMS_Record_t *outRec, DRMS_Record_t *inRec); |
void setKeys(DRMS_Record_t *outRec, DRMS_Record_t *inRec, struct mapInfo *mInfo); |
| |
// =================== | // =================== |
| |
Line 311 char *CutSegs[] = {"magnetogram", "bitma |
|
Line 317 char *CutSegs[] = {"magnetogram", "bitma |
|
"disambig", "conf_disambig"}; | "disambig", "conf_disambig"}; |
char *CEASegs[] = {"magnetogram", "bitmap", "Dopplergram", "continuum", "disambig", | char *CEASegs[] = {"magnetogram", "bitmap", "Dopplergram", "continuum", "disambig", |
BR_SEG_CEA, BT_SEG_CEA, BP_SEG_CEA, BR_ERR_SEG_CEA, BT_ERR_SEG_CEA, BP_ERR_SEG_CEA}; | BR_SEG_CEA, BT_SEG_CEA, BP_SEG_CEA, BR_ERR_SEG_CEA, BT_ERR_SEG_CEA, BP_ERR_SEG_CEA}; |
|
|
/* ========================================================================================================== */ | /* ========================================================================================================== */ |
| |
char *module_name = "sharp"; | char *module_name = "sharp"; |
char *version_id = "2012 Dec 18"; /* Version number */ |
char *version_id = "2013 Jun 26"; /* Version number */ |
int seed; | int seed; |
| |
ModuleArgs_t module_args[] = | ModuleArgs_t module_args[] = |
|
|
contQuery = (char *) params_get_str(&cmdparams, "cont"); | contQuery = (char *) params_get_str(&cmdparams, "cont"); |
sharpCeaQuery = (char *) params_get_str(&cmdparams, "sharp_cea"); | sharpCeaQuery = (char *) params_get_str(&cmdparams, "sharp_cea"); |
sharpCutQuery = (char *) params_get_str(&cmdparams, "sharp_cut"); | sharpCutQuery = (char *) params_get_str(&cmdparams, "sharp_cut"); |
sharpCutQuery = (char *) params_get_str(&cmdparams, "sharp_cut"); |
|
| |
seed = params_get_int(&cmdparams, "seed"); | seed = params_get_int(&cmdparams, "seed"); |
| |
Line 675 int createCeaRecord(DRMS_Record_t *mharp |
|
Line 681 int createCeaRecord(DRMS_Record_t *mharp |
|
DRMS_Link_t *bHarpLink = hcon_lookup_lower(&sharpRec->links, "BHARP"); | DRMS_Link_t *bHarpLink = hcon_lookup_lower(&sharpRec->links, "BHARP"); |
if (bHarpLink) drms_link_set("BHARP", sharpRec, bharpRec); | if (bHarpLink) drms_link_set("BHARP", sharpRec, bharpRec); |
| |
setKeys(sharpRec, bharpRec); // Set all other keywords |
setKeys(sharpRec, bharpRec, &mInfo); // Set all other keywords |
drms_copykey(sharpRec, mharpRec, "QUALITY"); // copied from los records | drms_copykey(sharpRec, mharpRec, "QUALITY"); // copied from los records |
| |
// Space weather | // Space weather |
Line 1561 int createCutRecord(DRMS_Record_t *mharp |
|
Line 1567 int createCutRecord(DRMS_Record_t *mharp |
|
if (bHarpLink) drms_link_set("BHARP", sharpRec, bharpRec); | if (bHarpLink) drms_link_set("BHARP", sharpRec, bharpRec); |
| |
setSWIndex(sharpRec, swKeys_ptr); // Set space weather indices | setSWIndex(sharpRec, swKeys_ptr); // Set space weather indices |
setKeys(sharpRec, bharpRec); // Set all other keywords |
setKeys(sharpRec, bharpRec, NULL); // Set all other keywords, NULL specifies cutout |
| |
// Stats | // Stats |
| |
Line 1914 void setSWIndex(DRMS_Record_t *outRec, s |
|
Line 1920 void setSWIndex(DRMS_Record_t *outRec, s |
|
* | * |
*/ | */ |
| |
void setKeys(DRMS_Record_t *outRec, DRMS_Record_t *inRec) |
void setKeys(DRMS_Record_t *outRec, DRMS_Record_t *inRec, struct mapInfo *mInfo) |
{ | { |
copy_me_keys(inRec, outRec); | copy_me_keys(inRec, outRec); |
copy_patch_keys(inRec, outRec); | copy_patch_keys(inRec, outRec); |
copy_geo_keys(inRec, outRec); | copy_geo_keys(inRec, outRec); |
copy_ambig_keys(inRec, outRec); | copy_ambig_keys(inRec, outRec); |
| |
|
int status = 0; |
|
|
|
// Change a few geometry keywords for CEA records |
|
if (mInfo != NULL) { |
|
|
|
drms_setkey_float(outRec, "CRPIX1", mInfo->ncol/2. + 0.5); |
|
drms_setkey_float(outRec, "CRPIX2", mInfo->nrow/2. + 0.5); |
|
|
|
drms_setkey_float(outRec, "CRVAL1", mInfo->xc); |
|
drms_setkey_float(outRec, "CRVAL2", mInfo->yc); |
|
drms_setkey_float(outRec, "CDELT1", mInfo->xscale); |
|
drms_setkey_float(outRec, "CDELT2", mInfo->yscale); |
|
drms_setkey_string(outRec, "CUNIT1", "degree"); |
|
drms_setkey_string(outRec, "CUNIT2", "degree"); |
|
|
|
char key[64]; |
|
snprintf (key, 64, "CRLN-%s", wcsCode[(int) mInfo->proj]); |
|
drms_setkey_string(outRec, "CTYPE1", key); |
|
snprintf (key, 64, "CRLT-%s", wcsCode[(int) mInfo->proj]); |
|
drms_setkey_string(outRec, "CTYPE2", key); |
|
drms_setkey_float(outRec, "CROTA2", 0.0); |
|
|
|
} else { |
|
|
|
float disk_xc = drms_getkey_float(inRec, "IMCRPIX1", &status); |
|
float disk_yc = drms_getkey_float(inRec, "IMCRPIX2", &status); |
|
float x_ll = drms_getkey_float(inRec, "CRPIX1", &status); |
|
float y_ll = drms_getkey_float(inRec, "CRPIX2", &status); |
|
// Defined as disk center's pixel address wrt lower-left of cutout |
|
drms_setkey_float(outRec, "CRPIX1", disk_xc - x_ll + 1.); |
|
drms_setkey_float(outRec, "CRPIX2", disk_yc - y_ll + 1.); |
|
// Always 0. |
|
drms_setkey_float(outRec, "CRVAL1", 0); |
|
drms_setkey_float(outRec, "CRVAL2", 0); |
|
|
|
} |
|
|
char timebuf[1024]; | char timebuf[1024]; |
float UNIX_epoch = -220924792.000; /* 1970.01.01_00:00:00_UTC */ | float UNIX_epoch = -220924792.000; /* 1970.01.01_00:00:00_UTC */ |
double val; | double val; |
int status = DRMS_SUCCESS; |
|
| |
val = drms_getkey_double(inRec, "DATE",&status); | val = drms_getkey_double(inRec, "DATE",&status); |
drms_setkey_double(outRec, "DATE_B", val); | drms_setkey_double(outRec, "DATE_B", val); |
Line 1975 void frebin (float *image_in, float *ima |
|
Line 2017 void frebin (float *image_in, float *ima |
|
fresize(&fresizes, image_in, image_out, nx, ny, nlead, nxout, nyout, nxout, xoff, yoff, DRMS_MISSING_FLOAT); | fresize(&fresizes, image_in, image_out, nx, ny, nlead, nxout, nyout, nxout, xoff, yoff, DRMS_MISSING_FLOAT); |
| |
} | } |
|
|