I have dataset with images
Example image:
All images have GPS coordinates.
I need to stich this images in one TIFF using Python.
Use merge()
from rasterio package
.
Use glob
to list all your tiff files.
Basically you want create a mosaic image.
See also: https://automating-gis-processes.github.io/CSC18/lessons/L6/raster-mosaic.html
# Imports
import rasterio
from rasterio.merge import merge
import glob
import os
# File and folder paths
dirpath = r"location of tiffs"
out_fp = r"output"
# Make search criteria for glob
search_criteria = "*.tif"
q = os.path.join.(dirpath, search_criteria)
# List tiffs
tiff_lst = glob.glob(q)
# Initiate output mosiac
src_files_to_mosaic = []
# create list of open raster objects
for tiff in tiff_lst:
src = rasterio.open(tiff)
src_files_to_mosaic.append(src)
# Merge
mosaic, out_trans = merge(src_files_to_mosaic)
# Copy the metadata
out_meta = src.meta.copy()
# Update the metadata
out_meta.update({"driver": "GTiff",
"height": mosaic.shape[1],
"width": mosaic.shape[2],
"transform": out_trans,
"crs": "+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs" })
# Write the mosaic raster to disk
with rasterio.open(out_fp, "w", **out_meta) as dest:
dest.write(mosaic)