Skip to content
QGIS
GeoAI
AI Edit

How to Simulate a Flood in QGIS (5 Methods, Free and Paid)

An aerial view of Besançon with the Doubs in flood, brown water covering the quays and the riverside park.

To show a flood in , you have five options, and they split cleanly: two give you a measurable extent, one gives you an engineering answer, and two give you a picture that persuades. The quickest measurable one is a digital elevation model and a threshold in the raster calculator, which takes about five minutes. The most convincing picture is a generated aerial view, which takes about one. Neither is a substitute for the other, and this page is mostly about not confusing them.

The short answer

Three of these give you a map of the flood, which you can measure. Two give you a picture of it, which you cannot.

What you needMethodYou get
The legally recognised flood zoneGéorisques PPRI or TRI layerA map, free, minutes
A rough extent you can measureElevation model plus a thresholdA map, free, 5 minutes
Depths and speeds for a real studyA hydraulic modelA map, days, a specialist
Something to show, any place will doChatGPT, Gemini or MidjourneyA picture, with no coordinates
Something to show, on your own siteAI Edit, our pluginA picture that stays on the map

Before you start

Everything below runs on one frame: 600 m of the Doubs through central Besançon, with the old town on its terrace to the left and the quays, the open-air pool and a riverside park on the right bank.

Aerial view of the Doubs through central Besançon, with dense old town on the left bank, quays, moored boats, a bridge and an open-air pool on the right bank.
The starting point. IGN BD ORTHO, read 31 August 2026. The river runs at 242 m, the quays at 242, the old town on its terrace at 245. Only the wooded slope in the top corner reaches 260.

You also need ground heights. In France, IGN's RGE ALTI is served through the Géoplateforme, and asking for it in the image/x-bil;bits=32 format gives you real elevation values rather than a picture of them. Over this frame it runs from 240.9 m in the channel to 260.1 m on the wooded slope: 19 m of relief. Measure that first, because it decides whether any of this is worth doing. I framed the same exercise on Nemours before this one and got 6.3 m across an identical square, which is too flat for any of these methods to show anything.

Note how little of that 19 m is in the town. The quays sit at 242 m and the terrace the old town stands on at 245 m, so the historic centre is three metres above the river, not twenty. Everything below turns on that.

The same frame as an elevation model, with the river channel almost black, the quays purple, and the high ground orange and pale yellow.
The same frame as ground height. Black is the channel at 241 m, purple the quays, orange and pale yellow the rising ground. This one layer drives three of the five methods.

Method 1: The official flood map from Géorisques

Before modelling anything, check whether the answer already exists. Géorisques, run by the Ministry and the BRGM, publishes the PPRI hazard zones and the flood-directive mapping for the 124 French territories at high flood risk, in three hazard levels, as shapefiles and as WMS and WFS services under the open licence. Load the WFS straight into .

Use it when: the question is regulatory, or anyone will ask what the state considers flood-prone. Skip it when: your site is not covered, or you need a scenario nobody has mapped.

Method 2: An elevation model and a threshold

The five-minute answer. Load the elevation model, open the raster calculator, and keep every cell below your water level. Here, ("dem@1" <= 244) / ("dem@1" <= 244) gives a layer of ones over the flooded ground and nothing elsewhere. Style it blue over the aerial photograph.

The same aerial view with a translucent blue layer covering the river, the quays and the riverside park at a water level of 244 m.
Water level set to 244 m, two metres above the channel. The quays and the riverside park go under, the old town on its terrace stays dry.

It is measurable: the layer has an area, and you can count what falls inside it. It is also crude, in two ways worth knowing before you show it to anyone.

First, it is a bathtub. It fills every cell below the line, whether or not water could reach it. Those two isolated blue patches, a car park at the top and a courtyard at the bottom, are not a bug: I sampled them at 244.1 m and 243.9 m, genuinely below the water level. But the ground between each of them and the river stands at 245 m, so a real flood would have to climb a metre of dry ground to get in. The threshold cannot know that. It has no idea which cells are connected to anything.

Second, push the level up and the crudeness stops being subtle.

The same view at a water level of 246 m, with blue covering almost the entire frame including streets and building blocks.
The same method at 246 m, two metres higher. Almost the whole frame goes under, because the terrace the town sits on is only at 245 m. Two metres of extra water on the slider is the difference between wet quays and a drowned city centre.

Use it when: you need a fast, measurable, honestly-labelled first pass. Skip it when: the number will be quoted to anyone who matters.

Method 3: A hydraulic model

HEC-RAS, TELEMAC or Iber take a channel geometry, a roughness and a discharge, and return depths and velocities that vary across the site. This is what a flood study actually is, and there are bridges to several of them.

Use it when: the deliverable is a study. Skip it when: you have three days and no hydraulic engineer, which is most of the time.

Method 4: Ask ChatGPT, Gemini or Midjourney

Take a screenshot of your map, paste it into any of them, describe the flood, get a picture back. Fast, and often convincing on the look of the water. Two problems. They have no idea where your ground is high or low, so the water goes wherever it makes a better picture. And what comes back is a plain image file with no coordinates, so it can never go back on the map next to anything else.

Use it when: you want a mood, for something informal. Skip it when: anyone knows the site.

Method 5: AI Edit in QGIS (ours)

A plugin that redraws the aerial photography on your screen from a written instruction, and gives it back as a map layer sitting exactly on the photograph it came from. Here is the same frame, asked for a major flood, with nothing else attached.

The same aerial view with brown flood water covering most of the frame, including streets in the old town and ground on the right bank that is well above the river.
A flood prompt on its own. It looks right at a glance, and it is wrong: water has run up the streets of the old town and covered ground on the right bank that stands metres above the river.

Now the same prompt with the elevation model from the top of this page attached as a reference, and a sentence telling the model to read it: dark is low, bright is high, stop where the ground rises.

A flood covering the whole frame, then the same flood confined to the river corridor with the town on its terrace left dry (after)
A flood covering the whole frame, then the same flood confined to the river corridor with the town on its terrace left dry (before)
BeforeAfter
Drag to compare
The same prompt without the elevation model on the left, with it on the right. On the right the water stays in the valley, the edge follows the break in slope, and the old town keeps its dry streets. Drag the handle to compare.

That is the whole argument for doing this inside rather than in a browser: any layer already open in your project can be handed to the model as guidance. An elevation model here, but equally the Géorisques hazard zone from Method 1, or the output of Method 2.

One thing that did not work, in the interest of honesty. A third run over-constrained the instruction with negative rules, "leave every brighter area completely dry", and came back as the original photograph, unchanged. Describe what the water does, not a list of what it must not do.

Use it when: you have to make a real flood legible to people who do not read hazard maps. Skip it when: the deliverable is a number. The result is a picture, and nothing in it can be measured until you convert it into shapes.

Which method to use

Pair them. Method 1 or 2 gives you the extent you can defend, Method 5 gives you the image people understand, and the second is only trustworthy because you fed it the first. Never publish a generated flood without the measured extent beside it, and always label it as a simulation.

Questions people ask

Can a generated flood image go in a public document?

Yes, labelled as a simulation, never as a photograph or a forecast. Our output is marked as AI-generated for that reason. Put the measured extent next to it so people can see where the number came from.

Can I measure the flooded area from the generated image?

No. It is pixels. Measure Method 1 or Method 2, which are real geometry, and use the generated image for what it is good at.

What water level should I use for the threshold?

Read the channel elevation off your elevation model first, then work upwards from it. Here the channel is at about 241 m, so 244 m is a three-metre rise. Picking a round absolute number without looking is how you end up flooding a whole town by accident.

Does this work outside France?

The method does. The data changes: you need a national elevation model, and any published hazard mapping your country has. The rest is the same raster calculator and the same prompt.

Sources

  1. Géorisques, run by the Ministry for the ecological transition and the BRGM, read 31 August 2026. PPRI hazard zones and the flood-directive mapping of the 124 French territories at high flood risk, three hazard levels, shapefile plus WMS and WFS under Licence Ouverte 2.0.
  2. IGN RGE ALTI through the Géoplateforme, Licence Ouverte. Elevation values read on 31 August 2026 in image/x-bil;bits=32.
  3. Aerial photography: IGN BD ORTHO, Licence Ouverte.
  4. Every figure was made in on 31 August 2026 over the frame described above.

The complete AI Edit guide covers the plugin end to end, and how to redesign a street in QGIS applies the same method to a different job. The QGIS AI hub links every guide we have.

Try it free in QGIS, no card needed