How to Merge (or Mosaic) Satellite Images with QGIS
Aug 11, 2025
Merge two or more satellite images into a single image with QGIS. With raw satellite data, this is a two-step process. First, you merge the individual bands into a stack, then merge the stacks together to form a mosaic. QGIS has all the tools to accomplish merging satellite images easily. Display satellite images: https://youtu.be/kZNzYoQ7gcg How to download Landsate images: https://youtu.be/5xfZApBBc6Y Check out my website for more: https://opensourceoptions.com
View Video Transcript
0:01
Welcome to open source options. Let me
0:03
show you today how you can merge
0:06
satellite images together in QGIS. Free
0:10
data, free software, super easy to do.
0:13
Okay, so first um I'm going to work with
0:16
some LANCAT data today. Uh I have a
0:19
tutorial on how to download Lancet data.
0:22
So go check that out. There's a link in
0:24
the description if you're not sure how
0:25
to do it. Um, in the meantime, let me
0:28
show you what I show you what I have
0:29
here. I have two Lancet images. They're
0:32
going to be right next to each other.
0:33
So, I have bands I'm going to grab bands
0:35
two, three, and four from this image.
0:37
And bands two, three, and four from this
0:39
image. And let's just show you how they
0:41
line up. So, I'm going to pull these
0:43
three bands in. And I'm going to pull
0:46
these three bands in.
0:49
And you can see that they line up next
0:51
to each other. And we can definitely see
0:54
uh there different images with different
0:55
val range values values ranges of values
0:59
u because we can definitely see the
1:01
contrast between those two images. We
1:04
want to merge together these two images
1:06
for this area and I'm going to show you
1:08
how to do that. This is actually going
1:10
to involve two different merges because
1:13
we first need to merge all the bands for
1:15
a single image together. Uh so we have
1:17
to do a band merge and then we have to
1:19
do uh what I guess I call an area merge.
1:21
Move the two different image locations
1:24
together. So let's go ahead and get
1:27
started with this. So the first thing
1:29
we're going to do is we're going to go
1:31
to raster
1:33
and miscellaneous
1:35
and build virtual raster. And there are
1:38
multiple ways to do this. We'll probably
1:39
go through two methods here. Okay. So,
1:42
first let's go to input layers
1:45
and let's select we want to make sure we
1:47
get these from the same image. So,
1:49
notice we have uh this one right here.
1:53
Uh this the third section here 03 9 030.
1:59
That's kind of our identifier as far as
2:01
the row path goes. And we want to make
2:03
sure we get the same ones here. So,
2:05
let's take these first three. We got
2:07
band two, three, and four, which in the
2:10
new image will be band one, two, and
2:11
three. Click okay. Here we want to place
2:15
each input file into a separate band. We
2:18
can keep this uh the same. Uh we'll
2:22
reample. We'll change to bilinear. I
2:24
don't think it's going to matter for
2:25
this. Um and then we can save this to a
2:29
temporary file or we can save it to an
2:32
actual file. We'll do temporary for
2:34
here. Let's click run. This is going to
2:37
complete very quickly. Okay. And so
2:39
we're going to call this uh
2:44
let's rename this. Oops. Right click.
2:48
Rename.
2:51
Let's call this img1.
2:54
Slide it up to the top here.
2:58
Now you can see we have color. The
3:00
colors are incorrect because we need to
3:02
just adjust the styling and we need to
3:04
go three,
3:06
two,
3:07
one. And now we have that in true color.
3:11
Let's go ahead and do this for image
3:14
two. We'll do the exact same thing.
3:16
Raster, miscellaneous, build virtual
3:19
raster. We're going to go select our
3:21
inputs. Uh we'll select these three down
3:24
here. Click okay.
3:28
Place each input file into a separate
3:30
band. Change this to bilinear and click
3:34
run. Now we can close that. We're going
3:37
to rename this to image two just to keep
3:40
things straight.
3:42
If I can find rename. There it is. So,
3:45
img2. And now let's go adjust the
3:48
styling here. And let's go bands 3 2 1.
3:53
And now we have true color there. Also,
3:56
we can definitely see differences in
3:58
between these two images. Still, they're
4:00
still separate images. Now, the next
4:03
step is to take these two images and
4:10
merge them together uh so they create
4:13
one image and we can do that also with
4:18
the virtual raster tool. So let's go
4:20
miscellaneous build virtual raster
4:23
and let's select our input. So here
4:26
we're going to select image two and
4:27
image one and select okay.
4:31
Do not place each input file into a
4:34
separate bend. We want to merge these um
4:38
um with area or with space and not stack
4:41
them together. Uh let's do resampling by
4:44
linear. We'll save this to a virtual or
4:47
to a virtual raster in a temporary file
4:49
again. And let's click run. Once again,
4:52
this will happen very quickly. And now
4:55
we can just rename this real quick.
4:58
Uh rename layer. We'll call this virtual
5:02
merge.
5:05
Now we can come adjust our symbology.
5:09
3 2 1. And now we have this true color
5:12
image that is a single image and it's
5:15
all blended together. We don't see that
5:17
same contrast. If I turn this off, we
5:19
can see the line between these two
5:20
images. If I turn it on, we don't see
5:23
that line anymore. We've successfully
5:25
merged those together using a virtual
5:29
raster in QGIS.
5:31
Okay. Now, let me show you another way
5:34
to do this that you may wish to use. Uh,
5:38
personally I prefer the virtual raers.
5:41
It's faster. Uh, it's a little simpler.
5:44
Uh, I just like to use them. But there's
5:46
another way way we can do this. So, let
5:48
me show you that. Okay. I'm going to
5:50
turn off all these ones we just created
5:52
so we can start from the same place. And
5:55
now we're going to go to raster
5:58
miscellaneous and we'll use this merge
6:00
tool here. So, let's come select our
6:02
inputs. We're going to do this the exact
6:04
same way for our first image. We're
6:06
going to select all three of our inputs
6:08
and say okay. We're going to place each
6:12
input file into a separate band. The
6:14
output data type I'm going to select is
6:16
uint 32 just to make sure we have enough
6:19
space. These might be actually unsigned
6:21
in 16, but we'll leave it at 32. And
6:27
now
6:28
we want to here we're going to need to
6:30
set some no data values. Okay. Um,
6:34
so let's go take a look here at what our
6:36
no data values are. So if we open this
6:39
guy up and we scroll down to our band
6:42
information down here, we can see we
6:44
have one band. The no data value is
6:47
zero. So we want make sure we replicate
6:49
that here. I'm going to put a zero in
6:51
here and a zero in here just to keep
6:53
those things straight. And we can click
6:57
run.
6:59
And this will take a little longer to
7:01
run. Um, again I'm creating uh this
7:04
image virtually so it's or not virtually
7:07
but I'm creating this in memory so it's
7:09
not going to stick around once I close
7:11
qgis. Uh let's call this let's rename
7:14
this
7:16
uh rename. We'll call this img1 merged
7:22
and save that there so we know what that
7:24
is. You can see it's done the color
7:26
here. So we can go swap up our bands to
7:28
get this to be correct. And now we have
7:31
that in true color. And now let's do the
7:33
same thing with our next image. So we
7:36
can go to raster miscellaneous merge and
7:40
let's get our inputs for the second
7:42
image which will be these three here.
7:45
Verify those have the 31 ending. And
7:47
they do. We'll say okay. Change this to
7:50
unsigned in 32. Place each input file
7:54
into a separate band. and make sure we
7:57
set the no data values both as zero and
8:01
then click run.
8:03
You'll notice this takes a little longer
8:05
to run uh than the virtual because we're
8:07
actually creating new data and not just
8:09
combining existing data. So we can close
8:12
this now and let's rename this to img2
8:16
merged.
8:20
Just like that and we'll come and adjust
8:24
our Oops. Yeah, our band values here.
8:29
And there you can see again we have that
8:31
true color image. We definitely see the
8:34
differences between the two images. The
8:36
next step now is to merge these. And we
8:39
can come do that with raers
8:41
miscellaneous merge. And here we'll
8:44
select um img1 merged img2 merged and
8:49
select okay. Make sure our pixel values
8:52
here are zero. Make sure we select
8:55
unsigned in 32
8:58
here. And now we can click run. And this
9:02
will again take just a little bit of
9:04
time to complete running. Um hopefully I
9:08
did this correctly. Yes, we don't want
9:11
to place each input file into a separate
9:12
band. We want to keep them um
9:16
we want to keep these two images
9:17
separate and combine them by area, not
9:19
based on bands this time. Okay. Okay, so
9:22
it says the task is complete.
9:25
Let's close that. Here's our merged
9:27
image. Let's just adjust the color. 3 2
9:31
1. And now we have that true color image
9:34
there. And you can see that we don't see
9:37
if I turn this off, you can see the line
9:39
between the two images. If I do that
9:41
here, we don't see that anymore. So
9:44
there you go.
9:45
That is how you can take and merge these
9:49
satellite images uh into a single mosaic
9:53
image. Now it's a little complicated,
9:55
right? Because you have to merge the
9:57
bands you want and then merge the
9:59
images. Uh but it can be done and it can
10:02
happen really quickly. We just did that
10:04
two times in 10 minutes with me
10:06
explaining this to you. Um so you can do
10:08
it very simply. Now, if you want to
10:11
batch this and make it happen quickly,
10:13
you should go learn Python. I don't have
10:15
courses or videos on that yet, but they
10:17
are coming. So, if you want to see stuff
10:19
on Python and GIS and how you can
10:21
optimize and automate workflows, uh you
10:25
can subscribe to see that stuff when it
10:27
comes online. As always, thanks for
10:29
watching. There's more free content and
10:31
courses that are coming soon at
10:33
opensource options.com. You can go there
10:36
and sign up uh with the email to be
10:39
notified when those are available.