You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: ruminations/009-rumination.md
+24-8
Original file line number
Diff line number
Diff line change
@@ -18,30 +18,38 @@ The title, however, refers to 600 seconds *of arc*, which corresponds to *10 min
18
18
19
19
So to fit the 600 seconds of time to the 600 seconds of arc, you will have to navigate through this text at a speed of 60 knots. So better get going - see you at the finish line!
20
20
21
+
### Prerequisites
22
+
23
+
The intention with the following text is to give a quick introduction to the nuts and bolts of the software package **Geodesy**. Not to teach you the nuts and bolts of the *science* of geodesy.
24
+
25
+
Hence, as a prerequisite, you are supposed to understand enough about geographic coordinates to grasp the "About the title..." section above. Also, you need to feel comfortable with the concepts *ellipsoids* and *UTM coordinates*.
26
+
21
27
## Overview
22
28
23
-
At its most basic level, RG provides a number of elementary geodetic computational **operators**.
29
+
At its most basic level, RG provides a number of elementary geodetic **operators**.
24
30
25
-
**Operators**read a stream of *input coordinates*, modify them by applying some specific algorithm, and write an identically sized stream of *output coordinates*.
31
+
An **operator**reads a stream of *input coordinates*, modifies them by applying its associated algorithm, and writes an identically sized stream of *output coordinates*.
26
32
27
33
Most operators exist in *forward* and *inverse* incarnations. For example:
28
34
29
-
- the **forward utm-operator** takes *geographical coordinates* as its input, and provides *utm coordinates* as its output, while
30
-
- the **inverse utm-operator** does the opposite: takes *utm coordinates* as input, and provides the corresponding *geographical coordinates* as output.
35
+
- the **forward UTM-operator** takes *geographical coordinates* as its input, and provides *UTM coordinates* as its output, while
36
+
- the **inverse UTM-operator** does the opposite: takes *UTM coordinates* as input, and provides the corresponding *geographical coordinates* as output.
31
37
32
38
The *elementary operators* can be combined into more *complex operations* using the RG **pipeline mechanism**, where the *output* of one operator provides the *input* of another.
33
39
34
40
Pipelines can be generalized in the form of **macros**, with or without *parameters*. The macros can be collected in **registers**, organizing and documenting collections of (preferably) related macros.
35
41
36
42
### Operators
37
43
38
-
Most operators take **parameters,** which may be *mandatory* or *optional*. For example, the `utm` operator takes a mandatory parameter, `zone`, indicating which utm-zone it should operate in, e.g.
44
+
Most operators take **parameters,** which may be *mandatory* or *optional*. For example, the `utm` operator takes a mandatory parameter, `zone`, indicating which UTM zone it should operate in, e.g.
39
45
40
46
```geodesy
41
47
utm zone=32
42
48
```
43
49
44
-
Since utm coordinates are ellipsoidal, the `utm`-operator also needs to be told *which* ellipsoid to refer to. But that parameter is optional, and defaults to GRS80. So this more elaborate version:
50
+
Note that operators and parameters are conventionally given lower case names, so the operator implementing UTM projections, is called `utm`, rather than `UTM`.
51
+
52
+
Since UTM coordinates are ellipsoidal, the `utm`-operator also needs to be told *which* ellipsoid to refer to. But that parameter is optional, and defaults to GRS80. So this more elaborate version:
45
53
46
54
```geodesy
47
55
utm zone=32 ellps=GRS80
@@ -119,7 +127,9 @@ inv cart | utm zone=$foo(32)
119
127
120
128
which will bring you zone 32 coordinates, unless the macro parameter `foo` is defined, in which case its value will be used for the zone parameter.
121
129
122
-
For completeness' sake, let us look at a case where we want to convert geographical coordinates defined on one ellipsoid, to geographical coordinates defined on another (typically these kinds of work will also involve a datum shift step, which we for simplicity leave out here). In this case, we have two steps, each taking en `ellps` parameter, but where we need different *values* for the twor parameters:
130
+
For completeness' sake, let's consider a case where we want to convert geographical coordinates defined on one ellipsoid, to geographical coordinates defined on another.
131
+
132
+
Typically these kinds of work will also involve a datum shift step, which, for simplicity, we leave out here. In this case, we have two steps, each taking en `ellps` parameter, but where we need different *values* for the two parameters:
@@ -129,7 +139,7 @@ Which can be invoked as `cart:utm ellps_in=intl ellps_out=GRS80`, to convert fro
129
139
130
140
### Registers
131
141
132
-
Registers are collections of (preferably) related macros - e.g. macros implementing pipelines for transformation from a given coordinate system, to a number of other coordinate systems, or e.g. transformations originating from a given publisher of geodetic parameters (of which the [EPSG](https://epsg.org) is probably the most well known).
142
+
Registers are collections of (preferably) related macros - e.g. macros implementing pipelines for transformation from a given coordinate system, to a number of other coordinate systems, or transformations originating from a given publisher of geodetic parameters (of which the [EPSG](https://epsg.org) is probably the most well known).
133
143
134
144
For improved readability of long pipelines, using the
135
145
'step-separators-at-column-1' formatting, we introduce
0 commit comments