1

I have been trying to georeference an image I downloaded from Google API. Here is how I approached it after many unsuccessful attempts:

  1. I calculated the coordinates of the corners using this code.
  2. I added the transforms using the bounds coordinates and the CRS value. I used the CRS value suggested in this post for Google Maps images.
    def georefrence(input_path, output_path):
        dataset = rasterio.open(input_path)
        bands = [1]
        data = dataset.read(bands)
        transform = rasterio.transform.from_bounds(xmax, ymax,xmin, ymin, data.shape[1], data.shape[2])
        crs = rasterio.crs.CRS({"init": "epsg:3857"})
        with rasterio.open(output_path, 'w', driver='GTiff',
                    width=data.shape[1], height=data.shape[2],
                    count=3, dtype=data.dtype, nodata=0,
                    transform=transform, crs=crs) as dst:
      dst.write(data, indexes=bands)
  1. When I load the image in QGIS, I see pick a coordinate, copy it, and paste it in Google map. It doesn't map to the exact location but is pretty close; however, when I try to display it in OSM layer map, it appears in way off.

Is this a projection issue or something else and how can I resolve this?

UPDATE

So here is a sample image that I georeferenced https://drive.google.com/file/d/1GVgHrv6AJ28X8GSsF9sSaIVQcjldBsSR/view?usp=sharing

I figured that when I add the GeoTIFF version as a raster layer to QGIS on the OSM base map, it shows in the exact opposite location up (see the image below). enter image description here

How can I mirror this? Is it the projection or something else?

UPDATE 2

Another thing that I noticed is that when I paste these coordinates 30.0768254,31.6577946 in Google Maps, it points out the correct location, but when I paste it into Google Maps base map in QGIS, I go to the Atlantic Ocean.

Worth to note that I have already sat the CRS to EPSG: 3857 for the base map also (the same CRS of the image)

Vince
  • 20,017
  • 15
  • 45
  • 64
salRad
  • 145
  • 6

1 Answers1

0

The answer below helped figure it out Lat/Long co-ordinates are not plotting onto EPSG:3857 OSM basemap correctly

I realized that the lat and long were mixed up, and after a few inspections, it turned out that I made a big mistake in putting the bounds in the right order in this line

transform = rasterio.transform.from_bounds(...)
salRad
  • 145
  • 6