Point file tools / 09

Filter survey points

Prepare the point subset needed for the next task, see why each record is included, and keep the rest available in a separate file.

Read the field guide ↓

Extract a subset and keep its complement

Local processing · no source values changed · every input record accounted for

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.

Deliver the selected area with a clear record of the rest.

Generated editorial scenes show the context, not measurements or legal limits.

Prepare the subset the next crew needs.

Keep the full project source, then document the exact rules used to extract one work area.

Generated editorial photograph of a small marked work zone within a larger construction site

Make every inclusion explainable.

Check coordinate limits and edge points before exporting a selected set and its complement.

Generated editorial photograph of a surveyor beside a gravel path and grassy field

Field guide

Extract the right records without changing their measurements

Define a selection as a reproducible set of conditions, then reconcile it with the complete source.

Create a useful subset from an existing point table

Filter survey points when a full project export contains more information than the next crew needs. You might need one number range for a handoff, a group of feature descriptions for drafting, points within a rectangular work area, or observations with elevations in a specified band. The tool evaluates the conditions against your existing point records and produces a selected set and its complement.

Filtering does not improve measurement accuracy, certify a work area or decide that an unselected point is wrong. It also does not extract points from a drawing or remove noise from a laser point cloud. Start with an already exported CSV or TXT point table. Every original field remains unchanged; the task is to decide which complete records go into each output file. XLSX workbooks are also accepted for this input: explicitly choose the worksheet, and replace formulas, dates or error cells with plain values before importing.

Interpret the columns and units first

Import UTF-8 text using comma, semicolon or tab separation, with or without a header. Confirm the point identifier, northing, easting, optional elevation and description columns. Quoted delimiters and multi-line descriptions are supported. Additional columns remain with their source rows. Files may contain up to one hundred thousand point records and 10 MiB of input; the resulting CSV files are also limited to 10 MiB each.

Horizontal and elevation units are labels for the values already present. Choosing feet does not convert metres. Coordinate windows expect planar coordinates in the source horizontal units, while elevation limits use the selected vertical unit. The plot has north upwards and east to the right, with no basemap or coordinate-system recognition. Do not treat longitude and latitude as a local engineering grid.

Separate numeric point ranges from text identities

A numeric point range accepts unsigned digit-only identifiers and inclusive endpoints, such as 100-150 or a comma-separated list of intervals. In this deliberately numeric comparison, 001 and 1 represent the same value. The original spelling is still preserved in both output files. Identifiers with letters, signs, spaces or decimal points do not satisfy numeric ranges, and values beyond thirty digits are not accepted as numeric IDs.

Text ID matching is a separate enabled condition. It can require an exact complete identifier, a literal prefix or a literal contained string, and it is case-sensitive. An exact text query for 001 will not select 1. The asterisk has no special wildcard meaning here. If you enable both the numeric range and the text condition, their relationship is determined by the ALL or ANY setting rather than by an undocumented precedence rule.

Select descriptions without rewriting them

Description selection supports a complete-value match, a literal prefix or a contained substring. Choose whether case matters. The comparison can ignore letter case without changing any description in the source or export. This differs from the separate code editor, which creates a revised description column after explicit confirmation. The filter never substitutes a normalized label into the output.

Use the missing-description condition to select null, empty or whitespace-only values, and the present condition to select nonempty descriptions. A normal text comparison does not invent text for missing values. If your source uses compound field codes, choose the intended matching mode carefully: a contains query for EP can legitimately match a longer string containing EP, while exact matching selects only that complete description.

Handle elevation ranges and missing heights explicitly

An elevation range requires at least one finite limit. Leave the other limit blank for an open-ended interval, and keep minimum less than or equal to maximum. Elevation endpoints are included. Comparisons use the parsed numeric values without rounding them to the number of decimals visible on screen. An empty height never becomes zero, so it cannot accidentally satisfy a zero-height band.

There are separate conditions for missing elevation and valid elevation present. When a range needs a value that is absent, the normal rule is that this condition fails. Under ANY, another enabled condition can still select that row, and inversion can select a row that did not match. If missing comparison values must never enter the deliverable, choose the policy that keeps those rows unselected even after inversion. Explicit missing-value conditions remain available under either policy.

Use a coordinate window or draw one on the plot

Enable the coordinate-window condition and enter east and north limits. Each blank limit is open-ended, but at least one limit must be supplied. All supplied limits belong to one rectangular-area condition: a point must satisfy both axis ranges to match it. The window is then combined with the other enabled conditions using the selected ALL or ANY logic.

You can drag between opposite corners on the point plot to fill these limits. Drawing a window changes the condition and invalidates the previous preview; it does not immediately export records. Enter the numerical limits directly when you have an exact work-area specification. Use full coordinate extent to fill the limits from the data. This first version supports rectangles, not arbitrary polygons, parcel boundaries or geographic map selection.

Decide what should happen at the edges

The include-boundary option decides whether points exactly on a supplied window edge match the area condition. With it enabled, a point equal to the minimum or maximum is included. With it disabled, supplied boundaries are strict. Equality is tested against the numeric source values, not display rounding or the size of a dot on the plot. A zero-width window can therefore match a coordinate line only when its boundary is included.

Dragging is a convenient visual starting point, but the apparent centre of a marker is not a substitute for an exact numerical limit. Review the populated bounds before confirming. Click a plotted point to locate its source row, or select a source-line button in the table to highlight that record. Coincident points remain separate rows; the keyboard inspection controls and table let you review them individually.

Read ALL, ANY and inversion in the right order

ALL requires every enabled condition to match. ANY requires at least one. Inversion is applied once to the complete combined result. For example, selecting a number range AND a description, then inverting, selects records outside that combined intersection; it does not require every individual condition to fail. This distinction matters when extracting exclusions or checking what a delivery leaves behind.

Source records with validation errors are always unselected, regardless of these Boolean choices. They remain in the complement and in the complete JSON report, with the original diagnostics. The optional always-unselected missing-value policy is also applied after inversion. Those guards are reported separately from ordinary failed comparisons, so the selected and unselected counts still account for every input record.

Reproduce the five-record selection example

The synthetic example contains identifiers 001, 1, CP1, 3 and 4. Their descriptions are EDGE, edge, TREE, blank and EDGE; their elevations are 10, missing, 20, 30 and 40. The first four points occupy the corners of a ten-by-ten coordinate square, and point 4 is at its centre. Each row also carries an extra Note value, which stays with it throughout filtering.

Set numeric ID range to 1 and description to exact EDGE with case sensitivity on. ALL selects only 001; ANY selects 001, 1 and 4. Inverting that ANY result selects CP1 and 3. Reset the conditions and use the full square as the coordinate window: including the edges selects five records, while strict edges select only the centre point 4. In every case, selected count plus unselected count equals five.

Confirm, export and verify the complete result

The preview shows each record, its selection state and the conditions that passed or failed. Use the table search to inspect particular identifiers, but remember that preview search and pagination do not change the computed selection. Once you confirm the result, the selected and unselected download buttons become available for nonempty sets. An empty selected set is a valid outcome, not permission to substitute all points.

Both point CSV files preserve original column order, field strings, duplicate identifiers and source ordering, with comma separators and the original header presence. The unselected file may contain invalid source rows and should be treated as a review file. The selection audit protects formula-like text for spreadsheet reading; the literal point files do not add those protective characters. The complete JSON preserves input, rules, per-record decisions, counts, version, timestamp and confirmation state.

Keep the source available for the next decision

Changes to source data, fields or conditions invalidate old outputs. Cancel stops the background task while retaining your input. Discard the preview to return to an unchanged source-based workspace, or clear the input to remove the current session data. The full source is never shortened in place by confirming a subset. Keep the original file and the report beside any selected deliverable.

Confirmed selected points can be passed locally to the checker for another format review. There is no coordinate-file upload service and no automatic project storage in this tool. A browser session is not a backup, and downloaded files are managed separately on your device. The subset describes your chosen conditions; it does not certify that the selection is sufficient for design, construction or any legal purpose.

Point selection questions

How IDs, area limits, missing values and exports interact.

How do I export only a point-number range?

Enter an inclusive numeric ID range, leave unrelated conditions off, build the preview and confirm. Numeric comparison treats 001 and 1 as equal values while preserving their original text. Use exact text matching if only one spelling should be selected.

Can I filter by a code without changing descriptions?

Yes. Choose exact, prefix or contained text, and decide whether case matters. These settings affect comparison only. The selected point file keeps every description exactly as it appeared in its original field.

How can I extract one work area?

Enter east and north limits or drag a rectangle on the plot, then rebuild the preview. Confirm whether boundary points are included. The area is a planar coordinate window, not a polygon, a parcel boundary or a georeferenced map.

Why did an empty elevation appear after inversion?

A missing height fails a normal elevation-range condition. Inverting a failed combined match can select that row. Use the always-unselected missing policy to prevent this, or use the explicit missing-elevation condition when missing heights are the records you want to inspect.

What is the difference between ALL and ANY?

ALL is the intersection of enabled conditions. ANY is their union. Inversion is applied to that combined result once, followed by the source-error and optional missing-value guards. The JSON stores these choices and each row’s comparison results.

Does selecting a subset delete the remaining points?

No. The complete source remains available, and the complement can be downloaded separately. The two counts reconcile with the input. Rows with errors remain in the unselected review file rather than disappearing silently.

Does searching the preview reduce the downloaded set?

No. It only helps you inspect the computed records. Selection rules define both downloads. This prevents a table search or a different page number from silently changing a previously confirmed deliverable.

Can I use this as a point-cloud filter or CAD extraction tool?

No. It accepts supported delimited point tables within the stated file and record limits. It does not read drawing entities, classify laser returns, remove statistical outliers or determine whether a measured point is accurate.