Skip to content

Commit dc11e5d

Browse files
committed
Some editing
1 parent 09751a5 commit dc11e5d

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

ruminations/009-rumination.md

+24-8
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,38 @@ The title, however, refers to 600 seconds *of arc*, which corresponds to *10 min
1818

1919
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!
2020

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+
2127
## Overview
2228

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**.
2430

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*.
2632

2733
Most operators exist in *forward* and *inverse* incarnations. For example:
2834

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.
3137

3238
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.
3339

3440
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.
3541

3642
### Operators
3743

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.
3945

4046
```geodesy
4147
utm zone=32
4248
```
4349

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:
4553

4654
```geodesy
4755
utm zone=32 ellps=GRS80
@@ -119,7 +127,9 @@ inv cart | utm zone=$foo(32)
119127

120128
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.
121129

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:
123133

124134
```geodesy
125135
cart ellps=$ellps_in(GRS80) | inv cart ellps=$ellps_out(GRS80)
@@ -129,7 +139,7 @@ Which can be invoked as `cart:utm ellps_in=intl ellps_out=GRS80`, to convert fro
129139

130140
### Registers
131141

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).
133143

134144
For improved readability of long pipelines, using the
135145
'step-separators-at-column-1' formatting, we introduce
@@ -188,4 +198,10 @@ echo 55 12 | kp "utm zone=32"
188198
-7198047.1103082076 -11321644.2251116671
189199
```
190200

201+
## Using Geodesy in your own code
202+
191203
## Further reading
204+
205+
- For [this](...)
206+
- For [that](...)
207+
- For [the other](...)

0 commit comments

Comments
 (0)