★ New · Grid Infrastructure

PLS-CADD, on the map

Bring a PLS-CADD engineering export onto the map as two FeatureLayers — structures (poles and towers, as POINTs) and conductors (the wire spans between them, as LINESTRINGs) — served through the in-process DuckDB hub, and round-trip the result back to GPKG, GeoJSON, FileGDB, or PostGIS. No more fighting PLS-CADD's coordinate system or hand-mapping structures in ArcGIS.

PLS-CADD XMLKMZKML Structures · POINTConductors · LINESTRING NAD83 / State PlaneWGS84 output GPKGFileGDBPostGIS
The round-trip

Engineering model ↔ GIS, in one click

A transmission engineer exports a structure-coordinate report from PLS-CADD in the project's planimetric CRS (typically a NAD83 / State Plane zone). VoltGrid parses the XML, optionally enriches geometry from the matching KMZ, reprojects to WGS84, and stages both layers into the DuckDB hub — all in-process, no external dependencies for the common case.

  • Two deterministic layers: /FeatureServer/0 = conductors, /FeatureServer/1 = structures — every time, in that order.
  • Never-throws on bad input. A malformed XML or missing KMZ degrades to a { error, detail } 400 response, never a 500.
  • Reproject on ingest. Pick the source EPSG (default 2277 — NAD83 / Texas Central ftUS, the most common US utility export CRS); VoltGrid reprojects to WGS84 before staging.
  • Optional QA report per import (issue codes, error/warning counts) — ported from the standalone CLI analyzer.
POST /api/plscadd/convert (multipart)
// PLS-CADD XML + KMZ → structures + conductors
fields:
  xml         = transmission-line.xml   // required
  kmz         = transmission-line.kmz   // optional enrichment
  sourceSrid  = 2277                   // NAD83 / Texas Central ftUS
  targetSrid  = 4326                   // WGS84

→ 200 OK
{
  "id": "a1b2c3d4",
  "structureCount": 142,
  "conductorCount":  287,
  "dbId": "plscadd_a1b2c3d4",
  "urls": {
    "featureServer": "/api/spatial/plscadd_a1b2c3d4/FeatureServer/0"
  }
}
Round-trip export

Back to your GIS, in any format

Every export rehydrates the staged structures + conductors from the DuckDB hub and dispatches to the right writer. Pick what your GIS team needs — VoltGrid never asks you to flatten the model.

📦

GPKG

Always available. ESRI-schema GeoPackage — StructureJunction (POINT) + ElectricLine (LINESTRING), EPSG:4326. Opens in QGIS, ArcGIS Pro, and the in-app GeoPackage Manager.

🌐

GeoJSON

Always available. WGS84 FeatureCollection of structures + conductors. Drop straight into Leaflet, Mapbox, or any GeoJSON consumer.

🏛

FileGDB

Capability-gated. ESRI FileGDB with the same StructureJunction + ElectricLine schema, zipped for transport. Returns 503 + install hint if the OGR FileGDB driver isn't registered.

🐘

PostGIS

Caller-supplied connection. Writes structures + conductors tables to your PostGIS database. Optional schema override (default public).

Source CRS cheat-sheet

Match the engineer's planimetric CRS

PLS-CADD's structure-coordinate report carries projected x/y columns in the project's planimetric CRS — not lon/lat. Pick the source EPSG that matches the engineer's export and VoltGrid handles the reprojection.

Source EPSGCRSWhen to use
2277NAD83 / Texas Central ftUSThe default. Most US utility PLS-CADD exports ship in this CRS.
4326WGS84 lon/latThe export is already lon/lat (rare for raw PLS-CADD; common if re-exported through GIS).
2275–2286Other NAD83 State Plane zonesMatch the project's State Plane zone (Texas North, South, etc.).
269xxUTM NAD83 (meters)Match the project's UTM zone.

Override per-request via the sourceSrid form field; default configurable in appsettings.json via PlsCadd:DefaultSourceSrid.

Run it forward — sags, clearances, vegetation

Once your structures and conductors are on the map, the Transmission Line Analyzer picks them up for sag-tension, NESC clearance, NERC FAC-003 vegetation, and IEEE 516 live-line work clearances.