Skip to content

Commit 329fb3b

Browse files
Merge pull request #25 from GeoscienceAustralia/release-v1.5.2
Release v1.5.2
2 parents 0b9e613 + c9856f5 commit 329fb3b

23 files changed

+147
-67
lines changed

CHANGELOG.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55

6+
# [1.5.2] 2022-12-28
7+
### Added
8+
### Changed
9+
No longer need conda environment to run python scripts
10+
Antenna PCO values now constellation specific
11+
12+
### Fixed
13+
POD does not output clocks in the predicted part of the generated SP3 file
14+
15+
### Deprecated
16+
### Removed
17+
### Security
18+
619
# [1.5.1] 2022-08-22
720
### Added
821
Beidou block ids and SRPs (type 2 and type 3)
@@ -23,7 +36,7 @@ Reading of pod sinex metadata file
2336

2437
# [1.5] 2022-07-26
2538
### Added
26-
Read/write RINEX4 compatibly
39+
Read/write RINEX4 compatability
2740

2841
New pod mode: pod_data_int which uses pod_data section for integrating given IC. New example ex00_pod_test_g01.yaml
2942

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
: This script will install all dependencies, clone the Ginan repo into the current directory and build the Ginan toolkit.
99

1010

11-
#### `Ginan v1.5.1 release`
11+
#### `Ginan v1.5.2 release`
1212

1313
## Overview
1414

@@ -56,7 +56,7 @@ Ginan is supported on the following platforms
5656

5757
You can quickly download a ready-to-run Ginan environment using docker by running:
5858

59-
docker run -it -v /data:/data gnssanalysis/ginan:v1.5.1 bash
59+
docker run -it -v /data:/data gnssanalysis/ginan:v1.5.2 bash
6060

6161
This command connects the `/data` directory on the host (your pc), with the `/data` directory in the container, to allow file access between the two systems, and opens a command line (`bash`) for executing commands.
6262

docker/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ RUN mkdir -p src/build \
1313
&& rm -rf src/build
1414

1515
ENV PATH "/ginan/bin:${PATH}"
16-
RUN cd /ginan/scripts && conda run -n gn37 pip install .
17-
COPY ./docker/.bashrc /root/.bashrc
16+
RUN cd /ginan/scripts && pip install .
17+
#COPY ./docker/.bashrc /root/.bashrc

docker/run-tests-long.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ set -euo pipefail
55
#required env var $GINAN to be set to the checkout root
66
export PATH="$PATH:$GINAN/bin"
77

8-
# activate conda environment
9-
eval "$(/root/.miniconda3/bin/conda shell.bash hook)"
10-
conda activate gn37
11-
128
S3_PREFIX=s3://peanpod/pea/long-tests/ex31/$(date --iso-8601=seconds)/
139

1410
# ginan source tree is at /ginan

docker/run-tests-pea.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22

33
set -euo pipefail
44

5-
# activate conda environment
6-
eval "$(/root/.miniconda3/bin/conda shell.bash hook)"
7-
conda activate gn37
8-
95
# download example tests
106
source /ginan/docker/tags # PEA's tag as $PEA
117
source /ginan/docker/run-aux.sh

docker/run-tests-pod.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22

33
set -euo pipefail
44

5-
# activate conda environment
6-
eval "$(/root/.miniconda3/bin/conda shell.bash hook)"
7-
conda activate gn37
8-
95
# download example tests
106
source /ginan/docker/tags
117
source /ginan/docker/run-aux.sh

docker/tags

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
PEA="0b3c6e8"
1+
PEA="73bbcff"
22
POD="0c8627b"

scripts/requirements.txt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
awscli==1.27.34
2+
sklearn==0.0
3+
dash==2.7.1
4+
plotly==5.3.1
5+
tqdm==4.64.0 #useful for long processing sessions
6+
git+https://github.com/bmatv/python-unlzw.git # memory leak patched
7+
plotext==4.2
8+
requests_oauthlib==1.3.1
9+
werkzeug==2.2.2
10+
requests==2.27.1
11+
numpy==1.21.6 # don't care of specific numpy and pandas versions
12+
pandas==1.1.0 #MongoDash required version
13+
matplotlib==3.5.2
14+
ruamel.yaml==0.17.21
15+
boto3
16+
# ipython==7.5.0
17+
# notebook>=5.3
18+
# ipywidgets>=7.2
19+
pymongo==3.7.2
20+
pytest==7.1.2
21+
scipy==1.7.3
22+
statsmodels==0.13.2

src/cpp/brdc2sp3/brdc2sp3_main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ int BS_satantoff( GTime time, SatSys Sat, Vector3d& rs, Vector3d& dant, int gloi
100100
for (int i = 0; i < 3; i++)
101101
{
102102
/* ENU to NEU */
103-
Vector3d pcoJ = antPco(Sat.id(), j, time);
104-
Vector3d pcoK = antPco(Sat.id(), k, time);
103+
Vector3d pcoJ = antPco(Sat.id(), Sat.sys, j, time);
104+
Vector3d pcoK = antPco(Sat.id(), Sat.sys, k, time);
105105
double dant1 = pcoJ[1] * ex(i)
106106
+ pcoJ[0] * ey(i)
107107
+ pcoJ[2] * ez(i); //todo aaron, matrix

src/cpp/common/antenna.cpp

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ int decodef(char *p, int n, double *v)
3737

3838
bool findAntenna(
3939
string code,
40+
E_Sys sys,
4041
GTime time,
4142
Navigation& nav,
4243
E_FType ft,
@@ -45,13 +46,21 @@ bool findAntenna(
4546
// BOOST_LOG_TRIVIAL(debug)
4647
// << "Searching for " << type << ", " << code;
4748

48-
auto it1 = nav.pcvMap.find(code);
49-
if (it1 == nav.pcvMap.end())
49+
auto it0 = nav.pcvMap.find(code);
50+
if (it0 == nav.pcvMap.end())
5051
{
5152
return false;
5253
}
5354

54-
auto& [dummyCode, pcvFreqMap] = *it1;
55+
auto& [dummyCode, pcvSysFreqMap] = *it0;
56+
57+
auto it1 = pcvSysFreqMap.find(sys);
58+
if (it1 == pcvSysFreqMap.end())
59+
{
60+
return false;
61+
}
62+
63+
auto& [dummySys, pcvFreqMap] = *it1;
5564

5665
auto it2 = pcvFreqMap.find(ft);
5766
if (it2 == pcvFreqMap.end())
@@ -92,14 +101,15 @@ double interp(double x1, double x2, double y1, double y2, double x)
92101

93102
Vector3d makeAntPco(
94103
string id,
104+
E_Sys sys,
95105
E_FType ft,
96106
GTime time)
97107
{
98108
if (ft == F1) return Vector3d::Zero();
99109
if (ft == F2) return Vector3d::Zero();
100110

101-
Vector3d pco1 = antPco(id, F1, time);
102-
Vector3d pco2 = antPco(id, F2, time);
111+
Vector3d pco1 = antPco(id, sys, F1, time);
112+
Vector3d pco2 = antPco(id, sys, F2, time);
103113

104114
if (pco1.isZero()) return Vector3d::Zero();
105115
if (pco2.isZero()) return Vector3d::Zero();
@@ -123,12 +133,21 @@ Vector3d makeAntPco(
123133
*/
124134
Vector3d antPco(
125135
string id,
136+
E_Sys sys,
126137
E_FType ft,
127138
GTime time,
128139
bool interp)
129140
{
130-
auto it1 = nav.pcoMap.find(id);
131-
if (it1 == nav.pcoMap.end())
141+
auto it0 = nav.pcoMap.find(id);
142+
if (it0 == nav.pcoMap.end())
143+
{
144+
return Vector3d::Zero();
145+
}
146+
147+
auto& [dummy0, pcoSysFreqMap] = *it0;
148+
149+
auto it1 = pcoSysFreqMap.find(sys);
150+
if (it1 == pcoSysFreqMap.end())
132151
{
133152
return Vector3d::Zero();
134153
}
@@ -138,7 +157,7 @@ Vector3d antPco(
138157
auto it2 = pcoFreqMap.find(ft);
139158
if (it2 == pcoFreqMap.end())
140159
{
141-
if (interp) return makeAntPco(id, ft, time);
160+
if (interp) return makeAntPco(id, sys, ft, time);
142161
else return Vector3d::Zero();
143162
}
144163

@@ -159,13 +178,22 @@ Vector3d antPco(
159178
*/
160179
double antPcv(
161180
string id, ///< antenna id
181+
E_Sys sys,
162182
E_FType ft, ///< frequency
163183
GTime time, ///< time
164184
double aCos, ///< angle between target and antenna axis (radians)
165185
double azi) ///< azimuth angle (radians)
166186
{
167-
auto it1 = nav.pcvMap.find(id);
168-
if (it1 == nav.pcvMap.end())
187+
auto it0 = nav.pcvMap.find(id);
188+
if (it0 == nav.pcvMap.end())
189+
{
190+
return 0;
191+
}
192+
193+
auto& [dummy0, pcvSysFreqMap] = *it0;
194+
195+
auto it1 = pcvSysFreqMap.find(sys);
196+
if (it1 == pcvSysFreqMap.end())
169197
{
170198
return 0;
171199
}
@@ -331,7 +359,8 @@ int readantexf(
331359
string id;
332360
GTime time;
333361

334-
E_FType ft = FTYPE_NONE;
362+
E_FType ft = FTYPE_NONE;
363+
E_Sys sys = E_Sys::NONE;
335364

336365
char buff[512];
337366
while (fgets(buff, sizeof(buff), fp))
@@ -504,8 +533,9 @@ int readantexf(
504533

505534
string antexFCode;
506535
antexFCode.assign(&buff[3], 3);
507-
508-
ft = antexCodes[antexFCode];
536+
537+
sys = SatSys::sysFromChar(antexFCode[0]);
538+
ft = antexCodes[antexFCode];
509539

510540
freqPcv = recPcv;
511541

@@ -516,8 +546,8 @@ int readantexf(
516546
{
517547
noazi_flag = 0;
518548

519-
nav.pcvMap[id][ft][time] = freqPcv;
520-
nav.pcoMap[id][ft][time] = pco;
549+
nav.pcvMap[id][sys][ft][time] = freqPcv;
550+
nav.pcoMap[id][sys][ft][time] = pco;
521551

522552
continue;
523553
}

0 commit comments

Comments
 (0)