Point file tools / 05

Duplicate survey points

Separate repeated point numbers from equal coordinates and nearby observations. Review the source records, preview your choices, and keep a reason for every change.

Read the field guide ↓

Review duplicates without losing observations

Local processing · Explicit decisions

01Read your source

No file selected

02Confirm the interpretation

Northing and easting are required. X/Y headings are deliberately left for you to identify. IDs and elevation may be unmapped; nothing is invented.

These labels describe the input. They do not convert values. Confirm the reference system separately.

Files stay in this browser. Begin with your file or the synthetic example.

Close in plan can still mean different features.

Preserve the evidence behind a duplicate-point decision.

Look beyond the horizontal position.

An upper kerb and a lower gutter can sit close together in plan. Elevation and description help explain why both observations may belong in the file.

Generated editorial photograph of survey chalk crosses on a kerb top and lower gutter

A repeated observation can be useful.

Returning to a control point is a normal part of field work. Keep the original lines and your retention basis when repeated names or coordinates need review.

Generated editorial photograph of a brass control monument and prism beside a countryside survey pillar

Field guide

A careful way to review duplicate and nearby observations

A candidate is a reason to look closer. Use the original records and field context before deciding what the next point file should contain.

Three different reasons a point can need review

Duplicate survey points are not a single kind of problem. Two records may share an identifier while describing different positions. Two different identifiers may contain exactly the same three coordinates. Two observations may be close together without being interchangeable. A reliable review keeps those cases separate, because the appropriate decision depends on the purpose of the observations and the way the field file was assembled.

This workspace finds repeated point IDs, equal northing/easting/elevation values and pairs within a horizontal proximity threshold. You can add a maximum absolute elevation difference to the proximity check. Results are candidates for investigation, not instructions to erase observations. The input stays intact while you inspect groups and prepare explicit record-level decisions. No coordinate averaging, automatic merging or silent last-record replacement takes place.

Prepare the source before searching

Open a UTF-8 CSV or TXT file, or paste a short extract. Confirm the delimiter, header setting and field mapping before reading the source. Comma, semicolon and tab separators are supported, including quoted descriptions containing separators or line breaks. PNEZD, PENZD and custom column arrangements use the same importer. Additional columns remain attached to their original records, even when the candidate table shows only the familiar point fields. XLSX workbooks are also accepted for this input: explicitly choose the worksheet, and replace formulas, dates or error cells with plain values before importing.

Point identifiers are strings. The values 0012 and 12 remain distinct, as do identifiers with different case or surrounding whitespace. Map the northing and easting columns from the export specification; X and Y alone do not establish their meaning. Unit selectors describe the source and do not alter coordinates. Confirm that the file has one consistent planar coordinate background before using distance thresholds. Different datums or local origins need separate reconciliation, not a larger duplicate radius.

Interpret repeated identifiers independently of location

A repeated-ID group includes every record with that exact nonempty identifier. It does not require coordinates to agree. For example, two records numbered 1001 at different positions still form an identifier conflict, and both remain available. That could represent observations from separate crews, a reused number, a control-point repeat or an incorrectly combined file. The software cannot choose which explanation is correct from the ID alone.

Open the group to view source lines, descriptions and coordinate differences relative to its first record. Record identity is based on the source row, so selecting one occurrence of 1001 does not select or modify the other occurrence automatically. If both observations should survive, renumber a specifically selected record and explain why. If the repeated name is intentional, keep the observations and record that basis instead of making the file look unique by deleting evidence.

Understand exact coordinates and missing elevation

The exact-coordinate check groups records whose valid northing, easting and elevation are numerically equal as decimal values. Different formatting, such as 100.0 and 1e2, can therefore describe the same coordinate. Descriptions and identifiers can still differ, so equality of coordinates does not establish equality of the underlying feature or business record. Review those fields before choosing a resolution.

All three coordinates must be available for this check. Two points with the same horizontal location and unknown heights are not labelled exact three-dimensional duplicates. They may still appear in a horizontal-only proximity search. Missing elevation remains unknown; it is never replaced with zero. Likewise, a malformed row or an unavailable horizontal coordinate is retained in the complete source record while the interface reports that it could not participate in the planar search.

Set a distance that answers your review question

Enter a horizontal threshold in the source horizontal units. The distance is calculated from the east and north coordinate differences using the planar vector magnitude. The threshold includes equality. A zero threshold asks for equal horizontal positions; it is not a request to ignore distance. If you also enter an elevation threshold, both heights must be valid and their absolute difference must meet that inclusive limit.

Leaving the height threshold empty means that the search is intentionally horizontal only. It can flag a top-of-kerb observation and a lower gutter observation at the same plan position, or records with unavailable heights. Those can be legitimate separate observations. Manufacturer workflows distinguish horizontal and vertical proximity for this reason. Choose a threshold for your particular review objective and keep its units with the report. The synthetic example values are not recommended survey tolerances.

Reproduce the candidate logic with a small example

Load the built-in synthetic example and read its fields. The first record is point 1001 at northing 5000, easting 2000 and elevation 100. A second record also uses 1001 but lies ten units north and ten units east, so it forms an ID conflict without being a close neighbor at a 0.05-unit threshold. Point A repeats the first record's three coordinates under a different identifier, creating an exact-coordinate candidate.

Point B is 0.04 units north and 0.03 units east of the first record, with elevation 100.01. Its horizontal separation is exactly 0.05 units, so it is included at that threshold. Point C has the same plan position as the first record but is 0.20 units higher. A height threshold of 0.02 excludes that pair from proximity results, while leaving the height threshold empty includes it. Point D has no elevation, making the difference between horizontal-only review and a height-constrained check visible.

Nearby pairs do not define a single merged point

Proximity is not a transitive identity rule. Suppose A is 0.04 metres from B and B is 0.04 metres from C on a straight line, while A is 0.08 metres from C. A 0.05-metre search finds A–B and B–C, but not A–C. Treating the connected chain as one point would make a decision that the distance test does not support. The candidate list therefore represents nearby relationships as individual pairs.

The same source record may belong to an ID group, an equal-coordinate group and several nearby pairs. Candidate counts describe those relationships and do not imply that there are that many removable records. The separate candidate-record count identifies how many distinct source rows are involved. Use a group's original rows to understand the evidence, then select only the records covered by your intended action.

Preview a deliberate decision before changing output

The source table supports paging, a point-ID search and filters for all records, candidate records or a selected group. Selection persists across filters and pages, and the selected-record count remains visible. Select this page selects the displayed records only. Before applying a batch rule, check that count and clear any earlier selection you no longer intend to process. Nothing is preselected for deletion.

Choose keep, ignore the flag while retaining the record, renumber, or delete from output. Every decision needs a reason or retention basis. Renumbering uses your prefix and starting number in source order, preserving the width of leading zeros. The proposed IDs are checked against all retained records, including those outside the current view. Collisions stop the proposal. Preview the changes, confirm the affected count, then press Apply this preview. Changing the proposal invalidates its earlier preview, and only applied decisions affect downloads.

Keep the original evidence with the retained file

The retained point CSV preserves source column order, additional fields, coordinate strings and source record order. It uses comma separators with quoting where necessary. It does not add spreadsheet formula protection because that would change identifiers or description codes expected by another data workflow. Treat this download as a point data file. The separate candidate CSV is spreadsheet-protected and is intended for review, not instrument import.

The complete JSON includes the original file text, parsed records, check settings, candidate groups, every applied decision, deleted records and the retained output. A deletion therefore remains traceable to an original source line and its stated reason. Keep and ignore decisions retain the record without asserting that the observation is accurate. Restore original decisions clears the applied edits and returns all source records to output. The input file on your device is never overwritten.

Know when the search is incomplete

The current input limit is 10 MiB and 100,000 records. An indexed spatial search avoids an unrestricted all-pairs loop for ordinary data. Very dense or unusually broad searches can still produce too many candidate relationships to be useful. The tool stops after a bounded amount of search work or 50,000 nearby pairs, marks the result incomplete, and prevents applying decisions from that run. Narrow the threshold, split the file or disable proximity while investigating identifier conflicts.

An incomplete proximity search never means the unseen records are clean. ID and exact-coordinate checks remain separate, and the full source is retained. Numeric differences that cannot be represented are also counted rather than converted into a passing distance. Long searches run in a worker and can be cancelled with the source preserved. Editing the source or search settings clears old results and decisions so that a previous proposal cannot accidentally be applied to a different interpretation.

Continue the local workflow

After applying a reviewed change, send the retained point file to the checker or viewer. The transfer stays between browser tabs, carries the field mapping and unit labels, and places no coordinate values in the URL. Keep the originating tab open until receipt is confirmed. Download and reimport the file if your browser does not support tab-to-tab transfer.

This page does not clean CAD entities, remove polyline vertices, thin a laser point cloud or adjust observations. It offers a structured way to review point-file records. File contents are not uploaded or automatically persisted. Before closing the page, save the point file and complete review record you need for the next handoff, including any unresolved candidates that still require a field decision.

Questions before you remove a record

Point identity, proximity and keeping a defensible source trail.

Can the tool remove all duplicates automatically?

No. Similarity can represent a legitimate repeat or a different feature at a nearby location. Choose the specific source records, state the reason, preview the effect and confirm the proposal. Every record stays in the original source and complete JSON, including those explicitly removed from output.

What if the same point number has different coordinates?

It is listed as an ID conflict even if the locations are far apart. Both records retain separate row identities. Keep both when appropriate, or explicitly renumber or remove a selected occurrence after checking the field records. No later row silently overwrites an earlier one.

Why can points at the same plan position have different heights?

They can describe different physical levels, such as an upper kerb and a lower gutter. A horizontal-only search deliberately ignores that distinction. Enter an absolute height threshold to restrict nearby pairs, and remember that an unavailable height cannot satisfy that extra condition.

Does a nearby chain represent one duplicate group?

No. A can be near B and B near C while A lies outside the threshold from C. The search records individual pairs. It does not average or merge a connected chain, and candidate relationships never select records for deletion on your behalf.

Will leading zeros and description codes survive?

Yes. Source fields remain text, and unused columns stay attached to their records. Explicit renumbering changes only the selected point-ID fields. The raw point CSV preserves codes, while the separate review CSV protects formula-like text for spreadsheet viewing.

Can I undo an applied decision?

Yes. Restore original decisions discards the current edit decisions and restores every original record to output. You can also replace a specific record decision with Keep and preview it again. Keep the full JSON if you need the original text and decision history outside the current page.

Why did a large proximity search stop early?

The engine bounds search work and nearby output at 50,000 pairs. Dense observations or a broad threshold may reach a limit even with a modest file size. An incomplete warning is explicit, and applying changes is disabled. Refine the search before deciding what to change.

Are the thresholds a survey accuracy standard?

No. They are user-selected search conditions in the source units. Finding two close records does not prove either observation is wrong, and finding no candidates does not certify accuracy. Choose conditions that fit the data handoff and keep unresolved cases for further review.