Default configuration

Configurations are managed with hydra. Here, we show the default configuration at a glance.

Refer to source configurations files in folder configs for more information.

paths:
  src_las: /path/to/input.las
  output_dir: ${hydra:runtime.cwd}/outputs/
data_format:
  epsg: 2154
  las_dimensions:
    classification: Classification
    terrascan_normal: Normal
    terrascan_distance: Distance
    terrascan_deviation: Deviation
    terrascan_reliability: confidence
    ai_vegetation_proba: vegetation
    ai_unclassified_proba: unclassified
    ai_building_proba: building
    entropy: entropy
    cluster_id: ClusterID
    uni_db_overlay: BDTopoOverlay
    candidate_buildings_flag: F_CandidateB
    ClusterID_candidate_building: CID_CandidateB
    ClusterID_confirmed_or_high_proba: CID_IsolatedOrConfirmed
    completion_non_candidate_flag: F_NonCandidateCompletion
    ai_building_identified: Group
    ai_vegetation_unclassified_groups: Group
  codes:
    unclassified: 1
    vegetation: 3
    vegetation_target:
      vegetation_low: 3
      vegetation_medium: 4
      vegetation_high: 5
    building:
      candidates:
      - 202
      detailed:
        unsure_by_entropy: 200
        unclustered: 202
        ia_refuted: 110
        ia_refuted_but_under_db_uni: 111
        both_unsure: 112
        ia_confirmed_only: 113
        db_overlayed_only: 114
        both_confirmed: 115
      final:
        unsure: 214
        not_building: 208
        building: 6
      detailed_to_final:
      - - ${data_format.codes.building.detailed.unclustered}
        - ${data_format.codes.building.final.not_building}
      - - ${data_format.codes.building.detailed.ia_refuted}
        - ${data_format.codes.building.final.not_building}
      - - ${data_format.codes.building.detailed.ia_refuted_but_under_db_uni}
        - ${data_format.codes.building.final.unsure}
      - - ${data_format.codes.building.detailed.both_unsure}
        - ${data_format.codes.building.final.unsure}
      - - ${data_format.codes.building.detailed.unsure_by_entropy}
        - ${data_format.codes.building.final.unsure}
      - - ${data_format.codes.building.detailed.ia_confirmed_only}
        - ${data_format.codes.building.final.building}
      - - ${data_format.codes.building.detailed.db_overlayed_only}
        - ${data_format.codes.building.final.building}
      - - ${data_format.codes.building.detailed.both_confirmed}
        - ${data_format.codes.building.final.building}
  cleaning:
    input_building:
      _target_: lidar_prod.tasks.cleaning.Cleaner
      extra_dims:
      - ${data_format.las_dimensions.ai_building_proba}=float
      - ${data_format.las_dimensions.entropy}=float
      - ${data_format.las_dimensions.terrascan_normal}=uint
      - ${data_format.las_dimensions.terrascan_distance}=int
      - ${data_format.las_dimensions.terrascan_deviation}=ushort
      - ${data_format.las_dimensions.terrascan_reliability}=uchar
    output_building:
      _target_: lidar_prod.tasks.cleaning.Cleaner
      extra_dims:
      - ${data_format.las_dimensions.entropy}=float
      - ${data_format.las_dimensions.ai_building_identified}=uint
      - ${data_format.las_dimensions.terrascan_normal}=uint
      - ${data_format.las_dimensions.terrascan_distance}=int
      - ${data_format.las_dimensions.terrascan_deviation}=ushort
      - ${data_format.las_dimensions.terrascan_reliability}=uchar
    input_vegetation_unclassified:
      _target_: lidar_prod.tasks.cleaning.Cleaner
      extra_dims:
      - ${data_format.las_dimensions.ai_vegetation_unclassified_groups}=uint32
    output_vegetation_unclassified:
      _target_: lidar_prod.tasks.cleaning.Cleaner
      extra_dims:
      - ${data_format.las_dimensions.entropy}=float
      - ${data_format.las_dimensions.ai_building_proba}=uint
      - ${data_format.las_dimensions.ai_vegetation_unclassified_groups}=uint
building_validation:
  application:
    _target_: lidar_prod.tasks.building_validation.BuildingValidator
    data_format: ${data_format}
    use_final_classification_codes: true
    shp_path: null
    cluster:
      tolerance: 0.5
      min_points: 10
    bd_uni_request:
      buffer: 50
    thresholds:
      min_confidence_confirmation: 0.7489066375339118
      min_frac_confirmation: 0.16236610677624053
      min_frac_confirmation_factor_if_bd_uni_overlay: 0.5532221883488597
      min_uni_db_overlay_frac: 0.7243937589483613
      min_confidence_refutation: 0.9753597180902244
      min_frac_refutation: 0.30759538271378295
      min_entropy_uncertainty: 1.254212461691427
      min_frac_entropy_uncertain: 0.7343497391001854
  optimization:
    _target_: lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer
    todo: prepare+optimize+evaluate+update
    use_final_classification_codes: false
    building_validator: ${building_validation.application}
    paths:
      input_las_dir: /path/to/folder/
      results_output_dir: /path/to/folder/
      group_info_pickle_path: ${.results_output_dir}/group_info.pickle
      prepared_las_dir: ${.results_output_dir}/prepared/
      updated_las_dir: ${.results_output_dir}/updated/
      evaluation_results_yaml: ${.results_output_dir}/evaluation.yaml
      building_validation_thresholds: ${.results_output_dir}/optimized_thresholds.yaml
      output_optimized_config: ${.results_output_dir}/config_with_optimized_thresholds.yaml
    buildings_correction_labels:
      codes:
        true_positives:
        - 19
        false_positives:
        - 20
        - 110
        - 112
        - 114
        - 115
        false_negatives:
        - 21
      min_frac:
        true_positives: 0.95
        false_positives: 0.05
    study:
      _target_: optuna.create_study
      study_name: auto_precision_recall
      directions:
      - maximize
      - maximize
      - maximize
      sampler:
        _target_: optuna.samplers.NSGAIISampler
        population_size: 50
        mutation_prob: 0.25
        crossover_prob: 0.1
        swapping_prob: 0.1
        seed: 12345
        constraints_func:
          _target_: functools.partial
          _args_:
          - ${get_method:lidar_prod.tasks.building_validation_optimization.constraints_func}
    design:
      n_trials: 400
      constraints:
        min_precision_constraint: 0.98
        min_recall_constraint: 0.98
        min_automation_constraint: 0.35
      metrics:
        groups_count: groups_count
        group_building: group_building
        group_no_buildings: group_no_buildings
        group_unsure: group_unsure
        proportion_of_uncertainty: p_unsure
        proportion_of_refutation: p_refute
        proportion_of_confirmation: p_confirm
        confusion_matrix_norm: confusion_matrix_norm
        confusion_matrix_no_norm: confusion_matrix_no_norm
        precision: precision
        recall: recall
        proportion_of_automated_decisions: p_auto
        refutation_accuracy: a_refute
        confirmation_accuracy: a_confirm
building_identification:
  _target_: lidar_prod.tasks.building_identification.BuildingIdentifier
  data_format: ${data_format}
  min_building_proba: 0.5
  cluster:
    min_points: 200
    tolerance: 0.75
    is3d: false
building_completion:
  _target_: lidar_prod.tasks.building_completion.BuildingCompletor
  data_format: ${data_format}
  min_building_proba: 0.5
  cluster:
    min_points: 10
    tolerance: 0.3
    is3d: false
basic_identification:
  vegetation_threshold: 0.3923
  unclassified_threshold: 0.2455
  vegetation_nb_trials: 100
  unclassified_nb_trials: 100
bd_uni_connection_params:
  _target_: lidar_prod.tasks.utils.BDUniConnectionParams
  host: bduni_consult.ign.fr
  user: null
  pwd: null
  bd_name: bduni_france_consultation
print_config: false
ignore_warnings: true