I'm on ArcMap


Layer 1: I have an outline (polygon) of an irregularly shaped island approximately 10km square in size. Layer 2: I have a layer with various points snapped to the island polygon representing locations I want to calculate distance to, let's call them coastal towns. Layer 3: I have the points layer (Layer 2) converted to raster. The extent of this layer has been changed to be the extent of a different layer approximately 200km square, which is all considered open sea. When I change NoData to be shown as a colour, this extent is displayed correctly. But when I zoom to layer, it zooms to where the coastal towns are instead of the extent of the whole layer.

The problem: I want to calculate the distance to the nearest coastal town from all grid cells in the 'sea'. I've tried to do this using the Euclidean Distance tool, which is probably the wrong one. What I get as output is a distance raster showing distances within the square expressed by the coastal towns furthest to the north, east, south and west, including areas on both 'sea' and 'land'. The maximum distance value returned is 2.56, which isn't correct and I want the values in kilometres.

How do I generate a distance raster using only routes available by sea (not crossing land, so I can't go with this and mask the result!), with results in kilometres and for the full 200km extent around the island instead of just the extent of the coastal town points?

  • Have a look at the cost distance analysis tools and the path distance analysis tools in the spatial analysis toolbox. – GBG Jun 6 '17 at 16:04

Here's how I ended up doing it. I rasterized the polygons to the same cell size as my desired output raster (in this case 125 metres), which gave me a raster with a filled landmass. I reclassified the output land cells with a value of 999999 and retained NoData. For the sea extent, I exported a seabed DEM to a new dataset (so as to avoid overwriting the values in the DEM) and reclassified all cells with a value of 1. I used raster calculator to add both rasters together using MAXIMUM, giving me a resulting raster where all sea had a value of 1 and all land had a value of 999999. I then used path distance on this raster with the desired destinations being my coastal towns point data. The output was reclassified so the excessively high values representing land were all set to NoData. This step was performed so that the sea distance values would display sensibly using a gradient colour scheme. The next step for me was to classify this result further into the distance bands I required, but this would be optional, depending on your outcome.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.