{"id":1164,"date":"2026-10-16T06:35:21","date_gmt":"2026-10-16T06:35:21","guid":{"rendered":"https:\/\/helpwithmygisassignment.com\/blog\/?p=1164"},"modified":"2026-10-16T06:35:21","modified_gmt":"2026-10-16T06:35:21","slug":"least-cost-path-analysis","status":"publish","type":"post","link":"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/","title":{"rendered":"Cost-Distance &#038; Least-Cost Path Analysis in ArcGIS Pro &#038; QGIS"},"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\/least-cost-path-analysis\/#Cost-Distance_Least-Cost_Path_Analysis_in_ArcGIS_Pro_QGIS\" >Cost-Distance &amp; Least-Cost Path Analysis in ArcGIS Pro &amp; QGIS<\/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\/least-cost-path-analysis\/#1_Introduction_What_Is_Least-Cost_Path_Analysis\" >1. Introduction: What Is Least-Cost Path Analysis?<\/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\/least-cost-path-analysis\/#11_How_Does_Least-Cost_Path_Analysis_Work\" >1.1 How Does Least-Cost Path Analysis Work?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#2_Step_1_Creating_the_Cost_or_Friction_Surface\" >2. Step 1: Creating the Cost or Friction Surface<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#21_Prepare_the_Required_Input_Data\" >2.1 Prepare the Required Input Data<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#22_Reclassify_Land_Cover_into_Traversal_Costs\" >2.2 Reclassify Land Cover into Traversal Costs<\/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\/least-cost-path-analysis\/#23_Calculate_Slope_from_the_DEM\" >2.3 Calculate Slope from the DEM<\/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\/least-cost-path-analysis\/#24_Combine_the_Criteria_into_One_Cost_Surface\" >2.4 Combine the Criteria into One Cost Surface<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#In_QGIS\" >In QGIS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#In_ArcGIS_Pro\" >In ArcGIS Pro<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#3_Step_2_Computing_Cost-Distance_and_Backlink_Rasters\" >3. Step 2: Computing Cost-Distance and Backlink Rasters<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#31_ArcGIS_Pro_Distance_Accumulation\" >3.1 ArcGIS Pro: Distance Accumulation<\/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\/least-cost-path-analysis\/#32_QGIS_GRASS_GIS_rcost\" >3.2 QGIS: GRASS GIS r.cost<\/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\/least-cost-path-analysis\/#4_Step_3_Generating_the_Least-Cost_Path\" >4. Step 3: Generating the Least-Cost Path<\/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\/least-cost-path-analysis\/#41_ArcGIS_Pro_Optimal_Path_As_Line\" >4.1 ArcGIS Pro: Optimal Path As Line<\/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\/least-cost-path-analysis\/#42_QGIS_Extract_the_Path_Using_GRASS_rdrain\" >4.2 QGIS: Extract the Path Using GRASS r.drain<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#43_Inspect_and_Validate_the_Route\" >4.3 Inspect and Validate the Route<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#5_Step_4_Comparing_Euclidean_Routing_with_Least-Cost_Routing\" >5. Step 4: Comparing Euclidean Routing with Least-Cost Routing<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#51_How_the_Two_Routes_Differ\" >5.1 How the Two Routes Differ<\/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\/least-cost-path-analysis\/#6_Real-World_Applications\" >6. Real-World Applications<\/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\/least-cost-path-analysis\/#61_Conservation_Biology_Wildlife_Corridors\" >6.1 Conservation Biology: Wildlife Corridors<\/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\/least-cost-path-analysis\/#62_Infrastructure_Planning_Roads_and_Pipelines\" >6.2 Infrastructure Planning: Roads and Pipelines<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#7_Conclusion_and_Key_Takeaways\" >7. Conclusion and Key Takeaways<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/#References\" >References<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"Cost-Distance_Least-Cost_Path_Analysis_in_ArcGIS_Pro_QGIS\"><\/span>Cost-Distance &amp; Least-Cost Path Analysis in ArcGIS Pro &amp; QGIS<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"1_Introduction_What_Is_Least-Cost_Path_Analysis\"><\/span>1. Introduction: What Is Least-Cost Path Analysis?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1173\" src=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_hf4qdghf4qdghf4q-1024x559.jpg\" alt=\"\" width=\"1024\" height=\"559\" srcset=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_hf4qdghf4qdghf4q-1024x559.jpg 1024w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_hf4qdghf4qdghf4q-300x164.jpg 300w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_hf4qdghf4qdghf4q-768x419.jpg 768w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_hf4qdghf4qdghf4q.jpg 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Imagine a transportation agency planning a new road between two towns. The shortest route on a map might cross steep mountains, wetlands, protected habitats, or densely developed neighborhoods. Although geographically short, that route could be expensive to construct and environmentally damaging.<\/p>\n<p><strong>Least-Cost Path Analysis (LCPA)<\/strong> is a GIS technique that identifies a route between locations by minimizing the cumulative cost of moving across a landscape.<\/p>\n<p>Instead of considering only distance, the analysis uses a <strong>cost surface<\/strong>, also called a <strong>friction surface<\/strong>, to represent the relative difficulty, expense, or impact of traversing each raster cell.<\/p>\n<p>The technique is widely used in:<\/p>\n<ul>\n<li>Road, pipeline, and electrical transmission-line planning.<\/li>\n<li>Wildlife movement and ecological corridor mapping.<\/li>\n<li>Hiking trails and emergency access route planning.<\/li>\n<li>Environmental impact assessment.<\/li>\n<li>Infrastructure site selection.<\/li>\n<\/ul>\n<p>The central idea is straightforward: a route can be longer geographically but preferable overall because it passes through areas with lower costs.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"11_How_Does_Least-Cost_Path_Analysis_Work\"><\/span>1.1 How Does Least-Cost Path Analysis Work?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The workflow has three main analytical outputs or stages:<\/p>\n<ol start=\"1\">\n<li><strong>Cost surface:<\/strong> Represents the resistance associated with traversing each cell.<\/li>\n<li><strong>Cost-distance accumulation:<\/strong> Calculates the minimum cumulative cost from a source to every reachable cell.<\/li>\n<li><strong>Least-cost path:<\/strong> Traces the route between a destination and its least-cost source using the accumulated-cost and direction information.<\/li>\n<\/ol>\n<p>The cumulative cost of a route can be represented conceptually as:<\/p>\n<p>[<br \/>\nC(P)=\\int_P c(s),ds<br \/>\n]<\/p>\n<p>Where:<\/p>\n<ul>\n<li>(P) is a candidate route.<\/li>\n<li>(c(s)) represents the local traversal cost along the route.<\/li>\n<li>(ds) represents an incremental distance along the route.<\/li>\n<\/ul>\n<p>In raster analysis, the integral is approximated using cell traversal costs and the distances moved between cells.<\/p>\n<p>The result is the route that minimizes cumulative cost under the selected cost model, raster resolution, and movement assumptions.<\/p>\n<p><strong>Important:<\/strong> Least-cost path analysis does not automatically find the cheapest real-world road or pipeline. It finds the minimum-cost route according to the criteria and weights supplied by the analyst.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"2_Step_1_Creating_the_Cost_or_Friction_Surface\"><\/span>2. Step 1: Creating the Cost or Friction Surface<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The cost surface is the foundation of the entire analysis. If its values poorly represent the problem, the resulting route may be mathematically optimal but practically unsuitable.<\/p>\n<p>For example, a road construction project may prioritize gentle slopes, open terrain, and avoidance of settlements. A wildlife corridor may prioritize suitable habitat and penalize roads, settlements, and other barriers.<\/p>\n<p>The same geographical area can produce very different least-cost paths depending on the purpose of the project.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"21_Prepare_the_Required_Input_Data\"><\/span>2.1 Prepare the Required Input Data<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Typical input datasets include:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Input dataset<\/th>\n<th>Purpose<\/th>\n<th>Example source<\/th>\n<\/tr>\n<tr>\n<td>Digital Elevation Model (DEM)<\/td>\n<td>Derive slope and terrain characteristics<\/td>\n<td>SRTM, Copernicus DEM<\/td>\n<\/tr>\n<tr>\n<td>Land-cover raster<\/td>\n<td>Represent the relative difficulty of traversing different surfaces<\/td>\n<td>Sentinel-2 classification, national land-cover maps<\/td>\n<\/tr>\n<tr>\n<td>Environmental constraints<\/td>\n<td>Represent protected areas, wetlands, forests, and sensitive habitats<\/td>\n<td>Protected-area datasets, environmental agencies<\/td>\n<\/tr>\n<tr>\n<td>Source point<\/td>\n<td>Starting location of the proposed route<\/td>\n<td>Road junction, power station, water-treatment plant<\/td>\n<\/tr>\n<tr>\n<td>Destination point<\/td>\n<td>Ending location of the proposed route<\/td>\n<td>Town, distribution station, industrial facility<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Before analysis, make sure all input rasters have compatible:<\/p>\n<ul>\n<li>Coordinate reference systems.<\/li>\n<li>Cell sizes and grid alignment.<\/li>\n<li>Spatial extents.<\/li>\n<li>NoData conventions.<\/li>\n<\/ul>\n<p>Use a suitable projected coordinate system when working with local or regional routes so that the raster cell dimensions represent meaningful ground distances.<\/p>\n<p>The raster resolution should reflect the planning scale. A very coarse raster may overlook narrow streams, roads, or steep terrain, while a very fine raster can greatly increase processing time and memory requirements.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"22_Reclassify_Land_Cover_into_Traversal_Costs\"><\/span>2.2 Reclassify Land Cover into Traversal Costs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Land-cover classes are categorical. To use them in least-cost analysis, convert them into numerical values representing relative resistance.<\/p>\n<p>For an illustrative road or transmission-line planning project, a reclassification table might look like this:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Land-cover class<\/th>\n<th>Example cost<\/th>\n<th>Interpretation<\/th>\n<\/tr>\n<tr>\n<td>Open or bare ground<\/td>\n<td>1<\/td>\n<td>Relatively easy to traverse<\/td>\n<\/tr>\n<tr>\n<td>Grassland or cropland<\/td>\n<td>2<\/td>\n<td>Low relative resistance<\/td>\n<\/tr>\n<tr>\n<td>Shrubland<\/td>\n<td>4<\/td>\n<td>Moderate resistance<\/td>\n<\/tr>\n<tr>\n<td>Forest<\/td>\n<td>7<\/td>\n<td>Higher construction or environmental cost<\/td>\n<\/tr>\n<tr>\n<td>Dense urban development<\/td>\n<td>9<\/td>\n<td>High relative cost<\/td>\n<\/tr>\n<tr>\n<td>Wetlands<\/td>\n<td>10<\/td>\n<td>Very high relative cost<\/td>\n<\/tr>\n<tr>\n<td>Prohibited area<\/td>\n<td>NoData<\/td>\n<td>Route cannot cross this cell<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>These values are hypothetical. They should be developed using the project requirements, engineering evidence, environmental assessments, and stakeholder priorities.<\/p>\n<p>For wildlife corridors, the cost interpretation may differ: intact suitable habitat could receive a low cost, while roads and urban areas could receive high costs or be treated as barriers.<\/p>\n<p>A high cost means an area is discouraged, not necessarily prohibited. Use NoData or another explicitly defined barrier treatment for areas that truly cannot be crossed, and verify that the chosen software handles those barriers as intended.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"23_Calculate_Slope_from_the_DEM\"><\/span>2.3 Calculate Slope from the DEM<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Slope helps represent the influence of terrain on construction, walking, and other forms of movement.<\/p>\n<p>In QGIS:<\/p>\n<ol start=\"1\">\n<li>Open <strong>Processing Toolbox<\/strong>.<\/li>\n<li>Search for <strong>Slope<\/strong> under GDAL raster terrain analysis.<\/li>\n<li>Select the DEM as the input raster.<\/li>\n<li>Set the output measurement to degrees if that option is available.<\/li>\n<li>Run the tool to create a slope raster.<\/li>\n<\/ol>\n<p>In ArcGIS Pro:<\/p>\n<ol start=\"1\">\n<li>Open <strong>Analysis \u2192 Tools<\/strong>.<\/li>\n<li>Search for <strong>Slope<\/strong>.<\/li>\n<li>Select the DEM.<\/li>\n<li>Set the measurement method and output units appropriately.<\/li>\n<li>Run the tool.<\/li>\n<\/ol>\n<p>Reclassify the slope raster according to a project-specific resistance scheme. For example:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Slope<\/th>\n<th>Example cost<\/th>\n<\/tr>\n<tr>\n<td>0\u20135\u00b0<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>Greater than 5\u201315\u00b0<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>Greater than 15\u201325\u00b0<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>Greater than 25\u00b0<\/td>\n<td>10<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>These categories are illustrative rather than universal engineering standards. A pipeline, highway, wildlife path, and transmission line may have different requirements.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"24_Combine_the_Criteria_into_One_Cost_Surface\"><\/span>2.4 Combine the Criteria into One Cost Surface<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If your analysis includes land cover, slope, and environmental sensitivity, combine their reclassified values into a single friction raster.<\/p>\n<p>First, normalize the criteria to comparable scales. For this example, assume each cost layer uses a scale from 1 to 10.<\/p>\n<p>Assign weights based on the project&#8217;s priorities:<\/p>\n<ul>\n<li>Land cover: 50%<\/li>\n<li>Slope: 30%<\/li>\n<li>Environmental sensitivity: 20%<\/li>\n<\/ul>\n<p>The weighted cost surface is:<\/p>\n<p>[<br \/>\nC=0.5L+0.3S+0.2E<br \/>\n]<\/p>\n<p>Where:<\/p>\n<ul>\n<li>(L) is the land-cover cost.<\/li>\n<li>(S) is the slope cost.<\/li>\n<li>(E) is the environmental cost.<\/li>\n<\/ul>\n<p>The weights sum to 1, making the resulting weighted score remain on the common 1\u201310 scale when the input values use that same range.<\/p>\n<p>A different project may justify different weights. Document the reasoning behind every criterion and weight rather than selecting values solely because they produce a visually attractive route.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"In_QGIS\"><\/span>In QGIS<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Open <strong>Processing Toolbox \u2192 Raster Calculator<\/strong> and enter:<\/p>\n<pre><code>0.5 * \"landcover_cost@1\"\r\n+\r\n0.3 * \"slope_cost@1\"\r\n+\r\n0.2 * \"environment_cost@1\"<\/code><\/pre>\n<p>Save the result as:<\/p>\n<p><code>friction_surface.tif<\/code><\/p>\n<p>The expression assumes all three rasters are aligned and use the same grid. Raster cells representing absolute barriers should remain NoData in the final cost surface, rather than being assigned an ordinary low cost.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"In_ArcGIS_Pro\"><\/span>In ArcGIS Pro<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Open <strong>Analysis \u2192 Tools \u2192 Raster Calculator<\/strong> and use:<\/p>\n<pre><code>0.5 * \"landcover_cost\" + \\\r\n0.3 * \"slope_cost\" + \\\r\n0.2 * \"environment_cost\"<\/code><\/pre>\n<p>Save the output as <code>friction_surface.tif<\/code>.<\/p>\n<p>Confirm that the output cell size, extent, and snap raster are consistent with the input layers. If the criteria use different resolutions, resample or align them deliberately before combining them.<\/p>\n<p><strong>Checkpoint:<\/strong> Display the resulting friction surface using a graduated colour ramp. Low-cost cells should correspond to areas that are relatively easy or desirable to traverse, while high-cost cells should correspond to areas that are more difficult, expensive, or damaging.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"3_Step_2_Computing_Cost-Distance_and_Backlink_Rasters\"><\/span>3. Step 2: Computing Cost-Distance and Backlink Rasters<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Once the cost surface is ready, calculate the cumulative cost of reaching every cell from the designated source.<\/p>\n<p>The processing tool also needs to produce a direction raster. Depending on the software, this is known as a <strong>back direction<\/strong>, <strong>movement direction<\/strong>, or <strong>direction-to-source raster<\/strong>.<\/p>\n<p>It identifies the next cell along a least-cost route back toward the source and is used to reconstruct the path.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"31_ArcGIS_Pro_Distance_Accumulation\"><\/span>3.1 ArcGIS Pro: Distance Accumulation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Recent ArcGIS Pro workflows use <strong>Distance Accumulation<\/strong>, which supports weighted distance calculations and generates the rasters needed for optimal path analysis. The newer distance tools are recommended over the legacy Cost Distance workflow. See <a href=\"https:\/\/doc.esri.com\/en\/arcgis-pro\/latest\/tool-reference\/spatial-analyst\/an-overview-of-the-distance-tools.html\" target=\"_blank\" rel=\"noopener\">Esri&#8217;s Distance toolset overview<\/a>.<\/p>\n<p>Follow these steps:<\/p>\n<ol start=\"1\">\n<li>Open <strong>Analysis \u2192 Tools<\/strong>.<\/li>\n<li>Search for <strong>Distance Accumulation<\/strong> in the Spatial Analyst toolbox.<\/li>\n<li>Set the source point or source features as the input source data.<\/li>\n<li>Set <code>friction_surface.tif<\/code> as the input cost raster.<\/li>\n<li>Specify an output distance accumulation raster, such as <code>accumulated_cost.tif<\/code>.<\/li>\n<li>Specify an output back direction raster, such as <code>back_direction.tif<\/code>.<\/li>\n<li>Confirm the cell size, extent, and other analysis settings.<\/li>\n<li>Run the tool.<\/li>\n<\/ol>\n<p>The output distance accumulation raster records the minimum accumulated cost from the source to each reachable cell. The back direction raster records how a path can be traced back toward the source.<\/p>\n<p>If you want a straight-line route rather than a cost-weighted route, do not supply a cost raster. If slope or other directional movement factors are required, configure them appropriately rather than assuming that the cost raster accounts for every process automatically.<\/p>\n<p>The Spatial Analyst extension is required for these tools.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"32_QGIS_GRASS_GIS_rcost\"><\/span>3.2 QGIS: GRASS GIS <code>r.cost<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>QGIS provides access to the GRASS GIS cost-distance algorithm through the Processing Toolbox, provided the GRASS provider is enabled.<\/p>\n<p>The <code>r.cost<\/code> tool calculates cumulative traversal cost and can produce a movement direction raster. This direction raster is subsequently used to trace the least-cost path. See the <a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.cost.html\" target=\"_blank\" rel=\"noopener\">official GRASS <\/a><code><a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.cost.html\" target=\"_blank\" rel=\"noopener\">r.cost<\/a><\/code><a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.cost.html\" target=\"_blank\" rel=\"noopener\"> documentation<\/a>.<\/p>\n<p>Follow these steps:<\/p>\n<ol start=\"1\">\n<li>Open <strong>Processing Toolbox<\/strong>.<\/li>\n<li>Search for <strong>r.cost<\/strong>.<\/li>\n<li>Select <code>friction_surface.tif<\/code> as the input cost raster.<\/li>\n<li>Specify the source point or source coordinates.<\/li>\n<li>Set the cumulative cost output to <code>accumulated_cost<\/code>.<\/li>\n<li>Set the movement-direction output to <code>movement_direction<\/code>.<\/li>\n<li>Define the computational region and resolution so that they match the cost surface.<\/li>\n<li>Run the tool.<\/li>\n<\/ol>\n<p>The resulting rasters record cumulative cost and the direction used to return toward the source.<\/p>\n<p>A conceptual GRASS command is:<\/p>\n<pre><code># Calculate cumulative cost from the source location.\r\nr.cost \\\r\n  input=friction_surface \\\r\n  output=accumulated_cost \\\r\n  outdir=movement_direction \\\r\n  start_coordinates=500000,9900000<\/code><\/pre>\n<p>Replace the example coordinates with the source&#8217;s easting and northing in the working projected coordinate system.<\/p>\n<p>QGIS may use temporary GRASS map names within its processing session. Select the corresponding layers in the Processing Toolbox rather than assuming that the example filenames already exist.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"4_Step_3_Generating_the_Least-Cost_Path\"><\/span>4. Step 3: Generating the Least-Cost Path<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>At this stage, you have:<\/p>\n<ul>\n<li>The friction surface.<\/li>\n<li>The accumulated cost raster.<\/li>\n<li>The back direction or movement-direction raster.<\/li>\n<li>A destination location.<\/li>\n<\/ul>\n<p>The final operation traces a route from the destination back toward the least-cost source.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"41_ArcGIS_Pro_Optimal_Path_As_Line\"><\/span>4.1 ArcGIS Pro: Optimal Path As Line<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In ArcGIS Pro, use the <strong>Optimal Path As Line<\/strong> tool. It creates a polyline feature representing the least-cost route. The input destination, distance accumulation raster, and back direction raster must be compatible. See the <a href=\"https:\/\/doc.esri.com\/en\/arcgis-pro\/latest\/tool-reference\/spatial-analyst\/optimal-path-as-line.html\" target=\"_blank\" rel=\"noopener\">official Optimal Path As Line documentation<\/a>.<\/p>\n<p>Follow these steps:<\/p>\n<ol start=\"1\">\n<li>Open <strong>Analysis \u2192 Tools<\/strong>.<\/li>\n<li>Search for <strong>Optimal Path As Line<\/strong>.<\/li>\n<li>Select the destination point or destination features.<\/li>\n<li>Set <code>accumulated_cost.tif<\/code> as the input distance accumulation raster.<\/li>\n<li>Set <code>back_direction.tif<\/code> as the input back direction raster.<\/li>\n<li>Specify an output line feature class, such as <code>least_cost_route<\/code>.<\/li>\n<li>Choose the path type appropriate to the destinations.<\/li>\n<li>Run the tool.<\/li>\n<\/ol>\n<p>For a single destination, the path type should be selected according to the intended source-to-destination relationship. For multiple destinations, options such as <em>Each Zone<\/em> and <em>Best Single<\/em> have different meanings, so review the tool documentation before choosing.<\/p>\n<p>The output line includes a <code>PathCost<\/code> field that records the accumulated cost of the route. This is useful for comparing alternative routes generated under the same cost model.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"42_QGIS_Extract_the_Path_Using_GRASS_rdrain\"><\/span>4.2 QGIS: Extract the Path Using GRASS <code>r.drain<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In QGIS, search the Processing Toolbox for <strong>r.drain<\/strong>.<\/p>\n<p>The GRASS <code>r.drain<\/code> tool can trace a path through a cost surface using the movement direction raster produced by <code>r.cost<\/code>. With the cost-surface flag enabled, it follows the supplied direction information. See the <a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.drain.html\" target=\"_blank\" rel=\"noopener\">official GRASS <\/a><code><a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.drain.html\" target=\"_blank\" rel=\"noopener\">r.drain<\/a><\/code><a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.drain.html\" target=\"_blank\" rel=\"noopener\"> documentation<\/a>.<\/p>\n<p>Follow these steps:<\/p>\n<ol start=\"1\">\n<li>Open <strong>Processing Toolbox \u2192 r.drain<\/strong>.<\/li>\n<li>Set the original <code>friction_surface<\/code> raster as the input cost surface.<\/li>\n<li>Set <code>movement_direction<\/code> as the direction raster.<\/li>\n<li>Enable the option or flag for a cost surface (the <code>-d<\/code> flag).<\/li>\n<li>Specify the destination point or its coordinates as the path&#8217;s starting location for tracing.<\/li>\n<li>Set an output path raster, such as <code>least_cost_path_raster<\/code>.<\/li>\n<li>Where available, specify the optional drain vector output, such as <code>least_cost_route<\/code>.<\/li>\n<li>Run the tool.<\/li>\n<\/ol>\n<p>The important directional detail is that <code>r.cost<\/code> calculated movement directions toward the source. Therefore, <code>r.drain<\/code> begins tracing at the destination and follows those directions back toward the source.<\/p>\n<p>A conceptual GRASS command is:<\/p>\n<pre><code># Trace from the destination back to the source.\r\n# movement_direction was generated by r.cost.\r\nr.drain \\\r\n  -d \\\r\n  input=friction_surface \\\r\n  direction=movement_direction \\\r\n  output=least_cost_path_raster \\\r\n  drain=least_cost_route \\\r\n  start_coordinates=510000,9895000<\/code><\/pre>\n<p>Use your real destination coordinates, and ensure they are expressed in the same projected coordinate system as the raster. The <code>drain<\/code> option requests a vector representation of the traced path.<\/p>\n<p>If your processing interface or GRASS version uses slightly different parameter labels, inspect the available <code>r.drain<\/code> options and enable the equivalent cost-surface and direction settings.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"43_Inspect_and_Validate_the_Route\"><\/span>4.3 Inspect and Validate the Route<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>After generating the path, load it into the map canvas and compare it with the friction surface, terrain, streams, settlements, and other constraints.<\/p>\n<p>Check the following:<\/p>\n<ul>\n<li>Does the route begin and end at the correct locations?<\/li>\n<li>Does it pass through any prohibited cells?<\/li>\n<li>Does it appear to avoid high-cost terrain where alternatives exist?<\/li>\n<li>Is the path excessively jagged because of raster resolution?<\/li>\n<li>Are there unexpected gaps or terminations caused by NoData areas or unconnected regions?<\/li>\n<\/ul>\n<p>If the path fails to reach the destination, verify that both endpoints fall within valid cost-surface cells and that there is a continuous traversable route between them.<\/p>\n<p>A least-cost path is a model-derived route, not a surveyed engineering alignment. Infrastructure projects require additional ground validation, engineering design, and regulatory assessment.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"5_Step_4_Comparing_Euclidean_Routing_with_Least-Cost_Routing\"><\/span>5. Step 4: Comparing Euclidean Routing with Least-Cost Routing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>One of the most useful outcomes of least-cost analysis is the ability to compare a straight-line route with a cost-weighted route.<\/p>\n<p><strong>Euclidean routing<\/strong> connects two points using the shortest straight-line distance. It does not account for surface resistance unless additional constraints are explicitly incorporated.<\/p>\n<p><strong>Least-cost routing<\/strong> minimizes the accumulated cost of traversing the friction surface.<\/p>\n<p>Consider this simplified diagram:<\/p>\n<pre><code>EUCLIDEAN ROUTE             LEAST-COST ROUTE\r\n\r\nS ---------------- D       S ---\\       \/--- D\r\n                                 \\     \/\r\n                          HIGH-COST AREA\r\n                              (AVOIDED)\r\n\r\nS = Source\r\nD = Destination<\/code><\/pre>\n<p>The illustration is conceptual. A real least-cost route is determined by the entire raster cost surface, not simply by avoiding a single obstacle.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"51_How_the_Two_Routes_Differ\"><\/span>5.1 How the Two Routes Differ<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1174\" src=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_7ua4817ua4817ua4-1-1024x559.jpg\" alt=\"Least-Cost Path Analysis friction surface raster example showing weighted slope and land cover cost inputs.\" width=\"1024\" height=\"559\" srcset=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_7ua4817ua4817ua4-1-1024x559.jpg 1024w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_7ua4817ua4817ua4-1-300x164.jpg 300w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_7ua4817ua4817ua4-1-768x419.jpg 768w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_7ua4817ua4817ua4-1.jpg 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>A Euclidean route may be geographically shorter but cross steep slopes, water bodies, protected habitats, or densely developed areas.<\/p>\n<p>A least-cost path may follow a longer route that has a lower total impedance.<\/p>\n<p>For example, the straight-line distance between a power station and a substation may be 10 kilometres, while a least-cost route follows 13 kilometres of gentler terrain. If steep slopes are assigned high costs, the longer route can still have a lower accumulated cost.<\/p>\n<p>However, <strong>physical route length and accumulated cost are different quantities<\/strong>.<\/p>\n<p>Do not compare the numerical value of a cost-distance raster directly with a distance in metres unless your cost model has been defined in compatible units. The route length can be measured separately from the resulting vector line, while the cumulative cost describes its relative suitability under the friction model.<\/p>\n<p>For a fair comparison, measure both:<\/p>\n<ul>\n<li>Straight-line distance.<\/li>\n<li>Least-cost route length.<\/li>\n<li>Accumulated cost of the least-cost route.<\/li>\n<\/ul>\n<p>Also consider whether alternative weights, raster resolutions, or barrier definitions substantially change the route.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"6_Real-World_Applications\"><\/span>6. Real-World Applications<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"61_Conservation_Biology_Wildlife_Corridors\"><\/span>6.1 Conservation Biology: Wildlife Corridors<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Ecologists often need to identify potential connections between separated habitat patches.<\/p>\n<p>A wildlife corridor can be modeled using a friction surface in which:<\/p>\n<ul>\n<li>Suitable natural habitat has low resistance.<\/li>\n<li>Fragmented habitat has higher resistance.<\/li>\n<li>Roads and built-up areas have high resistance or are modeled as barriers.<\/li>\n<li>Sensitive habitats can be assigned costs reflecting the study objectives.<\/li>\n<\/ul>\n<p>The least-cost path identifies one low-cost connection between habitat areas.<\/p>\n<p>For corridor planning, however, a single route may not capture the full range of possible animal movement. Consider multi-route analysis, least-cost corridor methods, or circuit-theory approaches when evaluating broader connectivity.<\/p>\n<p>The selected cost values should reflect the focal species&#8217; ecology. A route favorable to one species may not be suitable for another.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"62_Infrastructure_Planning_Roads_and_Pipelines\"><\/span>6.2 Infrastructure Planning: Roads and Pipelines<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For roads, pipelines, and transmission lines, the cost surface may represent construction difficulty, land acquisition, environmental impact, or a combination of these factors.<\/p>\n<p>Potential criteria include:<\/p>\n<ul>\n<li>Terrain slope and ruggedness.<\/li>\n<li>Land-cover type.<\/li>\n<li>Distance from settlements.<\/li>\n<li>Protected areas and wetlands.<\/li>\n<li>Existing transport access.<\/li>\n<li>Geological or flood hazards.<\/li>\n<li>Construction and maintenance costs.<\/li>\n<\/ul>\n<p>Each criterion should be translated into a documented cost scale. Hard constraints must be distinguished from areas that are merely expensive or undesirable.<\/p>\n<p>The resulting path can be used to compare planning alternatives, identify areas requiring detailed environmental review, and estimate the relative trade-offs among competing alignments.<\/p>\n<p>For real-world engineering, the GIS route remains a preliminary alignment. Detailed surveying, hydrological analysis, geotechnical investigations, and legal constraints must also be considered.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"7_Conclusion_and_Key_Takeaways\"><\/span>7. Conclusion and Key Takeaways<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Cost-distance and least-cost path analysis provide a systematic way to identify routes that minimize cumulative landscape resistance rather than simple geographic distance.<\/p>\n<p>In ArcGIS Pro, a common modern workflow is to generate accumulated cost and back-direction rasters with <strong>Distance Accumulation<\/strong>, then create a line using <strong>Optimal Path As Line<\/strong>.<\/p>\n<p>In QGIS, a comparable workflow uses the GRASS <code><strong>r.cost<\/strong><\/code> tool to compute cumulative cost and movement direction, followed by <code><strong>r.drain<\/strong><\/code> to trace the route from the destination back toward the source.<\/p>\n<p>The quality of the final route depends on the friction surface, data resolution, raster alignment, handling of barriers, endpoint placement, and interpretation of the results.<\/p>\n<p>Before using a least-cost route in a university project or infrastructure proposal, document the criteria and weights, compare the result against a straight-line baseline, test alternative scenarios, and validate the route against real-world constraints.<\/p>\n<p><strong>The central lesson:<\/strong> Least-cost path analysis finds the route that is optimal according to your modeled costs. Good spatial data and a well-justified friction surface are what make that route useful.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"References\"><\/span>References<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/doc.esri.com\/en\/arcgis-pro\/latest\/tool-reference\/spatial-analyst\/an-overview-of-the-distance-tools.html\" target=\"_blank\" rel=\"noopener\">Esri: Distance tools overview<\/a> \u2014 Distance Accumulation and related tools.<\/li>\n<li><a href=\"https:\/\/doc.esri.com\/en\/arcgis-pro\/latest\/tool-reference\/spatial-analyst\/optimal-path-as-line.html\" target=\"_blank\" rel=\"noopener\">Esri: Optimal Path As Line<\/a> \u2014 Creating the final route.<\/li>\n<li><a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.cost.html\" target=\"_blank\" rel=\"noopener\">GRASS GIS: <\/a><code><a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.cost.html\" target=\"_blank\" rel=\"noopener\">r.cost<\/a><\/code> \u2014 Cumulative cost and movement directions.<\/li>\n<li><a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.drain.html\" target=\"_blank\" rel=\"noopener\">GRASS GIS: <\/a><code><a href=\"https:\/\/grass.osgeo.org\/grass-stable\/manuals\/r.drain.html\" target=\"_blank\" rel=\"noopener\">r.drain<\/a><\/code> \u2014 Extracting routes through cost surfaces.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Cost-Distance &amp; Least-Cost Path Analysis in ArcGIS Pro &amp; QGIS 1. Introduction: What Is Least-Cost Path Analysis? Imagine a transportation agency planning a new road between two towns. The shortest route on a map might cross steep mountains, wetlands, protected habitats, or densely developed neighborhoods. Although geographically short, that route could be expensive to construct &#8230; <a title=\"Cost-Distance &#038; Least-Cost Path Analysis in ArcGIS Pro &#038; QGIS\" class=\"read-more\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/least-cost-path-analysis\/\" aria-label=\"Read more about Cost-Distance &#038; Least-Cost Path Analysis in ArcGIS Pro &#038; QGIS\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":1174,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,4],"tags":[],"class_list":["post-1164","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\/1164","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=1164"}],"version-history":[{"count":2,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts\/1164\/revisions"}],"predecessor-version":[{"id":1175,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts\/1164\/revisions\/1175"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/media\/1174"}],"wp:attachment":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/media?parent=1164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/categories?post=1164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/tags?post=1164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}