diff --git a/.buildinfo b/.buildinfo index 5d3414df..20882a9d 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: fd5eb1438bd9bf37a103350bcfc01499 +config: 7da5eb014733f8246883ccbde337b5e1 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/_modules/index.html b/_modules/index.html index e218915d..dd388329 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -3,7 +3,7 @@ - Overview: module code — lidar_prod V1.10.1 documentation + Overview: module code — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + diff --git a/_modules/lidar_prod/commons/commons.html b/_modules/lidar_prod/commons/commons.html index fcc57b82..f92f84e4 100644 --- a/_modules/lidar_prod/commons/commons.html +++ b/_modules/lidar_prod/commons/commons.html @@ -3,7 +3,7 @@ - lidar_prod.commons.commons — lidar_prod V1.10.1 documentation + lidar_prod.commons.commons — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + diff --git a/_modules/lidar_prod/run.html b/_modules/lidar_prod/run.html index 97d46982..8019837b 100644 --- a/_modules/lidar_prod/run.html +++ b/_modules/lidar_prod/run.html @@ -3,7 +3,7 @@ - lidar_prod.run — lidar_prod V1.10.1 documentation + lidar_prod.run — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + diff --git a/_modules/lidar_prod/tasks/building_completion.html b/_modules/lidar_prod/tasks/building_completion.html index a9a52d6c..e8af8c14 100644 --- a/_modules/lidar_prod/tasks/building_completion.html +++ b/_modules/lidar_prod/tasks/building_completion.html @@ -3,7 +3,7 @@ - lidar_prod.tasks.building_completion — lidar_prod V1.10.1 documentation + lidar_prod.tasks.building_completion — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + @@ -189,7 +189,9 @@

Source code for lidar_prod.tasks.building_completion

[docs] - def run(self, input_values: Union[str, pdal.pipeline.Pipeline]): + def run( + self, input_values: Union[str, pdal.pipeline.Pipeline], las_metadata: dict = None + ) -> dict: """Application. Transform cloud at `src_las_path` following building completion logic @@ -197,18 +199,23 @@

Source code for lidar_prod.tasks.building_completion

Args: input_values (str|pdal.pipeline.Pipeline): path to either input LAS file or a pipeline target_las_path (str): path for saving updated LAS file. + las_metadata (dict): current pipeline metadata, used to propagate input metadata to the + application output las (epsg, las version, etc) Returns: - str: returns `target_las_path` for potential terminal piping. - + str: returns `las_metadata`: metadata of the initial las, which contain + information to pass to the writer in order for the application to have an output + with the same header (las version, srs, ...) as the input """ log.info( "Completion of building with relatively distant points that have high enough " + "probability" ) - pipeline = get_pipeline(input_values, self.data_format.epsg) + pipeline, las_metadata = get_pipeline(input_values, self.data_format.epsg, las_metadata) self.prepare_for_building_completion(pipeline) - self.update_classification()
+ self.update_classification() + + return las_metadata
@@ -223,9 +230,7 @@

Source code for lidar_prod.tasks.building_completion

the same building and they will be confirmed as well. Args: - src_las_path (pdal.pipeline.Pipeline): input LAS pipeline - target_las_path (str): output, prepared LAS. - + pipeline (pdal.pipeline.Pipeline): input LAS pipeline """ # Reset Cluster dim out of safety diff --git a/_modules/lidar_prod/tasks/building_identification.html b/_modules/lidar_prod/tasks/building_identification.html index cc88f309..004212fb 100644 --- a/_modules/lidar_prod/tasks/building_identification.html +++ b/_modules/lidar_prod/tasks/building_identification.html @@ -3,7 +3,7 @@ - lidar_prod.tasks.building_identification — lidar_prod V1.10.1 documentation + lidar_prod.tasks.building_identification — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + @@ -184,7 +184,8 @@

Source code for lidar_prod.tasks.building_identification

self, input_values: Union[str, pdal.pipeline.Pipeline], target_las_path: str = None, - ) -> str: + las_metadata: dict = None, + ) -> dict: """Identify potential buildings in a new channel, excluding former candidates as well as already confirmed building (confirmed by either Validation or Completion). @@ -192,6 +193,10 @@

Source code for lidar_prod.tasks.building_identification

input_values (str | pdal.pipeline.Pipeline): path or pipeline to input LAS file with a building probability channel target_las_path (str): output LAS + las_metadata (dict): current pipeline metadata, used to propagate input metadata to the + application output las (epsg, las version, etc) + + Returns: updated las_metadata """ # aliases @@ -199,7 +204,7 @@

Source code for lidar_prod.tasks.building_identification

_completion_flag = self.data_format.las_dimensions.completion_non_candidate_flag log.info("Clustering of points with high building proba.") - pipeline = get_pipeline(input_values, self.data_format.epsg) + pipeline, las_metadata = get_pipeline(input_values, self.data_format.epsg, las_metadata) # Considered for identification: non_candidates = f"({self.data_format.las_dimensions.candidate_buildings_flag} == 0)" @@ -228,13 +233,13 @@

Source code for lidar_prod.tasks.building_identification

dimensions=f"{_cid}=>{self.data_format.las_dimensions.ai_building_identified}" ) if target_las_path: - pipeline |= get_pdal_writer(target_las_path) + pipeline |= get_pdal_writer(target_las_path, las_metadata) os.makedirs(osp.dirname(target_las_path), exist_ok=True) pipeline.execute() self.pipeline = pipeline - return target_las_path
+ return las_metadata
diff --git a/_modules/lidar_prod/tasks/building_validation.html b/_modules/lidar_prod/tasks/building_validation.html index da426131..599527c9 100644 --- a/_modules/lidar_prod/tasks/building_validation.html +++ b/_modules/lidar_prod/tasks/building_validation.html @@ -3,7 +3,7 @@ - lidar_prod.tasks.building_validation — lidar_prod V1.10.1 documentation + lidar_prod.tasks.building_validation — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + @@ -237,7 +237,8 @@

Source code for lidar_prod.tasks.building_validation

self, input_values: Union[str, pdal.pipeline.Pipeline], target_las_path: str = None, - ) -> str: + las_metadata: dict = None, + ) -> dict: """Runs application. Transforms cloud at `input_values` following building validation logic, @@ -247,12 +248,16 @@

Source code for lidar_prod.tasks.building_validation

input_values (str| pdal.pipeline.Pipeline): path or pipeline to input LAS file with a building probability channel target_las_path (str): path for saving updated LAS file. + las_metadata (dict): current pipeline metadata, used to propagate input metadata to the + application output las (epsg, las version, etc) Returns: - str: returns `target_las_path` + str: returns `las_metadata`: metadata of the input las, which contain + information to pass to the writer in order for the application to have an output + with the same header (las version, srs, ...) as the input """ - self.pipeline = get_pipeline(input_values, self.data_format.epsg) + self.pipeline, las_metadata = get_pipeline(input_values, self.data_format.epsg) with TemporaryDirectory() as td: log.info("Preparation : Clustering of candidates buildings & Import vectors") if isinstance(input_values, str): @@ -260,10 +265,10 @@

Source code for lidar_prod.tasks.building_validation

temp_f = osp.join(td, osp.basename(input_values)) else: temp_f = "" - self.prepare(input_values, temp_f) + las_metadata = self.prepare(input_values, temp_f, las_metadata) log.info("Using AI and Databases to update cloud Classification") - self.update() - return target_las_path
+ las_metadata = self.update(target_las_path=target_las_path, las_metadata=las_metadata) + return las_metadata
@@ -273,7 +278,8 @@

Source code for lidar_prod.tasks.building_validation

input_values: Union[str, pdal.pipeline.Pipeline], prepared_las_path: str, save_result: bool = False, - ) -> None: + las_metadata: dict = None, + ) -> dict: f""" Prepare las for later decision process. . 1. Cluster candidates points, in a new @@ -294,6 +300,11 @@

Source code for lidar_prod.tasks.building_validation

a building probability channel target_las_path (str): path for saving prepared LAS file. save_result (bool): True to save a las instead of propagating a pipeline + las_metadata (dict): current pipeline metadata, used to propagate input metadata to the + application output las (epsg, las version, etc) + + Returns: + updated las metadata """ @@ -302,7 +313,7 @@

Source code for lidar_prod.tasks.building_validation

dim_cluster_id_candidates = self.data_format.las_dimensions.ClusterID_candidate_building dim_overlay = self.data_format.las_dimensions.uni_db_overlay - self.pipeline = get_pipeline(input_values, self.data_format.epsg) + self.pipeline, las_metadata = get_pipeline(input_values, self.data_format.epsg) # Identify candidates buildings points with a boolean flag self.pipeline |= pdal.Filter.ferry(dimensions=f"=>{dim_candidate_flag}") _is_candidate_building = ( @@ -363,20 +374,24 @@

Source code for lidar_prod.tasks.building_validation

) if save_result: - self.pipeline |= get_pdal_writer(prepared_las_path) + self.pipeline |= get_pdal_writer(prepared_las_path, las_metadata) os.makedirs(osp.dirname(prepared_las_path), exist_ok=True) self.pipeline.execute() if temp_dirpath: - shutil.rmtree(temp_dirpath)
+ shutil.rmtree(temp_dirpath) + + return las_metadata
[docs] - def update(self, src_las_path: str = None, target_las_path: str = None) -> None: + def update( + self, src_las_path: str = None, target_las_path: str = None, las_metadata: dict = None + ) -> dict: """Updates point cloud classification channel.""" if src_las_path: - self.pipeline = get_pipeline(src_las_path, self.data_format.epsg) + self.pipeline, las_metadata = get_pipeline(src_las_path, self.data_format.epsg) points = self.pipeline.arrays[0] @@ -412,9 +427,11 @@

Source code for lidar_prod.tasks.building_validation

self.pipeline = pdal.Pipeline(arrays=[points]) if target_las_path: - self.pipeline = get_pdal_writer(target_las_path).pipeline(points) + self.pipeline = get_pdal_writer(target_las_path, las_metadata).pipeline(points) os.makedirs(osp.dirname(target_las_path), exist_ok=True) - self.pipeline.execute()
+ self.pipeline.execute() + + return las_metadata
def _extract_cluster_info_by_idx( diff --git a/_modules/lidar_prod/tasks/building_validation_optimization.html b/_modules/lidar_prod/tasks/building_validation_optimization.html index 69684981..ac078238 100644 --- a/_modules/lidar_prod/tasks/building_validation_optimization.html +++ b/_modules/lidar_prod/tasks/building_validation_optimization.html @@ -3,7 +3,7 @@ - lidar_prod.tasks.building_validation_optimization — lidar_prod V1.10.1 documentation + lidar_prod.tasks.building_validation_optimization — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + @@ -405,7 +405,7 @@

Source code for lidar_prod.tasks.building_validation_optimization

candidate buildings """ - las = pdal_read_las_array(prepared_las_path, self.bv.data_format.epsg) + las, _ = pdal_read_las_array(prepared_las_path, self.bv.data_format.epsg) # las: laspy.LasData = laspy.read(prepared_las_path) dim_cluster_id = las[self.bv.data_format.las_dimensions.ClusterID_candidate_building] dim_classification = las[self.bv.data_format.las_dimensions.classification] diff --git a/_modules/lidar_prod/tasks/cleaning.html b/_modules/lidar_prod/tasks/cleaning.html index 088a288b..40a8f57b 100644 --- a/_modules/lidar_prod/tasks/cleaning.html +++ b/_modules/lidar_prod/tasks/cleaning.html @@ -3,7 +3,7 @@ - lidar_prod.tasks.cleaning — lidar_prod V1.10.1 documentation + lidar_prod.tasks.cleaning — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + @@ -213,7 +213,8 @@

Source code for lidar_prod.tasks.cleaning

         it from the las metadata)
 
         """
-        points = pdal_read_las_array(src_las_path, epsg)
+        points, metadata = pdal_read_las_array(src_las_path, epsg)
+
         # Check input dims to see what we can keep.
         input_dims = points.dtype.fields.keys()
         self.extra_dims_as_dict = {
@@ -221,7 +222,7 @@ 

Source code for lidar_prod.tasks.cleaning

         }
 
         pipeline = pdal.Pipeline(arrays=[points]) | get_pdal_writer(
-            target_las_path, extra_dims=self.get_extra_dims_as_str()
+            target_las_path, reader_metadata=metadata, extra_dims=self.get_extra_dims_as_str()
         )
         os.makedirs(osp.dirname(target_las_path), exist_ok=True)
         pipeline.execute()
diff --git a/_modules/lidar_prod/tasks/utils.html b/_modules/lidar_prod/tasks/utils.html
index fbd51e8a..060898b2 100644
--- a/_modules/lidar_prod/tasks/utils.html
+++ b/_modules/lidar_prod/tasks/utils.html
@@ -3,7 +3,7 @@
 
   
   
-  lidar_prod.tasks.utils — lidar_prod V1.10.1 documentation
+  lidar_prod.tasks.utils — lidar_prod V1.10.2 documentation
       
       
       
@@ -15,7 +15,7 @@
   
         
         
-        
+        
         
         
         
@@ -156,6 +156,8 @@ 

Source code for lidar_prod.tasks.utils

 import numpy as np
 import pdal
 import psycopg2
+import pyproj
+from pdaltools.las_info import get_writer_parameters_from_reader_metadata
 
 log = logging.getLogger(__name__)
 
@@ -189,25 +191,31 @@ 

Source code for lidar_prod.tasks.utils

 
 
[docs] -def get_pipeline(input_value: pdal.pipeline.Pipeline | str, epsg: int | str): +def get_pipeline( + input_value: pdal.pipeline.Pipeline | str, epsg: int | str, las_metadata: dict = None +): """If the input value is a pipeline, returns it, if it's a las path return the corresponding - pipeline + pipeline, + If the input is a las_path, pipeline_metadata is updated to the new pipeline metadata Args: input_value (pdal.pipeline.Pipeline | str): input value to get a pipeline from (las pipeline or path to a file to read with pdal) epsg (int | str): if input_value is a string, use the epsg value to override the crs from the las header + las_metadata (dict): current pipeline metadata, used to propagate input metadata to the + application output las (epsg, las version, etc) Returns: - pdal pipeline + pdal pipeline, updated pipeline_metadata dict """ if isinstance(input_value, str): pipeline = pdal.Pipeline() | get_pdal_reader(input_value, epsg) pipeline.execute() + las_metadata = get_input_las_metadata(pipeline) else: pipeline = input_value - return pipeline
+ return pipeline, las_metadata
@@ -274,15 +282,20 @@

Source code for lidar_prod.tasks.utils

 
 
[docs] -def get_las_data_from_las(las_path: str) -> laspy.lasdata.LasData: +def get_las_data_from_las(las_path: str, epsg: str | int = None) -> laspy.lasdata.LasData: """Load las data from a las file""" - return laspy.read(las_path)
+ las = laspy.read(las_path) + if las.header.parse_crs() is None and epsg is not None: + las.header.add_crs(pyproj.crs.CRS(epsg)) + return las
[docs] -def get_pdal_writer(target_las_path: str, extra_dims: str = "all") -> pdal.Writer.las: +def get_pdal_writer( + target_las_path: str, reader_metadata=dict(), extra_dims: str = "all" +) -> pdal.Writer.las: """Standard LAS Writer which imposes LAS 1.4 specification and dataformat 8. Args: @@ -293,13 +306,15 @@

Source code for lidar_prod.tasks.utils

         pdal.Writer.las: writer to use in a pipeline.
 
     """
-    return pdal.Writer.las(
-        filename=target_las_path,
-        minor_version=4,
-        dataformat_id=8,
-        forward="all",
-        extra_dims=extra_dims,
-    )
+ if reader_metadata: + metadata = {"metadata": {"readers.las": reader_metadata}} + params = get_writer_parameters_from_reader_metadata(metadata) + + else: + params = {"forward": "all", "minor_version": 4, "dataformat_id": 8} + params["extra_dims"] = extra_dims + + return pdal.Writer.las(filename=target_las_path, **params)
@@ -337,7 +352,7 @@

Source code for lidar_prod.tasks.utils

 
 
[docs] -def pdal_read_las_array(las_path: str, epsg: int | str): +def pdal_read_las_array(las_path: str, epsg: int | str = None): """Read LAS as a named array. Args: @@ -348,10 +363,12 @@

Source code for lidar_prod.tasks.utils

     Returns:
         np.ndarray: named array with all LAS dimensions, including extra ones, with dict-like
         access.
+        las_metadata dict
     """
     p1 = pdal.Pipeline() | get_pdal_reader(las_path, epsg)
     p1.execute()
-    return p1.arrays[0]
+ metadata = p1.metadata["metadata"]["readers.las"] + return p1.arrays[0], metadata
diff --git a/_static/documentation_options.js b/_static/documentation_options.js index 06fd8787..f359f304 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: 'V1.10.1', + VERSION: 'V1.10.2', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/apidoc/lidar_prod.commons.html b/apidoc/lidar_prod.commons.html index 3ee36884..7c6cefab 100644 --- a/apidoc/lidar_prod.commons.html +++ b/apidoc/lidar_prod.commons.html @@ -4,7 +4,7 @@ - lidar_prod.commons — lidar_prod V1.10.1 documentation + lidar_prod.commons — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/apidoc/lidar_prod.html b/apidoc/lidar_prod.html index edb1efb8..7f89378b 100644 --- a/apidoc/lidar_prod.html +++ b/apidoc/lidar_prod.html @@ -4,7 +4,7 @@ - lidar_prod.run — lidar_prod V1.10.1 documentation + lidar_prod.run — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/apidoc/lidar_prod.tasks.html b/apidoc/lidar_prod.tasks.html index 5b1dbfcc..46deb477 100644 --- a/apidoc/lidar_prod.tasks.html +++ b/apidoc/lidar_prod.tasks.html @@ -4,7 +4,7 @@ - lidar_prod.tasks — lidar_prod V1.10.1 documentation + lidar_prod.tasks — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + @@ -189,12 +189,12 @@

lidar_prod.tasks
-prepare(input_values: str | Pipeline, prepared_las_path: str, save_result: bool = False) None[source]
+prepare(input_values: str | Pipeline, prepared_las_path: str, save_result: bool = False, las_metadata: dict | None = None) dict[source]
-run(input_values: str | Pipeline, target_las_path: str | None = None) str[source]
+run(input_values: str | Pipeline, target_las_path: str | None = None, las_metadata: dict | None = None) dict[source]

Runs application.

Transforms cloud at input_values following building validation logic, and saves it to target_las_path

@@ -204,13 +204,19 @@

lidar_prod.tasksinput_values (str| pdal.pipeline.Pipeline) – path or pipeline to input LAS file with

  • channel (a _sphinx_paramlinks_lidar_prod.tasks.building_validation.BuildingValidator.run.building probability) –

  • target_las_path (str) – path for saving updated LAS file.

  • +
  • las_metadata (dict) – current pipeline metadata, used to propagate input metadata to the

  • -
    Returns:
    -

    returns target_las_path

    +
    +

    application output las (epsg, las version, etc)

    +
    +
    Returns:
    +

    returns las_metadata: metadata of the input las, which contain +information to pass to the writer in order for the application to have an output +with the same header (las version, srs, …) as the input

    -
    Return type:
    -

    str

    +
    Return type:
    +

    str

    @@ -223,7 +229,7 @@

    lidar_prod.tasks
    -update(src_las_path: str | None = None, target_las_path: str | None = None) None[source]
    +update(src_las_path: str | None = None, target_las_path: str | None = None, las_metadata: dict | None = None) dict[source]

    Updates point cloud classification channel.

    @@ -445,17 +451,14 @@

    lidar_prod.tasks
    Parameters:
    -
      -
    • src_las_path (pdal.pipeline.Pipeline) – input LAS pipeline

    • -
    • target_las_path (str) – output, prepared LAS.

    • -
    +

    pipeline (pdal.pipeline.Pipeline) – input LAS pipeline

    -run(input_values: str | Pipeline)[source]
    +run(input_values: str | Pipeline, las_metadata: dict | None = None) dict[source]

    Application.

    Transform cloud at src_las_path following building completion logic

    @@ -463,13 +466,19 @@

    lidar_prod.tasks
    • input_values (str|pdal.pipeline.Pipeline) – path to either input LAS file or a pipeline

    • target_las_path (str) – path for saving updated LAS file.

    • +
    • las_metadata (dict) – current pipeline metadata, used to propagate input metadata to the

    -
    Returns:
    -

    returns target_las_path for potential terminal piping.

    +
    +

    application output las (epsg, las version, etc)

    +
    +
    Returns:
    +

    returns las_metadata: metadata of the initial las, which contain +information to pass to the writer in order for the application to have an output +with the same header (las version, srs, …) as the input

    -
    Return type:
    -

    str

    +
    Return type:
    +

    str

    @@ -495,7 +504,7 @@

    lidar_prod.tasks
    -run(input_values: str | Pipeline, target_las_path: str | None = None) str[source]
    +run(input_values: str | Pipeline, target_las_path: str | None = None, las_metadata: dict | None = None) dict[source]

    Identify potential buildings in a new channel, excluding former candidates as well as already confirmed building (confirmed by either Validation or Completion).

    @@ -504,9 +513,12 @@

    lidar_prod.tasksinput_values (str | pdal.pipeline.Pipeline) – path or pipeline to input LAS file with

  • channel (a _sphinx_paramlinks_lidar_prod.tasks.building_identification.BuildingIdentifier.run.building probability) –

  • target_las_path (str) – output LAS

  • +
  • las_metadata (dict) – current pipeline metadata, used to propagate input metadata to the

  • +

    application output las (epsg, las version, etc)

    +

    Returns: updated las_metadata

    @@ -645,7 +657,7 @@

    lidar_prod.tasks
    -lidar_prod.tasks.utils.get_las_data_from_las(las_path: str) LasData[source]
    +lidar_prod.tasks.utils.get_las_data_from_las(las_path: str, epsg: str | int | None = None) LasData[source]

    Load las data from a las file

    @@ -672,7 +684,7 @@

    lidar_prod.tasks
    -lidar_prod.tasks.utils.get_pdal_writer(target_las_path: str, extra_dims: str = 'all') las[source]
    +lidar_prod.tasks.utils.get_pdal_writer(target_las_path: str, reader_metadata={}, extra_dims: str = 'all') las[source]

    Standard LAS Writer which imposes LAS 1.4 specification and dataformat 8.

    Parameters:
    @@ -692,9 +704,10 @@

    lidar_prod.tasks
    -lidar_prod.tasks.utils.get_pipeline(input_value: Pipeline | str, epsg: int | str)[source]
    +lidar_prod.tasks.utils.get_pipeline(input_value: Pipeline | str, epsg: int | str, las_metadata: dict | None = None)[source]

    If the input value is a pipeline, returns it, if it’s a las path return the corresponding -pipeline

    +pipeline, +If the input is a las_path, pipeline_metadata is updated to the new pipeline metadata

    Parameters:
      @@ -702,17 +715,19 @@

      lidar_prod.tasksepsg (int | str) – if input_value is a string, use the epsg value to override the crs from

    • header (the _sphinx_paramlinks_lidar_prod.tasks.utils.get_pipeline.las) –

    • +
    • las_metadata (dict) – current pipeline metadata, used to propagate input metadata to the

    • +
    • las (application _sphinx_paramlinks_lidar_prod.tasks.utils.get_pipeline.output) –

    Returns:
    -

    pdal pipeline

    +

    pdal pipeline, updated pipeline_metadata dict

    -lidar_prod.tasks.utils.pdal_read_las_array(las_path: str, epsg: int | str)[source]
    +lidar_prod.tasks.utils.pdal_read_las_array(las_path: str, epsg: str | int | None = None)[source]

    Read LAS as a named array.

    Parameters:
    @@ -724,7 +739,8 @@

    lidar_prod.tasksReturns:

    named array with all LAS dimensions, including extra ones, with dict-like -access.

    +access. +las_metadata dict

    Return type:

    np.ndarray

    diff --git a/background/overview.html b/background/overview.html index a16cae8b..2522811c 100644 --- a/background/overview.html +++ b/background/overview.html @@ -4,7 +4,7 @@ - Overview of the process — lidar_prod V1.10.1 documentation + Overview of the process — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/background/production_process.html b/background/production_process.html index 9de371d5..4bafaf40 100644 --- a/background/production_process.html +++ b/background/production_process.html @@ -4,7 +4,7 @@ - Production process used to transform point clouds classification — lidar_prod V1.10.1 documentation + Production process used to transform point clouds classification — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/background/thresholds_optimization_process.html b/background/thresholds_optimization_process.html index 5f6e6d32..1a3804b2 100644 --- a/background/thresholds_optimization_process.html +++ b/background/thresholds_optimization_process.html @@ -4,7 +4,7 @@ - Strategy to find optimal decision thresholds for Building validation — lidar_prod V1.10.1 documentation + Strategy to find optimal decision thresholds for Building validation — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/configs.html b/configs.html index cff74b95..50c14bb5 100644 --- a/configs.html +++ b/configs.html @@ -4,7 +4,7 @@ - Default configuration — lidar_prod V1.10.1 documentation + Default configuration — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/genindex.html b/genindex.html index dc50ea06..e328494c 100644 --- a/genindex.html +++ b/genindex.html @@ -3,7 +3,7 @@ - Index — lidar_prod V1.10.1 documentation + Index — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + @@ -329,6 +329,16 @@

    L

    +
    • lidar_prod.tasks.building_completion @@ -356,8 +368,6 @@

      L

    • module
    - -
    • lidar_prod.tasks.building_identification @@ -465,6 +475,8 @@

      O

    • OPT_VEGETATION (lidar_prod.run.POSSIBLE_TASK attribute)
    • optimize() (lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer method) +
    • +
    • output las (lidar_prod.tasks.utils.get_pipeline parameter)
    • overlays (lidar_prod.tasks.building_validation.BuildingValidationClusterInfo attribute)
    • @@ -476,20 +488,24 @@

      P

      + -
      • prepare_for_building_completion() (lidar_prod.tasks.building_completion.BuildingCompletor method)
      • print_config() (in module lidar_prod.commons.commons) @@ -540,11 +556,9 @@

        S

        • split_idx_by_dim() (in module lidar_prod.tasks.utils)
        • -
        • src_las_path (lidar_prod.tasks.building_completion.BuildingCompletor.prepare_for_building_completion parameter) +
        • src_las_path (lidar_prod.tasks.cleaning.Cleaner.run parameter)
        • @@ -556,11 +570,9 @@

          T

          • target (lidar_prod.tasks.building_validation.BuildingValidationClusterInfo attribute)
          • -
          • target_las_path (lidar_prod.tasks.building_completion.BuildingCompletor.prepare_for_building_completion parameter) +
          • target_las_path (lidar_prod.tasks.building_completion.BuildingCompletor.run parameter)
              -
            • (lidar_prod.tasks.building_completion.BuildingCompletor.run parameter) -
            • (lidar_prod.tasks.building_identification.BuildingIdentifier.run parameter)
            • (lidar_prod.tasks.building_validation.BuildingValidator.run parameter) diff --git a/guides/development.html b/guides/development.html index 8321f694..4ad52f06 100644 --- a/guides/development.html +++ b/guides/development.html @@ -4,7 +4,7 @@ - Developer’s guide — lidar_prod V1.10.1 documentation + Developer’s guide — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/guides/thresholds_optimization.html b/guides/thresholds_optimization.html index 5591bddc..6d2ed486 100644 --- a/guides/thresholds_optimization.html +++ b/guides/thresholds_optimization.html @@ -4,7 +4,7 @@ - How to optimize building validation decision thresholds? — lidar_prod V1.10.1 documentation + How to optimize building validation decision thresholds? — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/index.html b/index.html index a57e561c..efde6102 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - Lidar-Prod > Documentation — lidar_prod V1.10.1 documentation + Lidar-Prod > Documentation — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/introduction.html b/introduction.html index b72e90a3..e9732cee 100644 --- a/introduction.html +++ b/introduction.html @@ -4,7 +4,7 @@ - <no title> — lidar_prod V1.10.1 documentation + <no title> — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/objects.inv b/objects.inv index 9bbfcccc..e53f37ed 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html index 1edcf8ba..9df00853 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — lidar_prod V1.10.1 documentation + Python Module Index — lidar_prod V1.10.2 documentation @@ -15,7 +15,7 @@ - + diff --git a/search.html b/search.html index de0b3088..b88aa9d6 100644 --- a/search.html +++ b/search.html @@ -3,7 +3,7 @@ - Search — lidar_prod V1.10.1 documentation + Search — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/searchindex.js b/searchindex.js index 990cb2db..70696c4d 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["apidoc/lidar_prod", "apidoc/lidar_prod.commons", "apidoc/lidar_prod.tasks", "background/overview", "background/production_process", "background/thresholds_optimization_process", "configs", "guides/development", "guides/thresholds_optimization", "index", "introduction", "tutorials/install", "tutorials/use"], "filenames": ["apidoc/lidar_prod.rst", "apidoc/lidar_prod.commons.rst", "apidoc/lidar_prod.tasks.rst", "background/overview.md", "background/production_process.md", "background/thresholds_optimization_process.md", "configs.rst", "guides/development.md", "guides/thresholds_optimization.md", "index.rst", "introduction.md", "tutorials/install.md", "tutorials/use.md"], "titles": ["lidar_prod.run", "lidar_prod.commons", "lidar_prod.tasks", "Overview of the process", "Production process used to transform point clouds classification", "Strategy to find optimal decision thresholds for Building validation", "Default configuration", "Developer\u2019s guide", "How to optimize building validation decision thresholds?", "Lidar-Prod > Documentation", "<no title>", "Installation", "Using the app"], "terms": {"class": [0, 2, 3, 9, 10], "possible_task": 0, "valu": [0, 2], "sourc": [0, 1, 2, 5, 6, 9, 10, 11], "base": [0, 2, 3, 4, 5, 8, 9, 10], "enum": 0, "an": [0, 2, 3, 7, 8, 12], "enumer": 0, "apply_build": 0, "apply_on_build": [0, 12], "clean": [0, 6, 12], "get_shapefil": [0, 12], "id_vegetation_unclassifi": 0, "identify_vegetation_unclassifi": [0, 12], "opt_build": 0, "optimize_build": [0, 8, 12], "opt_unclassifi": 0, "optimize_unc_id": [0, 12], "opt_veget": 0, "optimize_veg_id": [0, 12], "main": [0, 7, 9, 10], "config": [0, 1, 6, 12], "dictconfig": [0, 1], "entri": [0, 9, 10], "point": [0, 2, 3, 5, 8, 9, 10, 12], "either": [0, 2, 7], "appli": 0, "optim": [0, 2, 4, 6, 9, 10], "threshold": [0, 2, 4, 6, 9, 10], "check": [0, 2], "configur": [0, 1, 2, 8, 9, 12], "file": [0, 2, 3, 4, 6, 7, 8, 11, 12], "usag": [0, 11], "eval_tim": 1, "function": 1, "callabl": 1, "decor": 1, "log": 1, "durat": 1, "method": 1, "extra": [1, 2, 4], "ignore_warn": [1, 6], "print_config": [1, 6, 12], "resolv": 1, "bool": [1, 2], "true": [1, 2, 6, 8, 12], "cfg_print_path": 1, "str": [1, 2], "config_tre": 1, "txt": 1, "none": [1, 2], "print": [1, 12], "content": [1, 3, 7, 12], "us": [1, 2, 3, 5, 7, 8, 9, 10, 11], "rich": 1, "librari": [1, 5, 7, 9, 10], "its": [1, 2, 3, 9, 10], "tree": 1, "structur": 1, "paramet": [1, 2, 8, 12], "compos": 1, "hydra": [1, 6, 12], "option": [1, 2, 12], "whether": 1, "refer": [1, 2, 6, 8, 12], "field": [1, 2], "where": [1, 2, 3, 4], "save": [1, 2, 8, 12], "buildingvalidationclusterinfo": 2, "probabl": [2, 3, 4, 5, 8, 9, 10, 12], "ndarrai": 2, "overlai": [2, 4], "entropi": [2, 4, 6, 8, 12], "target": 2, "int": [2, 6], "object": [2, 4, 5, 9, 10], "element": [2, 9, 10], "need": [2, 7, 8, 9, 10, 11, 12], "confirm": [2, 4, 5], "refut": [2, 4], "uncertain": [2, 4], "about": 2, "cluster": [2, 4, 5, 6], "candid": [2, 4, 5, 6], "build": [2, 3, 6, 7, 9, 10, 11, 12], "buildingvalid": [2, 6], "shp_path": [2, 6, 12], "bd_uni_connection_param": [2, 6, 11], "bd_uni_request": [2, 6], "data_format": [2, 6, 8, 12], "use_final_classification_cod": [2, 6], "logic": 2, "valid": [2, 9], "The": [2, 3, 4, 5, 7, 9, 10, 11, 12], "identifi": [2, 4, 11, 12], "rule": [2, 3, 4, 5, 8, 9, 10], "algorithm": [2, 4, 5, 8, 9, 10], "ar": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "togeth": [2, 8, 9, 10], "bduni": [2, 9, 10], "vector": [2, 4, 9, 10], "cloud": [2, 8, 9, 10, 12], "fall": 2, "under": [2, 8], "flag": [2, 5, 8, 12], "Then": [2, 4, 11], "classif": [2, 5, 6, 8, 9, 10], "dim": 2, "i": [2, 3, 4, 5, 7, 8, 9, 10, 11, 12], "updat": [2, 4, 6, 8, 9, 10], "per": 2, "group": [2, 4, 5, 6, 8], "basi": 2, "both": 2, "ai": [2, 5, 9, 10], "see": [2, 7, 11, 12], "readm": 2, "md": [2, 7], "detail": [2, 6], "process": [2, 5, 7, 8, 9], "prepar": [2, 6, 8, 12], "input_valu": 2, "pipelin": 2, "prepared_las_path": 2, "save_result": 2, "fals": [2, 6, 8], "run": [2, 7, 9, 11], "target_las_path": 2, "applic": [2, 6, 9, 10, 11, 12], "transform": [2, 9], "follow": [2, 7, 8], "pdal": 2, "path": [2, 6, 8, 12], "input": [2, 4, 6, 12], "la": [2, 3, 4, 6, 8, 12], "channel": [2, 8, 12], "_sphinx_paramlinks_lidar_prod": 2, "return": 2, "type": 2, "setup": [2, 7, 11], "defin": [2, 4, 5, 7], "variabl": 2, "src_las_path": 2, "min_confidence_confirm": [2, 6], "float": [2, 6], "min_frac_confirm": [2, 6], "min_frac_confirmation_factor_if_bd_uni_overlai": [2, 6], "min_uni_db_overlay_frac": [2, 6], "min_confidence_refut": [2, 6], "min_frac_refut": [2, 6], "min_entropy_uncertainti": [2, 6], "min_frac_entropy_uncertain": [2, 6], "decis": [2, 4, 9, 10], "cluser": 2, "level": [2, 4, 5, 7, 8], "buildingvalidationoptim": [2, 6], "todo": [2, 6, 8], "dict": 2, "studi": [2, 6], "design": [2, 6], "ani": 2, "buildings_correction_label": [2, 6, 8], "debug": [2, 8, 12], "In": [2, 7], "lidar": [2, 4, 10, 11], "prod": [2, 7, 10, 11], "each": [2, 4], "implement": [2, 7], "dedic": 2, "python": [2, 7, 8], "via": [2, 4, 9, 10, 12], "we": [2, 3, 4, 5, 6, 8, 9, 10, 11, 12], "make": [2, 7], "sure": [2, 8], "all": 2, "one": [2, 4, 5, 9, 10, 12], "actual": 2, "product": [2, 5, 7, 8, 9, 10, 11], "For": [2, 4, 5, 8, 12], "higher": [2, 5], "intern": 2, "cohes": 2, "doe": 2, "know": 2, "anyth": 2, "which": [2, 3, 4, 5, 7, 8, 9, 10, 11], "taken": 2, "care": 2, "two": [2, 4, 5, 8], "dataclass": 2, "connect": [2, 4], "describ": [2, 5], "inform": [2, 6, 9, 10], "necessari": 2, "perform": [2, 4, 8], "differ": [2, 5, 8, 9, 10], "most": 2, "time": [2, 3], "consum": [2, 3], "step": [2, 3, 7, 8], "data": [2, 5, 8], "includ": [2, 4, 8], "from": [2, 3, 4, 5, 7, 8, 11], "public": [2, 9, 10, 11], "databs": 2, "up": [2, 7, 8, 12], "sever": [2, 3, 5], "minut": 2, "km\u00b2": 2, "break": 2, "down": 2, "onli": [2, 9, 10], "occur": 2, "onc": [2, 8], "output": [2, 5, 6, 12], "intermediari": 2, "store": 2, "results_output_dir": [2, 6, 8], "directori": [2, 8], "so": [2, 7, 8, 9, 10], "oper": 2, "mai": [2, 4, 5, 8], "resum": 2, "instanc": [2, 5], "rerun": 2, "evalu": [2, 6, 12], "deseri": 2, "set": [2, 4, 5], "comput": 2, "recal": [2, 4, 5, 6], "precis": [2, 4, 5, 6], "autom": [2, 4, 5, 8, 9, 10], "well": [2, 5], "other": [2, 9, 10, 12], "metric": [2, 6], "confus": 2, "matric": 2, "If": [2, 4], "dataset": [2, 4, 8, 9, 10], "wa": [2, 5, 7, 8], "thi": [2, 3, 4, 7, 8, 12], "ran": 2, "test": [2, 4, 12], "dictionnari": 2, "schema": 2, "metric_nam": 2, "metric_valu": 2, "evaluate_decis": 2, "mts_gt": 2, "ia_decis": 2, "get": [2, 11], "how": [2, 5, 7, 9], "good": 2, "modul": [2, 3, 8, 9], "were": [2, 4, 5, 8, 9, 10], "ground": [2, 4], "truth": 2, "u": 2, "unsur": [2, 4, 5, 6], "n": 2, "No": 2, "y": 2, "ye": 2, "predict": [2, 8, 9, 10, 12], "c": 2, "r": 2, "matrix": 2, "horizont": 2, "vertic": [2, 4], "uu": 2, "ur": 2, "uc": 2, "nu": 2, "nr": 2, "nc": 2, "yu": 2, "yr": 2, "yc": 2, "proport": [2, 4, 5], "among": [2, 4, 5], "total": 2, "accuraci": 2, "accur": 2, "same": [2, 4, 8], "label": [2, 8], "qualiti": [2, 9, 10, 11], "assum": 2, "perfect": 2, "posterior": 2, "shape": 2, "known": 2, "consid": [2, 4], "ambigu": [2, 4], "ignor": 2, "yn": 2, "np": 2, "arrai": 2, "0": [2, 4, 6], "1": [2, 6, 8], "2": 2, "genet": [2, 5, 8, 9, 10], "gener": [2, 5, 7, 8], "final": [2, 5, 6], "serial": 2, "specifi": [2, 8, 12], "extract": 2, "list": [2, 12], "pickl": [2, 6, 8], "few": 2, "attribut": 2, "overrid": [2, 12], "code": [2, 6, 8], "adapt": 2, "those": [2, 4, 5, 12], "threshod": 2, "result": [2, 7, 8, 12], "constraints_func": [2, 6], "trial": 2, "buildingcompletor": [2, 6], "min_building_proba": [2, 6], "5": [2, 4, 6], "complet": 2, "form": 2, "suffici": 2, "size": 2, "some": 2, "too": [2, 4], "isol": [2, 11], "even": 2, "though": 2, "thei": [2, 3, 4, 5, 8, 12], "might": [2, 5, 8, 9, 10], "have": [2, 3, 4, 8], "high": [2, 4, 7, 9, 10], "probabilii": 2, "can": [2, 4, 7, 8, 9, 10, 11, 12], "trust": 2, "enough": [2, 4], "neigborhood": 2, "larg": [2, 7, 8], "alreadi": [2, 4], "surround": 2, "select": 2, "p": [2, 4], "factor": [2, 4], "when": [2, 4, 7], "xy": [2, 4], "A": [2, 3, 8, 12], "b": 2, "contain": 2, "part": [2, 12], "accordingli": 2, "prepare_for_building_complet": 2, "them": [2, 4], "previous": [2, 4], "relax": [2, 4], "2d": 2, "toler": [2, 6], "belong": [2, 4], "potenti": [2, 4], "termin": 2, "pipe": 2, "update_classif": 2, "dimens": [2, 3, 4, 9, 10, 12], "buildingidentifi": [2, 6], "found": [2, 4, 5, 8, 9, 10], "being": [2, 4, 5, 8, 9, 10], "mean": [2, 7, 9, 10], "new": [2, 7], "exclud": 2, "former": 2, "cleaner": [2, 6], "extra_dim": [2, 6], "iter": 2, "keep": [2, 8], "add_dimens": 2, "las_data": 2, "lasdata": 2, "add": [2, 8, 12], "exist": 2, "self": [2, 7], "extra_dimens": 2, "get_extra_dims_as_str": 2, "stringifi": 2, "empti": 2, "remove_dimens": 2, "remov": 2, "laspi": 2, "epsg": [2, 6], "out": 2, "infer": [2, 3], "metadata": 2, "bduniconnectionparam": [2, 6], "host": [2, 6, 7, 12], "user": [2, 6, 11], "pwd": [2, 6, 11], "bd_name": [2, 6], "url": 2, "credenti": 2, "databas": [2, 4, 7, 9, 10, 11, 12], "typic": 2, "check_bbox_intersects_territoire_with_srid": 2, "bd_param": 2, "bbox": 2, "epsg_srid": 2, "bound": 2, "box": 2, "intersect": 2, "territori": 2, "gcms_territoir": 2, "expect": 2, "srid": 2, "As": [2, 5, 8], "geometri": 2, "indic": [2, 8], "origin": [2, 8], "project": [2, 11], "compar": [2, 4], "common": [2, 9], "territoir": 2, "queri": [2, 7, 12], "st_union": 2, "combin": 2, "would": 2, "eg": 2, "5490": 2, "guadeloup": 2, "martiniqu": 2, "get_a_las_to_las_pdal_pipelin": 2, "op": 2, "creat": [2, 11, 12], "preserv": 2, "format": [2, 8, 12], "forward": [2, 7], "everi": 2, "e": [2, 4, 5, 7, 8], "g": [2, 4, 7], "filter": 2, "assign": 2, "get_input_las_metadata": 2, "reader": 2, "get_integer_bbox": 2, "buffer": [2, 6], "number": [2, 5], "cast": 2, "x": 2, "min": 2, "max": 2, "integ": 2, "read": 2, "befor": [2, 8], "default": [2, 4, 9, 12], "dictionari": 2, "get_las_data_from_la": 2, "las_path": 2, "load": 2, "get_pdal_read": 2, "standard": 2, "impos": 2, "lamber": 2, "93": 2, "sr": 2, "get_pdal_writ": 2, "writer": 2, "4": [2, 6], "specif": [2, 11, 12], "dataformat": 2, "8": 2, "write": 2, "get_pipelin": 2, "": [2, 9, 12], "correspond": [2, 12], "string": [2, 8], "cr": [2, 4], "header": 2, "pdal_read_las_arrai": 2, "name": [2, 4, 7, 12], "ones": 2, "like": [2, 12], "access": [2, 7], "request_bd_uni_for_building_shapefil": 2, "shapefile_path": 2, "request": [2, 7, 11], "bd": [2, 12], "uni": [2, 12], "shapefil": [2, 12], "non": [2, 4, 7], "destruct": 2, "area": [2, 4, 9, 10], "interest": 2, "also": [2, 5, 8, 9, 10, 11, 12], "presenc": 2, "column": 2, "fill": [2, 11], "later": [2, 4], "note": [2, 8, 12], "mix": 2, "tabl": 2, "postgi": [2, 11], "declar": 2, "legal": 2, "tell": 2, "3": [2, 6], "letter": 2, "give": [2, 8], "hint": 2, "footprint": 2, "save_las_data_to_la": 2, "split_idx_by_dim": 2, "dim_arrai": 2, "sequenc": 2, "share": 2, "order": 2, "ascend": 2, "goe": 3, "through": [3, 4], "alter": 3, "At": 3, "first": [3, 4], "raw": 3, "sent": 3, "anoth": [3, 5, 8, 12], "myria3d": 3, "variou": 3, "decid": 3, "veget": [3, 6, 12], "unclassifi": [3, 6, 12], "someth": 3, "els": 3, "extern": 3, "segment": [3, 4, 9, 10], "second": 3, "arrow": 3, "repres": [3, 5], "come": 3, "end": 4, "goal": 4, "tool": 4, "edit": [4, 11], "much": [4, 5], "confid": [4, 5, 6], "highlight": [4, 9, 10], "remain": 4, "uncertainti": [4, 9, 10], "human": [4, 9, 10], "inspect": 4, "went": 4, "geometr": 4, "plane": 4, "surfac": 4, "abov": 4, "5m": 4, "etc": 4, "semant": [4, 7, 9, 10], "model": [4, 5, 8, 9, 10], "produc": [4, 5, 9, 10], "calcul": 4, "associ": 4, "respect": [4, 8], "you": [4, 8, 11, 12], "leverag": [4, 7], "packag": [4, 7, 11, 12], "aerial": 4, "deep": [4, 8, 9, 10], "learn": [4, 8, 9, 10], "done": 4, "against": 4, "That": 4, "ha": 4, "been": 4, "establish": 4, "best": [4, 12], "exactli": 4, "possibl": 4, "mark": 4, "elsewis": 4, "compon": 4, "e1": 4, "c1": [4, 5], "reduc": [4, 5], "requir": [4, 5, 7, 9, 10, 12], "r1": 4, "due": 4, "e2": 4, "c2": [4, 5], "OR": 4, "o1": 4, "r2": 4, "AND": 4, "safeguard": 4, "suppos": 4, "captur": 4, "chosen": [4, 5], "multi": [4, 5, 9, 10], "hyperparamet": [4, 5], "aim": [4, 9, 10], "maxim": [4, 5, 6], "current": [4, 9, 10, 12], "15km\u00b2": [4, 8], "express": 4, "percentag": [4, 5], "86": 4, "98": [4, 5, 6], "becaus": 4, "scatter": 4, "dure": [4, 8, 11, 12], "proba": 4, "fashion": 4, "plan": 4, "rest": 4, "thing": 4, "ad": [4, 7], "avoid": 4, "direct": [4, 6, 7], "modif": 4, "take": [4, 9, 10], "place": 4, "outsid": 4, "scope": 4, "softwar": 4, "miss": [4, 9, 10], "probabilt": 4, "index": [4, 9], "newli": 4, "section": 5, "depend": [5, 7, 9, 10, 11], "deriv": 5, "highli": 5, "coupl": 5, "lower": 5, "There": 5, "must": [5, 8], "therefor": 5, "jointli": 5, "These": 5, "quantiti": 5, "error": [5, 9, 10], "introduc": 5, "balanc": [5, 9, 10], "between": [5, 9, 10], "made": [5, 8], "approach": [5, 9, 10], "choic": 5, "constrain": 5, "nsga": [5, 8], "ii": [5, 8], "optuna": [5, 6], "constraint": [5, 6], "empir": 5, "search": 5, "three": 5, "focus": 5, "solut": [5, 8], "meet": 5, "criteria": 5, "after": 5, "pareto": 5, "front": 5, "effici": 5, "criterion": 5, "could": 5, "increas": 5, "without": 5, "compliant": 5, "manag": [6, 11, 12], "here": 6, "show": 6, "glanc": 6, "folder": [6, 8, 12], "more": [6, 8], "src_la": [6, 12], "output_dir": [6, 12], "runtim": 6, "cwd": 6, "2154": 6, "las_dimens": [6, 8, 12], "terrascan_norm": 6, "normal": 6, "terrascan_dist": 6, "distanc": 6, "terrascan_devi": 6, "deviat": 6, "terrascan_reli": 6, "ai_vegetation_proba": 6, "ai_unclassified_proba": 6, "ai_building_proba": [6, 12], "cluster_id": 6, "clusterid": 6, "uni_db_overlai": 6, "bdtopooverlai": 6, "candidate_buildings_flag": 6, "f_candidateb": 6, "clusterid_candidate_build": 6, "cid_candidateb": 6, "clusterid_confirmed_or_high_proba": 6, "cid_isolatedorconfirm": 6, "completion_non_candidate_flag": 6, "f_noncandidatecomplet": 6, "ai_building_identifi": 6, "ai_vegetation_unclassified_group": 6, "vegetation_target": 6, "vegetation_low": 6, "vegetation_medium": 6, "vegetation_high": 6, "202": 6, "unsure_by_entropi": 6, "200": 6, "unclust": 6, "ia_refut": 6, "110": 6, "ia_refuted_but_under_db_uni": 6, "111": 6, "both_unsur": 6, "112": 6, "ia_confirmed_onli": 6, "113": 6, "db_overlayed_onli": 6, "114": 6, "both_confirm": 6, "115": 6, "214": 6, "not_build": 6, "208": 6, "6": 6, "detailed_to_fin": 6, "input_build": 6, "_target_": 6, "lidar_prod": [6, 7, 8, 9, 11, 12], "task": [6, 8, 9], "uint": 6, "ushort": 6, "uchar": 6, "output_build": 6, "input_vegetation_unclassifi": 6, "uint32": 6, "output_vegetation_unclassifi": 6, "building_valid": [6, 8, 12], "null": 6, "min_point": 6, "10": 6, "50": 6, "7489066375339118": 6, "16236610677624053": 6, "5532221883488597": 6, "7243937589483613": 6, "9753597180902244": 6, "30759538271378295": 6, "254212461691427": 6, "7343497391001854": 6, "building_validation_optim": 6, "input_las_dir": [6, 8], "group_info_pickle_path": 6, "group_info": 6, "prepared_las_dir": 6, "updated_las_dir": 6, "building_validation_thresholds_pickl": [6, 8], "optimized_threshold": [6, 8], "true_posit": 6, "19": 6, "false_posit": 6, "20": 6, "false_neg": 6, "21": 6, "min_frac": 6, "95": 6, "05": 6, "create_studi": 6, "study_nam": 6, "auto_precision_recal": 6, "sampler": 6, "nsgaiisampl": 6, "population_s": 6, "mutation_prob": 6, "25": 6, "crossover_prob": 6, "swapping_prob": 6, "seed": 6, "12345": 6, "functool": 6, "partial": 6, "_args_": 6, "get_method": 6, "n_trial": 6, "400": 6, "min_precision_constraint": 6, "min_recall_constraint": 6, "min_automation_constraint": 6, "35": 6, "groups_count": 6, "group_build": 6, "group_no_build": 6, "group_unsur": 6, "proportion_of_uncertainti": 6, "p_unsur": 6, "proportion_of_refut": 6, "p_refut": 6, "proportion_of_confirm": 6, "p_confirm": 6, "confusion_matrix_norm": 6, "confusion_matrix_no_norm": 6, "proportion_of_automated_decis": 6, "p_auto": 6, "refutation_accuraci": 6, "a_refut": 6, "confirmation_accuraci": 6, "a_confirm": 6, "building_identif": 6, "75": 6, "is3d": 6, "building_complet": 6, "basic_identif": 6, "vegetation_threshold": 6, "3923": 6, "unclassified_threshold": 6, "2455": 6, "vegetation_nb_tri": 6, "100": 6, "unclassified_nb_tri": 6, "util": 6, "serveurbdudiff": 6, "ign": 6, "fr": 6, "bduni_france_consult": [6, 12], "convent": 7, "py": [7, 8, 9, 10, 12], "releas": 7, "functionn": 7, "document": [7, 12], "role": 7, "readi": 7, "fast": [7, 8], "branch": [7, 11], "match": [7, 8, 12], "activ": [7, 8, 11, 12], "environ": [7, 8, 12], "conda": [7, 8, 11, 12], "m": [7, 12], "pytest": 7, "One": 7, "665mb": 7, "action": [7, 12], "runner": 7, "publicli": 7, "avail": 7, "moment": 7, "absenc": 7, "xfail": 7, "local": 7, "featur": 7, "hoc": 7, "refactor": 7, "merg": 7, "dev": 7, "pull": 7, "push": 7, "workflow": 7, "docker": 7, "imag": [7, 12], "lint": 7, "event": 7, "accept": 7, "case": 7, "pass": 7, "tag": 7, "date": [7, 12], "tutori": [7, 8], "app": [7, 8, 9], "additionnali": 7, "github": [7, 11, 12], "page": [7, 11], "guid": [8, 12], "explain": 8, "strategi": [8, 9, 10], "To": [8, 11, 12], "abl": 8, "reach": 8, "correct": [8, 9, 10, 12], "track": 8, "distinguish": 8, "posit": 8, "neg": 8, "Theses": 8, "bulding_valid": 8, "furthermor": 8, "train": [8, 9, 10], "detect": [8, 12], "consist": 8, "help": [8, 11], "better": 8, "sens": 8, "larger": 8, "provid": [8, 12], "divers": 8, "said": 8, "unseen": 8, "almost": 8, "equal": 8, "robust": 8, "volum": 8, "instal": [8, 9, 12], "your": [8, 11], "live": 8, "singl": 8, "laz": 8, "subfold": 8, "basenam": 8, "Be": 8, "particular": 8, "clasif": 8, "keyword": 8, "otpim": 8, "full": 8, "val": 8, "want": [8, 12], "capabl": 8, "param": 8, "previou": 8, "pool": 8, "mode": [8, 11], "develop": [8, 9, 11, 12], "command": 8, "line": 8, "deb": 8, "et": 8, "al": 8, "2002": 8, "elitist": 8, "multiobject": 8, "augment": [9, 10], "neural": [9, 10], "network": [9, 10, 12], "Its": [9, 10], "geograph": [9, 10], "right": [9, 10], "simpl": [9, 10], "our": [9, 10, 12], "fuse": [9, 10], "ensur": [9, 10], "while": [9, 10], "minim": [9, 10], "spot": [9, 10], "now": [9, 10], "address": [9, 10], "extens": [9, 10], "multiclass": [9, 10], "overview": 9, "find": 9, "anaconda": 11, "script": 11, "mamba": 11, "top": 11, "faster": 11, "clone": 11, "git": 11, "http": 11, "com": 11, "ignf": 11, "control": 11, "cd": 11, "www": 11, "individu": 11, "sudo": 11, "apt": 11, "setup_env": [11, 12], "sh": [11, 12], "env": [11, 12], "anywher": 11, "directli": 11, "pip": 11, "upgrad": 11, "tarbal": 11, "refert": 11, "bd_uni": 11, "copi": [11, 12], "credentials_templ": 11, "yaml": [11, 12], "cp": 11, "blank": 11, "integr": 12, "v": 12, "local_src_las_dir": 12, "local_output_dir": 12, "src_las_basenam": 12, "encapsul": 12, "virtual": 12, "built": 12, "dockerfil": 12, "standalon": 12, "should": 12, "repositori": 12, "whose": 12, "connexion": 12, "addit": 12, "thes": 12, "forc": 12, "instead": 12, "db": 12, "fly": 12, "By": 12, "overriden": 12, "syntax": 12, "h": 12, "pretti": 12, "color": 12, "bash": 12, "mostli": 12, "simpli": 12, "task_nam": 12}, "objects": {"lidar_prod.commons": [[1, 0, 0, "-", "commons"]], "lidar_prod.commons.commons": [[1, 1, 1, "", "eval_time"], [1, 1, 1, "", "extras"], [1, 1, 1, "", "ignore_warnings"], [1, 1, 1, "", "print_config"]], "lidar_prod.commons.commons.print_config.params": [[1, 2, 1, "", "cfg_print_path"], [1, 2, 1, "", "config"], [1, 2, 1, "", "resolve"]], "lidar_prod": [[0, 0, 0, "-", "run"]], "lidar_prod.run": [[0, 3, 1, "", "POSSIBLE_TASK"], [0, 1, 1, "", "main"]], "lidar_prod.run.POSSIBLE_TASK": [[0, 4, 1, "", "APPLY_BUILDING"], [0, 4, 1, "", "CLEANING"], [0, 4, 1, "", "GET_SHAPEFILE"], [0, 4, 1, "", "ID_VEGETATION_UNCLASSIFIED"], [0, 4, 1, "", "OPT_BUIlDING"], [0, 4, 1, "", "OPT_UNCLASSIFIED"], [0, 4, 1, "", "OPT_VEGETATION"]], "lidar_prod.tasks": [[2, 0, 0, "-", "building_completion"], [2, 0, 0, "-", "building_identification"], [2, 0, 0, "-", "building_validation"], [2, 0, 0, "-", "building_validation_optimization"], [2, 0, 0, "-", "cleaning"], [2, 0, 0, "-", "utils"]], "lidar_prod.tasks.building_completion": [[2, 3, 1, "", "BuildingCompletor"]], "lidar_prod.tasks.building_completion.BuildingCompletor": [[2, 5, 1, "", "prepare_for_building_completion"], [2, 5, 1, "", "run"], [2, 5, 1, "", "update_classification"]], "lidar_prod.tasks.building_completion.BuildingCompletor.prepare_for_building_completion.params": [[2, 2, 1, "", "src_las_path"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.building_completion.BuildingCompletor.run.params": [[2, 2, 1, "", "input_values"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.building_identification": [[2, 3, 1, "", "BuildingIdentifier"]], "lidar_prod.tasks.building_identification.BuildingIdentifier": [[2, 5, 1, "", "run"]], "lidar_prod.tasks.building_identification.BuildingIdentifier.run.params": [[2, 2, 1, "", "building probability channel"], [2, 2, 1, "", "input_values"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.building_validation": [[2, 3, 1, "", "BuildingValidationClusterInfo"], [2, 3, 1, "", "BuildingValidator"], [2, 3, 1, "", "thresholds"]], "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo": [[2, 4, 1, "", "entropies"], [2, 4, 1, "", "overlays"], [2, 4, 1, "", "probabilities"], [2, 4, 1, "", "target"]], "lidar_prod.tasks.building_validation.BuildingValidator": [[2, 5, 1, "", "prepare"], [2, 5, 1, "", "run"], [2, 5, 1, "", "setup"], [2, 5, 1, "", "update"]], "lidar_prod.tasks.building_validation.BuildingValidator.run.params": [[2, 2, 1, "", "building probability channel"], [2, 2, 1, "", "input_values"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.building_validation.thresholds": [[2, 4, 1, "", "min_confidence_confirmation"], [2, 4, 1, "", "min_confidence_refutation"], [2, 4, 1, "", "min_entropy_uncertainty"], [2, 4, 1, "", "min_frac_confirmation"], [2, 4, 1, "", "min_frac_confirmation_factor_if_bd_uni_overlay"], [2, 4, 1, "", "min_frac_entropy_uncertain"], [2, 4, 1, "", "min_frac_refutation"], [2, 4, 1, "", "min_uni_db_overlay_frac"]], "lidar_prod.tasks.building_validation_optimization": [[2, 3, 1, "", "BuildingValidationOptimizer"], [2, 1, 1, "", "constraints_func"]], "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer": [[2, 5, 1, "", "evaluate"], [2, 5, 1, "", "evaluate_decisions"], [2, 5, 1, "", "optimize"], [2, 5, 1, "", "prepare"], [2, 5, 1, "", "run"], [2, 5, 1, "", "setup"], [2, 5, 1, "", "update"]], "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.evaluate_decisions.params": [[2, 2, 1, "", "ia_decision"], [2, 2, 1, "", "mts_gt"]], "lidar_prod.tasks.cleaning": [[2, 3, 1, "", "Cleaner"]], "lidar_prod.tasks.cleaning.Cleaner": [[2, 5, 1, "", "add_dimensions"], [2, 5, 1, "", "get_extra_dims_as_str"], [2, 5, 1, "", "remove_dimensions"], [2, 5, 1, "", "run"]], "lidar_prod.tasks.cleaning.Cleaner.run.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "src_las_path"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.utils": [[2, 3, 1, "", "BDUniConnectionParams"], [2, 1, 1, "", "check_bbox_intersects_territoire_with_srid"], [2, 1, 1, "", "get_a_las_to_las_pdal_pipeline"], [2, 1, 1, "", "get_input_las_metadata"], [2, 1, 1, "", "get_integer_bbox"], [2, 1, 1, "", "get_las_data_from_las"], [2, 1, 1, "", "get_pdal_reader"], [2, 1, 1, "", "get_pdal_writer"], [2, 1, 1, "", "get_pipeline"], [2, 1, 1, "", "pdal_read_las_array"], [2, 1, 1, "", "request_bd_uni_for_building_shapefile"], [2, 1, 1, "", "save_las_data_to_las"], [2, 1, 1, "", "split_idx_by_dim"]], "lidar_prod.tasks.utils.BDUniConnectionParams": [[2, 4, 1, "", "bd_name"], [2, 4, 1, "", "host"], [2, 4, 1, "", "pwd"], [2, 4, 1, "", "user"]], "lidar_prod.tasks.utils.get_a_las_to_las_pdal_pipeline.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "metadata)"], [2, 2, 1, "", "ops"], [2, 2, 1, "", "src_las_path"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.utils.get_integer_bbox.params": [[2, 2, 1, "", "buffer"], [2, 2, 1, "", "pipeline"]], "lidar_prod.tasks.utils.get_integer_bbox.params.to 0": [[2, 2, 1, "", ""]], "lidar_prod.tasks.utils.get_pdal_reader.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "from the las metadata)"], [2, 2, 1, "", "las_path"]], "lidar_prod.tasks.utils.get_pdal_writer.params": [[2, 2, 1, "", "extra_dims"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.utils.get_pipeline.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "input_value"], [2, 2, 1, "", "las header"], [2, 2, 1, "", "pipeline or path to a file to read with pdal)"]], "lidar_prod.tasks.utils.pdal_read_las_array.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "las_path"], [2, 2, 1, "", "metadata)"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:parameter", "3": "py:class", "4": "py:attribute", "5": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "parameter", "Python parameter"], "3": ["py", "class", "Python class"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "method", "Python method"]}, "titleterms": {"lidar_prod": [0, 1, 2], "run": [0, 8, 12], "common": 1, "modul": [1, 4, 11, 12], "task": [2, 12], "building_valid": 2, "building_validation_optim": 2, "building_complet": 2, "building_identif": 2, "clean": 2, "util": [2, 8], "overview": 3, "process": [3, 4], "schema": 3, "overal": 3, "product": 4, "us": [4, 12], "transform": 4, "point": 4, "cloud": 4, "classif": 4, "A": 4, "1": 4, "veget": 4, "detect": 4, "2": 4, "unclassifi": 4, "b": 4, "build": [4, 5, 8], "valid": [4, 5, 8], "complet": 4, "3": 4, "identif": 4, "strategi": 5, "find": [5, 8], "optim": [5, 8], "decis": [5, 8], "threshold": [5, 8], "motiv": 5, "default": 6, "configur": 6, "develop": 7, "": 7, "guid": [7, 9], "code": 7, "version": 7, "test": [7, 8], "continu": 7, "integr": 7, "ci": 7, "deliveri": 7, "cd": 7, "how": 8, "requir": 8, "evalu": 8, "set": [8, 11], "lidar": 9, "prod": 9, "document": 9, "background": 9, "get": 9, "start": 9, "packag": 9, "refer": 9, "indic": 9, "tabl": 9, "instal": 11, "up": 11, "virtual": 11, "environ": 11, "app": [11, 12], "python": [11, 12], "provid": 11, "credenti": 11, "within": 12, "docker": 12, "contain": 12, "from": 12, "sourc": 12, "directli": 12, "differ": 12}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"lidar_prod.run": [[0, "module-lidar_prod.run"]], "lidar_prod.commons": [[1, "lidar-prod-commons"]], "lidar_prod.commons.commons module": [[1, "module-lidar_prod.commons.commons"]], "lidar_prod.tasks": [[2, "lidar-prod-tasks"]], "building_validation": [[2, "module-lidar_prod.tasks.building_validation"]], "building_validation_optimization": [[2, "module-lidar_prod.tasks.building_validation_optimization"]], "building_completion": [[2, "module-lidar_prod.tasks.building_completion"]], "building_identification": [[2, "module-lidar_prod.tasks.building_identification"]], "cleaning": [[2, "module-lidar_prod.tasks.cleaning"]], "utils": [[2, "module-lidar_prod.tasks.utils"]], "Overview of the process": [[3, "overview-of-the-process"]], "schema of the overall process": [[3, "schema-of-the-overall-process"]], "Production process used to transform point clouds classification": [[4, "production-process-used-to-transform-point-clouds-classification"]], "A.1) Vegetation detection": [[4, "a-1-vegetation-detection"]], "A.2) Unclassified detection": [[4, "a-2-unclassified-detection"]], "B) Building Module": [[4, "b-building-module"]], "B.1) Building Validation": [[4, "b-1-building-validation"]], "B.2) Building Completion": [[4, "b-2-building-completion"]], "B.3) Building Identification": [[4, "b-3-building-identification"]], "Strategy to find optimal decision thresholds for Building validation": [[5, "strategy-to-find-optimal-decision-thresholds-for-building-validation"]], "Motivations": [[5, "motivations"]], "Strategy": [[5, "strategy"]], "Default configuration": [[6, "default-configuration"]], "Developer\u2019s guide": [[7, "developer-s-guide"]], "Code versionning": [[7, "code-versionning"]], "Tests": [[7, "tests"]], "Continuous Integration (CI)": [[7, "continuous-integration-ci"]], "Continuous Delivery (CD)": [[7, "continuous-delivery-cd"]], "How to optimize building validation decision thresholds?": [[8, "how-to-optimize-building-validation-decision-thresholds"]], "Requirements": [[8, "requirements"]], "Running thresholds optimization": [[8, "running-thresholds-optimization"]], "Finding optimal thresholds": [[8, "finding-optimal-thresholds"]], "Evaluation of optimized thresholds on a test set": [[8, "evaluation-of-optimized-thresholds-on-a-test-set"]], "Utils": [[8, "utils"]], "Lidar-Prod > Documentation": [[9, "lidar-prod-documentation"]], "Background": [[9, null]], "Getting Started": [[9, null]], "Guides": [[9, null]], "Package Reference": [[9, null]], "Indices and Tables": [[9, "indices-and-tables"]], "Installation": [[11, "installation"]], "Set up a virtual environment": [[11, "set-up-a-virtual-environment"]], "Install the app as a python module": [[11, "install-the-app-as-a-python-module"]], "Provide credentials": [[11, "provide-credentials"]], "Using the app": [[12, "using-the-app"]], "Run within a docker container": [[12, "run-within-a-docker-container"]], "Run as a python module": [[12, "run-as-a-python-module"]], "Run from source directly": [[12, "run-from-source-directly"]], "Run Different tasks": [[12, "run-different-tasks"]]}, "indexentries": {"apply_building (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.APPLY_BUILDING"]], "cleaning (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.CLEANING"]], "get_shapefile (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.GET_SHAPEFILE"]], "id_vegetation_unclassified (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.ID_VEGETATION_UNCLASSIFIED"]], "opt_building (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.OPT_BUIlDING"]], "opt_unclassified (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.OPT_UNCLASSIFIED"]], "opt_vegetation (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.OPT_VEGETATION"]], "possible_task (class in lidar_prod.run)": [[0, "lidar_prod.run.POSSIBLE_TASK"]], "lidar_prod.run": [[0, "module-lidar_prod.run"]], "main() (in module lidar_prod.run)": [[0, "lidar_prod.run.main"]], "module": [[0, "module-lidar_prod.run"], [1, "module-lidar_prod.commons.commons"], [2, "module-lidar_prod.tasks.building_completion"], [2, "module-lidar_prod.tasks.building_identification"], [2, "module-lidar_prod.tasks.building_validation"], [2, "module-lidar_prod.tasks.building_validation_optimization"], [2, "module-lidar_prod.tasks.cleaning"], [2, "module-lidar_prod.tasks.utils"]], "eval_time() (in module lidar_prod.commons.commons)": [[1, "lidar_prod.commons.commons.eval_time"]], "extras() (in module lidar_prod.commons.commons)": [[1, "lidar_prod.commons.commons.extras"]], "ignore_warnings() (in module lidar_prod.commons.commons)": [[1, "lidar_prod.commons.commons.ignore_warnings"]], "lidar_prod.commons.commons": [[1, "module-lidar_prod.commons.commons"]], "print_config() (in module lidar_prod.commons.commons)": [[1, "lidar_prod.commons.commons.print_config"]], "bduniconnectionparams (class in lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams"]], "buildingcompletor (class in lidar_prod.tasks.building_completion)": [[2, "lidar_prod.tasks.building_completion.BuildingCompletor"]], "buildingidentifier (class in lidar_prod.tasks.building_identification)": [[2, "lidar_prod.tasks.building_identification.BuildingIdentifier"]], "buildingvalidationclusterinfo (class in lidar_prod.tasks.building_validation)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo"]], "buildingvalidationoptimizer (class in lidar_prod.tasks.building_validation_optimization)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer"]], "buildingvalidator (class in lidar_prod.tasks.building_validation)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator"]], "cleaner (class in lidar_prod.tasks.cleaning)": [[2, "lidar_prod.tasks.cleaning.Cleaner"]], "add_dimensions() (lidar_prod.tasks.cleaning.cleaner method)": [[2, "lidar_prod.tasks.cleaning.Cleaner.add_dimensions"]], "bd_name (lidar_prod.tasks.utils.bduniconnectionparams attribute)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams.bd_name"]], "check_bbox_intersects_territoire_with_srid() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.check_bbox_intersects_territoire_with_srid"]], "constraints_func() (in module lidar_prod.tasks.building_validation_optimization)": [[2, "lidar_prod.tasks.building_validation_optimization.constraints_func"]], "entropies (lidar_prod.tasks.building_validation.buildingvalidationclusterinfo attribute)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo.entropies"]], "evaluate() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.evaluate"]], "evaluate_decisions() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.evaluate_decisions"]], "get_a_las_to_las_pdal_pipeline() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_a_las_to_las_pdal_pipeline"]], "get_extra_dims_as_str() (lidar_prod.tasks.cleaning.cleaner method)": [[2, "lidar_prod.tasks.cleaning.Cleaner.get_extra_dims_as_str"]], "get_input_las_metadata() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_input_las_metadata"]], "get_integer_bbox() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_integer_bbox"]], "get_las_data_from_las() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_las_data_from_las"]], "get_pdal_reader() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_pdal_reader"]], "get_pdal_writer() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_pdal_writer"]], "get_pipeline() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_pipeline"]], "host (lidar_prod.tasks.utils.bduniconnectionparams attribute)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams.host"]], "lidar_prod.tasks.building_completion": [[2, "module-lidar_prod.tasks.building_completion"]], "lidar_prod.tasks.building_identification": [[2, "module-lidar_prod.tasks.building_identification"]], "lidar_prod.tasks.building_validation": [[2, "module-lidar_prod.tasks.building_validation"]], "lidar_prod.tasks.building_validation_optimization": [[2, "module-lidar_prod.tasks.building_validation_optimization"]], "lidar_prod.tasks.cleaning": [[2, "module-lidar_prod.tasks.cleaning"]], "lidar_prod.tasks.utils": [[2, "module-lidar_prod.tasks.utils"]], "min_confidence_confirmation (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_confidence_confirmation"]], "min_confidence_refutation (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_confidence_refutation"]], "min_entropy_uncertainty (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_entropy_uncertainty"]], "min_frac_confirmation (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_frac_confirmation"]], "min_frac_confirmation_factor_if_bd_uni_overlay (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_frac_confirmation_factor_if_bd_uni_overlay"]], "min_frac_entropy_uncertain (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_frac_entropy_uncertain"]], "min_frac_refutation (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_frac_refutation"]], "min_uni_db_overlay_frac (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_uni_db_overlay_frac"]], "optimize() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.optimize"]], "overlays (lidar_prod.tasks.building_validation.buildingvalidationclusterinfo attribute)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo.overlays"]], "pdal_read_las_array() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.pdal_read_las_array"]], "prepare() (lidar_prod.tasks.building_validation.buildingvalidator method)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator.prepare"]], "prepare() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.prepare"]], "prepare_for_building_completion() (lidar_prod.tasks.building_completion.buildingcompletor method)": [[2, "lidar_prod.tasks.building_completion.BuildingCompletor.prepare_for_building_completion"]], "probabilities (lidar_prod.tasks.building_validation.buildingvalidationclusterinfo attribute)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo.probabilities"]], "pwd (lidar_prod.tasks.utils.bduniconnectionparams attribute)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams.pwd"]], "remove_dimensions() (lidar_prod.tasks.cleaning.cleaner method)": [[2, "lidar_prod.tasks.cleaning.Cleaner.remove_dimensions"]], "request_bd_uni_for_building_shapefile() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.request_bd_uni_for_building_shapefile"]], "run() (lidar_prod.tasks.building_completion.buildingcompletor method)": [[2, "lidar_prod.tasks.building_completion.BuildingCompletor.run"]], "run() (lidar_prod.tasks.building_identification.buildingidentifier method)": [[2, "lidar_prod.tasks.building_identification.BuildingIdentifier.run"]], "run() (lidar_prod.tasks.building_validation.buildingvalidator method)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator.run"]], "run() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.run"]], "run() (lidar_prod.tasks.cleaning.cleaner method)": [[2, "lidar_prod.tasks.cleaning.Cleaner.run"]], "save_las_data_to_las() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.save_las_data_to_las"]], "setup() (lidar_prod.tasks.building_validation.buildingvalidator method)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator.setup"]], "setup() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.setup"]], "split_idx_by_dim() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.split_idx_by_dim"]], "target (lidar_prod.tasks.building_validation.buildingvalidationclusterinfo attribute)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo.target"]], "thresholds (class in lidar_prod.tasks.building_validation)": [[2, "lidar_prod.tasks.building_validation.thresholds"]], "update() (lidar_prod.tasks.building_validation.buildingvalidator method)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator.update"]], "update() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.update"]], "update_classification() (lidar_prod.tasks.building_completion.buildingcompletor method)": [[2, "lidar_prod.tasks.building_completion.BuildingCompletor.update_classification"]], "user (lidar_prod.tasks.utils.bduniconnectionparams attribute)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams.user"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["apidoc/lidar_prod", "apidoc/lidar_prod.commons", "apidoc/lidar_prod.tasks", "background/overview", "background/production_process", "background/thresholds_optimization_process", "configs", "guides/development", "guides/thresholds_optimization", "index", "introduction", "tutorials/install", "tutorials/use"], "filenames": ["apidoc/lidar_prod.rst", "apidoc/lidar_prod.commons.rst", "apidoc/lidar_prod.tasks.rst", "background/overview.md", "background/production_process.md", "background/thresholds_optimization_process.md", "configs.rst", "guides/development.md", "guides/thresholds_optimization.md", "index.rst", "introduction.md", "tutorials/install.md", "tutorials/use.md"], "titles": ["lidar_prod.run", "lidar_prod.commons", "lidar_prod.tasks", "Overview of the process", "Production process used to transform point clouds classification", "Strategy to find optimal decision thresholds for Building validation", "Default configuration", "Developer\u2019s guide", "How to optimize building validation decision thresholds?", "Lidar-Prod > Documentation", "<no title>", "Installation", "Using the app"], "terms": {"class": [0, 2, 3, 9, 10], "possible_task": 0, "valu": [0, 2], "sourc": [0, 1, 2, 5, 6, 9, 10, 11], "base": [0, 2, 3, 4, 5, 8, 9, 10], "enum": 0, "an": [0, 2, 3, 7, 8, 12], "enumer": 0, "apply_build": 0, "apply_on_build": [0, 12], "clean": [0, 6, 12], "get_shapefil": [0, 12], "id_vegetation_unclassifi": 0, "identify_vegetation_unclassifi": [0, 12], "opt_build": 0, "optimize_build": [0, 8, 12], "opt_unclassifi": 0, "optimize_unc_id": [0, 12], "opt_veget": 0, "optimize_veg_id": [0, 12], "main": [0, 7, 9, 10], "config": [0, 1, 6, 12], "dictconfig": [0, 1], "entri": [0, 9, 10], "point": [0, 2, 3, 5, 8, 9, 10, 12], "either": [0, 2, 7], "appli": 0, "optim": [0, 2, 4, 6, 9, 10], "threshold": [0, 2, 4, 6, 9, 10], "check": [0, 2], "configur": [0, 1, 2, 8, 9, 12], "file": [0, 2, 3, 4, 6, 7, 8, 11, 12], "usag": [0, 11], "eval_tim": 1, "function": 1, "callabl": 1, "decor": 1, "log": 1, "durat": 1, "method": 1, "extra": [1, 2, 4], "ignore_warn": [1, 6], "print_config": [1, 6, 12], "resolv": 1, "bool": [1, 2], "true": [1, 2, 6, 8, 12], "cfg_print_path": 1, "str": [1, 2], "config_tre": 1, "txt": 1, "none": [1, 2], "print": [1, 12], "content": [1, 3, 7, 12], "us": [1, 2, 3, 5, 7, 8, 9, 10, 11], "rich": 1, "librari": [1, 5, 7, 9, 10], "its": [1, 2, 3, 9, 10], "tree": 1, "structur": 1, "paramet": [1, 2, 8, 12], "compos": 1, "hydra": [1, 6, 12], "option": [1, 2, 12], "whether": 1, "refer": [1, 2, 6, 8, 12], "field": [1, 2], "where": [1, 2, 3, 4], "save": [1, 2, 8, 12], "buildingvalidationclusterinfo": 2, "probabl": [2, 3, 4, 5, 8, 9, 10, 12], "ndarrai": 2, "overlai": [2, 4], "entropi": [2, 4, 6, 8, 12], "target": 2, "int": [2, 6], "object": [2, 4, 5, 9, 10], "element": [2, 9, 10], "need": [2, 7, 8, 9, 10, 11, 12], "confirm": [2, 4, 5], "refut": [2, 4], "uncertain": [2, 4], "about": 2, "cluster": [2, 4, 5, 6], "candid": [2, 4, 5, 6], "build": [2, 3, 6, 7, 9, 10, 11, 12], "buildingvalid": [2, 6], "shp_path": [2, 6, 12], "bd_uni_connection_param": [2, 6, 11], "bd_uni_request": [2, 6], "data_format": [2, 6, 8, 12], "use_final_classification_cod": [2, 6], "logic": 2, "valid": [2, 9], "The": [2, 3, 4, 5, 7, 9, 10, 11, 12], "identifi": [2, 4, 11, 12], "rule": [2, 3, 4, 5, 8, 9, 10], "algorithm": [2, 4, 5, 8, 9, 10], "ar": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "togeth": [2, 8, 9, 10], "bduni": [2, 9, 10], "vector": [2, 4, 9, 10], "cloud": [2, 8, 9, 10, 12], "fall": 2, "under": [2, 8], "flag": [2, 5, 8, 12], "Then": [2, 4, 11], "classif": [2, 5, 6, 8, 9, 10], "dim": 2, "i": [2, 3, 4, 5, 7, 8, 9, 10, 11, 12], "updat": [2, 4, 6, 8, 9, 10], "per": 2, "group": [2, 4, 5, 6, 8], "basi": 2, "both": 2, "ai": [2, 5, 9, 10], "see": [2, 7, 11, 12], "readm": 2, "md": [2, 7], "detail": [2, 6], "process": [2, 5, 7, 8, 9], "prepar": [2, 6, 8, 12], "input_valu": 2, "pipelin": 2, "prepared_las_path": 2, "save_result": 2, "fals": [2, 6, 8], "las_metadata": 2, "dict": 2, "run": [2, 7, 9, 11], "target_las_path": 2, "applic": [2, 6, 9, 10, 11, 12], "transform": [2, 9], "follow": [2, 7, 8], "pdal": 2, "path": [2, 6, 8, 12], "input": [2, 4, 6, 12], "la": [2, 3, 4, 6, 8, 12], "channel": [2, 8, 12], "_sphinx_paramlinks_lidar_prod": 2, "current": [2, 4, 9, 10, 12], "metadata": 2, "propag": 2, "output": [2, 5, 6, 12], "epsg": [2, 6], "version": 2, "etc": [2, 4], "return": 2, "which": [2, 3, 4, 5, 7, 8, 9, 10, 11], "contain": 2, "inform": [2, 6, 9, 10], "pass": [2, 7], "writer": 2, "order": 2, "have": [2, 3, 4, 8], "same": [2, 4, 8], "header": 2, "sr": 2, "type": 2, "setup": [2, 7, 11], "defin": [2, 4, 5, 7], "variabl": 2, "src_las_path": 2, "min_confidence_confirm": [2, 6], "float": [2, 6], "min_frac_confirm": [2, 6], "min_frac_confirmation_factor_if_bd_uni_overlai": [2, 6], "min_uni_db_overlay_frac": [2, 6], "min_confidence_refut": [2, 6], "min_frac_refut": [2, 6], "min_entropy_uncertainti": [2, 6], "min_frac_entropy_uncertain": [2, 6], "decis": [2, 4, 9, 10], "cluser": 2, "level": [2, 4, 5, 7, 8], "buildingvalidationoptim": [2, 6], "todo": [2, 6, 8], "studi": [2, 6], "design": [2, 6], "ani": 2, "buildings_correction_label": [2, 6, 8], "debug": [2, 8, 12], "In": [2, 7], "lidar": [2, 4, 10, 11], "prod": [2, 7, 10, 11], "each": [2, 4], "implement": [2, 7], "dedic": 2, "python": [2, 7, 8], "via": [2, 4, 9, 10, 12], "we": [2, 3, 4, 5, 6, 8, 9, 10, 11, 12], "make": [2, 7], "sure": [2, 8], "all": 2, "one": [2, 4, 5, 9, 10, 12], "actual": 2, "product": [2, 5, 7, 8, 9, 10, 11], "For": [2, 4, 5, 8, 12], "higher": [2, 5], "intern": 2, "cohes": 2, "doe": 2, "know": 2, "anyth": 2, "taken": 2, "care": 2, "two": [2, 4, 5, 8], "dataclass": 2, "connect": [2, 4], "describ": [2, 5], "necessari": 2, "perform": [2, 4, 8], "differ": [2, 5, 8, 9, 10], "most": 2, "time": [2, 3], "consum": [2, 3], "step": [2, 3, 7, 8], "data": [2, 5, 8], "includ": [2, 4, 8], "from": [2, 3, 4, 5, 7, 8, 11], "public": [2, 9, 10, 11], "databs": 2, "up": [2, 7, 8, 12], "sever": [2, 3, 5], "minut": 2, "km\u00b2": 2, "break": 2, "down": 2, "onli": [2, 9, 10], "occur": 2, "onc": [2, 8], "intermediari": 2, "store": 2, "results_output_dir": [2, 6, 8], "directori": [2, 8], "so": [2, 7, 8, 9, 10], "oper": 2, "mai": [2, 4, 5, 8], "resum": 2, "instanc": [2, 5], "rerun": 2, "evalu": [2, 6, 12], "deseri": 2, "set": [2, 4, 5], "comput": 2, "recal": [2, 4, 5, 6], "precis": [2, 4, 5, 6], "autom": [2, 4, 5, 8, 9, 10], "well": [2, 5], "other": [2, 9, 10, 12], "metric": [2, 6], "confus": 2, "matric": 2, "If": [2, 4], "dataset": [2, 4, 8, 9, 10], "wa": [2, 5, 7, 8], "thi": [2, 3, 4, 7, 8, 12], "ran": 2, "test": [2, 4, 12], "dictionnari": 2, "schema": 2, "metric_nam": 2, "metric_valu": 2, "evaluate_decis": 2, "mts_gt": 2, "ia_decis": 2, "get": [2, 11], "how": [2, 5, 7, 9], "good": 2, "modul": [2, 3, 8, 9], "were": [2, 4, 5, 8, 9, 10], "ground": [2, 4], "truth": 2, "u": 2, "unsur": [2, 4, 5, 6], "n": 2, "No": 2, "y": 2, "ye": 2, "predict": [2, 8, 9, 10, 12], "c": 2, "r": 2, "matrix": 2, "horizont": 2, "vertic": [2, 4], "uu": 2, "ur": 2, "uc": 2, "nu": 2, "nr": 2, "nc": 2, "yu": 2, "yr": 2, "yc": 2, "proport": [2, 4, 5], "among": [2, 4, 5], "total": 2, "accuraci": 2, "accur": 2, "label": [2, 8], "qualiti": [2, 9, 10, 11], "assum": 2, "perfect": 2, "posterior": 2, "shape": 2, "known": 2, "consid": [2, 4], "ambigu": [2, 4], "ignor": 2, "yn": 2, "np": 2, "arrai": 2, "0": [2, 4, 6], "1": [2, 6, 8], "2": 2, "genet": [2, 5, 8, 9, 10], "gener": [2, 5, 7, 8], "final": [2, 5, 6], "serial": 2, "specifi": [2, 8, 12], "extract": 2, "list": [2, 12], "pickl": [2, 6, 8], "few": 2, "attribut": 2, "overrid": [2, 12], "code": [2, 6, 8], "adapt": 2, "those": [2, 4, 5, 12], "threshod": 2, "result": [2, 7, 8, 12], "constraints_func": [2, 6], "trial": 2, "buildingcompletor": [2, 6], "min_building_proba": [2, 6], "5": [2, 4, 6], "complet": 2, "form": 2, "suffici": 2, "size": 2, "some": 2, "too": [2, 4], "isol": [2, 11], "even": 2, "though": 2, "thei": [2, 3, 4, 5, 8, 12], "might": [2, 5, 8, 9, 10], "high": [2, 4, 7, 9, 10], "probabilii": 2, "can": [2, 4, 7, 8, 9, 10, 11, 12], "trust": 2, "enough": [2, 4], "neigborhood": 2, "larg": [2, 7, 8], "alreadi": [2, 4], "surround": 2, "select": 2, "p": [2, 4], "factor": [2, 4], "when": [2, 4, 7], "xy": [2, 4], "A": [2, 3, 8, 12], "b": 2, "part": [2, 12], "accordingli": 2, "prepare_for_building_complet": 2, "them": [2, 4], "previous": [2, 4], "relax": [2, 4], "2d": 2, "toler": [2, 6], "belong": [2, 4], "initi": 2, "update_classif": 2, "dimens": [2, 3, 4, 9, 10, 12], "buildingidentifi": [2, 6], "found": [2, 4, 5, 8, 9, 10], "being": [2, 4, 5, 8, 9, 10], "mean": [2, 7, 9, 10], "potenti": [2, 4], "new": [2, 7], "exclud": 2, "former": 2, "cleaner": [2, 6], "extra_dim": [2, 6], "iter": 2, "keep": [2, 8], "add_dimens": 2, "las_data": 2, "lasdata": 2, "add": [2, 8, 12], "exist": 2, "self": [2, 7], "extra_dimens": 2, "get_extra_dims_as_str": 2, "stringifi": 2, "empti": 2, "remove_dimens": 2, "remov": 2, "laspi": 2, "out": 2, "infer": [2, 3], "bduniconnectionparam": [2, 6], "host": [2, 6, 7, 12], "user": [2, 6, 11], "pwd": [2, 6, 11], "bd_name": [2, 6], "url": 2, "credenti": 2, "databas": [2, 4, 7, 9, 10, 11, 12], "typic": 2, "check_bbox_intersects_territoire_with_srid": 2, "bd_param": 2, "bbox": 2, "epsg_srid": 2, "bound": 2, "box": 2, "intersect": 2, "territori": 2, "gcms_territoir": 2, "expect": 2, "srid": 2, "As": [2, 5, 8], "geometri": 2, "indic": [2, 8], "origin": [2, 8], "project": [2, 11], "compar": [2, 4], "common": [2, 9], "territoir": 2, "queri": [2, 7, 12], "st_union": 2, "combin": 2, "would": 2, "eg": 2, "5490": 2, "guadeloup": 2, "martiniqu": 2, "get_a_las_to_las_pdal_pipelin": 2, "op": 2, "creat": [2, 11, 12], "preserv": 2, "format": [2, 8, 12], "forward": [2, 7], "everi": 2, "e": [2, 4, 5, 7, 8], "g": [2, 4, 7], "filter": 2, "assign": 2, "get_input_las_metadata": 2, "reader": 2, "get_integer_bbox": 2, "buffer": [2, 6], "number": [2, 5], "cast": 2, "x": 2, "min": 2, "max": 2, "integ": 2, "read": 2, "befor": [2, 8], "default": [2, 4, 9, 12], "dictionari": 2, "get_las_data_from_la": 2, "las_path": 2, "load": 2, "get_pdal_read": 2, "standard": 2, "impos": 2, "lamber": 2, "93": 2, "get_pdal_writ": 2, "reader_metadata": 2, "4": [2, 6], "specif": [2, 11, 12], "dataformat": 2, "8": 2, "write": 2, "get_pipelin": 2, "": [2, 9, 12], "correspond": [2, 12], "pipeline_metadata": 2, "string": [2, 8], "cr": [2, 4], "pdal_read_las_arrai": 2, "name": [2, 4, 7, 12], "ones": 2, "like": [2, 12], "access": [2, 7], "request_bd_uni_for_building_shapefil": 2, "shapefile_path": 2, "request": [2, 7, 11], "bd": [2, 12], "uni": [2, 12], "shapefil": [2, 12], "non": [2, 4, 7], "destruct": 2, "area": [2, 4, 9, 10], "interest": 2, "also": [2, 5, 8, 9, 10, 11, 12], "presenc": 2, "column": 2, "fill": [2, 11], "later": [2, 4], "note": [2, 8, 12], "mix": 2, "tabl": 2, "postgi": [2, 11], "declar": 2, "legal": 2, "tell": 2, "3": [2, 6], "letter": 2, "give": [2, 8], "hint": 2, "footprint": 2, "save_las_data_to_la": 2, "split_idx_by_dim": 2, "dim_arrai": 2, "sequenc": 2, "share": 2, "ascend": 2, "goe": 3, "through": [3, 4], "alter": 3, "At": 3, "first": [3, 4], "raw": 3, "sent": 3, "anoth": [3, 5, 8, 12], "myria3d": 3, "variou": 3, "decid": 3, "veget": [3, 6, 12], "unclassifi": [3, 6, 12], "someth": 3, "els": 3, "extern": 3, "segment": [3, 4, 9, 10], "second": 3, "arrow": 3, "repres": [3, 5], "come": 3, "end": 4, "goal": 4, "tool": 4, "edit": [4, 11], "much": [4, 5], "confid": [4, 5, 6], "highlight": [4, 9, 10], "remain": 4, "uncertainti": [4, 9, 10], "human": [4, 9, 10], "inspect": 4, "went": 4, "geometr": 4, "plane": 4, "surfac": 4, "abov": 4, "5m": 4, "semant": [4, 7, 9, 10], "model": [4, 5, 8, 9, 10], "produc": [4, 5, 9, 10], "calcul": 4, "associ": 4, "respect": [4, 8], "you": [4, 8, 11, 12], "leverag": [4, 7], "packag": [4, 7, 11, 12], "aerial": 4, "deep": [4, 8, 9, 10], "learn": [4, 8, 9, 10], "done": 4, "against": 4, "That": 4, "ha": 4, "been": 4, "establish": 4, "best": [4, 12], "exactli": 4, "possibl": 4, "mark": 4, "elsewis": 4, "compon": 4, "e1": 4, "c1": [4, 5], "reduc": [4, 5], "requir": [4, 5, 7, 9, 10, 12], "r1": 4, "due": 4, "e2": 4, "c2": [4, 5], "OR": 4, "o1": 4, "r2": 4, "AND": 4, "safeguard": 4, "suppos": 4, "captur": 4, "chosen": [4, 5], "multi": [4, 5, 9, 10], "hyperparamet": [4, 5], "aim": [4, 9, 10], "maxim": [4, 5, 6], "15km\u00b2": [4, 8], "express": 4, "percentag": [4, 5], "86": 4, "98": [4, 5, 6], "becaus": 4, "scatter": 4, "dure": [4, 8, 11, 12], "proba": 4, "fashion": 4, "plan": 4, "rest": 4, "thing": 4, "ad": [4, 7], "avoid": 4, "direct": [4, 6, 7], "modif": 4, "take": [4, 9, 10], "place": 4, "outsid": 4, "scope": 4, "softwar": 4, "miss": [4, 9, 10], "probabilt": 4, "index": [4, 9], "newli": 4, "section": 5, "depend": [5, 7, 9, 10, 11], "deriv": 5, "highli": 5, "coupl": 5, "lower": 5, "There": 5, "must": [5, 8], "therefor": 5, "jointli": 5, "These": 5, "quantiti": 5, "error": [5, 9, 10], "introduc": 5, "balanc": [5, 9, 10], "between": [5, 9, 10], "made": [5, 8], "approach": [5, 9, 10], "choic": 5, "constrain": 5, "nsga": [5, 8], "ii": [5, 8], "optuna": [5, 6], "constraint": [5, 6], "empir": 5, "search": 5, "three": 5, "focus": 5, "solut": [5, 8], "meet": 5, "criteria": 5, "after": 5, "pareto": 5, "front": 5, "effici": 5, "criterion": 5, "could": 5, "increas": 5, "without": 5, "compliant": 5, "manag": [6, 11, 12], "here": 6, "show": 6, "glanc": 6, "folder": [6, 8, 12], "more": [6, 8], "src_la": [6, 12], "output_dir": [6, 12], "runtim": 6, "cwd": 6, "2154": 6, "las_dimens": [6, 8, 12], "terrascan_norm": 6, "normal": 6, "terrascan_dist": 6, "distanc": 6, "terrascan_devi": 6, "deviat": 6, "terrascan_reli": 6, "ai_vegetation_proba": 6, "ai_unclassified_proba": 6, "ai_building_proba": [6, 12], "cluster_id": 6, "clusterid": 6, "uni_db_overlai": 6, "bdtopooverlai": 6, "candidate_buildings_flag": 6, "f_candidateb": 6, "clusterid_candidate_build": 6, "cid_candidateb": 6, "clusterid_confirmed_or_high_proba": 6, "cid_isolatedorconfirm": 6, "completion_non_candidate_flag": 6, "f_noncandidatecomplet": 6, "ai_building_identifi": 6, "ai_vegetation_unclassified_group": 6, "vegetation_target": 6, "vegetation_low": 6, "vegetation_medium": 6, "vegetation_high": 6, "202": 6, "unsure_by_entropi": 6, "200": 6, "unclust": 6, "ia_refut": 6, "110": 6, "ia_refuted_but_under_db_uni": 6, "111": 6, "both_unsur": 6, "112": 6, "ia_confirmed_onli": 6, "113": 6, "db_overlayed_onli": 6, "114": 6, "both_confirm": 6, "115": 6, "214": 6, "not_build": 6, "208": 6, "6": 6, "detailed_to_fin": 6, "input_build": 6, "_target_": 6, "lidar_prod": [6, 7, 8, 9, 11, 12], "task": [6, 8, 9], "uint": 6, "ushort": 6, "uchar": 6, "output_build": 6, "input_vegetation_unclassifi": 6, "uint32": 6, "output_vegetation_unclassifi": 6, "building_valid": [6, 8, 12], "null": 6, "min_point": 6, "10": 6, "50": 6, "7489066375339118": 6, "16236610677624053": 6, "5532221883488597": 6, "7243937589483613": 6, "9753597180902244": 6, "30759538271378295": 6, "254212461691427": 6, "7343497391001854": 6, "building_validation_optim": 6, "input_las_dir": [6, 8], "group_info_pickle_path": 6, "group_info": 6, "prepared_las_dir": 6, "updated_las_dir": 6, "building_validation_thresholds_pickl": [6, 8], "optimized_threshold": [6, 8], "true_posit": 6, "19": 6, "false_posit": 6, "20": 6, "false_neg": 6, "21": 6, "min_frac": 6, "95": 6, "05": 6, "create_studi": 6, "study_nam": 6, "auto_precision_recal": 6, "sampler": 6, "nsgaiisampl": 6, "population_s": 6, "mutation_prob": 6, "25": 6, "crossover_prob": 6, "swapping_prob": 6, "seed": 6, "12345": 6, "functool": 6, "partial": 6, "_args_": 6, "get_method": 6, "n_trial": 6, "400": 6, "min_precision_constraint": 6, "min_recall_constraint": 6, "min_automation_constraint": 6, "35": 6, "groups_count": 6, "group_build": 6, "group_no_build": 6, "group_unsur": 6, "proportion_of_uncertainti": 6, "p_unsur": 6, "proportion_of_refut": 6, "p_refut": 6, "proportion_of_confirm": 6, "p_confirm": 6, "confusion_matrix_norm": 6, "confusion_matrix_no_norm": 6, "proportion_of_automated_decis": 6, "p_auto": 6, "refutation_accuraci": 6, "a_refut": 6, "confirmation_accuraci": 6, "a_confirm": 6, "building_identif": 6, "75": 6, "is3d": 6, "building_complet": 6, "basic_identif": 6, "vegetation_threshold": 6, "3923": 6, "unclassified_threshold": 6, "2455": 6, "vegetation_nb_tri": 6, "100": 6, "unclassified_nb_tri": 6, "util": 6, "serveurbdudiff": 6, "ign": 6, "fr": 6, "bduni_france_consult": [6, 12], "convent": 7, "py": [7, 8, 9, 10, 12], "releas": 7, "functionn": 7, "document": [7, 12], "role": 7, "readi": 7, "fast": [7, 8], "branch": [7, 11], "match": [7, 8, 12], "activ": [7, 8, 11, 12], "environ": [7, 8, 12], "conda": [7, 8, 11, 12], "m": [7, 12], "pytest": 7, "One": 7, "665mb": 7, "action": [7, 12], "runner": 7, "publicli": 7, "avail": 7, "moment": 7, "absenc": 7, "xfail": 7, "local": 7, "featur": 7, "hoc": 7, "refactor": 7, "merg": 7, "dev": 7, "pull": 7, "push": 7, "workflow": 7, "docker": 7, "imag": [7, 12], "lint": 7, "event": 7, "accept": 7, "case": 7, "tag": 7, "date": [7, 12], "tutori": [7, 8], "app": [7, 8, 9], "additionnali": 7, "github": [7, 11, 12], "page": [7, 11], "guid": [8, 12], "explain": 8, "strategi": [8, 9, 10], "To": [8, 11, 12], "abl": 8, "reach": 8, "correct": [8, 9, 10, 12], "track": 8, "distinguish": 8, "posit": 8, "neg": 8, "Theses": 8, "bulding_valid": 8, "furthermor": 8, "train": [8, 9, 10], "detect": [8, 12], "consist": 8, "help": [8, 11], "better": 8, "sens": 8, "larger": 8, "provid": [8, 12], "divers": 8, "said": 8, "unseen": 8, "almost": 8, "equal": 8, "robust": 8, "volum": 8, "instal": [8, 9, 12], "your": [8, 11], "live": 8, "singl": 8, "laz": 8, "subfold": 8, "basenam": 8, "Be": 8, "particular": 8, "clasif": 8, "keyword": 8, "otpim": 8, "full": 8, "val": 8, "want": [8, 12], "capabl": 8, "param": 8, "previou": 8, "pool": 8, "mode": [8, 11], "develop": [8, 9, 11, 12], "command": 8, "line": 8, "deb": 8, "et": 8, "al": 8, "2002": 8, "elitist": 8, "multiobject": 8, "augment": [9, 10], "neural": [9, 10], "network": [9, 10, 12], "Its": [9, 10], "geograph": [9, 10], "right": [9, 10], "simpl": [9, 10], "our": [9, 10, 12], "fuse": [9, 10], "ensur": [9, 10], "while": [9, 10], "minim": [9, 10], "spot": [9, 10], "now": [9, 10], "address": [9, 10], "extens": [9, 10], "multiclass": [9, 10], "overview": 9, "find": 9, "anaconda": 11, "script": 11, "mamba": 11, "top": 11, "faster": 11, "clone": 11, "git": 11, "http": 11, "com": 11, "ignf": 11, "control": 11, "cd": 11, "www": 11, "individu": 11, "sudo": 11, "apt": 11, "setup_env": [11, 12], "sh": [11, 12], "env": [11, 12], "anywher": 11, "directli": 11, "pip": 11, "upgrad": 11, "tarbal": 11, "refert": 11, "bd_uni": 11, "copi": [11, 12], "credentials_templ": 11, "yaml": [11, 12], "cp": 11, "blank": 11, "integr": 12, "v": 12, "local_src_las_dir": 12, "local_output_dir": 12, "src_las_basenam": 12, "encapsul": 12, "virtual": 12, "built": 12, "dockerfil": 12, "standalon": 12, "should": 12, "repositori": 12, "whose": 12, "connexion": 12, "addit": 12, "thes": 12, "forc": 12, "instead": 12, "db": 12, "fly": 12, "By": 12, "overriden": 12, "syntax": 12, "h": 12, "pretti": 12, "color": 12, "bash": 12, "mostli": 12, "simpli": 12, "task_nam": 12}, "objects": {"lidar_prod.commons": [[1, 0, 0, "-", "commons"]], "lidar_prod.commons.commons": [[1, 1, 1, "", "eval_time"], [1, 1, 1, "", "extras"], [1, 1, 1, "", "ignore_warnings"], [1, 1, 1, "", "print_config"]], "lidar_prod.commons.commons.print_config.params": [[1, 2, 1, "", "cfg_print_path"], [1, 2, 1, "", "config"], [1, 2, 1, "", "resolve"]], "lidar_prod": [[0, 0, 0, "-", "run"]], "lidar_prod.run": [[0, 3, 1, "", "POSSIBLE_TASK"], [0, 1, 1, "", "main"]], "lidar_prod.run.POSSIBLE_TASK": [[0, 4, 1, "", "APPLY_BUILDING"], [0, 4, 1, "", "CLEANING"], [0, 4, 1, "", "GET_SHAPEFILE"], [0, 4, 1, "", "ID_VEGETATION_UNCLASSIFIED"], [0, 4, 1, "", "OPT_BUIlDING"], [0, 4, 1, "", "OPT_UNCLASSIFIED"], [0, 4, 1, "", "OPT_VEGETATION"]], "lidar_prod.tasks": [[2, 0, 0, "-", "building_completion"], [2, 0, 0, "-", "building_identification"], [2, 0, 0, "-", "building_validation"], [2, 0, 0, "-", "building_validation_optimization"], [2, 0, 0, "-", "cleaning"], [2, 0, 0, "-", "utils"]], "lidar_prod.tasks.building_completion": [[2, 3, 1, "", "BuildingCompletor"]], "lidar_prod.tasks.building_completion.BuildingCompletor": [[2, 5, 1, "", "prepare_for_building_completion"], [2, 5, 1, "", "run"], [2, 5, 1, "", "update_classification"]], "lidar_prod.tasks.building_completion.BuildingCompletor.prepare_for_building_completion.params": [[2, 2, 1, "", "pipeline"]], "lidar_prod.tasks.building_completion.BuildingCompletor.run.params": [[2, 2, 1, "", "input_values"], [2, 2, 1, "", "las_metadata"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.building_identification": [[2, 3, 1, "", "BuildingIdentifier"]], "lidar_prod.tasks.building_identification.BuildingIdentifier": [[2, 5, 1, "", "run"]], "lidar_prod.tasks.building_identification.BuildingIdentifier.run.params": [[2, 2, 1, "", "building probability channel"], [2, 2, 1, "", "input_values"], [2, 2, 1, "", "las_metadata"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.building_validation": [[2, 3, 1, "", "BuildingValidationClusterInfo"], [2, 3, 1, "", "BuildingValidator"], [2, 3, 1, "", "thresholds"]], "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo": [[2, 4, 1, "", "entropies"], [2, 4, 1, "", "overlays"], [2, 4, 1, "", "probabilities"], [2, 4, 1, "", "target"]], "lidar_prod.tasks.building_validation.BuildingValidator": [[2, 5, 1, "", "prepare"], [2, 5, 1, "", "run"], [2, 5, 1, "", "setup"], [2, 5, 1, "", "update"]], "lidar_prod.tasks.building_validation.BuildingValidator.run.params": [[2, 2, 1, "", "building probability channel"], [2, 2, 1, "", "input_values"], [2, 2, 1, "", "las_metadata"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.building_validation.thresholds": [[2, 4, 1, "", "min_confidence_confirmation"], [2, 4, 1, "", "min_confidence_refutation"], [2, 4, 1, "", "min_entropy_uncertainty"], [2, 4, 1, "", "min_frac_confirmation"], [2, 4, 1, "", "min_frac_confirmation_factor_if_bd_uni_overlay"], [2, 4, 1, "", "min_frac_entropy_uncertain"], [2, 4, 1, "", "min_frac_refutation"], [2, 4, 1, "", "min_uni_db_overlay_frac"]], "lidar_prod.tasks.building_validation_optimization": [[2, 3, 1, "", "BuildingValidationOptimizer"], [2, 1, 1, "", "constraints_func"]], "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer": [[2, 5, 1, "", "evaluate"], [2, 5, 1, "", "evaluate_decisions"], [2, 5, 1, "", "optimize"], [2, 5, 1, "", "prepare"], [2, 5, 1, "", "run"], [2, 5, 1, "", "setup"], [2, 5, 1, "", "update"]], "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.evaluate_decisions.params": [[2, 2, 1, "", "ia_decision"], [2, 2, 1, "", "mts_gt"]], "lidar_prod.tasks.cleaning": [[2, 3, 1, "", "Cleaner"]], "lidar_prod.tasks.cleaning.Cleaner": [[2, 5, 1, "", "add_dimensions"], [2, 5, 1, "", "get_extra_dims_as_str"], [2, 5, 1, "", "remove_dimensions"], [2, 5, 1, "", "run"]], "lidar_prod.tasks.cleaning.Cleaner.run.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "src_las_path"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.utils": [[2, 3, 1, "", "BDUniConnectionParams"], [2, 1, 1, "", "check_bbox_intersects_territoire_with_srid"], [2, 1, 1, "", "get_a_las_to_las_pdal_pipeline"], [2, 1, 1, "", "get_input_las_metadata"], [2, 1, 1, "", "get_integer_bbox"], [2, 1, 1, "", "get_las_data_from_las"], [2, 1, 1, "", "get_pdal_reader"], [2, 1, 1, "", "get_pdal_writer"], [2, 1, 1, "", "get_pipeline"], [2, 1, 1, "", "pdal_read_las_array"], [2, 1, 1, "", "request_bd_uni_for_building_shapefile"], [2, 1, 1, "", "save_las_data_to_las"], [2, 1, 1, "", "split_idx_by_dim"]], "lidar_prod.tasks.utils.BDUniConnectionParams": [[2, 4, 1, "", "bd_name"], [2, 4, 1, "", "host"], [2, 4, 1, "", "pwd"], [2, 4, 1, "", "user"]], "lidar_prod.tasks.utils.get_a_las_to_las_pdal_pipeline.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "metadata)"], [2, 2, 1, "", "ops"], [2, 2, 1, "", "src_las_path"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.utils.get_integer_bbox.params": [[2, 2, 1, "", "buffer"], [2, 2, 1, "", "pipeline"]], "lidar_prod.tasks.utils.get_integer_bbox.params.to 0": [[2, 2, 1, "", ""]], "lidar_prod.tasks.utils.get_pdal_reader.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "from the las metadata)"], [2, 2, 1, "", "las_path"]], "lidar_prod.tasks.utils.get_pdal_writer.params": [[2, 2, 1, "", "extra_dims"], [2, 2, 1, "", "target_las_path"]], "lidar_prod.tasks.utils.get_pipeline.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "input_value"], [2, 2, 1, "", "las header"], [2, 2, 1, "", "las_metadata"], [2, 2, 1, "", "output las"], [2, 2, 1, "", "pipeline or path to a file to read with pdal)"]], "lidar_prod.tasks.utils.pdal_read_las_array.params": [[2, 2, 1, "", "epsg"], [2, 2, 1, "", "las_path"], [2, 2, 1, "", "metadata)"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:parameter", "3": "py:class", "4": "py:attribute", "5": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "parameter", "Python parameter"], "3": ["py", "class", "Python class"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "method", "Python method"]}, "titleterms": {"lidar_prod": [0, 1, 2], "run": [0, 8, 12], "common": 1, "modul": [1, 4, 11, 12], "task": [2, 12], "building_valid": 2, "building_validation_optim": 2, "building_complet": 2, "building_identif": 2, "clean": 2, "util": [2, 8], "overview": 3, "process": [3, 4], "schema": 3, "overal": 3, "product": 4, "us": [4, 12], "transform": 4, "point": 4, "cloud": 4, "classif": 4, "A": 4, "1": 4, "veget": 4, "detect": 4, "2": 4, "unclassifi": 4, "b": 4, "build": [4, 5, 8], "valid": [4, 5, 8], "complet": 4, "3": 4, "identif": 4, "strategi": 5, "find": [5, 8], "optim": [5, 8], "decis": [5, 8], "threshold": [5, 8], "motiv": 5, "default": 6, "configur": 6, "develop": 7, "": 7, "guid": [7, 9], "code": 7, "version": 7, "test": [7, 8], "continu": 7, "integr": 7, "ci": 7, "deliveri": 7, "cd": 7, "how": 8, "requir": 8, "evalu": 8, "set": [8, 11], "lidar": 9, "prod": 9, "document": 9, "background": 9, "get": 9, "start": 9, "packag": 9, "refer": 9, "indic": 9, "tabl": 9, "instal": 11, "up": 11, "virtual": 11, "environ": 11, "app": [11, 12], "python": [11, 12], "provid": 11, "credenti": 11, "within": 12, "docker": 12, "contain": 12, "from": 12, "sourc": 12, "directli": 12, "differ": 12}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"lidar_prod.run": [[0, "module-lidar_prod.run"]], "lidar_prod.commons": [[1, "lidar-prod-commons"]], "lidar_prod.commons.commons module": [[1, "module-lidar_prod.commons.commons"]], "lidar_prod.tasks": [[2, "lidar-prod-tasks"]], "building_validation": [[2, "module-lidar_prod.tasks.building_validation"]], "building_validation_optimization": [[2, "module-lidar_prod.tasks.building_validation_optimization"]], "building_completion": [[2, "module-lidar_prod.tasks.building_completion"]], "building_identification": [[2, "module-lidar_prod.tasks.building_identification"]], "cleaning": [[2, "module-lidar_prod.tasks.cleaning"]], "utils": [[2, "module-lidar_prod.tasks.utils"]], "Overview of the process": [[3, "overview-of-the-process"]], "schema of the overall process": [[3, "schema-of-the-overall-process"]], "Production process used to transform point clouds classification": [[4, "production-process-used-to-transform-point-clouds-classification"]], "A.1) Vegetation detection": [[4, "a-1-vegetation-detection"]], "A.2) Unclassified detection": [[4, "a-2-unclassified-detection"]], "B) Building Module": [[4, "b-building-module"]], "B.1) Building Validation": [[4, "b-1-building-validation"]], "B.2) Building Completion": [[4, "b-2-building-completion"]], "B.3) Building Identification": [[4, "b-3-building-identification"]], "Strategy to find optimal decision thresholds for Building validation": [[5, "strategy-to-find-optimal-decision-thresholds-for-building-validation"]], "Motivations": [[5, "motivations"]], "Strategy": [[5, "strategy"]], "Default configuration": [[6, "default-configuration"]], "Developer\u2019s guide": [[7, "developer-s-guide"]], "Code versionning": [[7, "code-versionning"]], "Tests": [[7, "tests"]], "Continuous Integration (CI)": [[7, "continuous-integration-ci"]], "Continuous Delivery (CD)": [[7, "continuous-delivery-cd"]], "How to optimize building validation decision thresholds?": [[8, "how-to-optimize-building-validation-decision-thresholds"]], "Requirements": [[8, "requirements"]], "Running thresholds optimization": [[8, "running-thresholds-optimization"]], "Finding optimal thresholds": [[8, "finding-optimal-thresholds"]], "Evaluation of optimized thresholds on a test set": [[8, "evaluation-of-optimized-thresholds-on-a-test-set"]], "Utils": [[8, "utils"]], "Lidar-Prod > Documentation": [[9, "lidar-prod-documentation"]], "Background": [[9, null]], "Getting Started": [[9, null]], "Guides": [[9, null]], "Package Reference": [[9, null]], "Indices and Tables": [[9, "indices-and-tables"]], "Installation": [[11, "installation"]], "Set up a virtual environment": [[11, "set-up-a-virtual-environment"]], "Install the app as a python module": [[11, "install-the-app-as-a-python-module"]], "Provide credentials": [[11, "provide-credentials"]], "Using the app": [[12, "using-the-app"]], "Run within a docker container": [[12, "run-within-a-docker-container"]], "Run as a python module": [[12, "run-as-a-python-module"]], "Run from source directly": [[12, "run-from-source-directly"]], "Run Different tasks": [[12, "run-different-tasks"]]}, "indexentries": {"apply_building (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.APPLY_BUILDING"]], "cleaning (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.CLEANING"]], "get_shapefile (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.GET_SHAPEFILE"]], "id_vegetation_unclassified (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.ID_VEGETATION_UNCLASSIFIED"]], "opt_building (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.OPT_BUIlDING"]], "opt_unclassified (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.OPT_UNCLASSIFIED"]], "opt_vegetation (lidar_prod.run.possible_task attribute)": [[0, "lidar_prod.run.POSSIBLE_TASK.OPT_VEGETATION"]], "possible_task (class in lidar_prod.run)": [[0, "lidar_prod.run.POSSIBLE_TASK"]], "lidar_prod.run": [[0, "module-lidar_prod.run"]], "main() (in module lidar_prod.run)": [[0, "lidar_prod.run.main"]], "module": [[0, "module-lidar_prod.run"], [1, "module-lidar_prod.commons.commons"], [2, "module-lidar_prod.tasks.building_completion"], [2, "module-lidar_prod.tasks.building_identification"], [2, "module-lidar_prod.tasks.building_validation"], [2, "module-lidar_prod.tasks.building_validation_optimization"], [2, "module-lidar_prod.tasks.cleaning"], [2, "module-lidar_prod.tasks.utils"]], "eval_time() (in module lidar_prod.commons.commons)": [[1, "lidar_prod.commons.commons.eval_time"]], "extras() (in module lidar_prod.commons.commons)": [[1, "lidar_prod.commons.commons.extras"]], "ignore_warnings() (in module lidar_prod.commons.commons)": [[1, "lidar_prod.commons.commons.ignore_warnings"]], "lidar_prod.commons.commons": [[1, "module-lidar_prod.commons.commons"]], "print_config() (in module lidar_prod.commons.commons)": [[1, "lidar_prod.commons.commons.print_config"]], "bduniconnectionparams (class in lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams"]], "buildingcompletor (class in lidar_prod.tasks.building_completion)": [[2, "lidar_prod.tasks.building_completion.BuildingCompletor"]], "buildingidentifier (class in lidar_prod.tasks.building_identification)": [[2, "lidar_prod.tasks.building_identification.BuildingIdentifier"]], "buildingvalidationclusterinfo (class in lidar_prod.tasks.building_validation)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo"]], "buildingvalidationoptimizer (class in lidar_prod.tasks.building_validation_optimization)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer"]], "buildingvalidator (class in lidar_prod.tasks.building_validation)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator"]], "cleaner (class in lidar_prod.tasks.cleaning)": [[2, "lidar_prod.tasks.cleaning.Cleaner"]], "add_dimensions() (lidar_prod.tasks.cleaning.cleaner method)": [[2, "lidar_prod.tasks.cleaning.Cleaner.add_dimensions"]], "bd_name (lidar_prod.tasks.utils.bduniconnectionparams attribute)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams.bd_name"]], "check_bbox_intersects_territoire_with_srid() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.check_bbox_intersects_territoire_with_srid"]], "constraints_func() (in module lidar_prod.tasks.building_validation_optimization)": [[2, "lidar_prod.tasks.building_validation_optimization.constraints_func"]], "entropies (lidar_prod.tasks.building_validation.buildingvalidationclusterinfo attribute)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo.entropies"]], "evaluate() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.evaluate"]], "evaluate_decisions() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.evaluate_decisions"]], "get_a_las_to_las_pdal_pipeline() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_a_las_to_las_pdal_pipeline"]], "get_extra_dims_as_str() (lidar_prod.tasks.cleaning.cleaner method)": [[2, "lidar_prod.tasks.cleaning.Cleaner.get_extra_dims_as_str"]], "get_input_las_metadata() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_input_las_metadata"]], "get_integer_bbox() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_integer_bbox"]], "get_las_data_from_las() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_las_data_from_las"]], "get_pdal_reader() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_pdal_reader"]], "get_pdal_writer() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_pdal_writer"]], "get_pipeline() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.get_pipeline"]], "host (lidar_prod.tasks.utils.bduniconnectionparams attribute)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams.host"]], "lidar_prod.tasks.building_completion": [[2, "module-lidar_prod.tasks.building_completion"]], "lidar_prod.tasks.building_identification": [[2, "module-lidar_prod.tasks.building_identification"]], "lidar_prod.tasks.building_validation": [[2, "module-lidar_prod.tasks.building_validation"]], "lidar_prod.tasks.building_validation_optimization": [[2, "module-lidar_prod.tasks.building_validation_optimization"]], "lidar_prod.tasks.cleaning": [[2, "module-lidar_prod.tasks.cleaning"]], "lidar_prod.tasks.utils": [[2, "module-lidar_prod.tasks.utils"]], "min_confidence_confirmation (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_confidence_confirmation"]], "min_confidence_refutation (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_confidence_refutation"]], "min_entropy_uncertainty (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_entropy_uncertainty"]], "min_frac_confirmation (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_frac_confirmation"]], "min_frac_confirmation_factor_if_bd_uni_overlay (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_frac_confirmation_factor_if_bd_uni_overlay"]], "min_frac_entropy_uncertain (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_frac_entropy_uncertain"]], "min_frac_refutation (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_frac_refutation"]], "min_uni_db_overlay_frac (lidar_prod.tasks.building_validation.thresholds attribute)": [[2, "lidar_prod.tasks.building_validation.thresholds.min_uni_db_overlay_frac"]], "optimize() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.optimize"]], "overlays (lidar_prod.tasks.building_validation.buildingvalidationclusterinfo attribute)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo.overlays"]], "pdal_read_las_array() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.pdal_read_las_array"]], "prepare() (lidar_prod.tasks.building_validation.buildingvalidator method)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator.prepare"]], "prepare() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.prepare"]], "prepare_for_building_completion() (lidar_prod.tasks.building_completion.buildingcompletor method)": [[2, "lidar_prod.tasks.building_completion.BuildingCompletor.prepare_for_building_completion"]], "probabilities (lidar_prod.tasks.building_validation.buildingvalidationclusterinfo attribute)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo.probabilities"]], "pwd (lidar_prod.tasks.utils.bduniconnectionparams attribute)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams.pwd"]], "remove_dimensions() (lidar_prod.tasks.cleaning.cleaner method)": [[2, "lidar_prod.tasks.cleaning.Cleaner.remove_dimensions"]], "request_bd_uni_for_building_shapefile() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.request_bd_uni_for_building_shapefile"]], "run() (lidar_prod.tasks.building_completion.buildingcompletor method)": [[2, "lidar_prod.tasks.building_completion.BuildingCompletor.run"]], "run() (lidar_prod.tasks.building_identification.buildingidentifier method)": [[2, "lidar_prod.tasks.building_identification.BuildingIdentifier.run"]], "run() (lidar_prod.tasks.building_validation.buildingvalidator method)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator.run"]], "run() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.run"]], "run() (lidar_prod.tasks.cleaning.cleaner method)": [[2, "lidar_prod.tasks.cleaning.Cleaner.run"]], "save_las_data_to_las() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.save_las_data_to_las"]], "setup() (lidar_prod.tasks.building_validation.buildingvalidator method)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator.setup"]], "setup() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.setup"]], "split_idx_by_dim() (in module lidar_prod.tasks.utils)": [[2, "lidar_prod.tasks.utils.split_idx_by_dim"]], "target (lidar_prod.tasks.building_validation.buildingvalidationclusterinfo attribute)": [[2, "lidar_prod.tasks.building_validation.BuildingValidationClusterInfo.target"]], "thresholds (class in lidar_prod.tasks.building_validation)": [[2, "lidar_prod.tasks.building_validation.thresholds"]], "update() (lidar_prod.tasks.building_validation.buildingvalidator method)": [[2, "lidar_prod.tasks.building_validation.BuildingValidator.update"]], "update() (lidar_prod.tasks.building_validation_optimization.buildingvalidationoptimizer method)": [[2, "lidar_prod.tasks.building_validation_optimization.BuildingValidationOptimizer.update"]], "update_classification() (lidar_prod.tasks.building_completion.buildingcompletor method)": [[2, "lidar_prod.tasks.building_completion.BuildingCompletor.update_classification"]], "user (lidar_prod.tasks.utils.bduniconnectionparams attribute)": [[2, "lidar_prod.tasks.utils.BDUniConnectionParams.user"]]}}) \ No newline at end of file diff --git a/tutorials/install.html b/tutorials/install.html index 2b049312..bf88182f 100644 --- a/tutorials/install.html +++ b/tutorials/install.html @@ -4,7 +4,7 @@ - Installation — lidar_prod V1.10.1 documentation + Installation — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - + diff --git a/tutorials/use.html b/tutorials/use.html index 10eb3d23..5147b19c 100644 --- a/tutorials/use.html +++ b/tutorials/use.html @@ -4,7 +4,7 @@ - Using the app — lidar_prod V1.10.1 documentation + Using the app — lidar_prod V1.10.2 documentation @@ -16,7 +16,7 @@ - +