Upload GIS data

GeoJSON with points, lines and polygons in any mix. New here? Select Load sample dataset to see every feature at work.

Your GIS data is processed locally in your browser whenever possible. The tool does not intentionally upload your network data to the server for analysis. The optional OpenStreetMap basemap, off by default, requests map tiles for the area you are viewing.

Drag and drop a .geojson or .json file here

or

Boundary optional

A separate Polygon or MultiPolygon file, such as a service area or a licence boundary. The network is measured against it: length inside and outside, and where it crosses. Basic analysis does not need one.

No boundary loaded.

Analysis settings

How the GIS Network & Splicing Analyzer works, and what it assumes

What is a GIS network analyzer?

A GeoJSON viewer shows you shapes. A network analyzer asks what the shapes mean as a network: which cables actually connect, where they branch, where they stop, and which parts are cut off from the rest. It turns every line into edges between nodes, attaches point assets such as splice closures, cabinets and poles to those nodes, and reports what an engineer would check before trusting the data: dead ends, duplicates, crossings without a splice, and sections outside the service area.

What GeoJSON geometry types are supported?

Point, MultiPoint, LineString, MultiLineString, Polygon and MultiPolygon, as a FeatureCollection, a single Feature or a bare geometry, mixed freely. Lines become network segments, points become assets, and polygons become areas you can filter and measure by. Region, province, state and district are not geometry types: they are read from each feature's properties, whatever the fields are called, and the attribute mapping lets you correct the guess. A GeometryCollection is reported and skipped.

How does splicing analysis work?

It uses two sources of evidence and keeps them apart. A point whose attributes say splice, splice_closure or similar, or which carries a splice identifier, is an explicit splice. A node where three or more segment ends meet is a potential splice/junction: the geometry shows a branch, but only records from the field can say whether fibres are spliced there. Each explicit splice is matched to the nearest node within the snap distance, so the table shows its degree and the segments it joins. Lines that cross without sharing a node are never promoted to splices; they are reported as suspicious intersections, because a duct passing under another is not a place fibres meet.

How does network connectivity work?

Line ends closer than the node tolerance (0.000001° by default, about 11 cm) become one node, so two separately digitised cables that meet are joined without relying on exact floating-point equality. A line that ends on another line's vertex is connected there as well. Degree 1 is an endpoint, degree 2 a pass-through node and degree 3 or more a junction. Connected components are then found by walking the graph; the longest is the main network and every other one is reported as disconnected. An endpoint with no asset at it is a dead end, and one that stops within a couple of metres of another line is flagged as a possible undershoot.

How can I analyze a region or province?

Pick values in the Region / Province / District panel beside the map. Filters are built from the values that actually occur in your file, and a filter is hidden when the data has no such attribute. A line or point is kept when its own attributes match, or, where it has none, when it lies inside a polygon that matches. The whole analysis is re-run on the selection, so the map, splice list, issues, statistics, shortest path and report describe that area alone, and the area panel adds its network length clipped to the polygons.

How does shortest path work?

Dijkstra's algorithm with a binary heap, weighted by the geodesic length of each segment. Start and end can be any splice, junction, endpoint, point asset attached to the network, or a location picked on the map (snapped to the nearest node). The route follows edges of the graph only, so if the two ends are in different components the answer is No connected path exists between the selected locations. rather than a straight line across the gap.

Distances, areas and accuracy

GeoJSON coordinates are longitude then latitude in WGS 84 degrees, and degrees are never treated as metres. Lengths use the haversine formula on the WGS 84 mean radius (within about 0.5 % of ellipsoidal distances) and polygon areas use a spherical-excess calculation. Results are shown in metres below one kilometre and in kilometres above it.

Where this comes up in GIS work

  • Quality-checking an OSP or FTTH design export before it goes to construction: dead ends, undershoots, duplicate cables and missing splices.
  • Reconciling splice closures recorded in the field with the junctions the cable geometry actually forms.
  • Finding the parts of a network that are digitised but not connected, which silently break tracing and routing in a GIS.
  • Reporting cable length, splices and issues per district, zone or province for planning or billing.
  • Checking how much of a network lies outside a licence or service-area boundary, and where it crosses.
  • Measuring the cable path between two splice points or from an exchange to a cabinet.

A worked example

Select Load sample dataset and then Analyze dataset. The sample is an illustrative fibre network in Lucknow and Barabanki, Uttar Pradesh, with district polygons, and it is built to contain one of everything the tool looks for:

Features: 30  (Points 9, MultiPoint 1, LineStrings 17, MultiLineString 1, Polygons 2)
Network:  20 nodes · 18 segments · 4 components
Splices:  3 explicit (from splice_id / asset_type) · 3 potential (degree 3+ junctions)
Errors:   1   LKO-BAD-001 has one position; a line needs at least two
Warnings: duplicate LKO-BB-001-COPY · reverse duplicate LKO-BB-003-REV
          0.67 m stub LKO-STUB-001 · undershoot LKO-DS-015 (1.07 m short)
          LKO-DS-014 crosses LKO-BB-002 without a node · Barabanki ring disconnected

Set District to Barabanki and the analysis narrows to that district: 3 segments, 10.29 km, one explicit splice. Load the sample boundary and choose Uploaded boundary file to see the backbone leave the service area once. A shortest path from SP-001 to the Barabanki exchange reports No connected path exists between the selected locations., because nothing links the two networks.

Using the GIS Network & Splicing Analyzer

  1. Drop a .geojson or .json file on the upload area, choose Browse file, paste GeoJSON, or select Load sample dataset.
  2. Optionally add a boundary file (a service area or licence polygon) and adjust the node tolerance under Analysis settings.
  3. Select Analyze dataset, or press Ctrl + Enter. Files and the sample are analysed as soon as they load.
  4. Check the detected geometry and the attribute mapping; correct any field the tool guessed wrongly and select Apply mapping.
  5. Work through validation, the network overview, splices, connectivity and issues. Select any row to find it on the map.
  6. Pick a region, province or district beside the map to narrow every panel to that area.
  7. Choose a start and end (or pick them on the map) and select Find shortest path.
  8. Download the JSON report, or the issues, splices, segments and route as CSV.

When the output looks wrong

Lines that touch on the map are listed as disconnected
Their ends are further apart than the node tolerance, or one line ends part-way along another without a vertex there. Raise the tolerance under Analysis settings, or look for Unconnected endpoint warnings: each names the line it nearly meets and the gap in metres.
Every point is an Unknown Point Asset
No field the tool recognises holds the asset type, or it uses words the tool does not know. Open Attribute mapping and set Asset type field to the column that holds it, and Splice ID field to the one that identifies splices; a point with a splice identifier is treated as an explicit splice.
The Region / Province / District panel is empty
Filters are built only from attributes that exist, and the tool could not match any field name to an administrative level. If your data calls the district dist_nm or ward_name, choose that field in Attribute mapping and the filter appears.
Filtering to a district removes most of the network
Lines without the district attribute are kept only when they lie inside a polygon for that district. If the file has no district polygons, set Match network by to Feature attributes only, or add the boundary polygons to the file.
Hundreds of Suspicious intersection warnings
Lines that cross without a shared node are reported because they are either a missing splice or two routes passing each other. In duct or aerial data with many legitimate crossings, switch the check off under Analysis settings and concentrate on the remaining findings.
Latitude or longitude is out of range
GeoJSON must be longitude then latitude in WGS 84 degrees. Values such as 450123.5 are projected metres (for example UTM), and a latitude above 90 usually means the pair is swapped. Reproject to EPSG:4326 first, for example with the ST_Transform tool.

Questions about the GIS Network & Splicing Analyzer

What GeoJSON geometry types are supported?

The tool supports Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon and FeatureCollection datasets, including a mix of all of them in one file. A GeometryCollection is reported and skipped.

Can I analyze fiber network data?

Yes. LineString and MultiLineString features can be analyzed as network segments, while Point features can represent network assets such as splice locations or equipment. Lengths are geodesic, so a cable length is in metres on the ground, not in degrees.

Can the tool detect splice points?

It can detect explicit splice points from source attributes and identify potential splice/junction locations from network geometry. The two are kept apart: a node where three or more segments meet is only a potential splice until your records confirm it.

Can I analyze a province or district?

Yes, when administrative information exists in the GeoJSON properties. The tool can dynamically create filters based on available attributes, whatever the fields are called, and features without the attribute are matched by the polygon they lie in.

Can I find disconnected cables?

Yes. The network graph can identify disconnected components and isolated segments, and flags dead ends and endpoints that stop just short of another line.

Can I calculate the shortest path?

Yes. The tool can calculate a shortest path between connected nodes using segment distance as the default weight, with Dijkstra's algorithm. If the two ends are not connected it says so rather than drawing a line across the gap.

Does the tool require a database?

No. The core analysis is designed to run client-side. The page loads its scripts from this site, and the analysis, the map and the report are produced in your browser.

Is my network data uploaded?

Your GIS data is processed locally in your browser; the tool does not upload it to our server for analysis. The one request that reveals anything about it is the optional OpenStreetMap basemap, which is off by default and, when switched on, fetches map tiles for the area you are viewing from openstreetmap.org.

How large a file can it handle?

Files up to 50 MB can be opened. Tens of thousands of segments analyse in a few seconds on a typical laptop; the practical limit is your device's memory and the map's drawing speed rather than a fixed feature count.