-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
16 changed files
with
951 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--- | ||
title: "Ridiculously Niche Plots Episode II: Vessel Range from Coastline in ArcGIS" | ||
author: "Tom Brailey" | ||
date: "2020-08-01" | ||
categories: ["ArcGIS"] | ||
tags: ["ArcGIS", "path distance"] | ||
--- | ||
|
||
|
||
Hello and welcome to the second episode of Ridiculously Niche Plots! Today, we are moving away from R into the realm of ArcGIS. Arc is quite a bit different to R, and reproducing outputs can be a little complicated. While there is no code to show per se, I will run through the model which is laid out in a sort of flowchart format. | ||
|
||
#### Context | ||
|
||
This project was part of my work at cPASS, specifically, Andres Gannon's dissertation on military specialization. The genesis of plot occurred as follows. Say a country that has recently joined a military alliance and acquires a new military vessel, what can the range of that vessel tell us? For example, after joining NATO, Albania acquired a military vessel that had a range of 1850 nautical miles (roughly 3426 kilometers), a range that is clearly larger than the maritime boundaries that the ship would need to patrol. Of course, it makes sense for a ship to have a larger range than is needed, but we wanted to understand just how big that range was compared to the country's maritime boundaries, and whether a ship's range gave insight into the military alliance itself. | ||
|
||
To do this, I needed to map which countries a ship with a range of 1850 nautical miles could reach. While this sounded simple to me in principal, I found this to be a far more challenging task. While it is easy to create a circle around Albania that is radius 1850 nautical miles, this is misleading as it assumes a ship can just travel in a straight line, and across land. So the question becomes, what does 1850 nautical miles look like when accounting for the presence of land? | ||
|
||
Below, you will see the flowchart layout of the model used to create a map of Albania, it's maritime boundaries, and the vessel's range. For those familiar with ArcGIS, I apologize in advance for my poor object-naming scheme; this project had gone through many iterations and by the end I had given up on naming conventions. I have named each step in the model for ease of understanding. | ||
|
||
![](/posts/niche_plots_II_files/Export Graphic.jpg) | ||
|
||
1. This plot can be replicated using three shapefiles from the web. Firstly, eez_boundaries_v11.shp is a shapefile containing information on maritime boundaries for all countries. gadm36_0.shp is a shapefile of all countries. I use this to create gadm36_0_Select2_Project_Clip.shp, which I will explain later. These files are the foundations for our visualization. | ||
|
||
2. We start by selecting just the maritime boundary for Albania. | ||
|
||
3. We then project the shapefile into a projected coordinate system that preserves distance (given that out ultimate objective is to calculate the total traversable distance of Albania's military vessels). For that, we use a European equidistant conic projection. | ||
|
||
4. Now, we create a buffer around the central point of Albania's maritime boundary. In essence, we are drawing a circle with a radius of 1850 nautical miles around the maritime boundary. | ||
|
||
5. (+ also 10) Here is where it gets a bit complicated. gadm36_0_Select2_Project_Clip.shp is created by clipping the buffer made in step 4 with the shapefile of all countries, resulting in a shapefile that is all the land that exists within the buffer. ArcGIS can be a little temperamental, and I had to write a separate model to create this output to stop the main model from breaking inexplicably (steps 8, 9, and 10 create the output, but under a different name). Anyway, we take the buffer from step four, and essentially "erase" anything that is common between that and the land within the buffer. This means that we are left with only water regions within the buffer around Albania's maritime boundary. | ||
|
||
6. We now convert the shapefile that contains all the water within the vessel's range into a raster file. When converting to raster, we are able to specify the size of each square that makes up the image -- for our purposes, we covert to kilometers. | ||
|
||
7. On opening the attributes table of the raster file, we see that each cell that makes up the image has a different value. In order to run our model later on, we need each cell to equal 1. Running "reclassify" in our case turns all values that are not equal to 1 to equal 1. The raster file is now ready to be put into the path distance model | ||
|
||
8. We now take the shapefile of all countries and remove Antarctica. This has just become a weird habit of mine... | ||
|
||
9. It is essential that all of our input files are in the same projection, otherwise our results will be completely off. Here I convert the shapefile to the European equidistant conic projection mentioned in step 3. | ||
|
||
10. Here, I subset the shapefile of all countries to just those that fall within the buffer created in step 4. Because of ArcGIS's quirks, I had to rename this file and manually read it in for it to be used for step 5. | ||
|
||
11. Now I subset the global shapefile to just include Albania. This is for both visual purposes (I want to be able to highlight where Albania is in reference to the rest of Europe) and also in order to run the main model. | ||
|
||
12. It is time to run the path distance model. The model requires two inputs, the starting point (the Albania shapefile, from step 11) and the cost raster (the output from step 7). The path distance model calculates distances from Albania while also accounting for the presence of obstacles, however, in doing so, it calculates distances that are beyond 1850 nautical miles (e.g. travelling from Albania to Norway via Portugal is within the buffer, but is more than 1850 nautical miles). As such, the final step is to filter values that are beyond the actual range of the ship. Doing so leaves us with the traversable distance of the ship, as denoted by the blue shaded area in the image below. | ||
|
||
In Arc, there are a lot of manual, and thus not really reproducible, edits you must make in order for the map to be considered publication-worthy. For example, I spent time coloring in the different shapefiles for maximum effect and clarity, adding a title, legend, and map information, and rescaling the plot to make it as clear as possible. The final product is below: | ||
|
||
![](/posts/niche_plots_II_files/albania_vessel_range.png) | ||
|
||
Quite niche indeed! This project was deceptively complicated, and more time was spent conceptualizing the problem than actually running the model. Nonetheless, it was a super interesting and enjoyable process, and I think the final product is pretty cool! | ||
|
||
That concludes the second episode of Niche Plots. Who knows what kind of weird things I will be plotting in the future... |
Oops, something went wrong.