I am attempting to find ground control points for historical aerial images. I have a reference Digital Elevation Model (2016), which I have used to georeference multiple flightlines over a mostly glaciated island (1959). While I was georeferencing I created a point shapefile layer of the points that I used. I am wondering if there is a way to pull out the original pixel coordinates of my historical aerial images (before they were warped by the georeferencing process)for each of these ground control points?

I am using QGIS version 3.18.2-Zurich

There is the original points file created in the georeferecing process, however that doesn't include points which I added later and it would be rather time consuming to open one of these files for each image and compare the lat lon, then copy and paste pixel coordinates.

  • 1
    It would be possible if you know the transformation used to get from pixel image to georeferenced map. Was it stretched in just the X and Y coordinates? Perhaps then its not too difficult. Was it rotated? Bit harder. Was it generally "rubber-sheet" warped? Then hard unless you can get out the control points, all the parameters, and the algorithm that QGIS used to warp.
    – Spacedman
    Aug 20 at 18:20
  • I used thin plate spline transformation for good local accuracy for my historic images which resulted in various rotation (different for different flight lines) and rubber sheet warping Aug 20 at 18:47

If you've still got the original transformation saved in the georeferencer then this approach might work:

  • Create a raster with the same number of pixel rows and columns as your PNG. Make it with two layers, where one layer is just the pixel row number, and the other is the pixel column number. When viewed, one layer will be horizontal stripes, the other vertical.

  • Apply the same georeferencing transformation to this raster as you did to your PNG. Use "nearest neighbour" interpolation. You can do this if you saved the control points and the method/other parameters when georeferencing the PNG. Load this stripey image in as an image to the georeferencer and hit the go button.

  • Then that gives you a georeferenced raster where the two layers are the row and column numbers of the original PNG.

I'm not sure how to create the stripey raster in QGIS - I'd do it in R or Python. Note that it shouldn't have a CRS, its a plain image file, not a spatial one.

  • Thank you, I will give this a try Aug 21 at 17:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.