IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6887 for trunk/stac/src/stac.c


Ignore:
Timestamp:
Apr 18, 2006, 12:20:45 PM (20 years ago)
Author:
Paul Price
Message:

Updating to use psLib rel11. Main problem was that vector and array lengths ('n' element) are no longer set to equal the number of allocated values ('nalloc' element) when allocated.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/stac/src/stac.c

    r6771 r6887  
    4545    // Generate masks
    4646    psArray *masks = psArrayAlloc(inputs->n);
     47    masks->n = inputs->n;
    4748    for (int i = 0; i < inputs->n; i++) {
    4849        psImage *image = inputs->data[i]; // Image for which to get mask
     
    6768    // Get size, if not input
    6869    if (config->outnx == 0 || config->outny == 0) {
    69         stacSize(&config->outnx, &config->outny, &config->xMapDiff, &config->yMapDiff, inputs, maps);
     70        psVector *xSize = psVectorAlloc(inputs->n, PS_TYPE_S32); // Sizes of images in x
     71        psVector *ySize = psVectorAlloc(inputs->n, PS_TYPE_S32); // Sizes of images in y
     72        xSize->n = inputs->n;
     73        ySize->n = inputs->n;
     74        for (int i = 0; i < inputs->n; i++) {
     75            psImage *image = inputs->data[i]; // The i-th image
     76            xSize->data.S32[i] = image->numCols;
     77            ySize->data.S32[i] = image->numRows;
     78        }
     79        stacSize(&config->outnx, &config->outny, &config->xMapDiff, &config->yMapDiff, xSize, ySize, maps);
     80        psFree(xSize);
     81        psFree(ySize);
    7082    }
    7183
     
    96108    for (int i = 0; i < inputs->n; i++) {
    97109        char errName[MAXCHAR];          // Filename of error image
    98         sprintf(errName,"%s.err",config->inputs->data[i]);
     110        sprintf(errName,"%s.err", (char*)config->inputs->data[i]);
    99111        psFits *errorFile = psFitsOpen(errName, "w");
    100         if (!psFitsWriteImage(errorFile, NULL, errors->data[i], 0)) {
     112        if (!psFitsWriteImage(errorFile, NULL, errors->data[i], 0, NULL)) {
    101113            psErrorStackPrint(stderr, "Unable to write image: %s\n", errName);
    102114        }
     
    118130        char shiftName[MAXCHAR];        // Filename of shift image
    119131        char errName[MAXCHAR];          // Filename of error image
    120         sprintf(shiftName,"%s.shift1",config->inputs->data[i]);
    121         sprintf(errName,"%s.shifterr1",config->inputs->data[i]);
     132        sprintf(shiftName,"%s.shift1", (char*)config->inputs->data[i]);
     133        sprintf(errName,"%s.shifterr1",(char*)config->inputs->data[i]);
    122134        psFits *shiftFile = psFitsOpen(shiftName, "w");
    123135        psFits *errFile = psFitsOpen(errName, "w");
    124136        psImage *trans = transformed->data[i]; // Transformed image
    125137        psImage *transErr = transformedErrors->data[i]; // Transformed error image
    126         if (!psFitsWriteImage(shiftFile, NULL, trans, 0)) {
     138        if (!psFitsWriteImage(shiftFile, NULL, trans, 0, NULL)) {
    127139            psErrorStackPrint(stderr, "Unable to write image: %s\n", shiftName);
    128140        }
    129141        psTrace("stac", 1, "Shifted image written to %s\n", shiftName);
    130         if (!psFitsWriteImage(errFile, NULL, transErr, 0)) {
     142        if (!psFitsWriteImage(errFile, NULL, transErr, 0, NULL)) {
    131143            psErrorStackPrint(stderr, "Unable to write image: %s\n", errName);
    132144        }
     
    146158    psVector *saturated = psVectorAlloc(transformed->n, PS_TYPE_F32); // Saturation limits
    147159    psVector *bad = psVectorAlloc(transformed->n, PS_TYPE_F32); // Bad limits
     160    saturated->n = transformed->n;
     161    bad->n = transformed->n;
    148162    for (int i = 0; i < transformed->n; i++) {
    149163        saturated->data.F32[i] = (config->saturated - offsets->data.F32[i]) / scales->data.F32[i];
     
    182196    for (int i = 0; i < rejected->n; i++) {
    183197        char rejName[MAXCHAR];  // Filename of rejection image
    184         sprintf(rejName, "%s.shiftrej", config->inputs->data[i]);
     198        sprintf(rejName, "%s.shiftrej", (char*)config->inputs->data[i]);
    185199
    186200        psFits *rejFile = psFitsOpen(rejName, "w");
    187         if (!psFitsWriteImage(rejFile, NULL, rejected->data[i], 0)) {
     201        if (!psFitsWriteImage(rejFile, NULL, rejected->data[i], 0, NULL)) {
    188202            psErrorStackPrint(stderr, "Unable to write image: %s\n", rejName);
    189203        }
     
    196210    sprintf(preName, "%s.pre", config->output);
    197211    psFits *preFile = psFitsOpen(preName, "w");
    198     if (!psFitsWriteImage(preFile, NULL, combined, 0)) {
     212    if (!psFitsWriteImage(preFile, NULL, combined, 0, NULL)) {
    199213        psErrorStackPrint(stderr, "Unable to write image: %s\n", preName);
    200214    }
     
    205219    // Get regions of interest in the source frame
    206220    psArray *regions = psArrayAlloc(inputs->n); // Array of images denoting regions of interest
     221    regions->n = inputs->n;
    207222    for (int i = 0; i < inputs->n; i++) {
    208223        regions->data[i] = stacAreaOfInterest(rejected->data[i], inverseMaps->data[i],
     
    211226#ifdef TESTING
    212227        char regionName[MAXCHAR];       // Filename of region image
    213         sprintf(regionName,"%s.region",config->inputs->data[i]);
     228        sprintf(regionName,"%s.region",(char*)config->inputs->data[i]);
    214229        psFits *regionFile = psFitsOpen(regionName, "w");
    215         if (!psFitsWriteImage(regionFile, NULL, regions->data[i], 0)) {
     230        if (!psFitsWriteImage(regionFile, NULL, regions->data[i], 0, NULL)) {
    216231            psErrorStackPrint(stderr, "Unable to write image: %s\n", regionName);
    217232        }
Note: See TracChangeset for help on using the changeset viewer.