lsdtt3 outputs and the plots that read them¶
lsdviztools3 never computes topographic metrics: every chart and map is a view
of a file lsdtt3 wrote. This table is the linkage — which CLI, which switch,
which file, which columns, which loader, which plotter. Filenames are shown
with the <stem> = lsdtt3 write_fname prefix stripped.
| lsdtt3 CLI | Switch that writes it | Output file | Key columns / bands | Loader | Plot function |
|---|---|---|---|---|---|
lsdtt-raster-preprocessing |
write_hillshade_raster |
_hillshade.tif |
single band | (path) | render_hillshade (Hillshade) |
lsdtt-raster-preprocessing |
write_fill_raster / default |
_fill.tif, _remove_seas.tif |
elevation | (path) | base layer for every map; render_relief3d (3D perspective relief (rayshader-style)) |
lsdtt-channel-extraction |
write_channel_network_lines |
_channel_network_lines.fgb |
stream_order |
load_vector |
render_channels (Channel network coloured by log₁₀ k_sn) |
lsdtt-channel-extraction |
write_channel_network_points |
_channel_network_points.fgb |
flat, row, col, stream_order, drainage_area — the .csv form omits drainage_area, so ask for flatgeobuf/gpkg if you want to size points by it |
load_vector |
render_points (Points sized by drainage area) |
lsdtt-channel-extraction |
write_channel_slope_points |
_channel_slope_points.csv (or .fgb/.gpkg) |
drainage_area_m2, flow_distance_m, elevation_m, smoothed_elevation_m, slope_m_per_m, slope_valid, slope_window_length_m |
load_channel_points |
lsdviz3-channel-slopes, charts.channel_slopes (Smoothed channel profiles and slopes) |
lsdtt-channel-extraction |
run_channel_point_attributes |
_channel_points.csv (or .fgb/.gpkg) |
every input attribute, then original_x, original_y, snap_distance_m, snap_status, snapped_flat, contributing_pixels, drainage_area_m2, flow_distance_m, elevation_m, smoothed_elevation_m, slope_m_per_m, slope_valid, slope_window_length_m |
load_channel_points |
lsdviz3-channel-slopes --field-points (Smoothed channel profiles and slopes) |
lsdtt-basin-extraction |
write_basin_outlines (+ _as_polygon) |
_junction_basin_polygons.fgb |
basin id | load_vector |
render_basins (Basins) |
lsdtt-basin-extraction |
select_basins_from_line_crossings |
_line_crossing_basins.csv |
outlet, centre of mass, area, outlet→COM bearing, fault azimuth, side, relative bearing | load_table |
rose_diagram, plot_distributions (Python workflows) |
lsdtt-chi-analysis |
write_fit_tables |
_chi_fit_nodes_mn_*.csv |
basin_index, chi, observed_elevation, fitted_elevation, branch_id (no k_sn) |
load_chi_fit_nodes / load_chi_fit |
plot_chi_stacked, plot_chi_profile (Chi profiles) |
lsdtt-chi-analysis |
write_fit_tables |
_chi_fit_segments_mn_*.csv |
basin_index, branch_id, downstream_chi, upstream_chi, k_sn |
load_chi_fit_segments |
plot_chi_stacked, plot_chi_profile |
lsdtt-chi-analysis |
write_chi_fit_segment_lines |
_chi_fit_segment_lines_mn_*.fgb |
as above + geometry | load_chi_segment_lines |
plot_chi_*; render_chi_ksn_map / render_chi_ksn_relief3d (Channel network coloured by log₁₀ k_sn) |
lsdtt-chi-analysis |
write_chi_data_maps |
_chi_data_maps.fgb |
chi, elevation, drainage_area, flow_distance, basin_key, source_key |
load_chi_points |
observed= overlay (Overlaying observed points); render_points |
lsdtt-chi-analysis |
write_ksn_basin_summary |
_chi_ksn_basin_summary_mn_*.csv |
per-basin k_sn statistics | load_table |
— (tabular) |
lsdtt-swath-profile |
default | _swath_profile.csv |
along_axis_centre, n_pixels, mean, p0…p100 (21 levels, step 5) |
load_swath |
plot_swath (Swath profiles) |
lsdtt-channel-network-analysis |
write_channel_link_bearings |
_channel_link_bearings.csv/.fgb |
bearing_deg, bearing_rad, stream_order, drainage_area_m2, total_length_metres, fit_linearity, … |
load_table / load_vector |
rose_diagram, plot_circular_comparison (Rose diagrams (bearings)–Circular / directional comparison) |
lsdtt-channel-network-analysis |
write_junction_angles |
_junction_angles.csv/.fgb |
donor_opening_angle_rad, donor_*_receiver_angle_rad, per-limb *_bearing_deg, *_order, *_area_m2 |
load_table, load_junction_angle_sets |
plot_distributions (Distributions), plot_junction_angle_cdf |
lsdtt-channel-network-analysis |
write_area_scaling_summary |
_area_scaling_summary.csv, _area_scaling_curve.csv |
beta (MLE), beta_stderr, beta_ols, n_used, n_decades — check this before quoting beta |
load_area_scaling, load_area_scaling_curve |
plot_metric_panels, plot_metric_vs_temperature |
lsdtt-ridgeline-analysis |
write_paired_flowpath_statistics |
_paired_flowpaths.csv, _paired_flowpaths_summary.csv |
delta_L, delta_chi, path_length_a/b; summary adds n_pairs and the rejection counts — read those before the median |
load_paired_flowpaths, load_paired_flowpath_pairs |
plot_delta_L_cdf, plot_metric_panels |
lsdtt-channel-network-analysis |
write_junction_centre_of_mass_bearings |
_junction_com_bearings.csv |
outlet→centre-of-mass bearing | load_table |
rose_diagram |
lsdtt-channel-network-analysis |
write_channel_bearing_statistics, write_junction_angle_statistics |
_channel_bearing_group_summary.csv, _channel_bearing_comparisons.csv, _channel_bearing_rose.csv, _junction_angle_group_summary.csv, _junction_angle_comparisons.csv |
per-group circular statistics; circular Wasserstein + Kuiper between groups | (path) | lsdviz3-channel-bearings (Channel networks); annotation= for plot_circular_comparison |
lsdtt-flat-surface-finder (older versions only) |
write_hand_profile_csv (retired) |
_hand_profile.csv |
HAND, distance, surface_class (1 = floodplain, 2 = terrace) |
load_table |
plot_hand_distance and the rest of Valley floor / HAND charts |
lsdtt-valley-centreline |
write_valley_cross_sections |
_valley_cross_section_samples.csv |
per-sample offset, elevation, section id | load_table |
Valley cross sections |
lsdtt-valley-centreline |
write_cross_section_features |
_valley_cross_section_hydraulic_breaks.csv |
break HAND per section and rank | load_table |
Hydraulic breaks |
lsdtt-lem |
frequency_of_output_writing, write_erosion_rate_raster, write_channel_mask_raster |
_model_iteration_<N> rasters, _model_elevation_stats.csv |
elevation, erosion rate, channel mask, model time | find_pulse_frames / find_transient_frames |
animate_lem_pulse, animate_transient_rasters (lsdviz3-lem-pulse, lsdviz3-animate) |
lsdtt-lem |
channelization-index ladder run | _model_iteration_<N> rasters, _initial_topography, _model_elevation_stats.csv |
elevation, CI history | find_ci_frames |
animate_ci_run (lsdviz3-lem-ci) |
lsdtt-fluvial-surfaces |
default / write_ladder_histograms_csv |
_ladder_windows.csv, _ladder_histograms.csv, _band_index.tif |
per-window breaks, level centres, status; HAND densities; band index | (path) | plot_ladder_windows, plot_ladder_density, plot_ladder_band_map (Fluvial-surface ladder and valley sections) |
lsdtt-valley-centreline |
write_valley_cross_sections |
_valley_cross_sections.fgb, _valley_centreline.fgb, _valley_cross_section_sides.fgb |
section geometry, centreline, margins | (path) | plot_valley_sections, plot_valley_section_map (Fluvial-surface ladder and valley sections) |
lsdtt-valley-centreline |
run_valley_width_network |
_valley_widths.csv, _valley_segments.csv, _valley_cross_sections.fgb (with segment_id, excluded_reason) |
width per station, channel tree, exclusions | (path) | plot_valley_width_map, plot_valley_widths_along_channel, plot_channel_and_centreline (lsdviz3-valley-widths, Fluvial-surface ladder and valley sections) |
lsdtt-hillslope-channel-coupling |
default | trace / ridgeline / hilltop outputs | trace outcome, hillslope length, relief, E, R | load_hilltop_outputs |
charts.hilltop_coupling, plot_estar_rstar (lsdviz3-hilltop-coupling, lsdviz3-estar-rstar) |
lsdtt-cosmo-column-tool |
step_change_sweep |
cosmo_transient_sweep_<label>.csv, _joined_samples.csv |
normalised concentrations, apparent-rate ratios | load_cosmo_transient_table, load_joined_samples |
Transient cosmogenic and landslide charts (lsdviz3-cosmo-transient) |
lsdtt-spectral-analysis |
valley spacing | _valley_spacing.csv, _valley_spacing_spectrum.csv |
spectrum, peaks, spacing measures | load_valley_spacing, load_valley_spacing_sweep |
plot_valley_spectrum, plot_spacing_vs_ci (Spectral analysis) |
lsdtt-spectral-analysis |
write_significant_frequencies_2d (default on) |
_significant_frequencies_2d.csv (legacy: _significant_freq.csv) |
bearing, frequency, wavelength, normalised PSD per significant 2D cell | load_significant_frequencies_2d, load_significant_frequencies_2d_sweep, summarise_significant_frequencies_2d (io.spectral) |
plot_significant_frequencies_polar (Spectral analysis) |
lsdtt-spectral-analysis |
write_radial_spectrum: true, write_2d_spectrum_rasters (default on) |
_radial_spectrum.csv, _significant_frequencies.csv, _psd_2d.tif, _background_psd_2d.tif, _significant_frequencies_2d.csv |
radial and 2D spectra, rollover, significant cells | load_spectral_analysis (io.spectral) |
plot_spectral_tile_summary, plot_normalised_spectrum_2d, plot_radial_spectrum (Spectral analysis) |
lsdtt-stream-burning |
stream_burn_mode: burn_to_corridor, write_burned_profiles_csv (default on) |
_burned_profiles.csv |
path_id, path_rank, name, distance_m, flow_distance_m, z_original, z_cleaned, z_profile, z_final, pit_filled, pit_id, is_record_low, is_rejected_low, chi, joins_path_id, join_distance_m |
read_burned_profiles, select_course |
plot_burned_profiles (lsdviz3-burned-profiles, Burned long profiles) |
lsdtt-divide-migration |
default | divides, channel heads, pair summary | per-head metrics, Δ = A − B | io.divide_migration loaders |
Divide migration charts (lsdviz3-divide-migration) |
lsdtt-chi-analysis |
write_chi_fit_segment_lines, write_fit_tables |
_chi_fit_segment_lines_mn_*.fgb, fit tables |
k_sn per segment | load_chi_fit |
lsdviz3-chi (Chi analysis) |
lsdtt-chi-analysis |
write_chi_tributary_table, write_chi_knickpoint_table (default on) |
_chi_tributaries_mn_*.csv, _chi_knickpoints_mn_*.csv, _chi_knickpoint_thresholds_mn_*.csv |
per tributary: source_key, junction_drainage_area_m2, area_fraction, area_rank_in_basin, ksn_max; per segment boundary: delta_ksn, log_ratio_ksn, at_junction; suggested thresholds |
load_chi_tributaries, load_chi_knickpoints, load_chi_knickpoint_thresholds, select_tributaries |
lsdviz3-chi tributary flags, render_chi_removed_map (Removing tributaries); lsdviz3-knickpoints, charts.knickpoints (Knickpoints) |
lsdtt-chi-analysis |
lithology_fname, write_lithology_code_raster |
_chi_ksn_by_lithology_mn_*.csv, _chi_ksn_histogram_by_lithology_mn_*.csv, _chi_ksn_lithology_nodes_mn_*.csv, _lithology_code.tif, _lithology_units.csv |
k_sn by unit; unit codes and names | io.lithology loaders |
lsdviz3-ksn-by-lithology, lsdviz3-lithology-map (Lithology) |
lsdtt-chi-analysis |
erosion_rate_fname |
_erodibility_calibration_* tables and basin polygons |
erosion rate vs k_sn fit, sample basins | io.erodibility_calibration |
lsdviz3-erodibility-calibration (Lithology) |
lsdtt-fluvial-surfaces |
write_floodplain_polygons, write_reference_field_raster |
_floodplain_polygons.fgb, _floodplain_first_pass_polygons.fgb, _floodplain_hand_qq.csv, _reference_field.tif, _surface_patch_polygons.fgb |
floodplain passes, HAND QQ tables, HAND | (path) | lsdviz3-floodplain, lsdviz3-surface-methods (Valleys and cross sections) |
lsdtt-channel-extraction |
run_perimeter_sources |
perimeter flat runs, outlets, sources | where valleys enter the DEM | (path) | lsdviz3-perimeter-sources (Valleys and cross sections) |
lsdtt-ridgeline-analysis |
ridgeline profiles | *_with_polyfit.csv, triple divide junction CSVs |
ridge-crest elevation, curvature | (path) | lsdviz3-ridgeline-*, lsdviz3-mdd-ridgeline (Hillslopes and ridgelines) |
Two rules follow from this table:
- If a column is missing, fix the lsdtt3 call, not the plot. The switch in
column 2 is what produces it;
lsdviz3-lsdtt/run_lsdttruns the tool. - Basin numbering is per-product.
basin_index(fit tables) andbasin_key(data maps) are separate counters that only coincide when lsdtt-chi-analysis filtered to complete basins — see the warning in Overlaying observed points.