Note: A new GRASS GIS stable version has been released: GRASS GIS 7, available here. And see the new manual page here

It assumes a cartesian coordinate system

**-l**- Lines are labelled
**-q**- Suppress warnings
**-r**- Convert from coordinates to bearing and distance
**-c**- Repeat the starting coordinate at the end to close a loop
**--verbose**- Verbose module output
**--quiet**- Quiet module output

**input**=*name*- Name of input file
- Default:
*-* **output**=*name*- Name for output file
- Default:
*-* **coord**=*x,y*- Starting coordinate pair
- Default:
*0.0,0.0*

Input can be entered via standard input (default) or from the file
**input=***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 **-l** flag).

**Example COGO input:**

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 **-l**
flag 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 form
*digits + 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).

**Output of the above input:**

-134.140211 312.420236 P23 -116.832837 83.072345 P24 ...

Unless specified with the **coord** option, 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 <distance> units in that direction to get to the
next station.
*m.cogo* can 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.cogo* will prompt for each value
using the familiar GRASS parser interface.

m.cogo -l in=cogo.dat

# 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

m.cogo -l in=cogo.dat | m.cogo -rl in="-"

m.cogo -l in=cogo.dat | v.in.ascii out=cogo_points x=1 y=2 fs=space

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

*Last changed: $Date: 2011-11-08 03:29:50 -0800 (Tue, 08 Nov 2011) $*

Main index - misc index - Full index

© 2003-2016 GRASS Development Team