# Inference contract Use QL1 for the 100-ft crop contract and QL2 for 200 ft. Inputs must already use projected coordinates in feet; inference does not reproject LAS files. The segmentation decoder tile path runs in FP32. Each forward consumes 20,480 sampled points; windows overlap by 50 ft or 100 ft in the examples. Source LAS attributes, classification, header/CRS, and extra dimensions are preserved. The following dimensions are added: | Field | Meaning | | --- | --- | | `pred_semantic` | 0–4 semantic index; 5 low confidence; 255 uncovered | | `pred_las_class` | LAS 2–6; 1 low confidence; 0 uncovered | | `pred_confidence` | Maximum fused softmax probability; 0 uncovered | | `coverage_count` | Number of accumulated support observations (uint32) | Sampling does not ensure every raw point is covered. Inspect coverage before using products. No prediction is propagated to unsampled points. Examples use `fusion_mode: paper_legacy` to retain the paper pipeline's NumPy buffered repeated-index accumulation. Repeated indices within a padded window effectively update once. `sum_occurrences` uses `np.add.at` to sum and count every occurrence correctly. This changes weighting when support indices repeat; re-evaluate products before comparing scores with the paper. Both modes reject non-finite predictions. Crop NPZ output keeps raw semantic index 0–4 and separately thresholds `semantic_las_class` to 1 below 0.60. Tile `pred_semantic` also encodes low confidence as 5. Neither introduces an additional learned class.