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.cogo
m.cogo help
m.cogo [-lqr] [input=name] [output=name] [coord=x,y] [--verbose] [--quiet]
Flags:
-l
Lines are labelled
-q
Suppress warnings
-r
Convert from coordinates to bearing and distance
--verbose
Verbose module output
--quiet
Quiet module output
Parameters:
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
DESCRIPTION
m.cogo converts 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 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 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.
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 with v.clean, converted to boundaries with v.type, and closed boundaries
may be converted to areas with v.centroids.
SEE ALSO
v.centroids, v.clean, v.digit, v.in.ascii, v.type
AUTHOR
Eric G. Miller
Last changed: $Date: 2011-11-08 03:29:50 -0800 (Tue, 08 Nov 2011) $
Full index
© 2003-2013 GRASS Development Team
GRASS 6.4.3 m.cogo(1grass)