Field guide
Extract profiles without inventing terrain between them
Check the source, calculation convention, exceptions and output before continuing your workflow.
Start with an existing surface, not an unordered point cloud
A terrain cross section generator is useful when you need a ground profile at a known line or a set of chainages. A point list alone does not define how the terrain connects between measurements. This tool requires a LandXML TIN with explicit vertices and triangle faces, and follows those original connections. It does not build a new triangulation from scattered survey points.
Select a LandXML 1.1 or 1.2 surface after reading the file. Existing ground and finished grade may coexist in the same document. Choose the appropriate object and record the revision before generating profiles. A point group can be inspected with the LandXML viewer, but cannot substitute for a surface whose triangles are missing.
Define the baseline and its direction
Enter the planar Easting and Northing of two distinct points, A and B. The current version uses one straight baseline from A toward B. Its length is the horizontal coordinate distance. The station entered for A becomes the starting chainage; moving toward B increases station by distance along this straight line. Use a numeric chainage, not formatted road notation such as K1+250.
The baseline coordinates must share the surface's horizontal reference and units. This page does not guess a projection, transform longitude and latitude or apply a ground-to-grid factor. Reversing A and B reverses the direction of travel, changes the station relationship and swaps the physical left and right sides. Confirm the direction on the source plan before interpreting offsets.
Choose a longitudinal profile or cross sections
Longitudinal mode cuts the surface along the complete A-to-B line and labels its horizontal axis with station. Widths and the list of cross-section stations do not apply in this mode. A baseline can extend outside the mesh; the uncovered portions remain explicit gaps, so its entire requested extent is accounted for.
Cross-section mode constructs a perpendicular line at each entered station. Supply one to two hundred distinct numeric chainages separated by spaces, commas or semicolons. Each must lie on the baseline extent. Left and right widths are measured from that baseline position. Widths may differ, and either may be zero, provided their sum is positive.
Read left and right offsets consistently
Face from A toward B. Negative cross-section offsets lie to your left, and positive offsets to your right. The centerline has offset zero and is retained as a breakpoint when the requested widths span both sides. For an eastbound baseline, left is north and right is south. For a northbound baseline, right is east.
The graph runs from negative toward positive offset. Its left side therefore represents the defined left side of the baseline, rather than always representing west on a map. This distinction matters when comparing sections produced with opposite baseline directions. Keep the A and B coordinates, starting station and widths in the report so another person can reproduce the orientation.
Preserve original terrain slope breaks
A TIN is piecewise planar. Along a straight cut, elevation varies linearly inside each triangle, but the slope can change where the cut crosses an original triangle edge. The calculation intersects the cut with those edges and with supported surface boundaries. These intersections are included even when no extra regular sampling interval is requested.
You can add regular samples by entering a positive interval. Zero means use the original geometry breakpoints only. Regular samples add detail to a table; they do not replace the necessary edge intersections. Sampling a ridge at widely spaced points and joining only those samples could miss its crest. Retaining original mesh transitions avoids that particular loss of shape.
Keep uncovered intervals visibly separate
Triangles marked invisible do not contribute heights. Supported outer rings limit the usable surface, and hide rings exclude holes. A cut can enter and leave coverage several times. Each unsupported interval stays in the result with its reason and blank endpoint heights. The plotted line stops at gaps instead of extending the nearest slope across them.
The rectangle around all source points is not the true surface coverage. A line inside that rectangle may still cross an unmeshed opening, a hidden region or overlapping triangles with ambiguous heights. Pink shading in the profile identifies unresolved spans. Review their statuses in the table rather than treating an empty value as zero elevation or a flat ground segment.
Understand endpoint heights at boundaries
Every output row represents an interval between two breakpoints. For a valid interval, its endpoint heights are the limiting values of the triangle plane approached from inside that interval. This allows a profile to reach the edge of known terrain without inventing a connecting segment across an excluded area.
A point exactly on a hide boundary remains excluded by the surface query rules. The section's one-sided endpoint limit does not override that rule or certify a usable height at the boundary itself. If a construction point requires a design elevation at that exact location, use the point-to-surface checker and review its status. Isolated vertex touches do not constitute a continuous covered interval.
Confirm the unit and vertical reference
The selected surface must declare metres, international feet or US survey feet. Use that same linear unit for baseline coordinates, chainages, widths, sample intervals and elevations. Choosing a label does not convert numbers. The source XML's Northing/Easting order is read into explicitly named Easting and Northing controls to reduce axis ambiguity.
Record the design revision, planar reference and vertical datum in the note. A plausible-looking shape cannot prove that the right surface was selected. This page does not change geoid models, reconcile benchmark datums, interpret an alignment's station equations or rotate a local coordinate system. Resolve those relationships in the source workflow before combining outputs from separate projects.
Inspect the graph with a known exaggeration
Choose a generated profile from the preview selector. Vertical exaggeration sets the ratio between vertical and horizontal drawing scales, from 0.1 to 100. A value of one uses equal scale per coordinate unit on both axes. Larger values make small elevation changes easier to see, but the drawn slope then looks steeper than the physical ground slope.
The graph labels its unit and exaggeration. It fits the available frame while preserving the chosen ratio, so very flat or very steep profiles may leave empty space. SVG can be resized after download; it is not a certified engineering print scale. Use the numeric table for coordinate decisions and preserve the stated exaggeration when including the picture in a report.
Check the simple planar example
The synthetic example is a square metre-based TIN with elevation equal to 100 plus 0.1 times Easting plus 0.2 times Northing. With A at Easting zero, Northing five and B at Easting ten, Northing five, the longitudinal profile rises from 101 to 102. It includes the shared triangle edge at station five even though the two triangle planes agree there.
At station five on that eastbound baseline, a four-unit left width starts at Northing nine and a four-unit right width ends at Northing one. The respective elevations are 102.3 and 100.7. Reverse the baseline to check that the physical left and right sides swap. These are deliberately simple test values, not an example of a measured field alignment.
Export intervals that another person can reconstruct
CSV and XLSX include all profiles, interval indices, station or offset ranges, endpoint Easting and Northing, endpoint elevations, status, original face records and unit. Shared endpoints may appear in adjacent rows because each row describes a separate interval. Do not deduplicate them without retaining their interval relationships, particularly near gaps or changes of contributing face.
Download the current profile as SVG for a visual handoff. JSON retains the original LandXML, complete baseline settings, selected surface metadata and all calculated intervals. Inputs are processed locally in a cancellable worker. A report containing gaps is downloadable after review, because the purpose is to preserve the requested extent and explain what could and could not be resolved.
Use the result within its supported scope
The current limits are a ten-MiB LandXML file, two hundred profiles, fifty thousand total output intervals and ten million edge/section combinations. Excessive requests stop with a message instead of returning an undocumented partial result. Split the station list or reduce unnecessary regular sampling when the workload is too large; original mesh edges still need to remain in the profile.
Curved road alignments, ordered multi-segment centerlines, crossfall templates and earthworks volumes are outside this version. A section describes one surface along a line. It does not establish a design corridor, integrate the area between two surfaces or compute cut and fill between stations. For those tasks, keep the original surfaces and use a workflow that explicitly handles boundaries, alignment geometry and integration.