Skip to content

Commit 0ae26f9

Browse files
authored
Merge pull request #30 from MrClock8163/feature/converter-commands
Add format converter commands
2 parents c2ebb1b + 98c3480 commit 0ae26f9

File tree

17 files changed

+1029
-190
lines changed

17 files changed

+1029
-190
lines changed

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,18 @@ The project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
99

1010
### Added
1111

12+
- Added aliases to multiple commands and command groups
1213
- Added resection calculation logic
1314
- Added station calculation (`calc station`) using resection from set
1415
measurements
1516
- Added station uploading (`upload station`) to set station coordinates and
1617
orientation
18+
- Added CSV to targets JSON conversion (`convert csv-targets`)
19+
- Added targets JSON to CSV conversion (`convert targets-csv`)
20+
- Added GSI to targets JSON conversion (`convert gsi-targets`)
21+
- Added targets JSON to GSI conversion (`convert targets-gsi`)
1722
- Added logging options to `iman` root command
1823
- Added logging to instrument connected commands
19-
- Added aliases to multiple commands and command groups
2024
- Added `dateformat` option to set measurement
2125
- Added `timeformat` option to set measurement
2226

@@ -46,6 +50,7 @@ The project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4650

4751
### Removed
4852

53+
- Removed importer command group and subcommands (`import`)
4954
- Removed logging options from set measurement
5055
- Removed `format` option from set measurement
5156

docs/commands/sets/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ measurements to predefined target points.
1313
validate
1414
merge
1515
calc
16+
to_gsi

docs/commands/sets/to_gsi.rst

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Convert to GSI
2+
==============
3+
4+
To help in further processing of the set measurements, the data can be
5+
converted into the Leica GSI8 or GSI16 exchange formats.
6+
7+
Requirements
8+
------------
9+
10+
- Session result files from previous set measurements
11+
12+
Examples
13+
--------
14+
15+
.. code-block:: shell
16+
:caption: Converting with default units
17+
18+
iman convert set-gsi set_measurement.json measurements.gsi
19+
20+
.. code-block:: shell
21+
:caption: Converting to specific units
22+
23+
iman convert set-gsi --length-unit cmm --angle-unit gon set_measurement.json measurements.gsi
24+
25+
Usage
26+
-----
27+
28+
.. click:: instrumentman.setmeasurement:cli_convert_set_to_gsi
29+
:prog: iman convert set-gsi
30+
31+

docs/commands/targets/from_csv.rst

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
Convert from CSV
2+
================
3+
4+
A target point definition can be created by importing the point coordinates
5+
from a variable column CSV file. Coordinate and point name columns are
6+
mandatory.
7+
8+
Requirements
9+
------------
10+
11+
- Target point coordinates in CSV format
12+
13+
Examples
14+
--------
15+
16+
.. code-block:: shell
17+
:caption: Importing coordinates
18+
19+
iman convert csv-targets -c pt -c e -c n -c h targets.csv targets.json
20+
21+
.. code-block:: shell
22+
:caption: Importing targets with matching prisms and target heights
23+
24+
iman convert csv-targets -c pt -c e -c n -c h --reflector MINI --height 0.12 targets.csv targets.json
25+
26+
.. code-block:: shell
27+
:caption: Importing coordinates but ignoring second (possibly code) column in CSV
28+
29+
iman convert csv-targets -c pt -c ignore -c e -c n -c h targets.csv targets.json
30+
31+
Usage
32+
-----
33+
34+
.. click:: instrumentman.setup:cli_convert_csv_to_targets
35+
:prog: iman convert csv-targets

docs/commands/targets/from_gsi.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Convert from GSI
2+
================
3+
4+
A common output of Leica total stations is the Leica GSI format. Cartesian
5+
coordinate and polar measurements can be converted to a target definition.
6+
7+
Requirements
8+
------------
9+
10+
- Target point measurements in GSI8 or GSI16 format
11+
12+
Examples
13+
--------
14+
15+
.. code-block:: shell
16+
:caption: Importing coordinates
17+
18+
iman convert gsi-targets measurements.gsi targets.json
19+
20+
.. code-block:: shell
21+
:caption: Importing targets from polar measurements
22+
23+
iman convert gsi-targets --station 1.212 -5.439 0.934 --iheight 0.000 measurements.gsi targets.json
24+
25+
.. code-block:: shell
26+
:caption: Importing targets with identical reflectors and target heights
27+
28+
iman convert gsi-targets --reflector MINI --height 0.0 measurements.gsi targets.json
29+
30+
Usage
31+
-----
32+
33+
.. click:: instrumentman.setup:cli_convert_gsi_to_targets
34+
:prog: iman convert gsi-targets

docs/commands/targets/import.rst

Lines changed: 0 additions & 32 deletions
This file was deleted.

docs/commands/targets/index.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,7 @@ to create such a definition.
1818
:maxdepth: 1
1919

2020
measure
21-
import
21+
from_csv
22+
to_csv
23+
from_gsi
24+
to_gsi

docs/commands/targets/to_csv.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Convert to CSV
2+
==============
3+
4+
If necessary, the target definition can be converted into an ordinary CSV
5+
coordinate list file for easier use in other applications.
6+
7+
Requirements
8+
------------
9+
10+
- Target definition JSON file
11+
12+
Examples
13+
--------
14+
15+
.. code-block:: shell
16+
:caption: Exporting coordinates
17+
18+
iman convert targets-csv -c pt -c e -c n -c h targets.json targets.csv
19+
20+
Usage
21+
-----
22+
23+
.. click:: instrumentman.setup:cli_convert_targets_to_csv
24+
:prog: iman convert targets-csv

docs/commands/targets/to_gsi.rst

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
Convert to GSI
2+
==============
3+
4+
Sometimes it is necessary to use the target coordinates for further
5+
measurements. To simplify the process, the targets definition file can be
6+
converted into a Leica GSI8 or GSI16 file, which is a common exchange format
7+
for Leica instruments.
8+
9+
Requirements
10+
------------
11+
12+
- Target definition JSON file
13+
14+
Examples
15+
--------
16+
17+
.. code-block:: shell
18+
:caption: Exporting coordinates
19+
20+
iman convert targets-gsi targets.json targets.gsi
21+
22+
.. code-block:: shell
23+
:caption: Exporting coordinates to GSI16 with 0.00001m precision
24+
25+
iman convert targets-gsi --gsi16 --precision cmm targets.json targets.gsi
26+
27+
Usage
28+
-----
29+
30+
.. click:: instrumentman.setup:cli_convert_targets_to_gsi
31+
:prog: iman convert targets-gsi
32+

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ readme = "README.md"
1313
requires-python = ">=3.11"
1414
dependencies = [
1515
"pyserial ~= 3.5.0",
16-
"geocompy >= 0.11.0",
16+
"geocompy >= 0.12.0",
1717
"rich >= 13.9",
1818
"textual >= 3.2.0",
1919
"rapidfuzz ~= 3.13.0",

0 commit comments

Comments
 (0)