↖ CPA Weather Lab
Open-Meteo Elevation API No Key Required
Upload CSV Files

Upload up to 10 CSV files. GeoForge auto-detects lat/lon/elevation columns and sniffs your delimiter. Comment lines starting with # are skipped automatically.

⬆

Drop CSV files here or click to browse

Up to 10 files · .csv / .tsv / .txt · comment lines (#) auto-skipped

Auto-Fetch Elevation from Lat/Lon

Uses the Open-Meteo Elevation API — free, no key, no rate limit. Sends batch requests (up to 100 coords at once). Results are added as a new elev_m column and can also fill existing empty elevation cells.

Options
Overwrite existing elevation values If off, only fills rows where elevation is blank/missing
Add both meters and feet columns Creates elev_m and elev_ft columns
Column Mapping

GeoForge auto-detects common column names. Override any mapping here. These apply globally across all loaded files. Only lat and lon are required.


Extra Description Columns

These columns will be appended to each placemark's description balloon as a table.

Geometry Type
Labels
Show labels on placemarks Visible in Google Earth; hover-only in Maps
Include elevation in label Appends elev value to placemark name
Point / Icon Style
Alpha: /255
Folders & Description Balloon
Group by file into KML folders Each CSV becomes a separate folder/layer
Include data table in balloon Shows all CSV fields on click in Google Earth/Maps
Extrude points to ground Draws vertical line from point to ground (3D)
Export Options
Build Log
Waiting for export…

GeoForge — Quick Start Guide

GeoForge turns CSV data into KML or KMZ files for Google Maps and Google Earth. Follow the tabs left-to-right: Import → Elevation → Column Map → Style → Export.

💡 Elevation lookup is automatic and free — just hit "Fetch Elevation" after uploading. No API key needed.

1 · CSV Format Requirements

The only hard requirements are a latitude column and a longitude column. Everything else is optional. GeoForge auto-detects column names and skips comment lines starting with #.

Minimum viable CSV (points)

lat,lon
40.2645,-76.8835
39.714,-78.611
40.083,-78.516

Typical weather station CSV

station_id,lat,lon,elev_m,dist_mi,bearing
Backyard PWS,40.2645,-76.8835,122,0,—
MID_MD141,39.714,-78.611,,10.76,WSW
KHMZ,40.083,-78.516,,20.1,NNW

Note: empty elev_m cells will be filled by the Elevation tab.

Accepted latitude/longitude column names (auto-detected)

  • lat, latitude, Lat, LAT, y, Y
  • lon, lng, longitude, Lon, LON, LNG, x, X

Accepted elevation column names (auto-detected)

  • elev, elev_m, elevation, alt, altitude, height, elev_ft

Accepted name/label column names

  • name, Name, station_id, id, ID, label, title, site

Delimiter

Comma (,) is assumed. Tab-delimited (.tsv) files also work. GeoForge auto-sniffs the delimiter.

⚠️ If your CSV uses #-prefixed header/comment lines (like Xweather exports), they are automatically skipped — the first non-# line is treated as the header.

2 · Elevation Auto-Fill

GeoForge calls the Open-Meteo Elevation API (api.open-meteo.com/v1/elevation). This is a free, open API with no key required. It returns elevation in meters above mean sea level using the SRTM90 dataset.

  • Requests are batched — up to 100 coordinates per API call
  • A 100-row file = 1 API call. A 1,000-row file = 10 calls
  • By default, only fills empty elevation cells (toggle to overwrite all)
  • Output columns: elev_m (meters) and optionally elev_ft (feet)

💡 After fetching elevation, export as CSV (enriched) to get your original data back with the new elevation column — great for building a permanent enriched station inventory.

3 · Geometry Types

POINTS Default — one placemark per row

Each CSV row becomes a pinpoint on the map. Works with any CSV that has lat/lon. Supports icons, heatmap coloring, and balloon popups.

LINE / PATH Connect rows in order to make a route

Rows are connected as a polyline in CSV row order (or sorted by a column you specify in Column Map → Line/Path order). Use for transects, routes, fronts, or trajectories.

lat,lon,timestamp
40.1,-77.0,2026-05-21T06:00
40.3,-77.2,2026-05-21T07:00
40.5,-77.5,2026-05-21T08:00

POLYGON Closed shape

Like a line but the last point connects back to the first. Rows should define the boundary vertices in order (clockwise = outer ring). Optionally filled.

# Triangle polygon example
lat,lon,vertex_order
40.0,-77.0,1
40.5,-76.5,2
39.8,-76.5,3

⚠️ For polygons, coordinates must form a proper closed ring. GeoForge auto-closes the ring by repeating the first point. Do not manually repeat the first row.

MULTI-FILE Separate layers per file

Each uploaded CSV becomes its own KML Folder (layer). Useful for comparing networks side by side in Google Earth.

4 · Style Options

Icons

GeoForge generates KML Style elements pointing to Google's built-in icon palette. Available shapes: circle, square, diamond, star, flag, or custom URL. The icon color uses KML's AABBGGRR hex format (converted automatically from the color picker).

💡 Google Maps on mobile may not render custom icon URLs — use built-in shapes for broadest compatibility.

Heatmap Coloring

Enable heatmap in the Style tab and map a numeric column (e.g. elevation, distance, temperature) in Column Map → Value. Each point is colored on a gradient from Low→High. Works best with 10+ points.

Labels

Label text comes from the Name column mapping. Label scale 0.8 = slightly smaller than default; 0 = hidden. Note: Google Maps hides labels until you click a placemark — they're always visible in Google Earth.

Altitude Modes

  • clampToGround — ignores elevation, sticks to terrain (default, works everywhere)
  • relativeToGround — elevation value = meters above ground level
  • absolute — elevation value = meters above mean sea level (requires Google Earth)

5 · KML vs KMZ

KMLKMZ
Plain text XML, human-readableZIP archive containing KML + assets
Works in Google Maps (import)Works in Google Earth (best)
Larger file sizeCompressed, smaller
Easy to inspect / editOpaque until unzipped

For most weather station work, KML is fine. Use KMZ when sharing with people who use Google Earth Desktop.

Importing into Google Maps

  1. Go to maps.google.com → My Maps → Create
  2. Click Import on a layer
  3. Upload your .kml file (Maps supports KML, not KMZ directly)

Importing into Google Earth (Web)

  1. Go to earth.google.com
  2. Click the ☰ menu → Projects → New Project → Import KML from computer
  3. Upload .kml or .kmz

Importing into Google Earth Pro (Desktop)

  1. File → Open → select your .kml or .kmz
  2. Or drag-and-drop directly onto the globe

6 · Enriched CSV Export

Choose CSV (enriched) as the export format to download your original data with the fetched elevation columns appended. This is useful for building a permanent enriched station inventory without ever leaving the browser.

# Example enriched output
station_id,lat,lon,dist_mi,bearing,elev_m,elev_ft
MID_MD141,39.714,-78.611,10.76,WSW,573,1880
KHMZ,40.083,-78.516,20.1,NNW,604,1982
No files loaded 0 files · 0 rows | elevation: not fetched
← CPA Weather Lab · Tools