2

I have a static image of a map:

enter image description here

And I would like to obtain the coordinates of each blue point. I am very new to QGIS but I have done a very similar task but for a much smaller set of point. My approach there was to:

  1. Open an OSM standard map

  2. Load the image of my map containing the points I want referenced

  3. Match points on my map to points on the OSM map

  4. After mapping a couple of points my map is aligned with the OSM map

  5. Select the appropriate transformation strategy

  6. My image is exported as a referenced GeoTIFF

  7. Create an empty shapefile to contain the points of interest

  8. Turn on editing mode and manually select the points of interest

The problem I have is with point 8. With a small number of points this is clearly not an issue. However, in the map above, manually selecting each point is something I would like to avoid. I tried converting the map to a vector (raster to vector) but the output looks very strange.

Is there a clever way of letting QGIS know that I am interested in ALL blue dots?

EDIT:

I managed to convert the map to a vector (polygonize). And it looks like this: enter image description here

However, I am still uncertain how I could go about selecting just the circles and then obtain their coordinates.

2
  • How are you getting from raster map to a shapefile of points?
    – Pointdump
    Mar 9, 2022 at 22:14
  • @Pointdump, I create an empty shapefile layer and turn on editing. Then I am able to select points of interest. But this requires manual selection which is not ideal for my case.
    – BenBernke
    Mar 10, 2022 at 11:17

3 Answers 3

2
+50

Convert the raster to polygons, select polygons with a certain area and roundness:

  1. Georeference the raster

  2. i.segment. I use default settings. If you're using model builder you need to go to advanced settings and set Value on "Name for input raster map with starting seeds" and "Name of input bounding/constraint..." to be able to be able to set them to no value.

  3. Raster pixels to polygons

  4. Dissolve by the created Value field

  5. Extract by expression. Extract the polygons with a specific size and roundness, e.g. the blue circles. I use:

$area>160000 and $area<215000 and (($area*4*pi())/ $perimeter^2)>0.6

  1. Centroids

It works for almost all points:

enter image description here

0
1

I am sorry if my solution ends up being something going in the wrong direction. I hope I read your post right - So in the QGIS georeferenced screen you would have a table at the bottom with all your points you have manually clicked on between the two rasters.

Once you have done this and added the new raster map in - do not close the georeference window.

Instead go to FIle > save GCPs As... Save these someone ( yes these are in a .points type.)

Now find this file and change rename that .points to .csv

This will open the table that was shown before ( wish one could just highlight that table and copy and paste but GDAL Script interferes.) Edit the table structure to see fit and simply Import this as a layer into QGIS.

Hope this helps

3
  • Many thanks for the reply (on both forums)! I followed your approach and was able to obtain the coordinates of the points I had manually selected which is great. However, I would prefer not to manually select each point as it can be quite time consuming and there is a lot of room for error. So I was hoping there would be a way for QGIS to detect all the blue points automatically.
    – BenBernke
    Mar 10, 2022 at 9:57
  • I see, so the dots are not a layer on their own but actually apart of the image, the raster? How did you come across a map with these points? For where the origin of this map lays, it seems they have a layer for these points - it is just you extracted a flat image from the results. Not possible to find the source? It is beyond my understanding how one could analyse the raster to add points based off the particular band colour of those 'blue dots'; if you zoom in enough to the points and 'identify' what the bands are ( 000,000,000) I wonder if there is a method to find these and make points Mar 10, 2022 at 22:09
  • Exactly. The website where I obtained the figure is simply loading the static image. There is one version without any blue dots and one with blue dots. However, I cannot find an image with just the blue dots. On reddit I was told something similar to your last sentence by converting the image from raster to vector but I was unable to get it to work. I suppose I'll simply do it manually.
    – BenBernke
    Mar 11, 2022 at 12:44
0

It's going to take you a few minutes to digitize all of those points on that map once you have it georeferenced. You already listed your steps which is all you need to know. You could have accomplished that task in the time it took you to write this post.

Still, if you are bound and determined to push on with automation you should have a look at doing a supervised classification in QGIS. The success of a supervised classification would largely be determined by the resolution of your images, and the quality of your training data (which would require you to spend a lot of time manually generating polygons for the training data - more time than just doing the digitizing!). If each dot is only a few pixels you will get less than the hoped for >80%accuracy is such an analysis. Then you can spend some time sorting out the results of that process, manipulating your polygons, converting them to points...

Another approach would be to do a dynamic segmentation in some software like Orfeo Toolbox (free) but again, only go down that path if you want to learn as that will not save you any time over digitizing and it will create a whole new set of issues for you.

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.