Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
87ff645
docs(bernese): why 5.2 tolerated what 5.4 rejects -- the I14 model se…
alfieprojectsdev Aug 5, 2026
3de664c
docs(gps3): session log §18 — first Bernese 5.4 run attempts
alfieprojectsdev Aug 5, 2026
7067559
docs(bernese): I20 pipeline test -- the chain runs; ocean loading is …
alfieprojectsdev Aug 5, 2026
984b8a0
feat(bernese): prepare the OTL request and a BLQ merge tool
alfieprojectsdev Aug 6, 2026
b8f2649
fix(bernese): BLQ parser matched the documented format, not the real one
alfieprojectsdev Aug 6, 2026
acba014
docs(bernese): request OTL on FES2004 to match the existing stations
alfieprojectsdev Aug 6, 2026
f42a69d
feat(bernese): ocean loading merged -- DOY 121 completes end to end
alfieprojectsdev Aug 6, 2026
69a16b4
feat(bernese): month-long LUZON driver, own results tree
alfieprojectsdev Aug 6, 2026
35fbc56
fix(bernese): month driver scored every day OK from one stale file
alfieprojectsdev Aug 6, 2026
4b2a133
docs(bernese): §4b.8 — ocean loading closed, month run launched
alfieprojectsdev Aug 6, 2026
b6dfffa
docs(bernese): verify the reproducible window by census, not by handover
alfieprojectsdev Aug 6, 2026
99c8c74
docs(session): §19 — ocean loading closed, month run launched, two fi…
alfieprojectsdev Aug 6, 2026
f6b9b6e
feat(bernese): check the solutions, not just the exit status
alfieprojectsdev Aug 6, 2026
523aa44
docs(bernese): §4b.9/4b.10 — a station missing from every solution, s…
alfieprojectsdev Aug 6, 2026
9f2e761
docs(bernese): the month completed — 30 days, and what the numbers show
alfieprojectsdev Aug 6, 2026
fb1b58c
docs: the month is done — 30 days, zero failures, and the header was …
alfieprojectsdev Aug 6, 2026
ad44e2a
feat(bernese): check for coherent multi-station motion, not just outl…
alfieprojectsdev Aug 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions config/bernese/otl/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Ocean-loading coefficients for the seven IGS fiducials

`LUZON.BLQ` covers the 135 local PHIVOLCS stations and **none of the seven IGS
fiducials** the network uses for datum control. With those staged, `GPSEDT`
stops:

```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Specify a language for the diagnostic block.

Replace the bare fence with ```text. This resolves markdownlint MD040.

🧰 Tools
🪛 markdownlint-cli2 (0.23.2)

[warning] 7-7: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@config/bernese/otl/README.md` at line 7, Update the diagnostic code block in
README.md to specify the text language on its opening fence, changing the bare
fence to a text fence while preserving the block contents.

Source: Linters/SAST tools

*** SR GTOCNL: OCEAN LOADING CORRECTION VALUES NOT FOUND
STATION NAME : ALIC 50137M001
```

No `.BLQ` anywhere in the 5.2 capture contains ALIC, so the coefficients were
never computed for those sites. They are free from the Chalmers/Onsala service,
which delivers **by email** — so one manual step is unavoidable. Everything
either side of it is prepared here.

## ⚠ Match the existing settings — do not use the service defaults

The 135 stations already in `LUZON.BLQ` were computed with a specific
configuration, recorded in the file's own header:

```
$$ Ocean tide model: FES2004
$$ CMC: NO (corr.tide centre of mass)
$$ Gutenberg-Bullen Greens function is used
```

**Request FES2004, not a newer model.** Coefficients on a different ocean model
would put the seven datum stations on a different basis from the 135 they
constrain — a systematic inconsistency that does not announce itself in the
file and is painful to trace afterwards. A newer model is better *only* if the
whole file is recomputed, which is a separate decision.

## The request

Paste `REQUEST_fiducials.txt`:

```
AIRA -3530185.90159 4118797.17811 3344036.67302
ALIC -4052052.79683 4212835.97064 -2545104.50221
DAEJ -3120042.45801 4084614.65640 3764026.77258
DARW -4091359.66844 4684606.39892 -1408579.03120
MCIL -5227187.43755 2551881.35064 2607618.30816
PIMO -3186293.50508 5286624.44981 1601158.39629
PNGM -5367943.20000 3437431.20000 -225886.00000
```

These are **ECEF XYZ taken directly from `$D/REF54/LUZON.CRD`** — the same
coordinates the BPE processes. The form accepts `name X Y Z` as an alternative
to lon/lat/height, so no geodetic conversion is performed and the
"I-never-swap-lon/lat" ambiguity does not arise.

Names are bare 4-character codes, matching how the existing blocks are written
(` ABUY ABUY`).
Comment on lines +53 to +54

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Avoid leading spaces inside the inline code span.

Line 54 triggers Markdownlint MD038. The leading spaces are meaningful in this example, so move the sample to a text fenced block instead of deleting them.

🧰 Tools
🪛 markdownlint-cli2 (0.23.2)

[warning] 54-54: Spaces inside code span elements

(MD038, no-space-in-code)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@config/bernese/otl/README.md` around lines 53 - 54, Update the README example
currently shown as an inline code span so the meaningful leading spaces are
preserved in a fenced text block. Remove the inline formatting for that sample
while keeping the example content unchanged and resolving Markdownlint MD038.

Source: Linters/SAST tools


## Form settings

| Field | Value | Why |
|---|---|---|
| Ocean tide model | **FES2004** | matches the existing 135 — see above |
| Loading phenomenon | **vertical and horizontal displacements** | not gravity/tilt |
| Greens function | **elastic (Farrell, 1972)** | Farrell 1972 uses the Gutenberg-Bullen earth model named in the header |
| CMC correction | **NO** | header records `CMC: NO` |
| Output format | **BLQ** | not HARPOS |
| Plot | NO | not needed |
| Email | your address | results arrive as plain text |

Portal: <https://barre.oso.chalmers.se/loading/l.php>
(The older Holt portal has been down with a mail fault since 2024-05.)

If nothing arrives within a few hours, check the
[queue](https://barre.oso.chalmers.se/loading/queue.php) and the
[why-not criteria](https://barre.oso.chalmers.se/loading/wncace.html).

## Merging the reply

```bash
scripts/merge_blq.py --blq $D/REF54/LUZON.BLQ --new onsala-reply.txt # dry run
scripts/merge_blq.py --blq $D/REF54/LUZON.BLQ --new onsala-reply.txt --apply
cp $D/REF54/LUZON.BLQ $P/LUZON/STA/LUZON.BLQ
```

It refuses to add a station already present (a duplicate block is worse than a
missing one — which of two conflicting entries Bernese honours is not evident
from the file), validates each incoming block as six rows of eleven values, and
backs up first.

**Record the model actually used** in the commit message when the merged file
lands. It is part of the provenance of every coordinate computed afterwards, and
the file header will say so for the new blocks but not retrospectively for the
old ones.

## Why this matters

Without the fiducials there are no IGS reference stations in the solution, so
`HELMR1` reports `NO REDUNDANCY` and the result has no datum verification —
runbook §4b.7. With them, and with consistent ocean loading, the 31-day run
becomes both possible and meaningful.

## Citation

If the results are used in published work, the service asks to be cited as
`https://barre.oso.chalmers.se/loading/l.php`, naming M.S. Bos and
H.-G. Scherneck.
7 changes: 7 additions & 0 deletions config/bernese/otl/REQUEST_fiducials.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
AIRA -3530185.90159 4118797.17811 3344036.67302
ALIC -4052052.79683 4212835.97064 -2545104.50221
DAEJ -3120042.45801 4084614.65640 3764026.77258
DARW -4091359.66844 4684606.39892 -1408579.03120
MCIL -5227187.43755 2551881.35064 2607618.30816
PIMO -3186293.50508 5286624.44981 1601158.39629
PNGM -5367943.20000 3437431.20000 -225886.00000
111 changes: 111 additions & 0 deletions config/bernese/otl/onsala-reply-20260806.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
$$ Ocean loading displacement
$$
$$ Calculated on barre.oso.chalmers.se using olfg/olmpp of H.-G. Scherneck
$$
$$ Greens function: mc00egbc
$$
$$ COLUMN ORDER: M2 S2 N2 K2 K1 O1 P1 Q1 MF MM SSA
$$
$$ ROW ORDER:
$$ AMPLITUDES (m)
$$ RADIAL
$$ TANGENTL EW
$$ TANGENTL NS
$$ PHASES (degrees)
$$ RADIAL
$$ TANGENTL EW
$$ TANGENTL NS
$$
$$ Displacement is defined positive in Upwards, South and West direction.
$$ The phase lag is relative to Greenwich and lags positive. The
$$ Gutenberg-Bullen Greens function is used. In the ocean tide model the
$$ deficit of tidal water mass has been corrected by subtracting a uniform
$$ layer of water with a certain phase lag globally.
$$
$$ Complete <model name> : No interpolation of ocean model was necessary
$$ <model name>_PP : Ocean model has been interpolated near the station
$$ (PP = Post-Processing)
$$
$$ CMC: NO (corr.tide centre of mass)
$$
$$ Ocean tide model: FES2004
$$
$$ END HEADER
$$
ALIC 50137M001
$$ Complete FES2004
$$ Computed by OLFG, H.-G. Scherneck, Onsala Space Observatory 2026-Aug- 6
$$ ALIC, RADI TANG lon/lat: 133.8855 -23.6701 603.238
.00249 .00087 .00078 .00022 .00221 .00245 .00074 .00064 .00032 .00016 .00013
.00166 .00074 .00032 .00018 .00175 .00107 .00058 .00024 .00004 .00001 .00001
.00034 .00012 .00012 .00003 .00089 .00071 .00029 .00018 .00013 .00008 .00006
144.5 -60.1 101.7 -54.8 4.7 9.2 5.4 0.0 -177.1 179.9 -179.4
80.4 104.3 71.0 106.0 -169.1 174.7 -169.2 157.7 -54.2 -107.3 -165.2
-128.0 92.0 -162.1 115.0 -90.9 -115.1 -90.3 -120.6 -170.4 -175.5 -178.8
$$
AIRA 21742S001
$$ FES2004_PP ID: 2026-08-06 03:48:18
$$ Computed by OLMPP by H G Scherneck, Onsala Space Observatory, 2026
$$ AIRA, RADI TANG lon/lat: 130.5996 31.8241 314.630
.01512 .00633 .00309 .00154 .01127 .00876 .00370 .00175 .00012 .00008 .00008
.00382 .00186 .00073 .00061 .00163 .00128 .00055 .00023 .00008 .00002 .00000
.00396 .00143 .00082 .00039 .00196 .00159 .00064 .00032 .00004 .00003 .00004
122.3 139.6 119.3 143.0 -114.2 -130.8 -113.7 -139.2 -55.1 -129.7 -171.3
27.8 43.7 18.8 44.9 -166.4 169.1 -166.8 159.1 -42.4 -69.6 -117.8
-63.3 -42.2 -76.8 -51.5 93.2 75.5 94.1 64.9 41.7 32.6 4.6
$$
DAEJ 23902M002
$$ FES2004_PP ID: 2026-08-06 03:48:24
$$ Computed by OLMPP by H G Scherneck, Onsala Space Observatory, 2026
$$ DAEJ, RADI TANG lon/lat: 127.3745 36.3994 116.845
.00514 .00268 .00070 .00047 .00604 .00497 .00193 .00096 .00022 .00006 .00002
.00205 .00038 .00039 .00010 .00191 .00140 .00064 .00024 .00009 .00003 .00000
.00190 .00077 .00044 .00024 .00181 .00143 .00059 .00028 .00002 .00002 .00002
66.7 99.1 86.2 120.5 -102.8 -118.5 -103.0 -131.6 -2.4 -28.0 -16.9
153.9 154.7 135.5 82.1 -161.2 173.8 -159.0 170.6 -36.6 -57.6 -64.4
0.7 10.0 -16.3 20.4 98.5 80.7 101.3 69.3 99.4 58.1 6.9
$$
DARW 50134M001
$$ FES2004_PP ID: 2026-08-06 03:48:29
$$ Computed by OLMPP by H G Scherneck, Onsala Space Observatory, 2026
$$ DARW, RADI TANG lon/lat: 131.1328 -12.8437 125.104
.00482 .00203 .00117 .00037 .00659 .00519 .00217 .00139 .00076 .00042 .00036
.00153 .00069 .00037 .00008 .00362 .00209 .00117 .00045 .00006 .00002 .00000
.00209 .00107 .00044 .00018 .00102 .00073 .00034 .00023 .00016 .00009 .00008
56.7 46.5 46.1 61.4 3.5 -1.5 6.1 -12.3 -170.9 -173.9 -178.4
121.5 139.1 96.1 114.7 -171.6 169.4 -171.1 157.7 -34.1 -56.6 -68.6
12.3 79.1 -20.5 83.2 -0.8 -11.4 2.6 -25.5 -168.5 -173.4 -178.3
$$
MCIL 21789S001
$$ FES2004_PP ID: 2026-08-06 03:48:31
$$ Computed by OLMPP by H G Scherneck, Onsala Space Observatory, 2026
$$ MCIL, RADI TANG lon/lat: 153.9787 24.2901 35.645
.00748 .00507 .00100 .00140 .01293 .00962 .00427 .00187 .00034 .00029 .00027
.00373 .00162 .00068 .00040 .00116 .00090 .00038 .00017 .00005 .00001 .00000
.00061 .00099 .00025 .00032 .00164 .00114 .00054 .00021 .00010 .00005 .00005
-24.4 3.9 -29.7 1.8 -136.8 -159.3 -137.1 -166.4 -132.3 -153.9 -175.1
-57.4 -27.3 -65.6 -31.5 93.3 86.3 93.9 78.2 -54.0 -88.9 -138.2
115.5 129.6 172.2 117.8 112.1 100.4 112.2 90.7 1.4 8.2 1.4
$$
PIMO 22003M001
$$ FES2004_PP ID: 2026-08-06 03:48:39
$$ Computed by OLMPP by H G Scherneck, Onsala Space Observatory, 2026
$$ PIMO, RADI TANG lon/lat: 121.0777 14.6357 95.547
.00976 .00349 .00211 .00078 .00746 .00833 .00256 .00171 .00074 .00046 .00042
.00466 .00185 .00091 .00048 .00355 .00238 .00116 .00042 .00006 .00002 .00001
.00144 .00060 .00024 .00017 .00174 .00146 .00061 .00031 .00003 .00001 .00002
133.6 145.4 114.7 141.7 -30.6 -54.6 -29.1 -66.2 -164.9 -169.3 -177.7
102.1 119.1 92.7 111.6 -136.5 -168.8 -136.7 -176.2 -56.4 -101.3 -164.2
92.1 128.7 90.4 129.2 -164.4 168.5 -166.3 155.9 1.7 17.4 2.7
$$
PNGM 51006M001
$$ FES2004_PP ID: 2026-08-06 03:48:42
$$ Computed by OLMPP by H G Scherneck, Onsala Space Observatory, 2026
$$ PNGM, RADI TANG lon/lat: 147.3660 -2.0432 116.351
.00437 .00403 .00240 .00120 .01583 .00932 .00521 .00170 .00114 .00067 .00057
.00409 .00212 .00088 .00055 .00153 .00105 .00051 .00023 .00004 .00003 .00002
.00054 .00032 .00023 .00014 .00068 .00063 .00023 .00014 .00007 .00005 .00003
63.2 -6.8 54.3 -34.4 -120.3 -135.9 -120.7 -139.7 -167.8 -172.0 -178.1
-28.7 -15.5 -30.7 -22.3 -152.0 -178.1 -151.8 166.7 -117.0 -151.0 -174.3
4.8 -45.6 -20.0 -64.3 -79.0 -114.2 -79.4 -118.2 -160.8 -171.3 -178.2
$$ END TABLE
Loading