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.