GIS

Geographic Information Systems store, analyse and visualise spatial data. Learn vector vs raster data, coordinate systems and projections, attributes and databases, spatial analysis (buffer, overlay, network, terrain), remote sensing inputs, and GIS for planning, utilities and disaster management.

Where is flooding most likely? Which households are within 500 m of a new metro station? Which pipes are oldest in the most vulnerable areas? GIS answers questions that combine location with data.

Civil engineers use GIS for site selection, infrastructure asset management, environmental assessment, transport planning and disaster response.

An analogy

GIS is a stack of transparent map layers — roads, soils, rivers, population — that a computer can overlay, query and measure together.

Data models

Vector data represents discrete features (points: wells; lines: roads, pipes; polygons: parcels, zones) with attribute tables. Raster data represents continuous surfaces (elevation, rainfall, land cover) as grids. Both are geo-referenced to a coordinate reference system.

Coordinate systems

Geographic CRS (lat/lon, degrees, e.g. WGS84) vs projected CRS (metres, e.g. UTM zones). Mixing CRSs misaligns layers; distances and areas must be computed in a suitable projected CRS.

Spatial analysis

Buffer (zones around features), overlay (intersect, union, clip), spatial join, network analysis (shortest route, service areas), terrain analysis from DEMs (slope, aspect, watershed, flow accumulation), interpolation (IDW, kriging) and suitability modelling with weighted overlays.

Remote sensing, 3D and web GIS

Satellite and drone imagery provide land cover, change detection and DEMs (photogrammetry, LiDAR). 3D GIS and BIM–GIS integration support smart cities and digital twins. Web GIS platforms (QGIS server, ArcGIS Online) share live maps with stakeholders.

Formulas

Worked example: Slope from a DEM

Given: Adjacent cells 30 m apart; Elevation difference 6 m

Find: Slope.

Answer: ≈ 11.3°

Worked example: Road corridor buffer

Given: New road 5 km long; 50 m buffer each side

Find: Approximate corridor area.

Answer: ≈ 50 ha

Buffer and overlay with Python (GeoPandas)

import geopandas as gpd

roads = gpd.read_file("roads.gpkg").to_crs(32643)      # UTM zone 43N (metres)
houses = gpd.read_file("buildings.gpkg").to_crs(32643)
flood = gpd.read_file("flood_zone_100yr.gpkg").to_crs(32643)

# 1) Buildings within 50 m of the new road
corridor = roads[roads["status"] == "proposed"].buffer(50)
near_road = houses[houses.intersects(corridor.unary_union)]

# 2) Which of those lie in the 100-year flood zone?
at_risk = gpd.overlay(near_road, flood, how="intersection")
print(len(near_road), "buildings near road;", len(at_risk), "also in flood zone")
at_risk.to_file("affected_buildings.gpkg")

Always project to a metric CRS before buffering or measuring; geographic (lat/lon) coordinates are in degrees.

Common mistakes

Applications

Key takeaways

Going further