Close Menu
    Facebook LinkedIn YouTube WhatsApp X (Twitter) Pinterest
    Trending
    • Living tattoos could transform building exteriors with microbial life
    • Nice Rocc Palm Cooling Device Review: Pricey, Effective Palm Cooling
    • Researchers say tactics used to make AI more engaging, like making them more agreeable, can drive chatbots to reinforce harmful ideas, like encouraging drug use (Nitasha Tiku/Washington Post)
    • Today’s NYT Connections: Sports Edition Hints, Answers for June 2 #252
    • Patent Power: Top Innovation Leaders Revealed in 2025
    • The Psychology Behind Creating NSFW AI Images
    • Ancient solar storm 18 percent stronger than 775 AD event
    • How to Find the Best Eero Wi-Fi Mesh Router for You (2025)
    Facebook LinkedIn WhatsApp
    Times FeaturedTimes Featured
    Monday, June 2
    • Home
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    • More
      • AI
      • Robotics
      • Industries
      • Global
    Times FeaturedTimes Featured
    Home»Artificial Intelligence»Simulating Flood Inundation with Python and Elevation Data: A Beginner’s Guide
    Artificial Intelligence

    Simulating Flood Inundation with Python and Elevation Data: A Beginner’s Guide

    Editor Times FeaturedBy Editor Times FeaturedMay 31, 2025No Comments7 Mins Read
    Facebook Twitter Pinterest Telegram LinkedIn Tumblr WhatsApp Email
    Share
    Facebook Twitter LinkedIn Pinterest Telegram Email WhatsApp Copy Link


    have turn into extra frequent and devastating throughout the globe, with the results of local weather change in latest many years. On this context, flood modeling has an vital position in threat evaluation and disaster-response operations, whereas additionally remaining a key focus of superior analysis and tutorial research.

    On this article, we’ll construct a fundamental flood inundation mannequin utilizing Python and a Digital Elevation Mannequin (DEM). We’ll use a flood fill method to incrementally simulate how rising water ranges have an effect on a panorama and animate the inundation course of. It’s a visible and hands-on strategy to discover geospatial information and flood dangers, even with out a background in hydraulic modeling.

    What you’ll Be taught

    1. What’s a Digital Elevation Mannequin (DEM)

    A Digital Elevation Mannequin (DEM) is a numerical illustration of the Earth’s floor, the place every cell (or pixel) in an everyday grid (often called raster information) incorporates an elevation worth. In contrast to digital photographs that retailer shade data, DEMs retailer peak information, usually excluding floor options like vegetation, buildings, and different man-made constructions.

    DEMs are generally utilized in fields comparable to mapping, hydrology, environmental monitoring, and earth sciences. They function a foundational dataset for any software that requires an in depth understanding of terrain and elevation.

    Many sources provide free and dependable DEM information, together with the USGS Nationwide Map, NASA Earthdata, and the Shuttle Radar Topography Mission (SRTM).

    On this article, we’ll be utilizing a DEM offered by the USGS National Geospatial Program, which is freely accessible and launched into the general public area.

    Be aware: The info offered by USGS has a spatial decision of 1 arc second (roughly 30 meters on the equator).

    The realm of curiosity (AOI) on this examine is situated within the Northeast area of Brazil. The DEM file covers a 1° × 1° tile, extending from 6°S, 39°W to five°S, 38°W, and makes use of the WGS84 coordinate system (EPSG: 4326), as illustrated beneath.

    Space of Curiosity (picture by the writer utilizing Google Maps and QGIS).

    2. The best way to load and visualize elevation information with Python

    Now we’ll use Python to set a viable setting to visualise and analyze some preliminary details about DEM information. First, let’s import the required libraries.

    # import libraries
    import rasterio
    import matplotlib.pyplot as plt
    import numpy as np
    from matplotlib.animation import FuncAnimation
    • rasterio: Reads and writes geospatial raster information like DEMs.
    • matplotlib.pyplot: Creates static and interactive visualizations.
    • numpy: Handles numerical operations and array-based information.
    • FuncAnimation: Generates animations by updating plots body by body.

    Subsequent, let’s use the rasterio library to open and visualize a DEM file of the AOI.

    # Helper perform to load DEM Information
    def load_dem(path):
        with rasterio.open(path) as src:
            dem = src.learn(1)
            remodel = src.remodel
            nodata = src.nodata
    
            if nodata shouldn't be None:
                # Masks no-data values
                dem = np.ma.masked_equal(dem, nodata)
    
            return dem, remodel

    The perform above reads the elevation information and checks whether or not the file contains “no-data values”. No-data values are used to characterize areas with out legitimate elevation information (e.g., outdoors protection or corrupted pixels). If a no-data worth is current, the perform replaces these pixels with np.nan, making it simpler to deal with or ignore them in later evaluation and visualizations.

    Visualizing DEM information

    dem = load_dem("s06_w039_1arc_v3.tif")
    
    plt.imshow(dem, cmap='terrain')
    plt.title("Digital Elevation Mannequin")
    plt.colorbar(label="Elevation (m)")
    plt.present()
    DEM of the AOI (Credit score: U.S. Geological Survey)
    • Utilizing geographic coordinates within the visualization

    As we will see, the axes are in pixel coordinates (columns and contours). To higher perceive flood inundation, it’s very important to know the geographic coordinates (latitude and longitude) related to every pixel of the picture.

    To attain that, we’ll use the coordinate reference system information of the DEM file. As mentioned earlier, the DEM we’re utilizing makes use of the WGS84 coordinate system (EPSG: 4326).

    We will adapt the helper perform to load DEM recordsdata as follows:

    def load_dem(path):
        with rasterio.open(path) as src:
            dem = src.learn(1)
            remodel = src.remodel
            nodata = src.nodata
    
            if nodata shouldn't be None:
                # Masks nodata values
                dem = np.ma.masked_equal(dem, nodata)
    
            return dem, remodel

    The perform retrieves the remodel information from the DEM, which is an affine object that maps pixel positions (row, column) to geographic coordinates (latitude and longitude).

    To characterize the geographic coordinates on the axes of the plot, it’ll be essential to discover the extent parameter from the imshow() perform.

    dem, remodel = load_dem("s06_w039_1arc_v3.tif")
    
    # Compute extent from remodel
    extent = [
        transform[2],                          # xmin (longitude)
        remodel[2] + remodel[0] * dem.form[1],  # xmax
        remodel[5] + remodel[4] * dem.form[0],  # ymin (latitude)
        remodel[5]                          # ymax
    ]
    
    # Plot with utilizing geographic coordinates
    fig, ax = plt.subplots()
    img = ax.imshow(dem, cmap='terrain', extent=extent, origin='higher')
    ax.set_xlabel('Longitude')
    ax.set_ylabel('Latitude')
    plt.colorbar(img, label='Elevation (m)')
    plt.title('DEM Visualization')
    plt.present()

    The extent parameter can be used to outline the spatial bounds of the DEM plot utilizing values derived from the raster’s remodel affine object. It units the minimal and most longitude (xmin, xmax) and latitude (ymin, ymax) in order that the plot exhibits coordinates on the axes as an alternative of pixel indices.

    Lastly, now we have the next outcomes:

    DEM visualization with geographic coordinates (Credit score: U.S. Geological Survey).

    3. The best way to simulate flood eventualities with elevation thresholds

    Now, we’ll show a easy but helpful methodology for visualizing flood eventualities and simulating inundation. It consists of defining a peak threshold and producing a binary masks that identifies all areas with elevation beneath this stage.

    On this instance, we simulate Flooding throughout all areas with elevations beneath 40 meters.

    flood_threshold = 40  # meters
    flood_mask = (dem <= flood_threshold).astype(int)
    
    plt.imshow(flood_mask, extent=extent, cmap='Blues')
    plt.title(f"Flooded Space (Threshold: {flood_threshold}m)")
    plt.xlabel("Longitude")
    plt.ylabel("Latitude")
    plt.present()
    Flooded space simulation (picture by the writer).

    With just some traces of code, we will visualize the impression of various flood eventualities on the realm of curiosity (AOI). Nonetheless, as a result of this visualization is static, it doesn’t present how the flood progresses over time. To cope with that, we’ll use matplotlib’s FuncAnimation to create a dynamic visualization.

    4. The best way to animate flood development with Python

    We’ll now simulate a progressive flood situation by rising the water stage incrementally and producing a brand new masks at every step. We’ll overlay this masks on the terrain picture and animate it.

    # flood_levels defines how excessive the flood rises per body
    flood_levels = np.arange(15, 100, 5)
    
    # Arrange determine and axes
    fig, ax = plt.subplots()
    img = ax.imshow(dem, cmap='terrain', extent=extent, origin='higher')
    flood_overlay = ax.imshow(np.zeros_like(dem), cmap='Blues', alpha=0.4, extent=extent, origin='higher')
    title = ax.set_title("")
    ax.set_xlabel("Longitude")
    ax.set_ylabel("Latitude")
    
    # Animation perform
    def replace(body):
        stage = flood_levels[frame]
        masks = np.the place(dem <= stage, 1, np.nan)
        flood_overlay.set_data(masks)
        title.set_text(f"Flood Stage: {stage} m")
        return flood_overlay, title
    
    # Create animation
    ani = FuncAnimation(fig, replace, frames=len(flood_levels), interval=300, blit=True)
    plt.tight_layout()
    plt.present()
    
    # save the output as a gif
    ani.save("flood_simulation.gif", author='pillow', fps=5)
    Flood development (Credit score: U.S. Geological Survey)

    Should you’re serious about creating animations with Python, this step-by-step tutorial is a good place to start out.

    Conclusion and subsequent steps

    On this article, we created a fundamental workflow to carry out a flood simulation in Python utilizing elevation information from a DEM file. After all, this mannequin doesn’t implement essentially the most superior methods on the topic, nonetheless for visualization and communication, this elevation threshold methodology gives a strong and accessible entry level.

    Extra superior simulation methods embrace:

    • Connectivity-based flood propagation
    • Circulation path and accumulation
    • Time-based movement modeling

    Nonetheless, this hands-on method may be of nice profit for educators, college students, and analysts exploring Geospatial Data in catastrophe response research and environmental modeling.

    The entire code is accessible here.

    I strongly encourage readers to experiment with the code utilizing their very own elevation information, adapt it to their particular context, and discover methods to boost or develop the method.

    References

    [1] U.S. Geological Survey. Nationwide Map. U.S. Division of the Inside. Retrieved Could 17, 2025, from https://www.usgs.gov/programs/national-geospatial-program/national-map

    [2] U.S. Geological Survey. What’s a digital elevation mannequin (DEM)? U.S. Division of the Inside. Retrieved Could 17, 2025, from https://www.usgs.gov/faqs/what-a-digital-elevation-model-dem

    [3] Gillies, S. Georeferencing — Rasterio documentation (steady). Rasterio. Retrieved Could 27, 2025, from https://rasterio.readthedocs.io/en/stable/topics/georeferencing.html

    [4] Gillies, Sean. Affine Transforms — Rasterio Documentation (Newest). Accessed Could 27, 2025. https://rasterio.readthedocs.io/en/latest/topics/transforms.html.

    Knowledge Supply: DEM information used on this undertaking is offered by the U.S. Geological Survey (USGS) by means of the Nationwide Map and is within the public area.



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Editor Times Featured
    • Website

    Related Posts

    The Psychology Behind Creating NSFW AI Images

    June 1, 2025

    Why Artists Are Turning to Unfiltered AI Image Generators for Creative Freedom

    June 1, 2025

    How Text-to-Speech Generators Improve Accessibility in Education

    June 1, 2025

    Creating Multilingual Content with Text-to-Speech AI

    June 1, 2025

    The Simplest Possible AI Web App

    June 1, 2025

    I Transitioned from Data Science to AI Engineering: Here’s Everything You Need to Know

    June 1, 2025
    Leave A Reply Cancel Reply

    Editors Picks

    Living tattoos could transform building exteriors with microbial life

    June 2, 2025

    Nice Rocc Palm Cooling Device Review: Pricey, Effective Palm Cooling

    June 1, 2025

    Researchers say tactics used to make AI more engaging, like making them more agreeable, can drive chatbots to reinforce harmful ideas, like encouraging drug use (Nitasha Tiku/Washington Post)

    June 1, 2025

    Today’s NYT Connections: Sports Edition Hints, Answers for June 2 #252

    June 1, 2025
    Categories
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    About Us
    About Us

    Welcome to Times Featured, an AI-driven entrepreneurship growth engine that is transforming the future of work, bridging the digital divide and encouraging younger community inclusion in the 4th Industrial Revolution, and nurturing new market leaders.

    Empowering the growth of profiles, leaders, entrepreneurs businesses, and startups on international landscape.

    Asia-Middle East-Europe-North America-Australia-Africa

    Facebook LinkedIn WhatsApp
    Featured Picks

    All You Need to Know About Mushroom Coffee — the New Morning Alternative

    February 5, 2025

    Today’s NYT Mini Crossword Answers for May 29

    May 29, 2025

    Astronaut Suni Williams Sets New Record on Spacewalk Outside ISS

    January 31, 2025
    Categories
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    Copyright © 2024 Timesfeatured.com IP Limited. All Rights.
    • Privacy Policy
    • Disclaimer
    • Terms and Conditions
    • About us
    • Contact us

    Type above and press Enter to search. Press Esc to cancel.