Netto-Hoehenunterschied
Für das Profil 100, 120, 110, 150, 140 m beträgt die Nettoänderung 40 m, doch die Route steigt insgesamt 60 m an und fällt 20 m ab. Sie erhalten außerdem den tiefsten und höchsten Punkt, die Spannweite und die gesamte Vertikalbewegung. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Höhen
- 100, 120, 110, 150, 140 m
- Anzahl der Stichproben
- 5 m
- Starthöhe
- 100
- Endhöhe
- 140
- Minimale Höhe
- 100
Der Netto-Höhenunterschied entlang eines Wanderwegs oder Straßenprofils ist mehr als die Differenz zwischen dem letzten und dem ersten Messwert. Wandernde, Rennleitungen und Routing-Engines brauchen auch den kumulierten Anstieg und Abstieg, weil eine Achterbahn-Strecke, die wieder auf der Starthöhe endet, dennoch Energie kostet. Dieser Rechner für den Netto-Höhenunterschied nimmt eine geordnete Liste von Höhenproben —Meter oder Fuß— entgegen, durchläuft die aufeinanderfolgenden Differenzen einmal und liefert Nettoänderung, Gesamtanstieg, Gesamtabstieg, Minimal- und Maximalhöhe, Höhenspanne sowie die gesamte Vertikalbewegung. Der Algorithmus ist reine Arithmetik ohne Kartentiles, ohne GPS-Glättung und ohne Netzwerk. Nutzen Sie ihn, um GPX-abgeleitete Serien zu bewerten, DEM-Extrakte zu prüfen oder Routenkarten mit ehrlichen Steigungsstatistiken zu kennzeichnen, bevor Sie sie an Athletinnen, Athleten oder Kundinnen und Kunden veröffentlichen.
Was Nettoänderung, Gesamtanstieg und Gesamtabstieg im Profil bedeuten
Bei geordneten Höhenproben e0, e1, …, e(n−1) entlang einer Route ist der Netto-Höhenunterschied einfach der letzte Wert minus dem ersten: Ende minus Start. Diese eine Zahl beantwortet, ob der Weg höher oder tiefer endete als er begann, und ist negativ, wenn das Ziel unter dem Ursprung liegt. Sie beschreibt nicht, wie anstrengend sich die Strecke anfühlte.
Der Gesamtanstieg summiert jede positive aufeinanderfolgende Differenz max(0, ei − e(i−1)), sodass jedes bergauf gerichtete Segment zum kumulierten Anstieg beiträgt, auch wenn Sie später dieselbe Höhe wieder verlieren. Der Gesamtabstieg summiert jeden Abwärtsschritt als max(0, e(i−1) − ei). Algebraisch gilt: Nettoänderung gleich Gesamtanstieg minus Gesamtabstieg (innerhalb der Gleitkomma-Rundung), was eine nützliche Plausibilitätsprüfung beim Audit von GPX- oder DEM-Extrakten ist.
Die Höhenspanne ist Maximum minus Minimum über die gesamte Serie und erfasst die vertikale Ausdehnung des Geländes, selbst wenn Start und Ende gleich sind. Die gesamte Vertikalbewegung ist Anstieg plus Abstieg und dient manchmal als grober Aufwand-Proxy bei fester Distanz. Diese Fähigkeit wendet weder Kalman-Filter noch Spitzenentfernung noch GPS-Fehler-Schwellen an: Sie meldet, was Ihre Proben aussagen.
Bereinigen Sie verrauschte barometrische Serien vorgelagert, wenn Sie geglättete Trail-Statistiken für Rennregeln oder Trainingslast-Modelle benötigen.
Wer verlässliche Höhenmeter braucht
Trail-Planungs-Apps verwandeln DEM- oder Barometer-Serien in Anstiegs-Badges und Schwierigkeitslabels, bevor sich jemand auf eine Wochenend-Runde festlegt. Organisatoren von Ultramarathons und Gravel-Rennen brauchen reproduzierbaren Gesamtanstieg, wenn Kurskarten wechseln und Freiwillige denselben Track von verschiedenen Geräten neu exportieren. GIS-Notebooks, die Höhenraster entlang einer Polylinie ausschneiden, können diesen Parse-Endpunkt aufrufen, statt Anstieg und Abstieg in jeder Sprachbindung neu zu implementieren.
Fitness-Plattformen vergleichen geplante und tatsächliche Profile nach einer Fahrt, wenn die Abtastrate der Uhr vom Routenplaner abweicht. Fehlgeschlagene Validierung wird nicht berechnet.
Anwendungsfälle
Schwierigkeitslabels für Wanderwege
Speisen Sie geordnete DEM- oder Barometerproben aus einem GPX-Track ein und veröffentlichen Sie Nettoänderung, Gesamtanstieg und Gesamtabstieg auf Routenkarten für Wandernde, die zwischen Runden wählen.
Kurs- und Veranstaltungskarten
Berechnen Sie kumulierten Anstieg und Abstieg neu, sobald die offizielle Kurs-Polylinie geändert wird, damit Athletik-Pakete zum gemessenen Profil passen.
Häufige Fragen
Wie wird der Netto-Höhenunterschied berechnet?
Die Nettoänderung ist die letzte Höhenprobe minus der ersten. Der Gesamtanstieg summiert positive Folgeschritte; der Gesamtabstieg summiert absolute negative Schritte. Identität: net = gain − loss.
Warum ist der Gesamtanstieg größer als die Nettoänderung?
Weil Zwischenanstiege zählen, auch wenn Sie danach absteigen. Ein Hin-und-Zurück, das zum Start zurückkehrt, hat Netto null, aber positiven Gesamtanstieg gleich dem Gesamtabstieg.
Brauche ich Distanz oder GPS-Koordinaten?
Nein. Es sind nur geordnete Höhenproben erforderlich. Distanz, Steigung und Kartenprojektion liegen außerhalb des Umfangs; berechnen Sie sie bei Bedarf separat.
Wandelt unit Meter in Fuß um?
Nein. unit ist ein Anzeige-Label (m oder ft).
Werden verrauschte GPS- oder Barometerwerte geglättet?
Nein. Es gibt weder Filter noch Ausreißerentfernung: Das Ergebnis zeigt genau, was Ihre Messwerte sagen. Ist Ihr Track verrauscht, bereinigen Sie die Reihe vorher, vor allem wenn die Summen in Wettkampfregeln oder Trainingspläne einfließen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/geo/net-elevation-change \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"elevations":[100,120,110,150,140]}'const res = await fetch("https://api.kit.forhosting.com/geo/net-elevation-change", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"elevations": [
100,
120,
110,
150,
140
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/net-elevation-change",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"elevations": [
100,
120,
110,
150,
140
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/net-elevation-change", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"elevations":[100,120,110,150,140]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"elevations":[100,120,110,150,140]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/net-elevation-change", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"elevations": [
100,
120,
110,
150,
140
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.net_elevation_change",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Eingabevertrag, Einheiten, Antwortfelder und Validierung
Weniger als zwei Proben scheitert, weil eine einzelne Höhe keine Änderung definiert. Numerische Felder werden auf zwölf Dezimalstellen gerundet, damit Goldens über JavaScript-Engines stabil bleiben. Kombinieren Sie die Zahlen mit eigenen Distanz- und Steigungsberechnungen, wenn Sie den Prozent-Gradienten brauchen; dieser Endpunkt misst nur vertikale Deltas zwischen aufeinanderfolgenden Proben. Senden Sie einen JSON-Body mit elevations, einem Pflicht-Array aus mindestens zwei endlichen Zahlen in Pfadreihenfolge. Die Aliase samples, profile, values und heights werden akzeptiert und gleich aufgelöst. Jedes Element darf eine JSON-Zahl oder eine numerische Zeichenkette sein; nicht-endliche Werte, leere Slots und nicht-numerische Token scheitern mit invalid_input unter Nennung des fehlerhaften Index. Bei Erfolg enthält der Body sample_count; start_elevation und end_elevation; min_elevation, max_elevation und elevation_range; net_change; total_gain und total_loss; total_vertical; die zurückgegebene unit; sowie eine kurze Formelzeichenkette mit den Identitäten. Beispiel: elevations [100, 120, 110, 150, 140] liefern Start 100, Ende 140, net_change 40, total_gain 60 (20+40), total_loss 20 (10+10), min 100, max 150, Spanne 50 und total_vertical 80.
Wo eine API für den Netto-Höhenunterschied ihren Nutzen zeigt
Weil die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netzwerk.
Integrationsbeispiele
GIS- und Notebook-Automatisierung
Nachdem Sie Höhen entlang einer geplanten Polylinie abgetastet haben, rufen Sie die API auf, um Anstieg, Abstieg und Spanne zu erhalten, ohne die Delta-Schleife in jeder Sprache neu zu schreiben.
Technische Fragen
Was kostet der Rechner für den Netto-Höhenunterschied?
Das Browser-Tool ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingaben werden nicht berechnet.