Skip to content

Commit 49c89b0

Browse files
authored
Bump geolibre-wasm to 1.5.0 and add its new tools to the menu catalog (#1830)
Regenerates apps/geolibre-desktop/src/lib/whitebox-menu-catalog.ts, which adds 57 tools the Processing menu was missing (1009 -> 1066). The dialog already listed them dynamically, so the gap only showed in the menu. Also runs the two re-checks CLAUDE.md ties to a geolibre-wasm bump: MAX_VECTOR_PMTILES_ZOOM is unchanged at 18. The wasm-convert test drives the real tool at the cap and one past it, and still passes. The NON_DISTANCE_NAMES scan found one new over-match. contiguous_cartogram takes only vector inputs, so the Processing dialog's metric unit picker reaches its densify_spacing float, but that value is an edge length counted in cells of the tool's own diffusion grid, not ground units. Left alone the field would have offered metres and silently converted a dimensionless number as a distance. Excluded, with a test. whitebox-wasm needs no bump; it is already at the latest 0.5.1.
1 parent 99a57d1 commit 49c89b0

5 files changed

Lines changed: 72 additions & 8 deletions

File tree

apps/geolibre-desktop/src/lib/whitebox-distance-params.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,18 @@ const DISTANCE_NAMES = new Set(["cell_size", "width", "height"]);
6161
* Names that match a segment above but measure something dimensionless, so
6262
* offering a metric unit picker for them would convert a number that was never
6363
* a length. `corridor_mapping_intelligence`'s `corridor_tolerance` is a fraction
64-
* above optimal cost in 0-1, not a width.
64+
* above optimal cost in 0-1, not a width. `contiguous_cartogram`'s
65+
* `densify_spacing` is an edge length counted in cells of the cartogram's own
66+
* diffusion grid, not ground units — and unlike `corridor_tolerance` that tool
67+
* takes only vector inputs, so the picker really does reach it.
6568
*
6669
* The catalog scan behind this list looked for a matching `double` whose
6770
* description reads as a fraction, ratio, angle or weight; re-run it when
6871
* `geolibre-wasm` is bumped, since the tool-level gate that saves these today is
6972
* incidental. That re-check is recorded in `CLAUDE.md`'s Conventions section
7073
* alongside the repo's other name/version mirrors.
7174
*/
72-
const NON_DISTANCE_NAMES = new Set(["corridor_tolerance"]);
75+
const NON_DISTANCE_NAMES = new Set(["corridor_tolerance", "densify_spacing"]);
7376

7477
const DISTANCE_SEGMENT_PATTERN = new RegExp(`(^|_)(${DISTANCE_SEGMENTS.join("|")})(_|$)`, "i");
7578

apps/geolibre-desktop/src/lib/whitebox-menu-catalog.ts

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export interface WhiteboxMenuCategory {
3131
subcategories: WhiteboxMenuSubcategory[];
3232
}
3333

34-
/** 1009 tools across 9 categories. */
34+
/** 1066 tools across 9 categories. */
3535
export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
3636
{
3737
key: "conversion",
@@ -409,34 +409,48 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
409409
{
410410
label: "GeoLibre",
411411
tools: [
412+
{ id: "aggregate_multidimensional_raster", name: "Aggregate Multidimensional Raster" },
412413
{ id: "analyze_changes_ccdc", name: "Analyze Changes Using CCDC" },
414+
{ id: "apply_radiometric_calibration", name: "Apply Radiometric Calibration" },
413415
{ id: "assign_projection_raster", name: "Assign Projection Raster" },
414416
{ id: "band_collection_statistics", name: "Band Collection Statistics" },
415417
{ id: "block_statistics", name: "Block Statistics" },
416418
{ id: "boundary_clean", name: "Boundary Clean" },
419+
{ id: "cell_position_statistics", name: "Cell Position Statistics" },
417420
{ id: "cell_statistics", name: "Cell Statistics" },
418421
{ id: "classification_accuracy_assessment", name: "Classification Accuracy Assessment" },
419422
{ id: "combine", name: "Combine" },
423+
{ id: "composite_bands", name: "Composite Bands" },
424+
{ id: "compute_sar_indices", name: "Compute SAR Indices" },
420425
{ id: "contour_with_barriers", name: "Contour With Barriers" },
426+
{ id: "convert_sar_units", name: "Convert SAR Units" },
427+
{ id: "coregister_rasters", name: "Coregister Rasters" },
421428
{ id: "corridor", name: "Corridor" },
429+
{ id: "cost_back_link", name: "Cost Back Link" },
422430
{ id: "cut_fill", name: "Cut Fill" },
423431
{ id: "darcy_flow", name: "Darcy Flow" },
424432
{ id: "dem_filter", name: "DEM Filter" },
425433
{ id: "detect_image_anomalies", name: "Detect Image Anomalies" },
426434
{ id: "diffusion_interpolation_with_barriers", name: "Diffusion Interpolation With Barriers" },
435+
{ id: "dimensional_moving_statistics", name: "Dimensional Moving Statistics" },
427436
{ id: "empirical_bayesian_kriging", name: "Empirical Bayesian Kriging" },
428437
{ id: "euclidean_direction", name: "Euclidean Direction" },
429438
{ id: "expand_shrink", name: "Expand / Shrink" },
430439
{ id: "extract_cog_subset", name: "Extract COG Subset" },
440+
{ id: "extract_ocean_winds", name: "Extract Ocean Winds" },
441+
{ id: "extract_spectra_from_image", name: "Extract Spectra From Image" },
431442
{ id: "extract_wms_subset", name: "Extract WMS Subset" },
432443
{ id: "extract_xyz_tile_subset", name: "Extract XYZ Tile Subset" },
433444
{ id: "find_argument_statistics", name: "Find Argument Statistics" },
445+
{ id: "flatten_interferogram", name: "Flatten Interferogram" },
434446
{ id: "focal_flow", name: "Focal Flow" },
435447
{ id: "focal_statistics", name: "Focal Statistics" },
448+
{ id: "frequency_comparison", name: "Frequency Comparison" },
436449
{ id: "fuzzy_overlay", name: "Fuzzy Overlay" },
437450
{ id: "gaussian_geostatistical_simulations", name: "Gaussian Geostatistical Simulations" },
438451
{ id: "multidimensional_anomaly", name: "Generate Multidimensional Anomaly" },
439452
{ id: "generate_trend_raster", name: "Generate Trend Raster" },
453+
{ id: "goldstein_phase_filter", name: "Goldstein Phase Filter" },
440454
{ id: "idw_3d", name: "IDW 3D" },
441455
{ id: "interpolate_from_spatiotemporal_points", name: "Interpolate From Spatiotemporal Points" },
442456
{ id: "interpolate_with_barriers", name: "Interpolate With Barriers" },
@@ -450,8 +464,13 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
450464
{ id: "locate_regions", name: "Locate Regions" },
451465
{ id: "matched_filter_target_detection", name: "Matched Filter Target Detection (CEM/ACE)" },
452466
{ id: "maximum_likelihood_classification", name: "Maximum Likelihood Classification" },
467+
{ id: "merge_multidimensional_rasters", name: "Merge Multidimensional Rasters" },
453468
{ id: "multicriteria_overlay", name: "Multicriteria Overlay" },
469+
{ id: "multidimensional_principal_components", name: "Multidimensional Principal Components" },
470+
{ id: "multidimensional_raster_correlation", name: "Multidimensional Raster Correlation" },
454471
{ id: "multilook", name: "Multilook" },
472+
{ id: "multitemporal_coherence", name: "Multitemporal Coherence" },
473+
{ id: "observer_points", name: "Observer Points" },
455474
{ id: "optimal_interpolation", name: "Optimal Interpolation" },
456475
{ id: "path_distance", name: "Path Distance" },
457476
{ id: "percentile_contours", name: "Percentile Contours" },
@@ -460,7 +479,10 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
460479
{ id: "predict_using_trend_raster", name: "Predict Using Trend Raster" },
461480
{ id: "presence_only_prediction", name: "Presence-only Prediction" },
462481
{ id: "pycnophylactic_interpolation", name: "Pycnophylactic Interpolation" },
482+
{ id: "radiometric_terrain_flattening", name: "Radiometric Terrain Flattening" },
463483
{ id: "raster_normalize", name: "Raster Normalize" },
484+
{ id: "regression_kriging", name: "Regression Kriging" },
485+
{ id: "remove_thermal_noise", name: "Remove Thermal Noise" },
464486
{ id: "render_raster_png", name: "Render Raster to PNG" },
465487
{ id: "reproject_raster", name: "Reproject Raster" },
466488
{ id: "rescale_by_function", name: "Rescale By Function" },
@@ -472,10 +494,12 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
472494
{ id: "spectral_index", name: "Spectral Index" },
473495
{ id: "split_raster", name: "Split Raster" },
474496
{ id: "storage_capacity", name: "Storage Capacity" },
497+
{ id: "subset_multidimensional_raster", name: "Subset Multidimensional Raster" },
475498
{ id: "summarize_categorical_raster", name: "Summarize Categorical Raster" },
476499
{ id: "surface_parameters", name: "Surface Parameters" },
477500
{ id: "surface_volume", name: "Surface Volume" },
478501
{ id: "time_series_cross_correlation", name: "Time Series Cross Correlation" },
502+
{ id: "unwrap_phase", name: "Unwrap Phase" },
479503
{ id: "warp_raster", name: "Warp Raster" },
480504
{ id: "weighted_voronoi", name: "Weighted Voronoi" },
481505
{ id: "zonal_characterization", name: "Zonal Characterization" },
@@ -1033,12 +1057,14 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
10331057
label: "GeoLibre",
10341058
tools: [
10351059
{ id: "add_surface_information", name: "Add Surface Information" },
1060+
{ id: "add_z_information", name: "Add Z Information" },
10361061
{ id: "adjust_3d_z", name: "Adjust 3D Z" },
10371062
{ id: "adjust_stream_to_raster", name: "Adjust Stream To Raster" },
10381063
{ id: "aggregate_points", name: "Aggregate Points" },
10391064
{ id: "aggregate_polygons", name: "Aggregate Polygons" },
10401065
{ id: "align_features", name: "Align Features" },
10411066
{ id: "apportion_polygon", name: "Apportion Polygon" },
1067+
{ id: "areal_interpolation", name: "Areal Interpolation" },
10421068
{ id: "assign_projection_vector", name: "Assign Projection Vector" },
10431069
{ id: "attribute_uncertainty", name: "Attribute Uncertainty" },
10441070
{ id: "bivariate_spatial_association", name: "Bivariate Spatial Association" },
@@ -1049,6 +1075,7 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
10491075
{ id: "calculate_central_meridian_and_parallels", name: "Calculate Central Meridian And Parallels" },
10501076
{ id: "calculate_composite_index", name: "Calculate Composite Index" },
10511077
{ id: "calculate_distance_band", name: "Calculate Distance Band" },
1078+
{ id: "calculate_end_time", name: "Calculate End Time" },
10521079
{ id: "calculate_grid_convergence_angle", name: "Calculate Grid Convergence Angle" },
10531080
{ id: "calculate_missing_z_values", name: "Calculate Missing Z Values" },
10541081
{ id: "calculate_motion_statistics", name: "Calculate Motion Statistics" },
@@ -1070,9 +1097,12 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
10701097
{ id: "compare_spatial_weights", name: "Compare Spatial Weights" },
10711098
{ id: "compute_accuracy_for_object_detection", name: "Compute Accuracy For Object Detection" },
10721099
{ id: "construct_sight_lines", name: "Construct Sight Lines" },
1100+
{ id: "contiguous_cartogram", name: "Contiguous Cartogram" },
1101+
{ id: "contour_list", name: "Contour List" },
10731102
{ id: "convert_coordinate_notation", name: "Convert Coordinate Notation" },
10741103
{ id: "cost_connectivity", name: "Cost Connectivity" },
10751104
{ id: "count_overlapping_features", name: "Count Overlapping Features" },
1105+
{ id: "create_accuracy_assessment_points", name: "Create Accuracy Assessment Points" },
10761106
{ id: "create_cartographic_partitions", name: "Create Cartographic Partitions" },
10771107
{ id: "create_overpass", name: "Create Overpass" },
10781108
{ id: "create_routes", name: "Create Routes" },
@@ -1083,10 +1113,13 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
10831113
{ id: "delineate_built_up_areas", name: "Delineate Built-Up Areas" },
10841114
{ id: "dendrogram", name: "Dendrogram" },
10851115
{ id: "densify_sampling_network", name: "Densify Sampling Network" },
1116+
{ id: "detect_bright_ocean_objects", name: "Detect Bright Ocean Objects" },
1117+
{ id: "detect_dark_ocean_areas", name: "Detect Dark Ocean Areas" },
10861118
{ id: "detect_feature_changes", name: "Detect Feature Changes" },
10871119
{ id: "detect_graphic_conflict", name: "Detect Graphic Conflict" },
10881120
{ id: "detect_incidents", name: "Detect Incidents" },
10891121
{ id: "dice", name: "Dice" },
1122+
{ id: "difference_3d", name: "Difference 3D" },
10901123
{ id: "dimension_reduction", name: "Dimension Reduction" },
10911124
{ id: "directional_distribution", name: "Directional Distribution" },
10921125
{ id: "directional_trend", name: "Directional Trend" },
@@ -1097,14 +1130,20 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
10971130
{ id: "eliminate_polygon_part", name: "Eliminate Polygon Part" },
10981131
{ id: "eliminate_polygons", name: "Eliminate Polygons" },
10991132
{ id: "emerging_hot_spot_analysis", name: "Emerging Hot Spot Analysis" },
1133+
{ id: "enclose_multipatch", name: "Enclose Multipatch" },
11001134
{ id: "estimate_time_to_event", name: "Estimate Time To Event" },
11011135
{ id: "evaluate_bin_sizes", name: "Evaluate Bin Sizes" },
1136+
{ id: "evaluate_variable_influence", name: "Evaluate Variable Influence" },
11021137
{ id: "exploratory_interpolation", name: "Exploratory Interpolation" },
11031138
{ id: "exploratory_regression", name: "Exploratory Regression" },
11041139
{ id: "extract_locations_from_text", name: "Extract Locations From Text" },
1140+
{ id: "extract_water_sar", name: "Extract Water (SAR)" },
1141+
{ id: "extrude_between", name: "Extrude Between" },
11051142
{ id: "feature_outline_masks", name: "Feature Outline Masks" },
11061143
{ id: "feature_to_line", name: "Feature To Line" },
11071144
{ id: "feature_vertices_to_points", name: "Feature Vertices To Points" },
1145+
{ id: "features_to_kml", name: "Features To KML" },
1146+
{ id: "fence_diagram", name: "Fence Diagram" },
11081147
{ id: "fill_missing_values", name: "Fill Missing Values" },
11091148
{ id: "find_dwell_locations", name: "Find Dwell Locations" },
11101149
{ id: "find_identical", name: "Find Identical" },
@@ -1115,6 +1154,7 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
11151154
{ id: "generalized_linear_regression", name: "Generalized Linear Regression" },
11161155
{ id: "generate_breach_lines", name: "Generate Breach Lines" },
11171156
{ id: "generate_near_table", name: "Generate Near Table" },
1157+
{ id: "generate_network_swm", name: "Generate Network SWM" },
11181158
{ id: "generate_od_links", name: "Generate Origin-Destination Links" },
11191159
{ id: "generate_points_along_3d_lines", name: "Generate Points Along 3D Lines" },
11201160
{ id: "generate_spatial_weights_matrix", name: "Generate Spatial Weights Matrix" },
@@ -1134,7 +1174,11 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
11341174
{ id: "inside_3d", name: "Inside 3D" },
11351175
{ id: "integrate", name: "Integrate" },
11361176
{ id: "interpolate_shape", name: "Interpolate Shape" },
1177+
{ id: "intersect_3d", name: "Intersect 3D" },
1178+
{ id: "intersect_3d_line_with_surface", name: "Intersect 3D Line With Surface" },
11371179
{ id: "intersecting_layers_masks", name: "Intersecting Layers Masks" },
1180+
{ id: "intervisibility", name: "Intervisibility" },
1181+
{ id: "is_closed_3d", name: "Is Closed 3D" },
11381182
{ id: "line_of_sight", name: "Line Of Sight" },
11391183
{ id: "local_bivariate_relationships", name: "Local Bivariate Relationships" },
11401184
{ id: "local_outlier_analysis", name: "Local Outlier Analysis" },
@@ -1143,6 +1187,8 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
11431187
{ id: "merge_divided_roads", name: "Merge Divided Roads" },
11441188
{ id: "merge_lines_by_pseudo_node", name: "Merge Lines By Pseudo Node" },
11451189
{ id: "minimum_bounding_volume", name: "Minimum Bounding Volume" },
1190+
{ id: "multipatch_footprint", name: "Multipatch Footprint" },
1191+
{ id: "multipatch_to_mesh", name: "Multipatch To Mesh" },
11461192
{ id: "multiple_ring_buffer", name: "Multiple Ring Buffer" },
11471193
{ id: "mgwr", name: "Multiscale Geographically Weighted Regression" },
11481194
{ id: "multivariate_clustering", name: "Multivariate Clustering" },
@@ -1151,6 +1197,7 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
11511197
{ id: "non_maximum_suppression", name: "Non Maximum Suppression" },
11521198
{ id: "optics_clustering", name: "OPTICS Clustering" },
11531199
{ id: "optimal_corridor_connections", name: "Optimal Corridor Connections" },
1200+
{ id: "optimal_path_as_line", name: "Optimal Path As Line" },
11541201
{ id: "optimized_hot_spot_analysis", name: "Optimized Hot Spot Analysis" },
11551202
{ id: "optimized_outlier_analysis", name: "Optimized Outlier Analysis" },
11561203
{ id: "pairwise_comparison_weights", name: "Pairwise Comparison Weights" },
@@ -1160,8 +1207,11 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
11601207
{ id: "polygon_neighbors", name: "Polygon Neighbors" },
11611208
{ id: "polygon_volume", name: "Polygon Volume" },
11621209
{ id: "propagate_displacement", name: "Propagate Displacement" },
1210+
{ id: "raster_domain", name: "Raster Domain" },
1211+
{ id: "raster_to_weighted_points", name: "Raster To Weighted Points" },
11631212
{ id: "reclassify_field", name: "Reclassify Field" },
11641213
{ id: "reconstruct_tracks", name: "Reconstruct Tracks" },
1214+
{ id: "reduce_point_density", name: "Reduce Point Density" },
11651215
{ id: "regularize_adjacent_building_footprint", name: "Regularize Adjacent Building Footprint" },
11661216
{ id: "regularize_building_footprints", name: "Regularize Building Footprints" },
11671217
{ id: "remove_overlap_multiple", name: "Remove Overlap (Multiple)" },
@@ -1171,10 +1221,12 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
11711221
{ id: "resolve_road_conflicts", name: "Resolve Road Conflicts" },
11721222
{ id: "ripleys_k", name: "Ripley's K" },
11731223
{ id: "rubbersheet_features", name: "Rubbersheet Features" },
1224+
{ id: "semivariogram_sensitivity", name: "Semivariogram Sensitivity" },
11741225
{ id: "similarity_search", name: "Similarity Search" },
11751226
{ id: "simplify_3d_line", name: "Simplify 3D Line" },
11761227
{ id: "simplify_building", name: "Simplify Building" },
11771228
{ id: "simplify_by_circular_arcs", name: "Simplify By Circular Arcs" },
1229+
{ id: "simplify_by_tangent_segments", name: "Simplify By Tangent Segments" },
11781230
{ id: "simplify_shared_edges", name: "Simplify Shared Edges" },
11791231
{ id: "smooth_natural_features", name: "Smooth Natural Features" },
11801232
{ id: "smooth_shared_edges", name: "Smooth Shared Edges" },
@@ -1194,18 +1246,23 @@ export const WHITEBOX_MENU_CATALOG: WhiteboxMenuCategory[] = [
11941246
{ id: "summarize_percent_change", name: "Summarize Percent Change" },
11951247
{ id: "summarize_within", name: "Summarize Within" },
11961248
{ id: "summary_statistics", name: "Summary Statistics" },
1249+
{ id: "sun_shadow_volume", name: "Sun Shadow Volume" },
1250+
{ id: "surface_difference", name: "Surface Difference" },
11971251
{ id: "table_to_geometry", name: "Table To Geometry" },
11981252
{ id: "tabulate_intersection", name: "Tabulate Intersection" },
11991253
{ id: "thin_road_network", name: "Thin Road Network" },
1254+
{ id: "tile_grid_polygons", name: "Tile Grid Polygons" },
12001255
{ id: "time_series_clustering", name: "Time Series Clustering" },
12011256
{ id: "time_series_forecast", name: "Time Series Forecast" },
12021257
{ id: "time_series_smoothing", name: "Time Series Smoothing" },
12031258
{ id: "trace_proximity_events", name: "Trace Proximity Events" },
12041259
{ id: "transform_features", name: "Transform Features" },
12051260
{ id: "transform_fields", name: "Transform Fields" },
12061261
{ id: "transform_route_events", name: "Transform Route Events" },
1262+
{ id: "transpose_fields", name: "Transpose Fields" },
12071263
{ id: "trim_line", name: "Trim Line" },
12081264
{ id: "union_3d", name: "Union 3D" },
1265+
{ id: "validate_flow_direction", name: "Validate Flow Direction" },
12091266
{ id: "voxel_isosurface", name: "Voxel Isosurface" },
12101267
],
12111268
},

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)