Project

General

Profile

Crash #2329

jigsaw - seg faults when passed qtie updated image

Added by Lynn Weller over 2 years ago. Updated over 2 years ago.

Status:
Acknowledged
Priority:
Normal
Assignee:
-
Category:
Applications
Target version:
-
Impact:
Software Version:
Test Reviewer:

Description

Jigsaw will seg fault when the image list contains a qtie updated image in certain cases. I am working with linescan data in particular. I understand qtie updated framing camera data have successfully have been bundled. The problem may really lie with qtie, but it's not clear. Other programs seem to handle the data properly - qnet, qview, pointreg, campt, etc.

Test data can be found under /work/users/lweller/Isis3Tests/Jigsaw/QtieUpdated/.
Here is my jigsaw command which seg faults (input list points to qtie updated image) followed by what goes to screen:
jigsaw fromlist=M3_qtieV2_clean.lis cnet=M3_clean.net onet=JigOut_M3_qtie_clean.net radius=yes update=no errorpropagation=yes outlier_rejection=no sigma0=1.0e-5 maxits=10 camsolve=accelerations twist=yes overexisting=yes camera_angles_sigma=10 camera_angular_velocity_sigma=5 camera_angular_acceleration_sigma=1 point_radius_sigma=500 file_prefix=Qtie_clean

jigsaw: Loading Control Points...
100% Processed
jigsaw: Setting input images...
100% Processed
Validating network...
Validation complete!...
starting iteration 1

This will run:
jigsaw fromlist=M3_spiced_clean.lis cnet=M3_clean.net onet=JigOut_M3_spiced_clean.net radius=yes update=no errorpropagation=yes outlier_rejection=no sigma0=1.0e-5 maxits=10 camsolve=accelerations twist=yes overexisting=yes camera_angles_sigma=10 camera_angular_velocity_sigma=5 camera_angular_acceleration_sigma=1 point_radius_sigma=500 file_prefix=Spiced_clean

I can work around the problem for now by not using the qtie updated image(s) or omitting the image(s) from the network.

Ken Edmundson took a quick look at the code to see what was going on. He will add a note about where the failure is occurring.

This was executed using isis3production2015-08-18

History

#1 Updated by Kenneth Edmundson over 2 years ago

It could ultimately be that for line scan images (particularly long ones) that the minimum number of measures in qtie is insufficient, leading to rubbish in the cubes instrument rotation matrix.

So, two issues really...

1) we should be catching the problem in SpiceRotation.cpp (line 2063) where the crash is occurring
2) if qtie is allowing the user to commit heinous photogrammetric offenses, we should put a stop to it

crash sequence of events is as follows...

Level Function File Line
0 Isis::SpiceRotation::SetEphemerisTimeMemcache SpiceRotation.cpp 2063
1 Isis::SpiceRotation::SetEphemerisTimePolyFunctionOverSpice SpiceRotation.cpp 2242
2 Isis::SpiceRotation::SetEphemerisTime SpiceRotation.cpp 235
3 Isis::SpiceRotation::SetPolynomial SpiceRotation.cpp 1121
4 Isis::BundleAdjust::applyParameterCorrections_CHOLMOD BundleAdjust.cpp 4654
5 Isis::BundleAdjust::applyParameterCorrections BundleAdjust.cpp 4551
6 Isis::BundleAdjust::SolveCholesky BundleAdjust.cpp 1051
7 IsisMain jigsaw.cpp 196

At line 2063 of SpiceRotation.cpp the member variable p_cacheTime is empty, we try to access it, hence the segmentation fault...

  // Interpolate the rotation
  double mult = (p_et - p_cacheTime[cacheIndex]) /
                (p_cacheTime[cacheIndex+1] - p_cacheTime[cacheIndex]);

Also the instrument rotation matrix for the qtied cube looks sorta funky to me relative to a spiceinited cube (or, more likely, I don't get what I'm looking at).

qtied cube instrument rotation table

J2000Ang1,J2000Ang2,J2000Ang3
-0.15036076619646,2.3416234505441,1.4948535307585
-0.098686919065929,0.29545358310648,-0.094159070189987
-0.062138936774617,-0.0027273178937727,-0.062301508194407
298596567.69487,359.26517999172,2.0

spiceinited cube instrument rotation table

J2000Q0,J2000Q1,J2000Q2,J2000Q3,ET
0.29227593240839,-0.64706852762692,0.66065501184844,-0.24374588244537,298596208.42969
0.29227593240839,-0.64706852762692,0.66065501184844,-0.24374588244537,298596208.43269
0.29210426583174,-0.64713429370283,0.66072595408946,-0.24358472322625,298596209.04325
0.29190398728592,-0.64721096257936,0.66080866955647,-0.24339666054135,298596209.75557
0.29167510122695,-0.64729850715902,0.6609031348439,-0.24318166934919,298596210.56965
0.29147482264158,-0.64737504137578,0.66098573395883,-0.24299350417794,298596211.28197
0.29127454278141,-0.64745151281367,0.66106827878725,-0.24280529249593,298596211.99429
0.29107425936139,-0.64752792147517,0.66115076943845,-0.2426170367435,298596212.70661
0.29084536483773,-0.64761516885844,0.66124497769991,-0.24240182813565,298596213.52069
0.29061646867381,-0.64770233418219,0.66133911504535,-0.24218655896136,298596214.33477
0.29038757076371,-0.64778941747705,0.66143318141977,-0.24197122942123,298596215.14885
0.29015867100159,-0.64787641877369,0.66152717676783,-0.24175583971674,298596215.96293
0.28992976913889,-0.64796333816747,0.66162110098063,-0.24154039019408,298596216.77701
0.28970086546149,-0.64805017550762,0.66171495418201,-0.24132488058073,298596217.59109
.
.
.
etc

#2 Updated by Tammy Becker over 2 years ago

  • Status changed from New to Acknowledged

Also available in: Atom PDF