Provided by: grass-doc_6.4.3-3_all

**NAME**

m.cogo- A simple utility for converting bearing and distance measurements to coordinates and vice versa. It assumes a cartesian coordinate system

**KEYWORDS**

miscellaneous, distance

**SYNOPSIS**

m.cogom.cogohelpm.cogo[-lqr] [input=name] [output=name] [coord=x,y] [--verbose] [--quiet]Flags:-lLines are labelled-qSuppress warnings-rConvert from coordinates to bearing and distance--verboseVerbose module output--quietQuiet module outputParameters:input=nameName of input file Default:-output=nameName for output file Default:-coord=x,yStarting coordinate pair Default:0.0,0.0

**DESCRIPTION**

m.cogoconverts data points between bearing and distance and X,Y coordinates. Only simple bearing/distance or coordinate pairs are handled. It assumes a cartesian coordinate system. Input can be entered via standard input (default) or from the fileinput=name. Specifying the input as "-" also specifies standard input, and is useful for using the program in a pipeline. Output will be to standard output unless a file name other than "-" is specified. The input file must closely adhere to the following format, where up to a 10 character label is allowed but not required (see-lflag).ExampleCOGOinput:P23 N 23:14:12 W 340 P24 S 04:18:56 E 230 ... The first column may contain a label and you must use the-lflag so the program knows. This is followed by a space, and then either the character 'N' or 'S' to indicate whether the bearing is relative to the north or south directions. After another space, the angle begins in degrees, minutes, and seconds in "DDD:MM:SS.SSSS" format. Generally, the angle can be of the formdigits+separator+digits+separator+digits[+'.'+digits]. A space follows the angle, and is then followed by either the 'E' or 'W' characters. A space separates the bearing from the distance (which should be in appropriate linear units).Outputoftheaboveinput:-134.140211 312.420236 P23 -116.832837 83.072345 P24 ... Unless specified with thecoordoption, calculations begin from (0,0). For those unfamiliar with the notation for bearings: Picture yourself in the center of a circle. The first hemispere notation tell you whether you should face north or south. Then you read the angle and either turn that many degrees to the east or west, depending on the second hemisphere notation. Finally, you move units in that direction to get to the next station.m.cogocan be run either non-interactively or interactively. The program will be run non-interactively if the user specifies any parameter or flag. Use "m.cogo -", to run the program in a pipeline. Without any flags or parameters,m.cogowill prompt for each value using the familiar GRASS parser interface.

**NOTES**

This program is very simplistic, and will not handle deviations from the input format explained above. Currently, the program doesn't do anything particularly useful with the output. However, it is envisioned that this program will be extended to provide the capability to generate vector and/or sites layers.

**EXAMPLE**

m.cogo -l in=cogo.dat Where the cogo.dat input file looks like: # Sample COGO input file -- This defines an area. # <label> <bearing> <distance> P001 S 88:44:56 W 6.7195 P002 N 33:34:15 W 2.25 P003 N 23:23:50 W 31.4024 P004 N 05:04:45 W 25.6981 P005 N 18:07:25 E 22.2439 P006 N 27:49:50 E 75.7317 P007 N 22:56:50 E 87.4482 P008 N 37:45:15 E 37.7835 P009 N 46:04:30 E 11.5854 P010 N 90:00:00 E 8.8201 P011 N 90:00:00 E 164.1128 P012 S 48:41:12 E 10.1311 P013 S 00:25:50 W 255.7652 P014 N 88:03:13 W 98.8567 P015 S 88:44:56 W 146.2713 P016 S 88:44:56 W 18.7164 Round trip: m.cogo -l in=cogo.dat | m.cogo -rl in="-" Import as a vector points map: m.cogo -l in=cogo.dat | v.in.ascii out=cogo_points x=1 y=2 fs=space Shell script to import as a vector line map: m.cogo -l in=cogo.dat | tac | awk ' BEGIN { FS=" " ; R=0 } $1~/\d*\.\d*/ { printf(" %.8f %.8f\n", $1, $2) ; ++R } END { printf("L %d\n", R) }' | tac | \ v.in.ascii -n format=standard out=cogo_line Unclosed lines may be snapped withv.clean, converted to boundaries withv.type, and closed boundaries may be converted to areas withv.centroids.

**SEE** **ALSO**

v.centroids,v.clean,v.digit,v.in.ascii,v.type

**AUTHOR**

Eric G. MillerLastchanged:$Date:2011-11-0803:29:50-0800(Tue,08Nov2011)$Full index © 2003-2013 GRASS Development Team