GCP file for KH-9 images

11 views
Skip to first unread message

Nadia Jabeen

unread,
Feb 8, 2026, 12:26:47 AM (11 days ago) Feb 8
to Ames Stereo Pipeline Support
Hi,

I am working with KH-9 (Hexagon) panoramic images in Ames Stereo Pipeline and I would appreciate advice on correctly using Ground Control Points (GCPs) to refine camera parameters and improve bundle adjustment.  

Initially, I followed the standard ASP workflow for KH-9 panoramic images, where camera models are generated using latitude/longitude coordinates of the four image corners together with a DEM. Using these corner-based coordinates, ASP can also generate a GCP file automatically. However, this corner-based GCP setup did not result in good camera parameter refinement or bundle adjustment results, and the convergence angles remain low.  

To address this, I manually created my own GCP file. While the GCP file. I am currently unsure how to properly incorporate this user-created GCP file to adjust the KH-9 panoramic camera parameters and to use it effectively within bundle_adjustment.  

Specifically, I would like guidance on:

  1. How to correctly use a user-created GCP file (not corner-based) to refine KH-9 panoramic camera models in ASP.Any recommended bundle_adjust options or best practices for improving convergence angle and stereo geometry using user-defined GCPs with KH-9 data.

  2. My goal is to use my manually created GCP file to better constrain the camera models during bundle adjustment and thereby improve convergence angles and overall DEM quality.

Nadia

Oleg Alexandrov

unread,
Feb 8, 2026, 12:39:42 AM (11 days ago) Feb 8
to Nadia Jabeen, Ames Stereo Pipeline Support

>How to correctly use a user-created GCP file (not corner-based) to refine KH-9 panoramic camera models in ASP.Any recommended bundle_adjust options or best practices for improving convergence angle and stereo geometry using user-defined GCPs with KH-9 data.
>My goal is to use my manually created GCP file to better constrain the camera models during bundle adjustment and thereby improve convergence angles and overall DEM quality.

Our latest documentation for handling HK-9 is here: https://stereopipeline.readthedocs.io/en/latest/examples/historical.html#declassified-satellite-images-kh-9. We revisited this last Summer and got quite promising results. Reproducing this would require say our latest release, so 3.6.0.

My best guess is that just a few GCP would likely not be enough but could be a start. My suggestion would be to read through our doc and see how much you can improve things. 

As one can see from our section 8.28.6., a first naive approach should at least put the cameras in the right place, roughly, but there should be notable warping. 

The hope is that if one then continues with the recipe in section 8.28.7, maybe at least the warping would be reduced, after mapprojection. This may also be a good place in which to check if the stereo convergence angle, that you say is low, got better.

If no luck, one could consider maybe more GCP especially around peripherical areas. One should look at the "pointmap.csv" residuals for GCP to see how well they are taken into account (https://stereopipeline.readthedocs.io/en/latest/tools/bundle_adjust.html#maxar-earth-cameras-and-gcp, and pointers from there).

In our case we used GCP from comparing the stereo DEM produced with stereo with such images with a prior DEM to further refine the results. But likely say maybe 30-50 well-disrtibuted GCP should be enough to at least bring one in the ballpark. Note that our stereo_gui tool can also make GCP (by point and click).

It is advised that this is a tricky problem. You are welcome to reach out with any updates or if no luck. Hope this won't result in much unproductive time.





--
You received this message because you are subscribed to the Google Groups "Ames Stereo Pipeline Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ames-stereo-pipeline...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ames-stereo-pipeline-support/5492e9bb-9b1f-4352-ac07-d82cb3de33efn%40googlegroups.com.

Nadia Jabeen

unread,
Feb 9, 2026, 11:03:59 AM (9 days ago) Feb 9
to Ames Stereo Pipeline Support
  Thank you very much for your detailed reply.
However, when I try to pass my self-created GCP file at the camera initialization stage to the section https://stereopipeline.readthedocs.io/en/latest/examples/historical.html#creation-of-initial-cameras, it appears to be overwritten or effectively ignored, as cam_gen still relies on the corner-based constraints.

My question is:

  • What is the correct way to use a user-created (non-corner-based) GCP file to modify KH-9 panoramic camera parameters and then use those same GCPs in bundle adjustment?

Nadia

Oleg Alexandrov

unread,
Feb 9, 2026, 11:13:58 AM (9 days ago) Feb 9
to Nadia Jabeen, Ames Stereo Pipeline Support

However, when I try to pass my self-created GCP file at the camera initialization stage to the section https://stereopipeline.readthedocs.io/en/latest/examples/historical.html#creation-of-initial-cameras, it appears to be overwritten or effectively ignored, as cam_gen still relies on the corner-based constraints.

Ah, I see the issue now. The cam_gen program uses the gcp file as output, so it overwrites yours. Hence, if you want to use your own gcp file, you should copy it over to that name after you run cam_gen, and then continue with the rest of the process, so with the bundle_adjust command.

 
Reply all
Reply to author
Forward
0 new messages