Sunday, October 04, 2009

Calculating Point Locations from One Known Point, Distance and Direction

I put a call for help out on Twitter and on my posterous blog with a geospatial problem a UWI-CERMES student needed some help with. Though I called it a GIS question, I was called out for not saying explicitly that it was an ArcGIS question. After doing some web-digging and fumbling with the software and what I thought might work, I submitted my question to the always helpful New York State GIS Help Desk. I got an answer within a few hours (thanks, you're the best!). This service is available for those lucky enough to be in the great state of New York.

Here is the question and answer responses.

Question:
I have a known location point (latitude and longitude) which is my base station [shown as X, above]. I have points scattered around this known location [red points, above]. If I know the orientation direction (or angle or deflection) to each point from the base station and I know the length (distance) [blue lines, above], can I use ArcGIS to get the latitude and longitude of each point? I would like to automate this, if possible, in model builder as I have hundreds of these points to calculate.

I tried the Distance-Direction tool but it doesn't seem to save my new endpoint to a table that I created. Plus I'd like to many of these, ideally, not one-by-one.
Answer:
Using out of the box functionality, you can create two-point lines by first clicking on the base point and then using the direction/length command to enter the parameters of the end point. You can then convert the nodes to points. Unfortunately, this interactive approach might not be ideal if you have many points to create. An alternative to this is to use a tool available in the ET GeoWizards extension (a third party extension available from ET Spatial Techniques) called Lines from Points, Directions and Distance that automates this process. Before running the tool you will need to create copies of the base point (one for each radial, or point scattered around the base) during an edit session, and then add the values for direction and distance to new fields for each entry in the attribute table (you could do this by manual entry or copy/paste after opening the attribute table in Microsoft Excel). The tool will then create lines radiating from the base point to the entered distance/directions. The lines can then be converted to points using the Polyline to Point tool in this same extension.

For more information on the ET GeoWizards extension, http://www.ian-ko.com

I got some similar feedback from the Twitter community. Thanks, Laura Cerquozzi (geographygeek) for this:


That seemed like reasonable advice. I'd give the ET Geowizards extension a try, see if there was a free trial version to use.

Ready for work with all my new advice from the geospatial community, I came into the office Friday afternoon and popped my head into the office of the folks having the geospatial issues. They had already figured it out using Map Maker Pro. I have never used Map Maker Pro not had I even heard of it prior to coming to the UWI. Map Maker Pro is a GIS software for Windows OS created out of the U.K. They must have hopped on that domain name early! There is also Map Maker Gratis. Looks like I'm learning a lot already!

To make this Map Maker Pro solution work for this problem, one needs to create a comma-delimited table that has the Direction and Distance for each point. Ideally, one also has a description-of-point column. In Map Maker, one has the known point, or base station, that one points to and then runs a calculation on the created table. The output file (in DBF format) gives the latitude and longitude of each point.

This problem goes down in the annals of Why Does It Have to be so Hard? using tools we already have. I scratch my head in wonder.

ADDED Oct 6, 2009: New information on how to calculate this problem using ArcGIS.

No comments: