Mumbai Railways

Extracted railway nodes from OpenStreetMap using the following query on the Overpass API:

[out:json][timeout:120];
(
  relation["railway"="rail"]["name"~"Central|Western|Harbour",i]({min_lat},{min_lon},{max_lat},{max_lon});
  way["railway"="rail"]["name"~"Central|Western|Harbour",i]({min_lat},{min_lon},{max_lat},{max_lon});
)
->.lines;
(
  way(r.lines);
  way.lines;
)
->.all_ways;
.all_ways out body;
>;
out skel qt;

Obtained 594,914.280 m of railway lines from OSM (all lines combined). Exported the data to GeoJSON format (download) and manually traced a total of 544,086.485 m of railway lines (all lines combined) (download updated).

The new lines were added based on the following sources:

Fetched elevation data for all coordinates from the SRTM 90m dataset via the OpenTopoData API.

Elevation heatmap (based on coordinates directly fetched from OSM) can be visualized here.

Updated GeoJSON file with elevation data for all coordinates can be downloaded here.

The GeoJSON file was imported into QGIS, where 199 arcs were traced over the map to extract angles of curvature. The arc information, along with QGIS coordinates, is available here.

These arcs were plotted on the elevation heatmap: here.