Automating point creation from bearings/distances

10-14-2019 07:06 PM
New Contributor

I am trying to generate points for subplot plot centers based on an already existing point feature class. For each existing point, I need to create 3 points directly north and south at different distances. I found an online forum walking me through the process of manually creating points using the editor toolbar, but I am reluctant to use this method if I don't have to, so I figured I'd ask here first. Has anyone encountered batch processing point creation from this type of information? From each existing point, the bearings/distances will be the same so I imagine it would be a good thing to do using python, but I am just now learning the coding side of ArcMap and have no idea where to start with this. 

0 Kudos
4 Replies
MVP Frequent Contributor

dx = sin(ang) * distance

dy = cos(ang) * distance

angle measured from 0 due north and clockwise

See help on reading and writing geometries.

0 Kudos
Frequent Contributor III

Are all three distances the same for each direction and each point

Meaning North 100 meters, north 150 meters, and north 200 meters etc.

Just copy and paste the point  features then use the move tool to move the needed distance. 

0 Kudos
MVP Legendary Contributor

If you already have the table with the X, Y , distance and bearing ….

and anticipating a potential question (how to connect them )

Bearing Distance To Line—Data Management toolbox | ArcGIS Desktop 

allows you to produce a line connecting the "from" and new "to" points.

If you don't want the line, then convert the lines to points and you will be done

Feature Vertices To Points—Data Management toolbox | ArcGIS Desktop 

0 Kudos
Frequent Contributor III

Building on Neil's answer it really comes down to simple math.

I have done something similar on several thousand features.

If the distances are consistent you can easily use my first suggestion.

If they are not and you know the distances.

Create an X,Y (double) and calculate geometry on them (Decimal Degrees)

I then export the table to Excel. It can be done in the database but I do it in excel.

You will need three  new XY values for North and three for south

Determine what the distance is in Decimal Degrees

Assuming you have the distances in another row calculate what that distance is in Decimal Degrees

in the cell for the first Y north   =Y1 + distance. X will stay the same.

You can then drag the calculation down all the way.  I have done something similar when I had to generate spans between transmission towers and needed to calculate several thousand.

You can then use they XY to point tool

0 Kudos