Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cnetcheck not excluding ignored measures resulting in false positives #4649

Closed
KrisBecker opened this issue Oct 6, 2021 · 3 comments · Fixed by #4784
Closed

cnetcheck not excluding ignored measures resulting in false positives #4649

KrisBecker opened this issue Oct 6, 2021 · 3 comments · Fixed by #4784
Assignees
Milestone

Comments

@KrisBecker
Copy link
Contributor

ISIS version(s) affected: All

Description
cnetcheck is not properly excluding ignored measures when, at a minimum, checking for invalid latitude/longitudes and islands. These situations occur rather frequently when using feature matching, which does find points on limbs.

The net effect of this bug is reports of bad points and islands than don't actually exist.

Below are processing steps that provide the evidence of these problems, but it is in an older version of ISIS (~3.6). However, I have reviewed the code in the current version and have concluded the problem exists there as well (i.e., the code is identical in both versions).

Its possible ignored points are part of the problem as well.

How to reproduce
The following processing sequence shows the steps used to demonstrate the bug. I have only included pertinent output between runs for brevity:

cnetcheck cnet=05_osinac_m26_registered.net fromlist= 04_network_cubes.lis prefix=05_osinac_m26_check_ ignore=true
Group = Results
  Islands       = 137
  NoLatLonCubes = 108
  LowCoverage   = 478
  SingleCube    = 5
End_Group

cnetcombinept cnetbase=05_osinac_m26_registered.net onet=05_osinac_m26_registered_clean.net imagetol=0 cleannet=true cleanmeasures=true minmeasures=0
Group = Summary
  TotalCubes        = 478
  TotalInputPoints  = 152297
  TotalOutputPoints = 62535
  PointsMerged      = 0
  PointsEvaluated   = 0
  TotalMeasures     = 536917
  MeasuresMerged    = 0
  MeasuresDeleted   = 2673285
  MinimumMeasures   = 0
End_Group

cnetcheck cnet=05_osinac_m26_registered_clean.net fromlist=04_network_cubes.lis prefix=05_osinac_m26_clean_check_ ignore=true
Group = Results
  Islands       = 19
  NoLatLonCubes = 77
  LowCoverage   = 478
  SingleCube    = 5
End_Group

Possible Solution
There needs to be additional tests that check for ignored measures added to the lat/lon and island functions. A more thorough review of cnetcheck might be indicated as well.

Clearly you can work around this problem by cleaning first, but there are certainly cases where you may want to run additional processing to attempt to salvage the data as much as possible. Its still a bug, nonetheless.

Additional context
None

@KrisBecker
Copy link
Contributor Author

Alternative: How to reproduce

The traditional alternative to cnetcombinept is cnetedit. Here is the result using this approach:

cnetedit cnet=05_osinac_m26_registered.net onet=05_osinac_m26_registered_cne.net 

cnetcheck cnet=05_osinac_m26_registered_cne.net fromlist=04_network_cubes.lis prefix=05_osinac_m26_clean_cne_check_ ignore=true
Group = Results
  Islands       = 19
  NoLatLonCubes = 77
  LowCoverage   = 478
  SingleCube    = 5
End_Group

@AustinSanders AustinSanders added this to the 6.2.0 milestone Oct 20, 2021
@acpaquette
Copy link
Collaborator

@KrisBecker Could you send over the files to reproduce this error?

Also I am not exactly sure what the problem here is, should we be seeing no islands in the second output? I understand that we may be seeing islands that don't exist but I don't understand what you mean by bad points

@acpaquette acpaquette self-assigned this Nov 9, 2021
@KrisBecker
Copy link
Contributor Author

I can pretty much guarantee that the files I send you would not be sufficient to reproduce this problem. I have made significant changes to the Rosetta OSIRIS camera model that is incompatible with the current version.

I can point you to the code where I think the problem is.

Note that there is no check for a valid measure in the noLatLonCheck() method. Specifically, this loop on measure checks associated with serial numbers (cubes) tests for ignored points, but I don't see any such check for an ignored measure, which would prevent testing the point associated with it - a false positive.

Hopefully this is enough information to verify the problem.

Also, if you could, please run a quick check of the rest of code for similar issues.

@jlaura jlaura moved this to Todo in ASC Software Support Nov 11, 2021
@scsides scsides modified the milestones: 6.2.0, 7.0.1 Jan 18, 2022
@AustinSanders AustinSanders self-assigned this Feb 8, 2022
@jlaura jlaura moved this from Todo to In Progress in ASC Software Support Feb 9, 2022
@AustinSanders AustinSanders moved this from In Progress to Needs Initial Review in ASC Software Support Feb 9, 2022
@jessemapel jessemapel moved this from Needs Initial Review to Under Review in ASC Software Support Feb 11, 2022
Repository owner moved this from Under Review to Done in ASC Software Support Mar 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants