Repository navigation
Add Elevation Tiles
OpenVitals can replace the altitude in imported activity files and in activities recorded on the phone with values from elevation tiles stored on the phone. This fixes routes from a drifting barometric altimeter or from noisy GPS altitude.
For the short feature overview, see Elevation Correction.
| Format | File name | Size | Notes |
|---|---|---|---|
| SRTM 3 arc-second | N45E007.hgt |
2,884,802 bytes | 1201 x 1201 samples, about 90 m apart. Enough for gain and loss totals. |
| SRTM 1 arc-second | N45E007.hgt |
25,934,402 bytes | 3601 x 3601 samples, about 30 m apart. Better profiles in steep terrain. |
| Zip |
N45E007.hgt.zip, N45E007.SRTMGL1.hgt.zip
|
as above | One .hgt per zip. Other files inside the zip are ignored. |
GeoTIFF, .tif, .dem, and other DEM formats are not supported.
A tile is named by the latitude and longitude of its south-west corner: N or S, two digits, then E or W, three digits.
-
N45E007.hgtcovers 45 to 46 N and 7 to 8 E. -
S34W071.hgtcovers 34 to 33 S and 71 to 70 W. -
N00E000.hgtcovers 0 to 1 N and 0 to 1 E.
OpenVitals matches tiles by name, so do not rename them. Extra words after the cell, as in N45E007.SRTMGL1.hgt, are fine.
One tile per one-degree cell your activities cross. A city needs one tile, a mountain range two to four. An activity that leaves the imported tiles keeps its original altitude.
The app downloads nothing. Get the tiles on a computer, then copy them to the phone.
Void-filled SRTM tiles for the whole world at 3 arc-second, and 1 arc-second for Europe, North America, and a few other regions. Free, no account.
- Open the 3 arc-second coverage map: https://viewfinderpanoramas.org/Coverage%20map%20viewfinderpanoramas_org3.htm. For 1 arc-second tiles use https://viewfinderpanoramas.org/dem1d.html instead.
- Click the map square that holds your area. Each square downloads a
.zipwith the.hgttiles it covers. - Unzip it on the computer. Keep only the tiles for the one-degree cells you need, for example
N45E007.hgt. - Copy those
.hgtfiles to the phone.
About the data: https://viewfinderpanoramas.org/dem3.html.
The original SRTM 1 arc-second data, worldwide. Free account required.
- Open https://earthexplorer.usgs.gov/ and sign in.
- Under Search Criteria, pick your area on the map or by coordinates.
- Under Data Sets, choose Digital Elevation, SRTM, SRTM 1 Arc-Second Global.
- In Results, download each cell in the HGT format. The file is named by its cell, for example
N45E007.SRTMGL1.hgt.zip; import it as is or unzipped. - Copy the files to the phone.
Raw SRTM has voids in steep and coastal terrain. A route that touches one keeps its original altitude, so prefer Option A there.
1 arc-second .hgt tiles resampled from national LiDAR surveys, more accurate than SRTM where they exist. Free, no account, Creative Commons Attribution 4.0.
- Open https://sonny.4lima.de/.
- Pick your country and the 1 arc-second
.hgtdownload. Files are hosted on Google Drive. - Unzip, keep the tiles you need, and copy them to the phone.
Do not pick the 0.5 arc-second or GeoTIFF downloads: OpenVitals reads only 1 and 3 arc-second .hgt tiles.
Licence and attribution are the user's responsibility.
- Copy the
.hgtor.zipfiles to the phone. - Open OpenVitals.
- Go to Settings, Activities, Elevation correction.
- Tap Import elevation tile and pick a file. Repeat for each tile.
- Leave Correct altitude from tiles switched on.
- Import a route file or finish a GPS recording. The review screen and the activity's elevation profile now come from the tile.
The import copies the file into app storage and validates its size. It takes about a second.
A route is corrected only when every point is inside an imported tile. A route with one point outside, or on a void sample, keeps the altitudes it came with, from the file or from the phone's sensors. If a route's gain did not change after import or recording, check that tiles for every cell it crosses are listed.
From Settings, Activities, Elevation correction, users can:
- Import more tiles.
- Replace a tile by importing one with the same name.
- Delete a tile.
- Switch correction off without deleting tiles.
Deleting a tile removes only local support data. It does not change Health Connect activities.
If import fails:
- Confirm the name starts with the cell, for example
N45E007. - Confirm the file is exactly 2,884,802 or 25,934,402 bytes. Any other size means a truncated download or a different format.
- A zip must hold exactly one
.hgt. Unzip a regional archive first and import the tiles one by one.
If altitude did not change after an import or a recording:
- Confirm the toggle is on.
- Confirm a tile is listed for every cell the route crosses.
- Coastal and mountain-shadow areas of raw SRTM contain voids. Prefer void-filled tiles.
Generated from docs/how-to/elevation-tiles.md. Edit it there; changes made here are overwritten.
This wiki mirrors the Markdown in Hale-MTU/OpenVitals on every push to main.
Features
- Features
- Achievements
- Activity And Training Plans
- Activity Metrics
- Apple Health Import
- Beverage Logging And Caffeine
- Bluetooth LE Sensors
- Body Energy
- Body Metrics
- CoMaps Navigation Context
- CSV Import
- Cycle Tracking
- Daily Readiness
- Elevation Correction
- Feature Map
- FIT Files Import
- Food Logging
- GPX/KML/KMZ/TCX Route Import
- Health Connect Metrics Dashboard
- Health Report Export
- Heart And Vitals
- Heart Rate Recovery
- Home Screen Widgets
- Hydration
- Manual Entry Of Metrics
- Medical Records
- Metric Detail Customization
- Mindfulness
- Non Health Connect Metrics Dashboard
- Nutrition
- Offline Maps Support
- Onboarding And Permissions
- Preloaded Beverage Nutrition Reference
- Privacy, Support, And Diagnostics
- Recording Of Activity
- Reminders
- Settings And Preferences
- Sleep Score And Recovery
- Sleep Tracking
- Statistics
- Sync With Another Phone
How-to
App
- App Guide
- FAQ
- Getting Started
- Health Connect
- Install
- Local And Connected Editions
- Permissions
- Privacy
- Screenshots
- Support
Reference
- Design Reference
- Reference
- Design Guidelines for Offline & Sync
- OpenVitals UI Notes
- Reference: Data Capture
- Reference: Data Display
- Reference: Health Connect Matchmaking
- Reference: Health Connect Onboarding
- Reference: Health Connect Permissions
- Reference: Health Connect UX
- Reference: Promoting Health Connect
Engineering
- Code Analysis
- Engineering
- Flutter ↔ Kotlin test-parity matrix
- apple-health-import
- Architecture
- body-cycle-recovery
- Design system conformance
- Development
- Feature Playbook
- Flutter -> Kotlin test parity: domain/data/core/contract/state/navigation/di/bootstrap/l10n/widget_test
- Flutter → Kotlin test-parity matrix: features section
- Flutter → Kotlin test-parity matrix: ui / goldens / integration / fixtures
- Flutter-to-Kotlin test-parity matrix — dashboard + devicesync
- manual-entry
- Translations
Proposals
- Proposals
- Activity Start Flow Analysis
- Activity Start Flow Simplification Proposals
- Caffeine Detail And Future Sleep Insights
- Cycle Tracking: Design and Status
- Medical Records Through Health Connect
- Medical Records: What Is Left
Releases
- OpenVitals 2.16.0
- OpenVitals 2.15.2
- OpenVitals 2.15.1
- OpenVitals 2.15.0
- OpenVitals 2.14.5
- OpenVitals 2.14.4
- OpenVitals 2.14.3
- OpenVitals 2.14.2
- OpenVitals 2.14.1
- OpenVitals 2.14.0
- OpenVitals 2.13.0
- OpenVitals 2.12.0
- OpenVitals 2.11.2
- OpenVitals 2.11.1
- OpenVitals 2.11.0
- OpenVitals 2.10.1
- OpenVitals 2.10.0
- OpenVitals 2.9.1
- OpenVitals 2.9.0
- OpenVitals 2.8.0
- OpenVitals 2.7.3
- OpenVitals 2.7.2
- OpenVitals 2.7.1
- OpenVitals 2.7.0
- OpenVitals 2.6.6
- OpenVitals 2.6.5
- OpenVitals 2.6.4
- OpenVitals 2.6.3
- OpenVitals 2.6.2
- OpenVitals 2.6.1
- OpenVitals 2.6.0
- OpenVitals 2.5.0
- OpenVitals 2.4.1
- OpenVitals 2.4.0
- OpenVitals 2.3.2
- OpenVitals 2.3.1
- OpenVitals 2.3.0
- OpenVitals 2.2.8
- OpenVitals 2.2.7
- OpenVitals 2.2.6
- OpenVitals 2.2.5
- OpenVitals 2.2.4
- OpenVitals 2.2.3
- OpenVitals 2.2.2
- OpenVitals 2.2.1
- OpenVitals 2.2.0
- OpenVitals 2.1.0
- OpenVitals 2.0.4
- OpenVitals 2.0.3
- OpenVitals 2.0.2
- OpenVitals 2.0.1
- OpenVitals 1.9.0
- OpenVitals 1.8.0
- OpenVitals 1.7.7
- OpenVitals 1.7.6
- OpenVitals 1.7.5
- OpenVitals 1.7.4
- OpenVitals 1.7.3
- OpenVitals 1.7.2
- OpenVitals 1.7.1
- OpenVitals 1.7.0
- OpenVitals 1.6.3
- OpenVitals 1.6.2
- OpenVitals 1.6.1
- OpenVitals 1.6.0
- OpenVitals 1.5.1
- OpenVitals 1.5.0
Project