{"id":1139,"date":"2026-10-16T12:12:02","date_gmt":"2026-10-16T12:12:02","guid":{"rendered":"https:\/\/helpwithmygisassignment.com\/blog\/?p=1139"},"modified":"2026-10-16T12:12:02","modified_gmt":"2026-10-16T12:12:02","slug":"calculating-built-up-index-in-qgis","status":"publish","type":"post","link":"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/","title":{"rendered":"Calculating Built-Up Index (NDBI) in QGIS for Urban Expansion Analysis"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Calculating_Built-Up_Index_NDBI_in_QGIS_for_Urban_Expansion_Analysis\" >Calculating Built-Up Index (NDBI) in QGIS for Urban Expansion Analysis<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#1_Introduction_What_Is_the_Normalized_Difference_Built-Up_Index\" >1. Introduction: What Is the Normalized Difference Built-Up Index?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#11_The_NDBI_Formula\" >1.1 The NDBI Formula<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#12_Why_Use_NDBI_for_Urban_Expansion_Analysis\" >1.2 Why Use NDBI for Urban Expansion Analysis?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#2_Data_Requirements_Landsat_89_or_Sentinel-2\" >2. Data Requirements: Landsat 8\/9 or Sentinel-2<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#21_Landsat_8_and_Landsat_9\" >2.1 Landsat 8 and Landsat 9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#22_Sentinel-2_Imagery\" >2.2 Sentinel-2 Imagery<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#23_Essential_Preparation_Before_Analysis\" >2.3 Essential Preparation Before Analysis<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#3_Step-by-Step_Workflow_Calculating_NDBI_in_QGIS\" >3. Step-by-Step Workflow: Calculating NDBI in QGIS<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_1_Download_and_Import_the_Satellite_Bands\" >Step 1: Download and Import the Satellite Bands<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_2_Apply_Reflectance_Scaling_to_Landsat_Bands\" >Step 2: Apply Reflectance Scaling to Landsat Bands<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_3_Calculate_NDBI_Using_the_Raster_Calculator\" >Step 3: Calculate NDBI Using the Raster Calculator<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_4_Style_and_Interpret_the_NDBI_Raster\" >Step 4: Style and Interpret the NDBI Raster<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#4_Masking_Water_Bodies_Using_NDWI\" >4. Masking Water Bodies Using NDWI<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_5_Calculate_NDWI\" >Step 5: Calculate NDWI<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_6_Mask_Out_Water_from_the_NDBI_Raster\" >Step 6: Mask Out Water from the NDBI Raster<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#5_Separating_Built-Up_Areas_from_Soil_and_Vegetation\" >5. Separating Built-Up Areas from Soil and Vegetation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_7_Apply_an_Initial_NDBI_Threshold\" >Step 7: Apply an Initial NDBI Threshold<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_8_Use_NDVI_to_Reduce_Vegetation_Confusion\" >Step 8: Use NDVI to Reduce Vegetation Confusion<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#6_Urban_Expansion_Change_Detection_Comparing_2015_and_2025\" >6. Urban Expansion Change Detection: Comparing 2015 and 2025<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_9_Calculate_NDBI_for_Both_Dates\" >Step 9: Calculate NDBI for Both Dates<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_10_Calculate_the_NDBI_Difference\" >Step 10: Calculate the NDBI Difference<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_11_Identify_Newly_Built-Up_Candidate_Pixels\" >Step 11: Identify Newly Built-Up Candidate Pixels<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#Step_12_Estimate_the_Area_of_Urban_Expansion\" >Step 12: Estimate the Area of Urban Expansion<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/#7_Conclusion_Environmental_Implications_of_Urban_Expansion\" >7. Conclusion: Environmental Implications of Urban Expansion<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"Calculating_Built-Up_Index_NDBI_in_QGIS_for_Urban_Expansion_Analysis\"><\/span>Calculating Built-Up Index (NDBI) in QGIS for Urban Expansion Analysis<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"1_Introduction_What_Is_the_Normalized_Difference_Built-Up_Index\"><\/span>1. Introduction: What Is the Normalized Difference Built-Up Index?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Calculating Built-Up Index in QGIS is an essential remote sensing technique for monitoring urban expansion and impervious surfaces over time. Rapid urbanization transforms natural landscapes into buildings, roads, parking areas, and other impervious surfaces. Monitoring these changes is important for urban planning, infrastructure development, environmental management, and agricultural land conservation.<\/p>\n<p>Satellite<a href=\"https:\/\/helpwithmygisassignment.com\/blog\/land-surface-temperature-qgis-landsat\/\"> remote sensing<\/a> makes it possible to investigate urban expansion across large geographical areas without surveying every building on the ground.<\/p>\n<p>One commonly used technique is the <strong>Normalized Difference Built-Up Index (NDBI)<\/strong>. This spectral index uses differences in how the Earth&#8217;s surface reflects shortwave infrared and near-infrared radiation to highlight areas that may contain built-up surfaces.<\/p>\n<p>NDBI is particularly useful in <strong>urban land use mapping<\/strong>, where analysts need to identify candidate built-up areas and investigate how they change over time.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"11_The_NDBI_Formula\"><\/span>1.1 The NDBI Formula<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The Normalized Difference Built-Up Index is calculated using the following equation:<\/p>\n<p>[<br \/>\n\\boxed{\\mathrm{NDBI}=\\frac{SWIR-NIR}{SWIR+NIR}}<br \/>\n]<\/p>\n<p>Where:<\/p>\n<ul>\n<li><strong>SWIR (Shortwave Infrared):<\/strong> Measures reflected energy in the shortwave infrared region.<\/li>\n<li><strong>NIR (Near-Infrared):<\/strong> Measures reflected energy in the near-infrared region.<\/li>\n<\/ul>\n<p>The index typically produces values between -1 and +1 when valid nonnegative reflectance values are used and the denominator is nonzero.<\/p>\n<p>Common interpretations include:<\/p>\n<table>\n<tbody>\n<tr>\n<th>NDBI value<\/th>\n<th>General interpretation<\/th>\n<\/tr>\n<tr>\n<td>Negative values<\/td>\n<td>Often associated with vegetation or water, depending on the surface<\/td>\n<\/tr>\n<tr>\n<td>Values near zero<\/td>\n<td>May represent mixed surfaces or other land-cover types<\/td>\n<\/tr>\n<tr>\n<td>Positive values<\/td>\n<td>May indicate built-up surfaces or exposed bare soil<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Important:<\/strong> Positive NDBI values do not automatically mean that a pixel contains a building or a concrete surface. Bare soil, dry agricultural fields, construction sites, and other exposed ground can also produce positive values. The index is best used as an indicator of potential built-up areas rather than a definitive land-cover classifier. <a href=\"https:\/\/www.mdpi.com\/2073-445X\/7\/3\/81\" target=\"_blank\" rel=\"noopener\">Research on NDBI limitations<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"12_Why_Use_NDBI_for_Urban_Expansion_Analysis\"><\/span>1.2 Why Use NDBI for Urban Expansion Analysis?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>NDBI helps researchers investigate the spatial distribution of potential built-up surfaces and how those patterns change between satellite acquisition dates.<\/p>\n<p>Typical applications include:<\/p>\n<ul>\n<li>Mapping the expansion of residential and commercial development.<\/li>\n<li>Identifying potential conversion of agricultural land into developed land.<\/li>\n<li>Comparing urban growth between two or more years.<\/li>\n<li>Supporting studies of impervious surfaces and urban heat islands.<\/li>\n<li>Identifying rapidly developing peri-urban areas.<\/li>\n<\/ul>\n<p>In this tutorial, you will calculate NDBI in QGIS, remove water pixels from the analysis, create a preliminary built-up classification, and compare two dates to investigate urban expansion.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"2_Data_Requirements_Landsat_89_or_Sentinel-2\"><\/span>2. Data Requirements: Landsat 8\/9 or Sentinel-2<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before opening QGIS, obtain suitable satellite imagery covering your study area.<\/p>\n<p>Two widely used data sources are Landsat and Sentinel-2.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"21_Landsat_8_and_Landsat_9\"><\/span>2.1 Landsat 8 and Landsat 9<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Landsat provides multispectral imagery with a 30-metre spatial resolution for the optical bands used in this workflow.<\/p>\n<p>For Landsat 8\/9 Operational Land Imager imagery, use the following bands:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Band<\/th>\n<th>Spectral region<\/th>\n<th>Application<\/th>\n<th>Spatial resolution<\/th>\n<\/tr>\n<tr>\n<td>Band 3<\/td>\n<td>Green<\/td>\n<td>NDWI water detection<\/td>\n<td>30 m<\/td>\n<\/tr>\n<tr>\n<td>Band 4<\/td>\n<td>Red<\/td>\n<td>Optional NDVI vegetation filtering<\/td>\n<td>30 m<\/td>\n<\/tr>\n<tr>\n<td>Band 5<\/td>\n<td>Near-Infrared (NIR)<\/td>\n<td>NDBI and NDWI<\/td>\n<td>30 m<\/td>\n<\/tr>\n<tr>\n<td>Band 6<\/td>\n<td>Shortwave Infrared 1 (SWIR1)<\/td>\n<td>NDBI<\/td>\n<td>30 m<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The official <a href=\"https:\/\/www.usgs.gov\/faqs\/what-are-band-designations-landsat-satellites\" target=\"_blank\" rel=\"noopener\">USGS Landsat band reference<\/a> confirms these band assignments.<\/p>\n<p>For a reproducible urban expansion study, consider downloading <strong>Landsat Collection 2 Level-2 Surface Reflectance<\/strong> imagery. Surface reflectance products are atmospherically corrected and more appropriate for comparing dates than uncorrected raw imagery.<\/p>\n<p>Download imagery through <a href=\"https:\/\/earthexplorer.usgs.gov\/\" target=\"_blank\" rel=\"noopener\">USGS EarthExplorer<\/a>.<\/p>\n<p>For a 2015-versus-2025 comparison, Landsat 8 imagery can provide a consistent sensor across both dates. Select scenes with low cloud cover and similar seasonal conditions.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"22_Sentinel-2_Imagery\"><\/span>2.2 Sentinel-2 Imagery<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Sentinel-2 provides multispectral imagery with different spatial resolutions depending on the band.<\/p>\n<table>\n<tbody>\n<tr>\n<th>Band<\/th>\n<th>Spectral region<\/th>\n<th>Application<\/th>\n<th>Spatial resolution<\/th>\n<\/tr>\n<tr>\n<td>B3<\/td>\n<td>Green<\/td>\n<td>NDWI<\/td>\n<td>10 m<\/td>\n<\/tr>\n<tr>\n<td>B4<\/td>\n<td>Red<\/td>\n<td>Optional NDVI<\/td>\n<td>10 m<\/td>\n<\/tr>\n<tr>\n<td>B8<\/td>\n<td>Near-Infrared (NIR)<\/td>\n<td>NDBI and NDWI<\/td>\n<td>10 m<\/td>\n<\/tr>\n<tr>\n<td>B11<\/td>\n<td>Shortwave Infrared 1<\/td>\n<td>NDBI<\/td>\n<td>20 m<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Sentinel-2 B11 has a native 20-metre resolution, while B8 has a 10-metre resolution. To calculate NDBI correctly, the bands must be aligned to a common grid and resolution. A 20-metre analysis grid is a sensible option because it preserves the native resolution of B11. Resampling B11 to 10 metres does not create additional spatial detail. <a href=\"https:\/\/s2.pages.eopf.copernicus.eu\/pdfs-adfs\/MSI\/index.html\" target=\"_blank\" rel=\"noopener\">Copernicus Sentinel-2 band specifications<\/a>.<\/p>\n<p>Download Sentinel-2 Level-2A Surface Reflectance imagery from the <a href=\"https:\/\/browser.dataspace.copernicus.eu\/\" target=\"_blank\" rel=\"noopener\">Copernicus Browser<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"23_Essential_Preparation_Before_Analysis\"><\/span>2.3 Essential Preparation Before Analysis<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Regardless of your chosen satellite, check that:<\/p>\n<ul>\n<li>The imagery covers the same study area and has a suitable coordinate reference system.<\/li>\n<li>Clouds, cloud shadows, and invalid pixels have been masked.<\/li>\n<li>The selected dates represent comparable seasons where possible.<\/li>\n<li>The input bands have compatible dimensions, pixel alignment, and spatial extent.<\/li>\n<li>Reflectance scaling and offsets have been handled correctly.<\/li>\n<\/ul>\n<p>The final point is particularly important for Landsat Collection 2 Level-2 products. Their surface-reflectance digital numbers must be converted using the scale factor and additive offset provided by USGS.<\/p>\n<p>For Landsat Collection 2 Surface Reflectance:<\/p>\n<p>[<br \/>\nSR=(DN\\times0.0000275)-0.2<br \/>\n]<\/p>\n<p>Where (DN) is the stored digital number and (SR) is the surface reflectance. Applying the scale factor without the offset can distort NDBI values because the offset does not cancel out in the normalized-difference equation. See the <a href=\"https:\/\/www.usgs.gov\/faqs\/how-do-i-use-a-scale-factor-landsat-level-2-science-products\" target=\"_blank\" rel=\"noopener\">USGS scaling instructions<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"3_Step-by-Step_Workflow_Calculating_NDBI_in_QGIS\"><\/span>3. Step-by-Step Workflow: Calculating NDBI in QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The following instructions use the QGIS Processing Toolbox Raster Calculator. The same principles apply to Sentinel-2 imagery after aligning its input bands.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_1_Download_and_Import_the_Satellite_Bands\"><\/span>Step 1: Download and Import the Satellite Bands<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>First, download your satellite scene and extract its files.<\/p>\n<p>For a Landsat 8\/9 Level-2 product, locate the files corresponding to:<\/p>\n<ul>\n<li><code>SR_B3.TIF<\/code> \u2014 Green<\/li>\n<li><code>SR_B4.TIF<\/code> \u2014 Red<\/li>\n<li><code>SR_B5.TIF<\/code> \u2014 NIR<\/li>\n<li><code>SR_B6.TIF<\/code> \u2014 SWIR1<\/li>\n<li><code>QA_PIXEL.TIF<\/code> \u2014 Pixel quality information for cloud and shadow masking<\/li>\n<\/ul>\n<p>The exact filenames may contain additional product identifiers.<\/p>\n<p>Open QGIS and load the relevant rasters:<\/p>\n<ol start=\"1\">\n<li>Start a new QGIS project.<\/li>\n<li>Select <strong>Layer \u2192 Add Layer \u2192 Add Raster Layer<\/strong>.<\/li>\n<li>Browse to the extracted satellite files.<\/li>\n<li>Load the required bands.<\/li>\n<li>Inspect their CRS, extent, dimensions, and pixel resolution.<\/li>\n<li>Mask clouds, shadows, and invalid pixels before calculating the index.<\/li>\n<\/ol>\n<p>You can inspect a natural-colour view using Red, Green, and Blue composites where the required bands are available. For Landsat 8\/9, a natural-colour composite commonly uses Bands 4, 3, and 2.<\/p>\n<p>This visual inspection helps you identify cloud contamination, scene boundaries, and obvious differences in the study area.<\/p>\n<p><strong>Screenshot cue:<\/strong> Show the QGIS Layers panel containing the imported Landsat bands and the satellite image displayed on the map canvas.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_2_Apply_Reflectance_Scaling_to_Landsat_Bands\"><\/span>Step 2: Apply Reflectance Scaling to Landsat Bands<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If you are using Landsat Collection 2 Level-2 Surface Reflectance data, convert the relevant bands to reflectance before calculating NDBI.<\/p>\n<p>Open <strong>Processing Toolbox \u2192 Raster analysis \u2192 Raster calculator<\/strong>.<\/p>\n<p>For the SWIR1 band, use the following expression, replacing the layer reference with the exact name in your QGIS project:<\/p>\n<pre><code>\"SR_B6@1\" * 0.0000275 - 0.2<\/code><\/pre>\n<p>Save the output as:<\/p>\n<p><code>SWIR1_SR.tif<\/code><\/p>\n<p>Repeat the process for the NIR band:<\/p>\n<pre><code>\"SR_B5@1\" * 0.0000275 - 0.2<\/code><\/pre>\n<p>Save the output as:<\/p>\n<p><code>NIR_SR.tif<\/code><\/p>\n<p>Use the same scaling convention for the Green and Red bands if you will calculate NDWI or NDVI from Landsat Collection 2 data.<\/p>\n<p>The layer references above are examples. Select the correct names from the Raster Calculator&#8217;s available input layers.<\/p>\n<p>If your imagery is already stored as properly scaled reflectance values, do not apply the scaling a second time. For Sentinel-2, check the product metadata and processing baseline for the applicable scale and offset rather than assuming that every downloaded product uses the same convention.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_3_Calculate_NDBI_Using_the_Raster_Calculator\"><\/span>Step 3: Calculate NDBI Using the Raster Calculator<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>You now have the two input reflectance layers required for NDBI.<\/p>\n<p>Open <strong>Processing Toolbox \u2192 Raster analysis \u2192 Raster calculator<\/strong>.<\/p>\n<p>Enter the following expression:<\/p>\n<pre><code>(\"SWIR1_SR@1\" - \"NIR_SR@1\") \/\r\n(\"SWIR1_SR@1\" + \"NIR_SR@1\")<\/code><\/pre>\n<p>Select an output filename such as:<\/p>\n<p><code>NDBI_2015.tif<\/code><\/p>\n<p>Set the output extent, resolution, and reference grid appropriately. For this Landsat example, the result should normally use the common 30-metre grid of the input bands.<\/p>\n<p>Click <strong>Run<\/strong> to generate the index.<\/p>\n<p>The output is a continuous raster in which each valid pixel contains a calculated NDBI value.<\/p>\n<p>If you encounter unusually large values or unexpected artefacts, inspect the input data, NoData treatment, denominator values, and reflectance scaling. Do not interpret invalid pixels as genuine land-cover measurements.<\/p>\n<p><strong>Screenshot cue:<\/strong> Show the Raster Calculator with the NDBI equation entered and the generated <code>NDBI_2015<\/code> raster in the Layers panel.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_4_Style_and_Interpret_the_NDBI_Raster\"><\/span>Step 4: Style and Interpret the NDBI Raster<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Right-click the output raster and select <strong>Properties \u2192 Symbology<\/strong>.<\/p>\n<p>Choose a single-band pseudocolor renderer and select a suitable diverging colour ramp, with contrasting colours on either side of zero.<\/p>\n<p>For example, use one colour for negative values and a different colour for positive values. The specific palette is a cartographic choice; it does not change the numerical result.<\/p>\n<p>Inspect the raster at several locations:<\/p>\n<ul>\n<li>Do developed areas generally show positive values?<\/li>\n<li>Are vegetated areas commonly negative?<\/li>\n<li>Do exposed fields or construction sites also show positive values?<\/li>\n<li>Are clouds, shadows, or water producing unexpected results?<\/li>\n<\/ul>\n<p>This visual check is important because NDBI responses vary with the materials and environmental conditions present in the study area.<\/p>\n<p>Avoid assuming that every positive pixel represents urban land. The next steps help reduce common classification errors.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"4_Masking_Water_Bodies_Using_NDWI\"><\/span>4. Masking Water Bodies Using NDWI<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Water can interfere with the interpretation of NDBI, especially when the study area contains rivers, lakes, reservoirs, or coastal features.<\/p>\n<p>The <strong>Normalized Difference Water Index (NDWI)<\/strong> can help identify potential water pixels before classifying built-up areas.<\/p>\n<p>For the McFeeters NDWI, the formula is:<\/p>\n<p>[<br \/>\nNDWI=\\frac{Green-NIR}{Green+NIR}<br \/>\n]<\/p>\n<p>For Landsat 8\/9, use Green Band 3 and NIR Band 5. For Sentinel-2, use Green Band 3 and NIR Band 8.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_5_Calculate_NDWI\"><\/span>Step 5: Calculate NDWI<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Use the QGIS Raster Calculator and enter:<\/p>\n<pre><code>(\"GREEN_SR@1\" - \"NIR_SR@1\") \/\r\n(\"GREEN_SR@1\" + \"NIR_SR@1\")<\/code><\/pre>\n<p>Here, <code>GREEN_SR<\/code> and <code>NIR_SR<\/code> refer to your prepared reflectance layers. For Sentinel-2, first align the Green and NIR bands to the same grid used for the NDBI analysis.<\/p>\n<p>Save the output as:<\/p>\n<p><code>NDWI_2015.tif<\/code><\/p>\n<p>Inspect the output and identify pixels with high NDWI values that correspond to known water features.<\/p>\n<p>A threshold of NDWI greater than zero can be used as an initial water-screening rule, but the appropriate threshold depends on the imagery, season, and surrounding land cover. Check the map against known water bodies before applying the mask to the entire study region.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_6_Mask_Out_Water_from_the_NDBI_Raster\"><\/span>Step 6: Mask Out Water from the NDBI Raster<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Once your NDWI raster is ready, create a masked NDBI output.<\/p>\n<p>In the Processing Toolbox Raster Calculator, use:<\/p>\n<pre><code>if(\"NDWI_2015@1\" &gt; 0, -9999, \"NDBI_2015@1\")<\/code><\/pre>\n<p>In the output settings, set the <strong>Output NoData value<\/strong> to <code>-9999<\/code>. This means pixels identified as water are stored as NoData instead of appearing as ordinary NDBI values.<\/p>\n<p>Confirm that the NDWI layer name matches your project and that both rasters share the same grid. If water pixels remain visible after processing, inspect the output NoData settings and the water-mask threshold.<\/p>\n<p>This is a preliminary water mask, not a guarantee that every water pixel has been removed. Validate it in areas containing shadows, dark roofs, and mixed shoreline pixels.<\/p>\n<p>For some urban environments, a modified water index that incorporates SWIR may separate water from built-up land more effectively. Choose an index based on the characteristics of your study area.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"5_Separating_Built-Up_Areas_from_Soil_and_Vegetation\"><\/span>5. Separating Built-Up Areas from Soil and Vegetation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Step_7_Apply_an_Initial_NDBI_Threshold\"><\/span>Step 7: Apply an Initial NDBI Threshold<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A common starting point is to identify pixels with positive NDBI values.<\/p>\n<p>In the Raster Calculator, enter:<\/p>\n<pre><code>\"NDBI_noWater@1\" &gt; 0<\/code><\/pre>\n<p>Save the output as:<\/p>\n<p><code>BuiltUp_candidates_2015.tif<\/code><\/p>\n<p>The resulting raster is a binary candidate mask: pixels satisfying the rule receive a value of 1, while other valid pixels receive 0.<\/p>\n<p>This is useful for exploration, but it should not be treated as a final built-up land-cover map.<\/p>\n<p>Bare soil and recently cleared land may also have positive NDBI values. To improve the classification, compare NDBI with vegetation information and available reference data.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_8_Use_NDVI_to_Reduce_Vegetation_Confusion\"><\/span>Step 8: Use NDVI to Reduce Vegetation Confusion<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The Normalized Difference Vegetation Index (NDVI) is calculated as:<\/p>\n<p>[<br \/>\nNDVI=\\frac{NIR-Red}{NIR+Red}<br \/>\n]<\/p>\n<p>Create an NDVI raster from the prepared NIR and Red reflectance layers.<\/p>\n<p>A simple experimental rule might identify candidate built-up pixels with positive NDBI and relatively low NDVI:<\/p>\n<pre><code>(\"NDBI_noWater@1\" &gt; 0) *\r\n(\"NDVI_2015@1\" &lt; 0.2)<\/code><\/pre>\n<p>The <code>0.2<\/code> threshold is illustrative, not universal. Adjust it only after examining representative built-up, vegetated, and bare-soil locations.<\/p>\n<p>This combined rule removes many strongly vegetated pixels from the candidate built-up class, but it may still classify exposed soil as built-up.<\/p>\n<p>For a defensible urban land-cover map:<\/p>\n<ul>\n<li>Compare candidate pixels with recent high-resolution imagery.<\/li>\n<li>Inspect representative built-up, bare-soil, vegetated, and water samples.<\/li>\n<li>Adjust thresholds based on the local spectral characteristics.<\/li>\n<li>Consider a supervised classification using multiple spectral bands and reference samples.<\/li>\n<li>Evaluate classification accuracy using independent validation points or samples.<\/li>\n<\/ul>\n<p>NDBI is an index for identifying potential built-up surfaces, not a direct measurement of concrete alone.<\/p>\n<p><strong>Screenshot cue:<\/strong> Show the classified candidate raster beside a satellite image, highlighting examples where bare soil and developed surfaces have similar NDBI values.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"6_Urban_Expansion_Change_Detection_Comparing_2015_and_2025\"><\/span>6. Urban Expansion Change Detection: Comparing 2015 and 2025<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The next stage is to investigate whether the distribution of candidate built-up areas has changed between two dates.<\/p>\n<p>For a 2015-versus-2025 analysis, prepare two comparable scenes, calculate NDBI for each date, apply appropriate water masks, and produce candidate built-up masks using a consistent classification approach.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_9_Calculate_NDBI_for_Both_Dates\"><\/span>Step 9: Calculate NDBI for Both Dates<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Repeat the previous steps for your 2025 image.<\/p>\n<p>Save the outputs using clear names, for example:<\/p>\n<ul>\n<li><code>NDBI_2015.tif<\/code><\/li>\n<li><code>NDBI_2025.tif<\/code><\/li>\n<li><code>BuiltUp_2015.tif<\/code><\/li>\n<li><code>BuiltUp_2025.tif<\/code><\/li>\n<\/ul>\n<p>Use comparable acquisition seasons where possible, and apply consistent processing methods. If you use Landsat for both years, using the same sensor and product type can reduce some sources of inconsistency.<\/p>\n<p>Ensure the rasters are aligned to the same CRS, resolution, extent, and grid origin before calculating differences.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_10_Calculate_the_NDBI_Difference\"><\/span>Step 10: Calculate the NDBI Difference<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The continuous index difference is calculated as:<\/p>\n<p>[<br \/>\n\\Delta NDBI=NDBI_{2025}-NDBI_{2015}<br \/>\n]<\/p>\n<p>In QGIS Raster Calculator, enter:<\/p>\n<pre><code>\"NDBI_2025@1\" - \"NDBI_2015@1\"<\/code><\/pre>\n<p>Save the result as:<\/p>\n<p><code>NDBI_change_2015_2025.tif<\/code><\/p>\n<p>Interpretation:<\/p>\n<ul>\n<li>Positive values indicate an increase in NDBI.<\/li>\n<li>Negative values indicate a decrease in NDBI.<\/li>\n<li>Values near zero indicate relatively little change in the index.<\/li>\n<\/ul>\n<p>However, an increase in NDBI is not conclusive evidence of urban expansion. Changes in soil moisture, agricultural activity, construction exposure, or other surface conditions can also change the index.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_11_Identify_Newly_Built-Up_Candidate_Pixels\"><\/span>Step 11: Identify Newly Built-Up Candidate Pixels<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1220\" src=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/4b7828c6-c454-4f1d-865e-9d43229f10b3.jpg\" alt=\"Calculating Built-Up Index in QGIS change detection map showing urban expansion analysis.\" width=\"1024\" height=\"559\" srcset=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/4b7828c6-c454-4f1d-865e-9d43229f10b3.jpg 1024w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/4b7828c6-c454-4f1d-865e-9d43229f10b3-300x164.jpg 300w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/4b7828c6-c454-4f1d-865e-9d43229f10b3-768x419.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>For a clearer change map, subtract the binary built-up candidate raster for 2015 from the equivalent raster for 2025.<\/p>\n<p>Assuming both rasters use 1 for candidate built-up pixels and 0 for other valid land pixels, use:<\/p>\n<pre><code>\"BuiltUp_2025@1\" - \"BuiltUp_2015@1\"<\/code><\/pre>\n<p>Save the output as:<\/p>\n<p><code>BuiltUp_change_2015_2025.tif<\/code><\/p>\n<p>Interpret the resulting values as follows:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Difference value<\/th>\n<th>Interpretation<\/th>\n<\/tr>\n<tr>\n<td>+1<\/td>\n<td>Newly classified as built-up in 2025<\/td>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>No change in the binary classification<\/td>\n<\/tr>\n<tr>\n<td>-1<\/td>\n<td>Classified as built-up in 2015 but not in 2025<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ensure that pixels marked as NoData in either year are handled consistently. Otherwise, the difference map may contain misleading results around water, clouds, or masked locations.<\/p>\n<p>Style the change raster using distinct categories for new built-up candidates, unchanged areas, and areas no longer classified as built-up.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_12_Estimate_the_Area_of_Urban_Expansion\"><\/span>Step 12: Estimate the Area of Urban Expansion<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>After identifying newly classified built-up pixels, estimate the corresponding area.<\/p>\n<p>For a 30-metre Landsat grid:<\/p>\n<p>[<br \/>\nArea_{\\text{pixel}}=30\\times30=900\\ m^2<br \/>\n]<\/p>\n<p>This is equivalent to 0.09 hectares per pixel.<\/p>\n<p>Therefore:<\/p>\n<p>\\text{New built-up pixels}\\times0.09<br \/>\n]<\/p>\n<p>For a 20-metre grid, each square pixel represents 400 m\u00b2 or 0.04 hectares.<\/p>\n<p>These calculations assume a projected grid with the stated cell dimensions and valid, consistently classified pixels. If the raster is in a geographic CRS measured in degrees, first use an appropriate projected grid or calculate area with a suitable area-aware method.<\/p>\n<p>For publication-quality results, validate the mapped change using reference imagery, sample-based accuracy assessment, or a more robust land-cover classification. Report the result as <em>estimated newly built-up area<\/em> if it is based only on an NDBI threshold.<\/p>\n<p><strong>Screenshot cue:<\/strong> Show the final urban change map with new built-up candidates highlighted, together with a legend and the study boundary.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"7_Conclusion_Environmental_Implications_of_Urban_Expansion\"><\/span>7. Conclusion: Environmental Implications of Urban Expansion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Calculating NDBI in QGIS provides an accessible way to explore changes in potential built-up surfaces using freely available satellite imagery.<\/p>\n<p>By combining the NDBI formula with NDWI water masking, optional NDVI filtering, and multi-temporal comparison, GIS analysts can investigate the distribution and potential expansion of urban land.<\/p>\n<p>The method also has important environmental applications.<\/p>\n<p><strong>Urban Heat Islands:<\/strong> Expansion of impervious surfaces can reduce vegetation cover and alter surface energy balance. These changes can contribute to higher surface temperatures and exacerbate urban heat-island effects, although NDBI alone does not measure temperature. Thermal imagery and appropriate surface-temperature analysis are needed to investigate this relationship.<\/p>\n<p><strong>Loss of Agricultural Land:<\/strong> Urban growth into peri-urban areas can convert agricultural fields and other open land into buildings and paved surfaces. A carefully validated multi-date land-cover analysis can help identify where these transitions may be occurring.<\/p>\n<p>For a strong GIS university project, remember to document your satellite data sources, dates, reflectance processing, CRS, raster alignment, masking rules, thresholds, and validation method.<\/p>\n<p>The central lesson is that <strong>NDBI is a useful starting point for urban expansion analysis, but reliable built-up mapping depends on more than a positive index value<\/strong>. Combining spectral information with careful change detection and independent validation produces more defensible conclusions about how cities are growing and how that growth affects the surrounding landscape.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Calculating Built-Up Index (NDBI) in QGIS for Urban Expansion Analysis &nbsp; 1. Introduction: What Is the Normalized Difference Built-Up Index? Calculating Built-Up Index in QGIS is an essential remote sensing technique for monitoring urban expansion and impervious surfaces over time. Rapid urbanization transforms natural landscapes into buildings, roads, parking areas, and other impervious surfaces. Monitoring &#8230; <a title=\"Calculating Built-Up Index (NDBI) in QGIS for Urban Expansion Analysis\" class=\"read-more\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/calculating-built-up-index-in-qgis\/\" aria-label=\"Read more about Calculating Built-Up Index (NDBI) in QGIS for Urban Expansion Analysis\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":1220,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,4],"tags":[],"class_list":["post-1139","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-civil-engineering","category-gis-articles"],"_links":{"self":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts\/1139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/comments?post=1139"}],"version-history":[{"count":4,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts\/1139\/revisions"}],"predecessor-version":[{"id":1221,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts\/1139\/revisions\/1221"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/media\/1220"}],"wp:attachment":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/media?parent=1139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/categories?post=1139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/tags?post=1139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}