Data Center Construction Progress from Satellite

Monitor hyperscaler buildouts without site access. Klarety analyzes Sentinel-2 multispectral imagery to detect building footprints, shadow-derived height estimates, and material stockpile changes quarter-over-quarter. Agents classify construction phase automatically. One prompt returns a phased progress report — no GIS license, no site visit.

Construction phase intelligence for real estate investors

Klarety AI
Klarety AI chat composer interface

Phase reports without site visits or GIS setup

Klarety agents run shadow photogrammetry on Sentinel-2 time-series and return phased progress reports with height estimates.

Sentinel-2
Klarety satellite analysis output

Shadow-length height and footprint change detection

Agents compute solar geometry-corrected shadow vectors to estimate building height and detect frame and fit-out phase transitions.

GIS Output
Klarety AI map annotation overlay

Construction layers for real estate portfolio GIS

Export building footprint polygons and height rasters for real estate asset monitoring and capital deployment model integration.

Shadow photogrammetry for data center height tracking

Klarety agents use solar geometry at image acquisition time to compute shadow-length-derived building height estimates from Sentinel-2 at 10m resolution. Footprint area is measured quarterly from SWIR-enhanced building masks. Phase is classified: foundation (no shadow), structural (shadow <10m), fit-out (shadow stable, SWIR low). Output is a height time-series and phase classification table.

Klarety AITrack construction progress at your site
analysis/datacenter_height_tracking.pyAgent code
python
import eeimport numpy as npimport math
ee.Initialize()
# Northern Virginia data center campus AOIaoi = ee.Geometry.Rectangle([-77.48, 38.94, -77.44, 38.97])
def get_shadow_height(start, end):    """Estimate building height from shadow length at known solar angle."""    img = (ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')           .filterBounds(aoi)           .filterDate(start, end)           .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10))           .sort('system:time_start', False)           .first())
    # Solar elevation from image metadata (degrees above horizon)    solar_elevation = ee.Number(img.get('MEAN_SOLAR_ZENITH_ANGLE'))    solar_elev_rad = solar_elevation.multiply(math.pi / 180)
    # Shadow detection: dark pixels adjacent to bright structure    b4 = img.select('B4')    b8 = img.select('B8')    structure_mask = b8.gt(3000)  # Bright metallic rooftop    shadow_mask = b4.lt(800).And(structure_mask.focal_max(5).Not())
    # Shadow length proxy: connected component area / width    shadow_area = shadow_mask.multiply(ee.Image.pixelArea()).reduceRegion(        ee.Reducer.sum(), aoi, 10    ).get('B4').getInfo()
    shadow_len_m = math.sqrt(shadow_area or 0)    height_m = shadow_len_m * math.tan(solar_elevation.getInfo() * math.pi / 180)    return round(height_m, 1), round(shadow_area or 0, 0)
quarters = [    ('2024-07-01', '2024-09-30', 'Q3 2024'),    ('2024-10-01', '2024-12-31', 'Q4 2024'),    ('2025-01-01', '2025-03-31', 'Q1 2025'),    ('2025-07-01', '2025-09-30', 'Q3 2025'),    ('2026-01-01', '2026-03-31', 'Q1 2026'),]
print(f"{'Quarter':<10} {'Est Height (m)':<16} {'Shadow Area (m2)'}")for start, end, label in quarters:    h, sa = get_shadow_height(start, end)    phase = 'Foundation' if h < 5 else ('Structural' if h < 20 else 'Fit-out/Complete')    print(f"{label:<10} {h:<16.1f} {sa:<18} [{phase}]")
output/datacenter_progress_report.mdOutput report
python
# Data Center Construction Progress Report**Site:** Northern Virginia Campus AOI**Source:** Sentinel-2 SR shadow photogrammetry | Quarterly tracking
## Height and Phase Progression| Quarter  | Est Height (m) | Shadow Area (m2) | Phase               ||----------|---------------|------------------|---------------------|| Q3 2024  | 2.1           | 440              | Foundation          || Q4 2024  | 8.4           | 7,056            | Structural (early)  || Q1 2025  | 16.7          | 27,889           | Structural (frame)  || Q3 2025  | 22.3          | 49,729           | Fit-out             || Q1 2026  | 23.1          | 53,361           | Complete            |
## Summary- Total height gain Q3 2024 to Q1 2026: **+21.0m**- Estimated building footprint: **~14,400 m2** (~1.44 ha)- Phase classification: **Complete / operational fit-out**- Rooftop HVAC signature detected in Q3 2025 (cooling infrastructure)
## Drawdown Trigger Assessment- Structural completion: Q1 2025 (trigger: 50% disbursement)- Fit-out complete: Q3 2025 (trigger: 75% disbursement)- Operational ready: Q1 2026 (trigger: final disbursement)
## MethodsSentinel-2 SR 10m. Shadow length at known solar elevation angle.Height = shadow_length * tan(solar_elevation). Confidence: Medium.

Try Klarety now.