3

I have created a points layer which represent Ground Control Points (GCP) for georeferencing scanned topographic maps via 'Add Layer > Add Delimited Text Layer', where I saved coordinates in a .csv format that has the lat-lon of each point, stored in DMS coordinate system (I am using DMS as the scanned topo maps use DMS).

I have managed to load the .csv as a Shapefile. Now, I open up the Georeferencer, load the scanned topo map, and click 'File > Load GCP points', however it requires a Ground Control Point file with the *.points extension, and not a Shapefile.

I would prefer not to manually reassign all the control points. How do I convert a Shapefile to a GCP (.points) file? If that is not possible, how do I create a GCP (.points) file? What file formats can I use to create the required GCP (.points) file?

My goal is to be able to load it into the Georeferencer. I am using QGIS 3.2.1.

When I change the extension of the .shp to .points, it becomes a POINTS file (.points), but QGIS will prompt me the following; "Invalid GCP file. File could not be read."

3
  • Does your shapefile already contain the information about which pixel, expressed as rows and columns, is under each GCP?
    – user30184
    Commented Nov 12, 2018 at 7:52
  • No, it does not have the which pixel row and column a point belongs to. It only has the lat-lon in DMS coordinates.
    – Johanness
    Commented Nov 12, 2018 at 8:01
  • If you do not have extremely many GCP's I think it is easiest and fastest to insert them again with the QGIS georeferencer.
    – user30184
    Commented Nov 14, 2018 at 7:22

2 Answers 2

3

how do I create a GCP (.points) file?

You could use a text editor.

The format you want is like:

mapX,mapY,pixelX,pixelY,enable
433268.37959376286016777,355509.77655098377726972,983.9774984446378312,-2014.51289408103730239,1
433246.04284725664183497,355552.3686015487764962,831.61904507316751278,-1719.29808785451632502,1
433306.56253424676833674,355622.24824787728721276,1234.15815910973515201,-1236.85959025535225919,1
433411.46138055482879281,355677.74274208577116951,1955.41727764171605486,-850.47783687136427488,1
433554.34018561965785921,355695.8543699209112674,2953.81013592618046459,-710.01017688100557734,1
433636.94680135982343927,355569.64276779681676999,3522.92258485503180054,-1576.07810653126352918,1
433600.53707709873560816,355540.0109893383923918,3268.11243895852203423,-1781.04650243362743822,1
433454.43287125352071598,355434.66971611470216885,2264.11336592998168271,-2498.8375497027768688,1
433346.00189347146078944,355440.21874731522984803,1527.95157730500841353,-2474.08382017634630756,1
2
  • Okay nmtoken, but how do I get those values for pixelX, pixelY by using my GCPs and a non-georeferenced raster (scanned) map? I only have the lat-lon coordinates of my GCPs in DMS coordinate system.
    – Johanness
    Commented Nov 12, 2018 at 9:08
  • If you have only the lat/lon coordinates, you will have to assigna manually pixelX/Y values. QGIS must have 4 values for each point: it must assign each point (lat/lon) on the map to one pixel of the non-georeferenced raster. So somehow you have to tell QGIS where on earth's surface your raster is located and how it has to be warped (distorted) to match the basemap.
    – Babel
    Commented Jun 2, 2023 at 7:14
1

Like nmtoken said, you have to put them in a textfile similar to his example. It might be easy to use qgis to save the shapefile as a csv. Then you can open it in excel and change the layout according to nmtoken's example. You can probably leave the pixel values empty because you don't know them yet.
Then you save the csv, change the extension to .points, load the gcp's in the georeferencer tool and click on the corresponding location for each gcp in order to get the pixel coordinates.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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