ruumica documentation

Install the Estonian geoid model

Convert, check and install the licensed EST-GEOID2017 grid, so Estonian heights can be delivered in EH2000.

Estonian heights need the EST-GEOID2017 geoid model, which the Estonian Land and Spatial Development Board licenses free of charge. Until it is installed, Estonian exports run with --allow-grid-absent 'ee.*' and field heights wait (Heights and datums). Installing it needs no program change.

Before you start

  • The delivered grid file from the Board: an ASCII grid with three numbers per line (latitude, longitude and the geoid height, in either order). Keep it outside the repository; the grid is never committed.
  • Access to sudo on the server: the grid goes into /usr/share/proj, where the program, the coordinate tools and PostgreSQL all find it.

Steps

  1. Try it without changing anything. This converts the file, then compares every node of the result with the delivered text, and prints what the installation would do:

    scripts/install-ee-geoid.sh <delivered file> --dry-run
    
  2. Install it. This records the grid’s SHA-256 in the pipeline registry and installs the file:

    scripts/install-ee-geoid.sh <delivered file>
    
  3. Copy the new fingerprint into the database and prove the pipeline against the official Estonian test points:

    $ asbuilt crs sync-db
    $ asbuilt crs verify --pipeline ee.etrs89.lest97-eh2000.v1
    …
    
  4. Run the self-test without waivers: ASBUILT_STRICT=1 scripts/verify-m1.sh must end with M1 FOUNDATION OK.

  5. Commit the registry change (geodesy/pipelines/ee.toml, geodesy/grids/SHA256SUMS): it holds the fingerprint only, never the grid.

Check

asbuilt crs verify reports the Estonian pipeline OK, with every official test point PASS. Estonian exports no longer need --allow-grid-absent.

After the installation

  • Positions from the field that waited with GRID_ABSENT can now be converted.
  • Estonian packages now carry converted heights, so their manifest_sha256 changes. Packages recorded before keep theirs; export new ones with a new freeze instant (Exports never change).

What can go wrong

You see Meaning Do
The dry run names a node that differs The converted grid does not reproduce the delivered values. Do not install. Check that the file is complete and unchanged.
The layout is refused The file is not a three-column ASCII grid. Ask for the ASCII delivery; other layouts are refused rather than guessed.
A different fingerprint is already recorded Another file was installed before. Find out which is the licensed delivery before replacing anything.
CRS_GRID_MISMATCH later The installed file was changed or replaced. Install the delivered grid again with the script.

Last changed 2026-11-15