Summary
In a situation where a set of points surround a main point, the intercardinal direction of the main point may need to be identified for analysis, such as determining the quadrant in which a point or a group of points lies with respect to a central point.
This article describes the workflow to calculate the intercardinal direction from one point to a set of points in ArcGIS Pro.
Procedure
Note:
This workflow involves the use of the Generate Near Table tool which requires an Advanced license.
- Open the point layers in ArcGIS Pro.
- Calculate the proximity information of the point layers using the Generate Near Table tool.
- On the Analysis tab, click Tools to open the Geoprocessing pane.
- In the Geoprocessing pane, search for and click the Generate Near Table tool.
- In the Generate Near Table pane, on the Parameters tab, use the Input Features drop-down list to select the point feature. In this example, 'Point1' is selected.
- Under Near Features, select the points that surround the input point feature. In this example, 'Point2' is selected.
- Specify a name for Output Table. In this example, it is named, 'Point2_GenerateNearTable'.
- Set the desired Search Radius. In this example, 50 kilometers is specified.
- Check the Location and Angle check boxes.
- Uncheck the Find only closest feature check box.
- Under Method, select Planar.
- Click Run. An output table is generated.

- Right-click the table in the Contents pane, and click Open.
- Add a new text field to the table. Refer to ArcGIS Pro: Add Field (Data Management) for more information. In this example, the text field is named, 'Direction'.
- Use the Calculate Field tool to create a Python function to convert the angle values to text direction.
- For Input Table, select the table created in Step 2.
- Under Field Name, select the new text field. In this example, 'Direction'.
- For Expression Type, select Arcade.
- Enter the following script in the Code Block.
if ($feature.NEAR_ANGLE >= 0 && $feature.NEAR_ANGLE < 90){
return "NE"}
else if ($feature.NEAR_ANGLE >= 90){
return "NW"}
else if ($feature.NEAR_ANGLE >= -90){
return "SE"}
else if ($feature.NEAR_ANGLE <= -90){
return "SW"}
else{
return "invalid"}
- Click OK.
The intercardinal direction from one point to a set of points is generated as shown in the image below.