GeoAI & Spatial Data Science Interview Guide 2026: PostGIS, Satellite Vision & Foundation Models
Key Takeaways — GeoAI Technical Interviews 2026
- •Core GIS & Coordinate Systems: Distinguish Geographic (EPSG:4326 WGS84 lat/long) vs Projected (EPSG:3857 Web Mercator) Coordinate Reference Systems. Understand why Euclidean math fails across curved ellipsoids.
- •PostGIS & Spatial Indexing: Master GiST (Generalized Search Tree / R-Tree) indexing,
ST_DWithinwith bounding-box pre-filtering,ST_Intersects, and avoiding expensive on-the-fly projections. - •Discrete Global Grid Systems (DGGS): Real-time location engines (Uber, DoorDash, Swiggy) rely on Uber H3 hexagonal hierarchical indexes for constant-time neighbor lookups and uniform spatial aggregation.
- •Geospatial Foundation Models: Shift from training custom U-Nets to fine-tuning multimodal satellite foundation models such as NASA-IBM Prithvi, SatMAE, and Clay for Earth observation and land cover segmentation.
1. Spatial Foundations: CRS, Projections & Geodetics
In GeoAI interviews at companies like Google Maps, Esri, Maxar, Uber, Planet Labs, and autonomous vehicle teams, interviewers start by probing your grasp of Coordinate Reference Systems (CRS):
Geographic 3D Ellipsoid: Coordinates measured in decimal degrees (Latitude [-90 to +90], Longitude [-180 to +180]). 1 degree of longitude at the equator is ~111 km, but shrinks to 0 km at the poles. Straight Pythagorean distance formulas yield massive distortion.
Projected 2D Cartesian: Standard for web mapping (Google Maps, Leaflet, Mapbox). Coordinates measured in planar meters. Preserves angles/shapes locally (conformal) but drastically exaggerates area toward the poles (Greenland appears the same size as Africa).
2. PostGIS & Spatial SQL: Indexing, Joins & Optimization
PostgreSQL + PostGIS is the backbone of production geospatial engineering. You will be tested on writing high-performance spatial queries with GiST indexes.
Crucial PostGIS Anti-Pattern vs Best Practice:
SELECT * FROM stores WHERE ST_Distance(geom, ST_MakePoint(77.59, 12.97)::geography) < 5000;
SELECT * FROM stores WHERE ST_DWithin(geom, ST_SetSRID(ST_MakePoint(77.59, 12.97), 4326)::geography, 5000);
ST_DWithin uses bounding boxes to leverage index trees before evaluating the exact geodesic calculation, making it orders of magnitude faster.
Creating a Spatial Index:
ANALYZE stores;
3. Discrete Global Grids: Uber H3 vs Google S2
Why do ride-hailing and delivery companies (Uber, Swiggy, Zomato, Lyft) partition the globe using hexagons rather than squares?
Why Hexagons (Uber H3)?
- Equal Neighbor Distances: In a square grid, edge neighbors are distance d, while corner diagonal neighbors are distance d * sqrt(2). In a regular hexagon, all 6 immediate neighbors are at identical center-to-center distances!
- Reduced Quantization Error: Hexagonal cells minimize distortion and directional bias when computing dynamic pricing, surge zones, and driver dispatch radius.
- Hierarchical Ingestion: H3 supports 16 resolutions (Resolution 0: ~1,107 km edge to Resolution 15: ~0.5 meters). Every hexagon maps to a 64-bit unsigned integer, fitting seamlessly into Redis and DynamoDB keys.
lat, lng = 12.9716, 77.5946# Bangalore center
hex_id = h3.geo_to_h3(lat, lng, resolution=8) # ~460m edge
neighbors = h3.k_ring(hex_id, k=1) # 6 adjacent hex cells + center in O(1)
print(f"H3 Index: {hex_id}, Neighbors: {len(neighbors)}")
4. Modern Spatial Python: GeoPandas, Shapely & Rasterio
A standard GeoAI coding interview tests your dexterity with spatial data pipelines in Python:
from shapely.geometry import Point
# 1. Read shapefile / GeoJSON
zones = gpd.read_file("urban_zones.geojson")
# 2. Coordinate transformation
if zones.crs != "EPSG:4326":
zones = zones.to_crs(epsg=4326)
# 3. Spatial Join (Point in Polygon)
deliveries = gpd.read_file("orders.csv")
deliveries['geometry'] = deliveries.apply(
lambda row: Point(row.longitude, row.latitude), axis=1
)
deliveries = gpd.GeoDataFrame(deliveries, crs="EPSG:4326")
joined = gpd.sjoin(deliveries, zones, how="inner", predicate="within")
print(f"Mapped {len(joined)} orders to delivery zones.")
5. Computer Vision on Satellite Imagery: Multispectral Bands & SAM
Satellite data is not standard 3-channel RGB. Optical satellites (Sentinel-2, Landsat-8/9) capture 12+ spectral bands, including Near-Infrared (NIR) and Short-Wave Infrared (SWIR):
Normalized Difference Vegetation Index (NDVI):
Healthy vegetation absorbs red light for photosynthesis and strongly reflects near-infrared light from mesophyll cell structures. Values range from -1.0 (water/clouds) to +1.0 (dense tropical rainforest).
Modern GeoAI vision architectures employ Segment Anything Model (SAM) and Mask R-CNN fine-tuned on satellite imagery with bounding box or point prompts to extract building footprints, road networks, and solar panel installations automatically.
6. Geospatial Foundation Models: NASA-IBM Prithvi & SatMAE
Just as GPT transformed NLP, Geospatial Foundation Models are revolutionizing remote sensing:
NASA-IBM Prithvi (HLS Foundation Model)
A Vision Transformer (ViT) pre-trained on Harmonized Landsat and Sentinel-2 (HLS) multispectral data across North America. Using Masked Autoencoder (MAE) self-supervised objectives, it learns temporal, spatial, and spectral representations that transfer to downstream flood mapping, burn scar detection, and crop classification with minimal labeled data.
SatMAE (Temporal Masked Autoencoders for Satellite Imagery)
Extends standard MAEs by incorporating positional embeddings for timestamp and ground sample distance (GSD), enabling the model to ingest multi-temporal image time series across disparate satellite constellations.
7. Top 20 GeoAI Interview Questions & Coding Answers
Q1: What is the difference between Vector and Raster data formats?
Vector: Represents discrete features using explicit coordinates — Points (lat/lng coordinates), LineStrings (roads, rivers), and Polygons (building footprints, administrative boundaries). Stored in Shapefile, GeoJSON, or GeoPackage.
Raster: Represents continuous surfaces as regular grids of pixel values (elevations, satellite reflectance bands, thermal heatmaps). Stored in GeoTIFF or Cloud Optimized GeoTIFF (COG).
Q2: What is a Cloud Optimized GeoTIFF (COG) and why is it essential for cloud pipelines?
A COG is a regular TIFF file structured with internal tiling and pre-computed downsampled overviews. When hosted on cloud object storage (AWS S3, GCP Cloud Storage), client applications use HTTP Range Requests to fetch only the specific bounding box pixels and zoom resolution needed, without downloading multi-gigabyte files.
Q3: How does an R-Tree spatial index accelerate geometric intersections?
An R-Tree groups nearby geometric objects into Minimum Bounding Boxes (MBR) in a balanced tree hierarchy. When evaluating whether a polygon intersects a target geometry, the engine first checks for MBR overlap. Entire branches outside the target bounding box are pruned in O(log N) time, avoiding costly per-vertex intersection math.
Q4: How do you prevent spatial data leakage when training GeoAI models?
Random cross-validation splits cause severe spatial autocorrelation leakage: training pixels adjacent to validation pixels share identical weather, soil, and sensor noise. Instead, apply Spatial Block Cross-Validation or Buffered Geographic Clustered Splits, ensuring a geographic buffer zone separates train and test tiles.
Prepare for Your Machine Learning & Spatial Engineering Round
Practice live voice technical interviews with Sophia. Test your skills on Python, SQL, Machine Learning algorithms, and System Design with instant evaluation and confidence scoring. 100% Free.