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.