Here is a rather simple task at a first glance, but it does not have a single direct tool that I could find.
I have observation 300 points with recorded directions and distances. I need to move those points in specified directions at specified distances. Both distances and directions are recorded as attributes in the table. Locations of the points were recorded in the field by the GPS device and represent observers’ locations. Since the data was collected in the field, by default it was done in WGS84.
At first I assumed that there might be an immediate tool to spread points in different directions using distance and direction attributes. It seems like such an obvious tool should exist. One of the presented online solutions was to re-calculate coordinates using known parameters. For that, authors recommended to export attribute table, calculate X and Y in a new column, and then bring new coordinates back by importing new XY values as a new set of points.
This would be a rather delicate method which requires knowing enough about coordinates and how to properly re-calculate them. Not ready to jump off this cliff, I started looking elsewhere.
XTools Pro and ET GeoWizards
These are two third-party add-ons that over the years became must to have for me. Both are not free but at a relatively low cost. Particularly useful when you only have a basic ArcGIS license. Prices did go up over the years, but still affordable especially if you only have a Basic ArcGIS license.
XTools Pro costs $299 per single user license, or $125 per single subscription. Both types have annual renewal, so which product type is better suited would depend on the overall licensing situation within the Organization.
ET GeoWizards costs $265 for 1-2 licenses with available annual upgrade/maintenance policy.
Unfortunately, I have been unable to get these tools working in ArcPro. But they make a great addition to ArcMap. So, for the workflow I am about to describe, I am using ArcMap 10.8.1, both add-ons fully enabled, and ArcPro 2.8.1 to finish up my analysis.
Both add-ons have very similar tools, and each has some unique ones. For those tools that are similar, produced results nevertheless might vary. It really depends on the task and the condition of the original data. Some tasks are better executed in the ETGW, some are way easier in XTools. I like using both interchangeably.
Available tool for moving a single feature
There is an option to move a single feature using direction and distance. The process is described here – Move a feature to a specified location—ArcGIS Pro | Documentation. Basically, in ArcPro in the Edit tab, select Modify. In the modify panel, select “Move to”. The tool would look like this:
This would work for a small number of features or one feature, but definitely not something I would like to do for a large number of features.
Working with multiple features – workflow
The final results will produce a second set of points in the needed locations. The original dataset will remain unchanged. Overall, anybody should prefer it this way. In case something goes wrong you still have the original data. The process is very simple:
- Create lines using distance and direction attributes with starting points in original locations
- Create end points for the lines
Step 1 – bring the data into correct format
As I mentioned, my features were created in WGS84. Without going into details about why, but simply observing the tools that I used, following data manipulations have to be done:
- Project the data into a local projection that has feet or meters as base units.
- Here I am projecting into StatePlane NAD83 (feet) format.
- Adjust distance units to match the coordinate system.
- If original distances were created in yards, or miles, or some other unit, add a new column to calculate them in a new format that would match map units. Here I will convert them into feet.
- Make sure directions are in one of the GIS recognized formats. String descriptions like, “north”, “south”, “north-east” etc. will not work.
Read up on types of directions here – Direction units for editing—ArcGIS Pro | Documentation.
In this exercise I am using Degree type, applying it to 4 primary and 4 secondary directions at 45 degree spacing.
Step 2 – ET GeoWizards Tool – Lines from Points Direction and Distance tool
This tool is located under Miscellaneous. Note types of directions supported here.
As you start running the tool, select point feature layer you are working with. Once you add the layer, additional entries will be prompted. This is exactly what we need – the ability to use already recorded attributes in the attribute table – Direction field and Distance field:
Next screen will ask to specify direction angle type and units. I do like things simple, so I go with the classic North Azimuth and Decimal degree (Degree) unit. Click Finish to run the tool.
Produced lines are a very nice way to QC the data. If your lines are way too long, perhaps the recorder made a mistake in units or in the estimates. Here is a small sample of what comes out:
Step 3 – Convert polylines to points (XTools Pro)
ET GeoWizards does have Polyline to Point tool that could be used. However, I would like to create only end points and this particular tool is not very straight forward compared to XTools. After several tries I still get both ends of the lines. Here is what the ET tool looks like.
So, I will be using XTools Pro to only create end points. The tool is called “Features to Points” and is located under “Feature Conversions”. I do prefer XTools to ETGW for the intuitive and very user friendly interface. In our case, XTools developers very conveniently provided us with different options:
There is no guessing game here what to choose – vertices or nodes. What you see is what you get. I get only end points as a matching set to my observation points:
I will move forward with the data analysis and keep all three files as part of the set. Lines could be a nice visual effect for final maps since they allow to connect start and end points. It is important to note, that all of the attributes from the original feature layer were preserved in both the lines and the end-points sets.
I did have original points stored in the File Geodatabase with Global IDs applied. This is the only field that had values changed as the database recognized that original data had Global IDs and automatically created them for new features.
So, if you are looking to join these sets together, my recommendation will be to create another unique ID field ahead of time strictly to your specifications. This field will be transferred from the original set to all subsequently created ones without any modifications.
XTools Polylines from Points Tool
On the final note, just to be fair, I did look thru all available tools in XTools. Unless I missed it, all I could find is Polylines from Points tool that performs different task. The interface looks like this to give you the idea of how different it is from ETGW. This tool is really great when you have something like road station points to connect, or perhaps a well survey points to turn into well lines.