Skip to content

Commit d9bb7fc

Browse files
committed
Warp fix with temporary print statements
1 parent edbdd85 commit d9bb7fc

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

src/math/warpExposure.cc

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,6 +587,9 @@ int warpImage(DestImageT &destImage, SrcImageT const &srcImage,
587587
int endCol = edgeColList[colBand];
588588
yDeltaSrcPosList[colBand] =
589589
(bottomSrcPosList[colBand] - srcPosView[endCol]) * interpInvHeight;
590+
if ((!std::isnan(yDeltaSrcPosList[colBand][0])) && (endRow < 20) && (endCol < 500)) {
591+
std::cerr << "not nan " << endRow << " " << endCol << yDeltaSrcPosList[colBand] << std::endl;
592+
}
590593
}
591594

592595
for (int row = prevEndRow + 1; row <= endRow; ++row) {
@@ -604,10 +607,25 @@ int warpImage(DestImageT &destImage, SrcImageT const &srcImage,
604607
lsst::geom::Point2D leftSrcPos = srcPosView[prevEndCol];
605608
lsst::geom::Point2D rightSrcPos = srcPosView[endCol] + yDeltaSrcPosList[colBand];
606609
lsst::geom::Extent2D xDeltaSrcPos = (rightSrcPos - leftSrcPos) * invWidthList[colBand];
610+
if (!std::isnan(bottomSrcPosList[colBand][0])) {
611+
if ((row < 30) && (row > 9) && (colBand < 50)) {
612+
std::cerr << "prev col: " << prevEndCol << " " << srcPosView[prevEndCol] << std::endl;
613+
std::cerr << row << " " << colBand << " " << bottomSrcPosList[colBand] << " " << srcPosView[endCol] << " " << yDeltaSrcPosList[colBand] << " " << xDeltaSrcPos << std::endl;
614+
}
615+
}
607616

608617
for (int col = prevEndCol + 1; col <= endCol; ++col, ++destXIter) {
609618
lsst::geom::Point2D leftSrcPos = srcPosView[col - 1];
610-
lsst::geom::Point2D srcPos = leftSrcPos + xDeltaSrcPos;
619+
lsst::geom::Point2D srcPos;
620+
if (col == endCol) {
621+
if ((row < 30) && (row > 9) && (colBand < 50)) {
622+
std::cerr << "resetting at endCol: " << row << " " << col << " " << leftSrcPos + xDeltaSrcPos << " " << rightSrcPos << std::endl;
623+
}
624+
srcPos = rightSrcPos;
625+
}
626+
else {
627+
srcPos = leftSrcPos + xDeltaSrcPos;
628+
}
611629
double relativeArea = computeRelativeArea(srcPos, leftSrcPos, srcPosView[col]);
612630

613631
srcPosView[col] = srcPos;
@@ -618,6 +636,17 @@ int warpImage(DestImageT &destImage, SrcImageT const &srcImage,
618636
++numGoodPixels;
619637
}
620638
} // for col
639+
if (row == endRow) {
640+
// Set srcPosView to correct bottowSrcPosList to override nans:
641+
if ((row < 30) && (row >= 9) && (colBand < 50)) {
642+
std::cerr << "before reset: " << endRow << " " << colBand << " " << srcPosView[endCol] << " "<< bottomSrcPosList[colBand] << std::endl;
643+
}
644+
srcPosView[endCol] = bottomSrcPosList[colBand];
645+
if ((row < 30) && (row >= 9) && (colBand < 50)){
646+
std::cerr << "after reset: " << srcPosView[endCol] << " "<< bottomSrcPosList[colBand] << std::endl;
647+
}
648+
649+
}
621650
} // for col band
622651
} // for row
623652
} // while next row band

0 commit comments

Comments
 (0)