version 1.5, 2012/10/23 19:35:37
|
version 1.7, 2013/01/03 03:53:18
|
|
|
* v0.0 Jul 02 2012 | * v0.0 Jul 02 2012 |
* v0.1 Jul 23 2012 | * v0.1 Jul 23 2012 |
* v0.2 Sep 04 2012 | * v0.2 Sep 04 2012 |
|
* v0.3 Dec 18 2012 |
|
* v0.4 Jan 02 2013 |
* | * |
* Notes: | * Notes: |
* v0.0 | * v0.0 |
|
|
* SW indices fixed | * SW indices fixed |
* Added doppler and continuum | * Added doppler and continuum |
* Added other keywords: HEADER (populated by cvs build version), DATE_B | * Added other keywords: HEADER (populated by cvs build version), DATE_B |
|
* v0.3 |
|
* Fixed memory leakage of 0.15G per rec; denoted with "Dec 18" |
|
* v0.4 |
|
* Took out convert_inplace(). Was causing all the images to be int |
|
|
* | * |
* 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 294 char *CEASegs[] = {"magnetogram", "bitma |
|
Line 301 char *CEASegs[] = {"magnetogram", "bitma |
|
| |
| |
char *module_name = "sharp"; | char *module_name = "sharp"; |
char *version_id = "2012 Jul 02"; /* Version number */ |
char *version_id = "2012 Dec 18"; /* Version number */ |
| |
ModuleArgs_t module_args[] = | ModuleArgs_t module_args[] = |
{ | { |
|
|
| |
} // irec | } // irec |
| |
|
|
drms_close_records(mharpRS, DRMS_FREE_RECORD); | drms_close_records(mharpRS, DRMS_FREE_RECORD); |
drms_close_records(bharpRS, DRMS_FREE_RECORD); | drms_close_records(bharpRS, DRMS_FREE_RECORD); |
|
drms_close_records(dopRS, DRMS_FREE_RECORD); // Dec 18 2012 |
|
drms_close_records(contRS, DRMS_FREE_RECORD); // Dec 18 2012 |
| |
return 0; | return 0; |
| |
Line 730 int mapScaler(DRMS_Record_t *sharpRec, D |
|
Line 740 int mapScaler(DRMS_Record_t *sharpRec, D |
|
outSeg = drms_segment_lookup(sharpRec, segName); | outSeg = drms_segment_lookup(sharpRec, segName); |
if (!outSeg) return 1; | if (!outSeg) return 1; |
| |
DRMS_Type_t arrayType = outSeg->info->type; |
// DRMS_Type_t arrayType = outSeg->info->type; |
DRMS_Array_t *outArray = drms_array_create(DRMS_TYPE_FLOAT, 2, dims, map, &status); | DRMS_Array_t *outArray = drms_array_create(DRMS_TYPE_FLOAT, 2, dims, map, &status); |
if (status) {if (inArray) drms_free_array(inArray); free(map); return 1;} | if (status) {if (inArray) drms_free_array(inArray); free(map); return 1;} |
| |
// convert to needed data type | // convert to needed data type |
| |
drms_array_convert_inplace(outSeg->info->type, 0, 1, outArray); |
// drms_array_convert_inplace(outSeg->info->type, 0, 1, outArray); // Jan 02 2013 |
| |
outSeg->axis[0] = outArray->axis[0]; outSeg->axis[1] = outArray->axis[1]; | outSeg->axis[0] = outArray->axis[0]; outSeg->axis[1] = outArray->axis[1]; |
outArray->parent_segment = outSeg; | outArray->parent_segment = outSeg; |
outArray->israw = 0; // always compressed |
// outArray->israw = 0; // always compressed |
outArray->bzero = outSeg->bzero; | outArray->bzero = outSeg->bzero; |
outArray->bscale = outSeg->bscale; | outArray->bscale = outSeg->bscale; |
| |
Line 748 int mapScaler(DRMS_Record_t *sharpRec, D |
|
Line 758 int mapScaler(DRMS_Record_t *sharpRec, D |
|
if (status) return 0; | if (status) return 0; |
| |
if (inArray) drms_free_array(inArray); | if (inArray) drms_free_array(inArray); |
|
if ((xsz != FOURK) || (ysz != FOURK)) free(inData); // Dec 18 2012 |
if (outArray) drms_free_array(outArray); | if (outArray) drms_free_array(outArray); |
return 0; | return 0; |
| |
Line 815 int mapVectorB(DRMS_Record_t *sharpRec, |
|
Line 826 int mapVectorB(DRMS_Record_t *sharpRec, |
|
outArray = drms_array_create(DRMS_TYPE_FLOAT, 2, dims, data_prt[iSeg], &status); | outArray = drms_array_create(DRMS_TYPE_FLOAT, 2, dims, data_prt[iSeg], &status); |
outSeg->axis[0] = outArray->axis[0]; outSeg->axis[1] = outArray->axis[1]; | outSeg->axis[0] = outArray->axis[0]; outSeg->axis[1] = outArray->axis[1]; |
outArray->parent_segment = outSeg; | outArray->parent_segment = outSeg; |
outArray->israw = 0; |
// outArray->israw = 0; |
outArray->bzero = outSeg->bzero; | outArray->bzero = outSeg->bzero; |
outArray->bscale = outSeg->bscale; | outArray->bscale = outSeg->bscale; |
status = drms_segment_write(outSeg, outArray, 0); | status = drms_segment_write(outSeg, outArray, 0); |
Line 867 int mapVectorBErr(DRMS_Record_t *sharpRe |
|
Line 878 int mapVectorBErr(DRMS_Record_t *sharpRe |
|
outArray = drms_array_create(DRMS_TYPE_FLOAT, 2, dims, data_prt[iSeg], &status); | outArray = drms_array_create(DRMS_TYPE_FLOAT, 2, dims, data_prt[iSeg], &status); |
outSeg->axis[0] = outArray->axis[0]; outSeg->axis[1] = outArray->axis[1]; | outSeg->axis[0] = outArray->axis[0]; outSeg->axis[1] = outArray->axis[1]; |
outArray->parent_segment = outSeg; | outArray->parent_segment = outSeg; |
outArray->israw = 0; |
// outArray->israw = 0; |
outArray->bzero = outSeg->bzero; | outArray->bzero = outSeg->bzero; |
outArray->bscale = outSeg->bscale; | outArray->bscale = outSeg->bscale; |
status = drms_segment_write(outSeg, outArray, 0); | status = drms_segment_write(outSeg, outArray, 0); |
Line 1107 int performSampling(float *outData, floa |
|
Line 1118 int performSampling(float *outData, floa |
|
// Rebinning, smoothing | // Rebinning, smoothing |
| |
frebin(outData0, outData, ncol0, nrow0, mInfo->nbin, 1); // Gaussian | frebin(outData0, outData, ncol0, nrow0, mInfo->nbin, 1); // Gaussian |
|
free(outData0); // Dec 18 2012 |
| |
// | // |
| |
Line 1589 int writeCutout(DRMS_Record_t *outRec, D |
|
Line 1601 int writeCutout(DRMS_Record_t *outRec, D |
|
| |
#if DISAMB_AZI | #if DISAMB_AZI |
if (!strcmp(SegName, "azimuth")) { | if (!strcmp(SegName, "azimuth")) { |
DRMS_Segment_t *disambSeg = drms_segment_lookup(inRec, "disambig"); |
DRMS_Segment_t *disambSeg = NULL; |
|
disambSeg = drms_segment_lookup(inRec, "disambig"); |
if (!disambSeg) {drms_free_array(cutoutArray); return 1;} | if (!disambSeg) {drms_free_array(cutoutArray); return 1;} |
DRMS_Array_t *disambArray; | DRMS_Array_t *disambArray; |
if (disambSeg->axis[0] == nx && disambSeg->axis[1] == ny) { | if (disambSeg->axis[0] == nx && disambSeg->axis[1] == ny) { |
disambArray = drms_segment_read(disambSeg, DRMS_TYPE_CHAR, &status); | disambArray = drms_segment_read(disambSeg, DRMS_TYPE_CHAR, &status); |
if (status) {drms_free_array(cutoutArray); return 1;} | if (status) {drms_free_array(cutoutArray); return 1;} |
} else { | } else { |
|
drms_free_array(cutoutArray); |
return 1; | return 1; |
} | } |
double *azimuth = (double *) cutoutArray->data; | double *azimuth = (double *) cutoutArray->data; |
Line 1611 int writeCutout(DRMS_Record_t *outRec, D |
|
Line 1625 int writeCutout(DRMS_Record_t *outRec, D |
|
| |
outSeg = drms_segment_lookup(outRec, SegName); | outSeg = drms_segment_lookup(outRec, SegName); |
if (!outSeg) return 1; | if (!outSeg) return 1; |
drms_array_convert_inplace(outSeg->info->type, 0, 1, cutoutArray); |
// drms_array_convert_inplace(outSeg->info->type, 0, 1, cutoutArray); // Jan 02 2013 |
outSeg->axis[0] = cutoutArray->axis[0]; | outSeg->axis[0] = cutoutArray->axis[0]; |
outSeg->axis[1] = cutoutArray->axis[1]; | outSeg->axis[1] = cutoutArray->axis[1]; |
cutoutArray->parent_segment = outSeg; | cutoutArray->parent_segment = outSeg; |
cutoutArray->israw = 0; // always compressed |
// cutoutArray->israw = 0; // always compressed |
cutoutArray->bzero = outSeg->bzero; | cutoutArray->bzero = outSeg->bzero; |
cutoutArray->bscale = outSeg->bscale; // Same as inArray's | cutoutArray->bscale = outSeg->bscale; // Same as inArray's |
status = drms_segment_write(outSeg, cutoutArray, 0); | status = drms_segment_write(outSeg, cutoutArray, 0); |
Line 1774 void computeSWIndex(struct swIndex *swKe |
|
Line 1788 void computeSWIndex(struct swIndex *swKe |
|
| |
// Clean up | // Clean up |
| |
|
drms_free_array(bitmaskArray); // Dec 18 2012 Xudong |
drms_free_array(maskArray); | drms_free_array(maskArray); |
drms_free_array(bxArray); | drms_free_array(bxArray); |
drms_free_array(byArray); | drms_free_array(byArray); |