Skip to content

Commit 0640358

Browse files
committed
1.5
S-Z-B -> Y-X-H transform
1 parent 446d181 commit 0640358

File tree

9 files changed

+331
-11
lines changed

9 files changed

+331
-11
lines changed

Makefile

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
PROGNAME = geofindkey
1+
PROGNAME1 = geofindkey
2+
PROGNAME2 = geoszbtoyxh
3+
PROGS = $(PROGNAME1) $(PROGNAME2)
24
CPP = gcc
35
CFLAGS = -Wall -s
46
LIBS = -lm
57
VER = 1
6-
REL = 4
8+
REL = 5
79
PREFIX = /usr/local
810
INCPREFIX = $(PREFIX)/include
911
LIBPREFIX = $(PREFIX)/lib
@@ -13,15 +15,18 @@ LN = ln -fs
1315

1416
.PHONY: all clean install
1517

16-
all: $(PROGNAME)
18+
all: $(PROGS)
1719

1820
clean:
19-
rm -f $(PROGNAME)
21+
rm -f $(PROGS)
2022

21-
$(PROGNAME): $(PROGNAME).c
23+
$(PROGNAME1): $(PROGNAME1).c
2224
$(CPP) $(CFLAGS) $(LIBS) $^ -o $@
2325

26+
$(PROGNAME2): $(PROGNAME2).c
27+
$(CPP) $(CFLAGS) $(LIBS) $^ -o $@
2428

2529
install: $(PROGNAME)
2630
$(INSTALL) -d $(PREFIX)/bin
27-
$(INSTALL) -m 0755 $(PROGNAME) $(PREFIX)/bin/
31+
$(INSTALL) -m 0755 $(PROGNAME1) $(PREFIX)/bin/
32+
$(INSTALL) -m 0755 $(PROGNAME2) $(PREFIX)/bin/

README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ The procedure for compiling is:
1515

1616
## SAMPLE
1717

18+
GeoFindKey:
19+
1820
Input Data doc/data.dat:
1921

2022
1 1334.71 285.94 66.29 83477.64 47377.60 216.28 1.0
@@ -116,4 +118,44 @@ Result report.dat:
116118
diff:
117119
0.5123 0.7021 0.0117 0.0002495968 0.8690
118120

121+
S-Z-B to Y-X-H conert:
122+
123+
Input Data doc/szb.dat:
124+
125+
OKD-4 8.605 74.08666667 234.38916667 1 7471.2970 14588.7117 98.7445
126+
OKD-5 8.869 81.18888889 254.73888889 1 7474.2548 14589.4514 97.7433
127+
OKD-K3-1 3.670 82.43944444 339.05361111 1 7477.0949 14580.7517 96.8713
128+
OKD-K3-4 3.690 70.66833333 161.16 1 7469.9723 14580.8231 97.6075
129+
OKD-K5P 3.938 71.95527778 137.52222222 1 7469.9811 14579.3211 97.6057
130+
OKD-K7L 4.685 83.96444444 17.82444444 1 7477.1099 14577.8330 96.8789
131+
OKD-K7L 4.684 276.03361111 197.82722222 2 7477.1099 14577.8330 96.8789
132+
OKD-K5P 3.939 288.04361111 317.52472222 2 7469.9811 14579.3211 97.6057
133+
OKD-K3-4 3.691 289.32972222 341.16111111 2 7469.9723 14580.8231 97.6075
134+
OKD-K3-1 3.671 277.55583333 159.05805556 2 7477.0949 14580.7517 96.8713
135+
OKD-5 8.869 278.80944444 74.74055556 2 7474.2548 14589.4514 97.7433
136+
OKD-4 8.604 285.91444444 54.38972222 2 7471.2970 14588.7117 98.7445
137+
OKD-11 3.889 71.6025 313.60777778 1
138+
OKD-12 3.889 288.39138889 133.60805556 1
139+
140+
Exec convert:
141+
142+
./geoszbtoyxh doc/szb.dat yxh.dat
143+
144+
Result yxh.dat:
145+
146+
OKD-4 -6.7277 -4.8185 2.3593 7471.2970 14588.7117 98.7445 1
147+
OKD-5 -8.4553 -2.3069 1.3585 7474.2548 14589.4514 97.7433 1
148+
OKD-K3-1 -1.3006 3.3977 0.4829 7477.0949 14580.7517 96.8713 1
149+
OKD-K3-4 1.1244 -3.2954 1.2215 7469.9723 14580.8231 97.6075 1
150+
OKD-K5P 2.5285 -2.7616 1.2198 7469.9811 14579.3211 97.6057 1
151+
OKD-K7L 1.4261 4.4354 0.4926 7477.1099 14577.8330 96.8789 1
152+
OKD-K7L 1.4261 4.4344 0.4923 7477.1099 14577.8330 96.8789 1
153+
OKD-K5P 2.5291 -2.7624 1.2201 7469.9811 14579.3211 97.6057 1
154+
OKD-K3-4 1.1247 -3.2964 1.2217 7469.9723 14580.8231 97.6075 1
155+
OKD-K3-1 -1.3007 3.3987 0.4827 7477.0949 14580.7517 96.8713 1
156+
OKD-5 -8.4554 -2.3067 1.3583 7474.2548 14589.4514 97.7433 1
157+
OKD-4 -6.7269 -4.8178 2.3592 7471.2970 14588.7117 98.7445 1
158+
OKD-11 -2.6720 2.5452 1.2274
159+
OKD-12 -2.6721 2.5453 1.2270
160+
119161
https://github.com/zvezdochiot/geofindkey

doc/AUTORS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Name: GeoFindKey
22
OldName: FindKey
33
URL: https://github.com/zvezdochiot/geofindkey
4-
Date: 2018-05-22
4+
Date: 2018-05-24
55
Authors:
66
Игорь Белов (https://gis-lab.info/forum/memberlist.php?mode=viewprofile&u=10457)
77
zvezdochiot (https://github.com/zvezdochiot)

doc/CHANGELOG

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ Name: GeoFindKey
22
OldName: FindKey
33
URL: https://github.com/zvezdochiot/geofindkey
44

5+
1.5
6+
7+
S-Z-B -> Y-X-H transform
8+
59
1.4
610

711
Elevation Version

doc/szb.dat

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
OKD-4 8.605 74.08666667 234.38916667 1 7471.2970 14588.7117 98.7445
2+
OKD-5 8.869 81.18888889 254.73888889 1 7474.2548 14589.4514 97.7433
3+
OKD-K3-1 3.670 82.43944444 339.05361111 1 7477.0949 14580.7517 96.8713
4+
OKD-K3-4 3.690 70.66833333 161.16 1 7469.9723 14580.8231 97.6075
5+
OKD-K5P 3.938 71.95527778 137.52222222 1 7469.9811 14579.3211 97.6057
6+
OKD-K7L 4.685 83.96444444 17.82444444 1 7477.1099 14577.8330 96.8789
7+
OKD-K7L 4.684 276.03361111 197.82722222 2 7477.1099 14577.8330 96.8789
8+
OKD-K5P 3.939 288.04361111 317.52472222 2 7469.9811 14579.3211 97.6057
9+
OKD-K3-4 3.691 289.32972222 341.16111111 2 7469.9723 14580.8231 97.6075
10+
OKD-K3-1 3.671 277.55583333 159.05805556 2 7477.0949 14580.7517 96.8713
11+
OKD-5 8.869 278.80944444 74.74055556 2 7474.2548 14589.4514 97.7433
12+
OKD-4 8.604 285.91444444 54.38972222 2 7471.2970 14588.7117 98.7445
13+
OKD-11 3.889 71.6025 313.60777778 1
14+
OKD-12 3.889 288.39138889 133.60805556 1
15+
1000 4.196 99.71277778 317.01166667 1
16+
1001 3.831 66.65388889 312.78 1
17+
1002 3.983 35.6125 248.38166667 1
18+
1003 3.862 57.35222222 188.52361111 1
19+
1004 4.339 99.81277778 181.11777778 1
20+
1005 3.971 100.54333333 327.23583333 1
21+
1006 3.494 54.065 322.4775 1
22+
1007 3.496 54.27722222 322.54138889 1
23+
1008 3.341 14.50083333 243.07305556 1
24+
1009 3.619 54.40527778 175.88305556 1
25+
1010 4.120 100.61555556 171.22861111 1
26+

geofindkey.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/*
22
Name: geofindkey.c
33
OldName: findkey.c
4-
Version: 1.4
5-
Date: 2018-05-22
4+
Version: 1.5
5+
Date: 2018-05-24
66
Author: Игорь Белов (https://gis-lab.info/forum/memberlist.php?mode=viewprofile&u=10457)
77
Author: zvezdochiot (https://github.com/zvezdochiot)
88
*
@@ -43,7 +43,7 @@ output file report.dat:
4343
#include <unistd.h>
4444

4545
#define PNAME "GeoFindKey"
46-
#define PVERSION "1.4"
46+
#define PVERSION "1.5"
4747

4848
void geofindkeytitle()
4949
{

geoszbtoyxh.c

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
/*
2+
Name: geoszbtoyxh.c
3+
Version: 1.5
4+
Date: 2018-05-24
5+
Author: zvezdochiot (https://github.com/zvezdochiot)
6+
*
7+
build:
8+
$ gcc -o geoszzbtoyxh geosvbtoyxh.c -lm
9+
sample:
10+
$ ./geoszbtoyxh doc/szb.dat yxh.dat
11+
*
12+
file:
13+
input file doc/szb.dat:
14+
*
15+
OKD-4 8.605 74.08666667 234.38916667 1
16+
OKD-5 8.869 81.18888889 254.73888889 1
17+
OKD-K3-1 3.670 82.43944444 339.05361111 1
18+
OKD-K3-4 3.690 70.66833333 161.16 1
19+
OKD-K5P 3.938 71.95527778 137.52222222 1
20+
OKD-K7L 4.685 83.96444444 17.82444444 1
21+
OKD-K7L 4.684 276.03361111 197.82722222 2
22+
OKD-K5P 3.939 288.04361111 317.52472222 2
23+
OKD-K3-4 3.691 289.32972222 341.16111111 2
24+
OKD-K3-1 3.671 277.55583333 159.05805556 2
25+
OKD-5 8.869 278.80944444 74.74055556 2
26+
OKD-4 8.604 285.91444444 54.38972222 2
27+
OKD-11 3.889 71.6025 313.60777778 1
28+
OKD-12 3.889 288.39138889 133.60805556 1
29+
*
30+
output file yxh.dat:
31+
*
32+
OKD-4 -6.7277 -4.8185 2.3593
33+
OKD-5 -8.4553 -2.3069 1.3585
34+
OKD-K3-1 -1.3006 3.3977 0.4829
35+
OKD-K3-4 1.1244 -3.2954 1.2215
36+
OKD-K5P 2.5285 -2.7616 1.2198
37+
OKD-K7L 1.4261 4.4354 0.4926
38+
OKD-K7L 1.4261 4.4344 0.4923
39+
OKD-K5P 2.5291 -2.7624 1.2201
40+
OKD-K3-4 1.1247 -3.2964 1.2217
41+
OKD-K3-1 -1.3007 3.3987 0.4827
42+
OKD-5 -8.4554 -2.3067 1.3583
43+
OKD-4 -6.7269 -4.8178 2.3592
44+
OKD-11 -2.6720 2.5452 1.2274
45+
OKD-12 -2.6721 2.5453 1.2270
46+
*
47+
*/
48+
49+
#include <stdio.h>
50+
#include <stdlib.h>
51+
#include <math.h>
52+
#include <unistd.h>
53+
54+
#define PNAME "GeoSZBtoYXH"
55+
#define PVERSION "1.5"
56+
57+
void geoszbtoyxhtitle()
58+
{
59+
printf("%s %s\n", PNAME, PVERSION);
60+
}
61+
62+
void geoszbtoyxhusage()
63+
{
64+
printf("usage: geoszbtoyxh [option] input-file report-file\n");
65+
printf("options:\n");
66+
printf(" -h this help\n");
67+
printf("\n");
68+
printf("input-file(sample):\n");
69+
printf(" OKD-4 8.605 74.08666667 234.38916667 1\n");
70+
printf(" OKD-5 8.869 81.18888889 254.73888889 1\n");
71+
printf(" OKD-K3-1 3.670 82.43944444 339.05361111 1\n");
72+
printf(" OKD-K3-4 3.690 70.66833333 161.16 1\n");
73+
printf(" OKD-K5P 3.938 71.95527778 137.52222222 1\n");
74+
printf(" OKD-K7L 4.685 83.96444444 17.82444444 1\n");
75+
printf(" OKD-K7L 4.684 276.03361111 197.82722222 2\n");
76+
printf(" OKD-K5P 3.939 288.04361111 317.52472222 2\n");
77+
printf(" OKD-K3-4 3.691 289.32972222 341.16111111 2\n");
78+
printf(" OKD-K3-1 3.671 277.55583333 159.05805556 2\n");
79+
printf(" OKD-5 8.869 278.80944444 74.74055556 2\n");
80+
printf(" OKD-4 8.604 285.91444444 54.38972222 2\n");
81+
printf(" OKD-11 3.889 71.6025 313.60777778 1\n");
82+
printf(" OKD-12 3.889 288.39138889 133.60805556 1\n");
83+
printf("\n");
84+
printf("report-file(sample):\n");
85+
printf(" OKD-4 -6.7277 -4.8185 2.3593\n");
86+
printf(" OKD-5 -8.4553 -2.3069 1.3585\n");
87+
printf(" OKD-K3-1 -1.3006 3.3977 0.4829\n");
88+
printf(" OKD-K3-4 1.1244 -3.2954 1.2215\n");
89+
printf(" OKD-K5P 2.5285 -2.7616 1.2198\n");
90+
printf(" OKD-K7L 1.4261 4.4354 0.4926\n");
91+
printf(" OKD-K7L 1.4261 4.4344 0.4923\n");
92+
printf(" OKD-K5P 2.5291 -2.7624 1.2201\n");
93+
printf(" OKD-K3-4 1.1247 -3.2964 1.2217\n");
94+
printf(" OKD-K3-1 -1.3007 3.3987 0.4827\n");
95+
printf(" OKD-5 -8.4554 -2.3067 1.3583\n");
96+
printf(" OKD-4 -6.7269 -4.8178 2.3592\n");
97+
printf(" OKD-11 -2.6720 2.5452 1.2274\n");
98+
printf(" OKD-12 -2.6721 2.5453 1.2270\n");
99+
}
100+
101+
int main(int argc, char *argv[])
102+
{
103+
char buf[1024], name[32];
104+
double x[3], y[3], z[3];
105+
int np, cn;
106+
FILE *fp0, *fp1;
107+
108+
int opt;
109+
int fhelp = 0;
110+
while ((opt = getopt(argc, argv, ":h")) != -1)
111+
{
112+
switch(opt)
113+
{
114+
case 'h':
115+
fhelp = 1;
116+
break;
117+
case ':':
118+
printf("option needs a value\n");
119+
break;
120+
case '?':
121+
printf("unknown option: %c\n", optopt);
122+
break;
123+
}
124+
}
125+
126+
geoszbtoyxhtitle();
127+
128+
if ((optind + 2 > argc) || (fhelp > 0))
129+
{
130+
geoszbtoyxhusage();
131+
exit(0);
132+
}
133+
134+
if ((fp0 = fopen(argv[optind], "r")) == NULL)
135+
{
136+
printf("can't open %s\n", argv[1]);
137+
exit(EXIT_FAILURE);
138+
}
139+
if ((fp1 = fopen(argv[optind + 1], "w")) == NULL)
140+
{
141+
printf("can't create %s\n", argv[2]);
142+
exit(EXIT_FAILURE);
143+
}
144+
145+
while (fgets(buf, 1024, fp0) != NULL)
146+
{
147+
cn = 0;
148+
np = sscanf(buf, "%s %lf %lf %lf %d %lf %lf %lf ", name, &x[0], &x[1], &x[2], &cn, &z[0], &z[1], &z[2]);
149+
if (cn == 2)
150+
{
151+
x[1] = x[1] - 270;
152+
x[2] -= 180;
153+
if (x[2] < 0) {x[2] += 360;}
154+
} else {
155+
x[1] = 90 - x[1];;
156+
}
157+
x[1] *= M_PI;
158+
x[1] /= 180.0;
159+
x[2] *= M_PI;
160+
x[2] /= 180.0;
161+
y[2] = x[0] * sin(x[1]);
162+
x[0] *= cos(x[1]);
163+
y[0] = x[0] * sin(x[2]);
164+
y[1] = x[0] * cos(x[2]);
165+
if (np >= 8)
166+
{
167+
fprintf(fp1, "%s %.4f %.4f %.4f %.4f %.4f %.4f 1\n", name, y[0], y[1], y[2], z[0], z[1], z[2]);
168+
} else {
169+
fprintf(fp1, "%s %.4f %.4f %.4f\n", name, y[0], y[1], y[2]);
170+
}
171+
}
172+
fclose(fp1);
173+
fclose(fp0);
174+
175+
return 0;
176+
}

man/man1/geofindkey.1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.TH "GeoFindKey User Manual" 1.4 "22 May 2018" "GeoFindKey documentation"
1+
.TH "GeoFindKey User Manual" 1.5 "24 May 2018" "GeoFindKey documentation"
22

33
.SH NAME
44
geofindkey
@@ -68,6 +68,7 @@ Copyright 2018 zvezdochiot.
6868

6969
.SH SEE ALSO
7070
geoeasy
71+
geoszbtoyxh
7172

7273
.SH CONTACTS
7374
Website: https://github.com/zvezdochiot/geofindkey

0 commit comments

Comments
 (0)