From 4508cf658a68f9950ca3e4989faff53b1a817aa4 Mon Sep 17 00:00:00 2001 From: leavauchier <120112647+leavauchier@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:53:36 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20IGNF/myr?= =?UTF-8?q?ia3d@8aeaef5fcdc594643c8c0dddd74c8f1154b9c22e=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .buildinfo | 2 +- _modules/index.html | 2 +- .../myria3d/callbacks/comet_callbacks.html | 2 +- .../callbacks/finetuning_callbacks.html | 2 +- .../myria3d/callbacks/logging_callbacks.html | 2 +- _modules/myria3d/models/interpolation.html | 12 ++-- _modules/myria3d/models/model.html | 2 +- .../models/modules/pyg_randla_net.html | 2 +- .../myria3d/pctl/dataloader/dataloader.html | 2 +- _modules/myria3d/pctl/datamodule/hdf5.html | 6 +- _modules/myria3d/pctl/dataset/hdf5.html | 10 +-- _modules/myria3d/pctl/dataset/iterable.html | 5 +- .../myria3d/pctl/dataset/toy_dataset.html | 4 +- _modules/myria3d/pctl/dataset/utils.html | 64 ++++++++++++++---- .../pctl/points_pre_transform/lidar_hd.html | 2 +- _modules/myria3d/pctl/transforms/compose.html | 2 +- .../myria3d/pctl/transforms/transforms.html | 2 +- _modules/myria3d/train.html | 2 +- _modules/myria3d/utils/utils.html | 2 +- _modules/run.html | 4 +- _sources/tutorials/make_predictions.md.txt | 3 +- _sources/tutorials/prepare_dataset.md.txt | 2 + _static/documentation_options.js | 2 +- apidoc/configs.html | 3 +- apidoc/myria3d.callbacks.html | 2 +- apidoc/myria3d.model.html | 12 ++-- apidoc/myria3d.models.modules.html | 2 +- apidoc/myria3d.pctl.html | 47 +++++++++---- apidoc/myria3d.utils.html | 2 +- apidoc/scripts.html | 2 +- background/general_design.html | 2 +- background/interpolation.html | 2 +- genindex.html | 32 ++++++--- guides/development.html | 2 +- guides/train_new_model.html | 2 +- index.html | 2 +- introduction.html | 2 +- objects.inv | Bin 2202 -> 2239 bytes py-modindex.html | 2 +- search.html | 2 +- searchindex.js | 2 +- tutorials/install_on_linux.html | 2 +- tutorials/install_on_wsl2.html | 2 +- tutorials/make_predictions.html | 5 +- tutorials/prepare_dataset.html | 3 +- 45 files changed, 181 insertions(+), 89 deletions(-) diff --git a/.buildinfo b/.buildinfo index 5b77affd..cc940251 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: 6395020c267b48ee3cbaa30ed3959770 +config: c409b6955b9546f4bfafb77765b54b40 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/_modules/index.html b/_modules/index.html index 25464d52..d0f8eca8 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -3,7 +3,7 @@
-self.logits: List[torch.Tensor] = []
self.idx_in_full_cloud_list: List[np.ndarray] = []
-[docs] def load_full_las_for_update(self, src_las: str) -> np.ndarray:
+[docs] def load_full_las_for_update(self, src_las: str, epsg: str) -> np.ndarray:
"""Loads a LAS and adds necessary extradim.
Args:
filepath (str): Path to LAS for which predictions are made.
+ epsg (str): epsg to force the reading with
"""
# We do not reset the dims we create channel.
# Slight risk of interaction with previous values, but it is expected that all non-artefacts values are updated.
- pipeline = get_pdal_reader(src_las)
+ pipeline = get_pdal_reader(src_las, epsg)
for proba_channel_to_create in self.probas_to_save:
pipeline |= pdal.Filter.ferry(dimensions=f"=>{proba_channel_to_create}")
pipeline |= pdal.Filter.assign(value=f"{proba_channel_to_create}=0")
@@ -280,7 +281,7 @@ Source code for myria3d.models.interpolation
return reduced_logits[idx_in_full_cloud], idx_in_full_cloud
[docs] @torch.no_grad()
- def reduce_predictions_and_save(self, raw_path: str, output_dir: str) -> str:
+ def reduce_predictions_and_save(self, raw_path: str, output_dir: str, epsg: str) -> str:
"""Interpolate all predicted probabilites to their original points in LAS file, and save.
Args:
@@ -288,6 +289,7 @@ Source code for myria3d.models.interpolation
basename: str: file basename to save it with the same one
output_dir (Optional[str], optional): Directory to save output LAS with new predicted classification, entropy,
and probabilities. Defaults to None.
+ epsg (str): epsg to force the reading with
Returns:
str: path of the updated, saved LAS file.
@@ -306,7 +308,7 @@ Source code for myria3d.models.interpolation
del logits
# Read las after fetching all information to write into it
- las = self.load_full_las_for_update(src_las=raw_path)
+ las = self.load_full_las_for_update(raw_path, epsg)
for idx, class_name in enumerate(self.classification_dict.values()):
if class_name in self.probas_to_save:
diff --git a/_modules/myria3d/models/model.html b/_modules/myria3d/models/model.html
index 107beedd..2b1854dc 100644
--- a/_modules/myria3d/models/model.html
+++ b/_modules/myria3d/models/model.html
@@ -3,7 +3,7 @@
- myria3d.models.model — myria3d 3.5.2 documentation
+ myria3d.models.model — myria3d 3.6.0 documentation
diff --git a/_modules/myria3d/models/modules/pyg_randla_net.html b/_modules/myria3d/models/modules/pyg_randla_net.html
index 834e8709..079c972f 100644
--- a/_modules/myria3d/models/modules/pyg_randla_net.html
+++ b/_modules/myria3d/models/modules/pyg_randla_net.html
@@ -3,7 +3,7 @@
- myria3d.models.modules.pyg_randla_net — myria3d 3.5.2 documentation
+ myria3d.models.modules.pyg_randla_net — myria3d 3.6.0 documentation
diff --git a/_modules/myria3d/pctl/dataloader/dataloader.html b/_modules/myria3d/pctl/dataloader/dataloader.html
index 2a6935ac..f854a59e 100644
--- a/_modules/myria3d/pctl/dataloader/dataloader.html
+++ b/_modules/myria3d/pctl/dataloader/dataloader.html
@@ -3,7 +3,7 @@
- myria3d.pctl.dataloader.dataloader — myria3d 3.5.2 documentation
+ myria3d.pctl.dataloader.dataloader — myria3d 3.6.0 documentation
diff --git a/_modules/myria3d/pctl/datamodule/hdf5.html b/_modules/myria3d/pctl/datamodule/hdf5.html
index ce9f64e2..946db505 100644
--- a/_modules/myria3d/pctl/datamodule/hdf5.html
+++ b/_modules/myria3d/pctl/datamodule/hdf5.html
@@ -3,7 +3,7 @@
- myria3d.pctl.datamodule.hdf5 — myria3d 3.5.2 documentation
+ myria3d.pctl.datamodule.hdf5 — myria3d 3.6.0 documentation
@@ -194,6 +194,7 @@ Source code for myria3d.pctl.datamodule.hdf5
data_dir: str,
split_csv_path: str,
hdf5_file_path: str,
+ epsg: str,
points_pre_transform: Optional[Callable[[ArrayLike], Data]] = None,
pre_filter: Optional[Callable[[Data], bool]] = pre_filter_below_n_points,
tile_width: Number = 1000,
@@ -209,6 +210,7 @@ Source code for myria3d.pctl.datamodule.hdf5
self.split_csv_path = split_csv_path
self.data_dir = data_dir
self.hdf5_file_path = hdf5_file_path
+ self.epsg = epsg
self._dataset = None # will be set by self.dataset property
self.las_paths_by_split_dict = {} # Will be set from split_csv
@@ -292,6 +294,7 @@ Source code for myria3d.pctl.datamodule.hdf5
self._dataset = HDF5Dataset(
self.hdf5_file_path,
+ self.epsg,
las_paths_by_split_dict=self.las_paths_by_split_dict,
points_pre_transform=self.points_pre_transform,
tile_width=self.tile_width,
@@ -331,6 +334,7 @@ Source code for myria3d.pctl.datamodule.hdf5
def _set_predict_data(self, las_file_to_predict):
self.predict_dataset = InferenceDataset(
las_file_to_predict,
+ self.epsg,
points_pre_transform=self.points_pre_transform,
pre_filter=self.pre_filter,
transform=self.predict_transform,
diff --git a/_modules/myria3d/pctl/dataset/hdf5.html b/_modules/myria3d/pctl/dataset/hdf5.html
index bb7cc776..f12b2ac5 100644
--- a/_modules/myria3d/pctl/dataset/hdf5.html
+++ b/_modules/myria3d/pctl/dataset/hdf5.html
@@ -3,7 +3,7 @@
- myria3d.pctl.dataset.hdf5 — myria3d 3.5.2 documentation
+ myria3d.pctl.dataset.hdf5 — myria3d 3.6.0 documentation
@@ -193,6 +193,7 @@ Source code for myria3d.pctl.dataset.hdf5
def __init__(
self,
hdf5_file_path: str,
+ epsg: str,
las_paths_by_split_dict: LAS_PATHS_BY_SPLIT_DICT_TYPE,
points_pre_transform: Callable = lidar_hd_pre_transform,
tile_width: Number = 1000,
@@ -244,6 +245,7 @@ Source code for myria3d.pctl.dataset.hdf5
create_hdf5(
las_paths_by_split_dict,
hdf5_file_path,
+ epsg,
tile_width,
subtile_width,
pre_filter,
@@ -360,6 +362,7 @@ Source code for myria3d.pctl.dataset.hdf5
[docs]def create_hdf5(
las_paths_by_split_dict: dict,
hdf5_file_path: str,
+ epsg: str,
tile_width: Number = 1000,
subtile_width: Number = 50,
pre_filter: Optional[Callable[[Data], bool]] = pre_filter_below_n_points,
@@ -369,12 +372,10 @@ Source code for myria3d.pctl.dataset.hdf5
"""Create a HDF5 dataset file from las.
Args:
- split (str): specifies either "train", "val", or "test" split.
- las_path (str): path to point cloud.
-
las_paths_by_split_dict ([LAS_PATHS_BY_SPLIT_DICT_TYPE]): should look like
las_paths_by_split_dict = {'train': ['dir/las1.las','dir/las2.las'], 'val': [...], , 'test': [...]},
hdf5_file_path (str): path to HDF5 dataset,
+ epsg (str): epsg to force the reading with
tile_width (Number, optional): width of a LAS tile. 1000 by default,
subtile_width: (Number, optional): effective width of a subtile (i.e. receptive field). 50 by default,
pre_filter: Function to filter out specific subtiles. "pre_filter_below_n_points" by default,
@@ -411,6 +412,7 @@ Source code for myria3d.pctl.dataset.hdf5
las_path,
tile_width,
subtile_width,
+ epsg,
subtile_overlap,
)
):
diff --git a/_modules/myria3d/pctl/dataset/iterable.html b/_modules/myria3d/pctl/dataset/iterable.html
index 7b8f8882..6cd90804 100644
--- a/_modules/myria3d/pctl/dataset/iterable.html
+++ b/_modules/myria3d/pctl/dataset/iterable.html
@@ -3,7 +3,7 @@
- myria3d.pctl.dataset.iterable — myria3d 3.5.2 documentation
+ myria3d.pctl.dataset.iterable — myria3d 3.6.0 documentation
@@ -184,6 +184,7 @@ Source code for myria3d.pctl.dataset.iterable
def __init__(
self,
las_file: str,
+ epsg: str,
points_pre_transform: Callable[[ArrayLike], Data] = lidar_hd_pre_transform,
pre_filter: Optional[Callable[[Data], bool]] = pre_filter_below_n_points,
transform: Optional[Callable[[Data], Data]] = None,
@@ -192,6 +193,7 @@ Source code for myria3d.pctl.dataset.iterable
subtile_overlap: Number = 0,
):
self.las_file = las_file
+ self.epsg = epsg
self.points_pre_transform = points_pre_transform
self.pre_filter = pre_filter
@@ -210,6 +212,7 @@ Source code for myria3d.pctl.dataset.iterable
self.las_file,
self.tile_width,
self.subtile_width,
+ self.epsg,
self.subtile_overlap,
):
sample_data = self.points_pre_transform(sample_points)
diff --git a/_modules/myria3d/pctl/dataset/toy_dataset.html b/_modules/myria3d/pctl/dataset/toy_dataset.html
index e90749fe..f9270f53 100644
--- a/_modules/myria3d/pctl/dataset/toy_dataset.html
+++ b/_modules/myria3d/pctl/dataset/toy_dataset.html
@@ -3,7 +3,7 @@
- myria3d.pctl.dataset.toy_dataset — myria3d 3.5.2 documentation
+ myria3d.pctl.dataset.toy_dataset — myria3d 3.6.0 documentation
@@ -173,6 +173,7 @@ Source code for myria3d.pctl.dataset.toy_dataset
sys.path.append(osp.dirname(osp.dirname(osp.dirname(osp.dirname(__file__)))))
from myria3d.pctl.dataset.hdf5 import HDF5Dataset # noqa
+TOY_EPSG = "2154"
TOY_LAS_DATA = "tests/data/toy_dataset_src/862000_6652000.classified_toy_dataset.100mx100m.las"
TOY_DATASET_HDF5_PATH = "tests/data/toy_dataset.hdf5"
@@ -201,6 +202,7 @@ Source code for myria3d.pctl.dataset.toy_dataset
# TODO: update transforms ? or use a config ?
HDF5Dataset(
TOY_DATASET_HDF5_PATH,
+ TOY_EPSG,
las_paths_by_split_dict={
"train": [TOY_LAS_DATA],
"val": [TOY_LAS_DATA],
diff --git a/_modules/myria3d/pctl/dataset/utils.html b/_modules/myria3d/pctl/dataset/utils.html
index f6fa1509..d7e2acc4 100644
--- a/_modules/myria3d/pctl/dataset/utils.html
+++ b/_modules/myria3d/pctl/dataset/utils.html
@@ -3,7 +3,7 @@
- myria3d.pctl.dataset.utils — myria3d 3.5.2 documentation
+ myria3d.pctl.dataset.utils — myria3d 3.6.0 documentation
@@ -178,8 +178,6 @@ Source code for myria3d.pctl.dataset.utils
SPLIT_TYPE = Union[Literal["train"], Literal["val"], Literal["test"]]
LAS_PATHS_BY_SPLIT_DICT_TYPE = Dict[SPLIT_TYPE, List[str]]
-# commons
-
[docs]def find_file_in_dir(data_dir: str, basename: str) -> str:
"""Query files matching a basename in input_data_dir and its subdirectories.
@@ -205,41 +203,75 @@ Source code for myria3d.pctl.dataset.utils
return [np.array([x, y]) for x in xy_range for y in xy_range]
-[docs]def pdal_read_las_array(las_path: str):
+[docs]def pdal_read_las_array(las_path: str, epsg: str):
"""Read LAS as a named array.
Args:
las_path (str): input LAS path
+ epsg (str): epsg to force the reading with
Returns:
np.ndarray: named array with all LAS dimensions, including extra ones, with dict-like access.
"""
- p1 = pdal.Pipeline() | get_pdal_reader(las_path)
+ p1 = pdal.Pipeline() | get_pdal_reader(las_path, epsg)
p1.execute()
return p1.arrays[0]
-[docs]def pdal_read_las_array_as_float32(las_path: str):
+[docs]def pdal_read_las_array_as_float32(las_path: str, epsg: str):
"""Read LAS as a a named array, casted to floats."""
- arr = pdal_read_las_array(las_path)
+ arr = pdal_read_las_array(las_path, epsg)
all_floats = np.dtype({"names": arr.dtype.names, "formats": ["f4"] * len(arr.dtype.names)})
return arr.astype(all_floats)
-[docs]def get_pdal_reader(las_path: str) -> pdal.Reader.las:
- """Standard Reader which imposes Lamber 93 SRS.
+[docs]def get_metadata(las_path: str) -> dict:
+ """ returns metadata contained in a las file
+ Args:
+ las_path (str): input LAS path to get metadata from.
+ Returns:
+ dict : the metadata.
+ """
+ pipeline = pdal.Reader.las(filename=las_path).pipeline()
+ pipeline.execute()
+ return pipeline.metadata
+
+
+[docs]def get_pdal_reader(las_path: str, epsg: str) -> pdal.Reader.las:
+ """Standard Reader.
Args:
las_path (str): input LAS path to read.
+ epsg (str): epsg to force the reading with
Returns:
pdal.Reader.las: reader to use in a pipeline.
"""
- return pdal.Reader.las(
- filename=las_path,
- nosrs=True,
- override_srs="EPSG:2154",
- )
+
+ if epsg :
+ # if an epsg in provided, force pdal to read the lidar file with it
+ try : # epsg can be added as a number like "2154" or as a string like "EPSG:2154"
+ int(epsg)
+ return pdal.Reader.las(
+ filename=las_path,
+ nosrs=True,
+ override_srs=f"EPSG:{epsg}",
+ )
+ except ValueError:
+ return pdal.Reader.las(
+ filename=las_path,
+ nosrs=True,
+ override_srs=epsg,
+ )
+
+ try :
+ if get_metadata(las_path)['metadata']['readers.las']['srs']['compoundwkt']:
+ # read the lidar file with pdal default
+ return pdal.Reader.las(filename=las_path)
+ except Exception:
+ pass # we will go to the "raise exception" anyway
+
+ raise Exception("No EPSG provided, neither in the lidar file or as parameter")
[docs]def get_pdal_info_metadata(las_path: str) -> Dict:
@@ -267,6 +299,7 @@ Source code for myria3d.pctl.dataset.utils
las_path: str,
tile_width: Number,
subtile_width: Number,
+ epsg: str,
subtile_overlap: Number = 0,
):
"""Split LAS point cloud into samples.
@@ -275,13 +308,14 @@ Source code for myria3d.pctl.dataset.utils
las_path (str): path to raw LAS file
tile_width (Number): width of input LAS file
subtile_width (Number): width of receptive field.
+ epsg (str): epsg to force the reading with
subtile_overlap (Number, optional): overlap between adjacent tiles. Defaults to 0.
Yields:
_type_: idx_in_original_cloud, and points of sample in pdal input format casted as floats.
"""
- points = pdal_read_las_array_as_float32(las_path)
+ points = pdal_read_las_array_as_float32(las_path, epsg)
pos = np.asarray([points["X"], points["Y"], points["Z"]], dtype=np.float32).transpose()
kd_tree = cKDTree(pos[:, :2] - pos[:, :2].min(axis=0))
XYs = get_mosaic_of_centers(tile_width, subtile_width, subtile_overlap=subtile_overlap)
diff --git a/_modules/myria3d/pctl/points_pre_transform/lidar_hd.html b/_modules/myria3d/pctl/points_pre_transform/lidar_hd.html
index 5c8764bf..4c8ab018 100644
--- a/_modules/myria3d/pctl/points_pre_transform/lidar_hd.html
+++ b/_modules/myria3d/pctl/points_pre_transform/lidar_hd.html
@@ -3,7 +3,7 @@
- myria3d.pctl.points_pre_transform.lidar_hd — myria3d 3.5.2 documentation
+ myria3d.pctl.points_pre_transform.lidar_hd — myria3d 3.6.0 documentation
diff --git a/_modules/myria3d/pctl/transforms/compose.html b/_modules/myria3d/pctl/transforms/compose.html
index aae15d64..ed0e38d7 100644
--- a/_modules/myria3d/pctl/transforms/compose.html
+++ b/_modules/myria3d/pctl/transforms/compose.html
@@ -3,7 +3,7 @@
- myria3d.pctl.transforms.compose — myria3d 3.5.2 documentation
+ myria3d.pctl.transforms.compose — myria3d 3.6.0 documentation
diff --git a/_modules/myria3d/pctl/transforms/transforms.html b/_modules/myria3d/pctl/transforms/transforms.html
index 7fb1bad7..a1e32b4a 100644
--- a/_modules/myria3d/pctl/transforms/transforms.html
+++ b/_modules/myria3d/pctl/transforms/transforms.html
@@ -3,7 +3,7 @@
- myria3d.pctl.transforms.transforms — myria3d 3.5.2 documentation
+ myria3d.pctl.transforms.transforms — myria3d 3.6.0 documentation
diff --git a/_modules/myria3d/train.html b/_modules/myria3d/train.html
index 2d51d209..fd909693 100644
--- a/_modules/myria3d/train.html
+++ b/_modules/myria3d/train.html
@@ -3,7 +3,7 @@
- myria3d.train — myria3d 3.5.2 documentation
+ myria3d.train — myria3d 3.6.0 documentation
diff --git a/_modules/myria3d/utils/utils.html b/_modules/myria3d/utils/utils.html
index 078abcb5..2b9984e1 100644
--- a/_modules/myria3d/utils/utils.html
+++ b/_modules/myria3d/utils/utils.html
@@ -3,7 +3,7 @@
- myria3d.utils.utils — myria3d 3.5.2 documentation
+ myria3d.utils.utils — myria3d 3.6.0 documentation
diff --git a/_modules/run.html b/_modules/run.html
index bb552bd9..ec95203c 100644
--- a/_modules/run.html
+++ b/_modules/run.html
@@ -3,7 +3,7 @@
- run — myria3d 3.5.2 documentation
+ run — myria3d 3.6.0 documentation
@@ -213,7 +213,6 @@ Source code for run
# Imports should be nested inside @hydra.main to optimize tab completion
# Read more here: https://github.com/facebookresearch/hydra/issues/934
from myria3d.train import train
-
utils.extras(config)
# Pretty print config using Rich library
@@ -259,6 +258,7 @@ Source code for run
create_hdf5(
las_paths_by_split_dict=las_paths_by_split_dict,
hdf5_file_path=config.datamodule.get("hdf5_file_path"),
+ epsg=config.datamodule.get("epsg"),
tile_width=config.datamodule.get("tile_width"),
subtile_width=config.datamodule.get("subtile_width"),
pre_filter=hydra.utils.instantiate(config.datamodule.get("pre_filter")),
diff --git a/_sources/tutorials/make_predictions.md.txt b/_sources/tutorials/make_predictions.md.txt
index 8341fd5c..bd3fdb34 100644
--- a/_sources/tutorials/make_predictions.md.txt
+++ b/_sources/tutorials/make_predictions.md.txt
@@ -28,7 +28,8 @@ To show you current inference config, simply add a `--help` flag:
python run.py task.task_name=predict --help
```
-Note that `predict.src_las` may be any valid glob pattern (e.g. `/path/to/multiple_files/*.las`), in order to **predict on multiple files successively**.
+Note that `predict.src_las` may be any valid glob pattern (e.g. `/path/to/multiple_files/*.las`), in order to **predict on multiple files successively**.
+If the lidar file doesn't specify an EPSG in its meatadata, it HAS TO BE be specified with `datamodule.epsg=...`
## Run inference from sources
diff --git a/_sources/tutorials/prepare_dataset.md.txt b/_sources/tutorials/prepare_dataset.md.txt
index 1dff18a6..f02a0278 100644
--- a/_sources/tutorials/prepare_dataset.md.txt
+++ b/_sources/tutorials/prepare_dataset.md.txt
@@ -25,6 +25,8 @@ Under the hood, the path of each LAS file will be reconstructed like this: '{dat
Large input point clouds need to be divided in smaller clouds that can be digested by segmentation models. We found that a receptive field of 50m x 50m was a good balance between context and memory intensity. The division is performed once, to avoid loading large file in memory multiple times during training.
+To be able to read the lidar files, an EPSG is needed. If the files don't all specify an EPSG in their metadata, it should be given as a parameter with `datamodule.epsg=...`
+
After division, the smaller clouds are preprocessed (i.e. selection of specific LAS dimensions, on-the-fly creation of dimensions) and regrouped into a single HDF5 file whose path is specified via the `datamodule.hdf5_file_path` parameter.
The HDF5 dataset is created at training time. It should only happens once. Once this is done, you do not need sources anymore, and simply specifying the path to the HDF5 dataset is enough (there is no need for data_dir or split_csv_path parameters anymore).
diff --git a/_static/documentation_options.js b/_static/documentation_options.js
index a457d9ce..f4ef3226 100644
--- a/_static/documentation_options.js
+++ b/_static/documentation_options.js
@@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
- VERSION: '3.5.2',
+ VERSION: '3.6.0',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/apidoc/configs.html b/apidoc/configs.html
index 71402a70..75f8bf47 100644
--- a/apidoc/configs.html
+++ b/apidoc/configs.html
@@ -4,7 +4,7 @@
- Default configuration — myria3d 3.5.2 documentation
+ Default configuration — myria3d 3.6.0 documentation
@@ -277,6 +277,7 @@ Default configuration normalizations_list: '${oc.dict.values: datamodule.transforms.normalizations}'
_target_: myria3d.pctl.datamodule.hdf5.HDF5LidarDataModule
data_dir: null
+ epsg: null
split_csv_path: null
hdf5_file_path: ${hydra:runtime.cwd}/tests/data/toy_dataset.hdf5
points_pre_transform:
diff --git a/apidoc/myria3d.callbacks.html b/apidoc/myria3d.callbacks.html
index 89fdfe07..05c14dca 100644
--- a/apidoc/myria3d.callbacks.html
+++ b/apidoc/myria3d.callbacks.html
@@ -4,7 +4,7 @@
- myria3d.callbacks — myria3d 3.5.2 documentation
+ myria3d.callbacks — myria3d 3.6.0 documentation
diff --git a/apidoc/myria3d.model.html b/apidoc/myria3d.model.html
index 2d595af3..d3e793c3 100644
--- a/apidoc/myria3d.model.html
+++ b/apidoc/myria3d.model.html
@@ -4,7 +4,7 @@
- myria3d.models — myria3d 3.5.2 documentation
+ myria3d.models — myria3d 3.6.0 documentation
@@ -350,11 +350,14 @@ myria3d.models
-load_full_las_for_update(src_las: str) numpy.ndarray [source]
+load_full_las_for_update(src_las: str, epsg: str) numpy.ndarray [source]
Loads a LAS and adds necessary extradim.
@@ -375,7 +378,7 @@ myria3d.models
-reduce_predictions_and_save(raw_path: str, output_dir: str) str [source]
+reduce_predictions_and_save(raw_path: str, output_dir: str, epsg: str) str [source]
Interpolate all predicted probabilites to their original points in LAS file, and save.
- Parameters
@@ -384,6 +387,7 @@ myria3d.modelsbasename¶ – str: file basename to save it with the same one
output_dir¶ (Optional[str], optional) – Directory to save output LAS with new predicted classification, entropy,
None. (and _sphinx_paramlinks_myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.probabilities. Defaults to) –
+
Returns
diff --git a/apidoc/myria3d.models.modules.html b/apidoc/myria3d.models.modules.html
index 69b17910..07b8ceed 100644
--- a/apidoc/myria3d.models.modules.html
+++ b/apidoc/myria3d.models.modules.html
@@ -4,7 +4,7 @@
- myria3d.models.modules — myria3d 3.5.2 documentation
+ myria3d.models.modules — myria3d 3.6.0 documentation
diff --git a/apidoc/myria3d.pctl.html b/apidoc/myria3d.pctl.html
index 6bb15f02..29847e8b 100644
--- a/apidoc/myria3d.pctl.html
+++ b/apidoc/myria3d.pctl.html
@@ -4,7 +4,7 @@
- myria3d.pctl — myria3d 3.5.2 documentation
+ myria3d.pctl — myria3d 3.6.0 documentation
@@ -451,7 +451,7 @@ myria3d.pctlmyria3d.pctl.dataset.hdf5
-
-class myria3d.pctl.dataset.hdf5.HDF5Dataset(hdf5_file_path: str, las_paths_by_split_dict: typing.Dict[typing.Union[typing.Literal['train'], typing.Literal['val'], typing.Literal['test']], typing.List[str]], points_pre_transform: typing.Callable = <function lidar_hd_pre_transform>, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, subtile_overlap_train: numbers.Number = 0, pre_filter=<function pre_filter_below_n_points>, train_transform: typing.Optional[typing.List[typing.Callable]] = None, eval_transform: typing.Optional[typing.List[typing.Callable]] = None)[source]
+class myria3d.pctl.dataset.hdf5.HDF5Dataset(hdf5_file_path: str, epsg: str, las_paths_by_split_dict: typing.Dict[typing.Union[typing.Literal['train'], typing.Literal['val'], typing.Literal['test']], typing.List[str]], points_pre_transform: typing.Callable = <function lidar_hd_pre_transform>, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, subtile_overlap_train: numbers.Number = 0, pre_filter=<function pre_filter_below_n_points>, train_transform: typing.Optional[typing.List[typing.Callable]] = None, eval_transform: typing.Optional[typing.List[typing.Callable]] = None)[source]
Single-file HDF5 dataset for collections of large LAS tiles.
-
@@ -463,16 +463,15 @@
myria3d.pctl
-
-myria3d.pctl.dataset.hdf5.create_hdf5(las_paths_by_split_dict: dict, hdf5_file_path: str, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, pre_filter: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], bool]] = <function pre_filter_below_n_points>, subtile_overlap_train: numbers.Number = 0, points_pre_transform: typing.Callable = <function lidar_hd_pre_transform>)[source]
+myria3d.pctl.dataset.hdf5.create_hdf5(las_paths_by_split_dict: dict, hdf5_file_path: str, epsg: str, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, pre_filter: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], bool]] = <function pre_filter_below_n_points>, subtile_overlap_train: numbers.Number = 0, points_pre_transform: typing.Callable = <function lidar_hd_pre_transform>)[source]
Create a HDF5 dataset file from las.
- Parameters
-split¶ (str) – specifies either “train”, “val”, or “test” split.
-
las_paths_by_split_dict¶ ([LAS_PATHS_BY_SPLIT_DICT_TYPE]) – should look like
las_paths_by_split_dict = {‘train’: [‘dir/las1.las’,’dir/las2.las’], ‘val’: […], , ‘test’: […]},
+
tile_width¶ (Number, optional) – width of a LAS tile. 1000 by default,
subtile_width¶ – (Number, optional): effective width of a subtile (i.e. receptive field). 50 by default,
pre_filter¶ – Function to filter out specific subtiles. “pre_filter_below_n_points” by default,
@@ -488,7 +487,7 @@ myria3d.pctlmyria3d.pctl.dataset.iterable
-
-class myria3d.pctl.dataset.iterable.InferenceDataset(las_file: str, points_pre_transform: typing.Callable[[typing.Union[numpy._typing._array_like._SupportsArray[numpy.dtype[typing.Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[typing.Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[typing.Union[bool, int, float, complex, str, bytes]]]], torch_geometric.data.data.Data] = <function lidar_hd_pre_transform>, pre_filter: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], bool]] = <function pre_filter_below_n_points>, transform: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], torch_geometric.data.data.Data]] = None, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, subtile_overlap: numbers.Number = 0)[source]
+class myria3d.pctl.dataset.iterable.InferenceDataset(las_file: str, epsg: str, points_pre_transform: typing.Callable[[typing.Union[numpy._typing._array_like._SupportsArray[numpy.dtype[typing.Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[typing.Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[typing.Union[bool, int, float, complex, str, bytes]]]], torch_geometric.data.data.Data] = <function lidar_hd_pre_transform>, pre_filter: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], bool]] = <function pre_filter_below_n_points>, transform: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], torch_geometric.data.data.Data]] = None, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, subtile_overlap: numbers.Number = 0)[source]
Iterable dataset to load samples from a single las file.
-
@@ -547,6 +546,22 @@
myria3d.pctl
+-
+myria3d.pctl.dataset.utils.get_metadata(las_path: str) dict [source]
+returns metadata contained in a las file
+:param _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_metadata.las_path: input LAS path to get metadata from.
+:type _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_metadata.las_path: str
+
+- Returns
+the metadata.
+
+- Return type
+-
+
+
+
+
-
myria3d.pctl.dataset.utils.get_pdal_info_metadata(las_path: str) Dict [source]
@@ -565,10 +580,12 @@ myria3d.pctl
-
-myria3d.pctl.dataset.utils.get_pdal_reader(las_path: str) pdal.pipeline.Reader.las [source]
-Standard Reader which imposes Lamber 93 SRS.
+myria3d.pctl.dataset.utils.get_pdal_reader(las_path: str, epsg: str) pdal.pipeline.Reader.las [source]
+
Standard Reader.
:param _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.las_path: input LAS path to read.
-:type _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.las_path: str
+:type _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.las_path: str
+:param _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.epsg: epsg to force the reading with
+:type _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.epsg: str
- Returns
reader to use in a pipeline.
@@ -581,11 +598,14 @@ myria3d.pctl
-
-myria3d.pctl.dataset.utils.pdal_read_las_array(las_path: str)[source]
+myria3d.pctl.dataset.utils.pdal_read_las_array(las_path: str, epsg: str)[source]
Read LAS as a named array.
- Parameters
-las_path¶ (str) – input LAS path
+-
- Returns
named array with all LAS dimensions, including extra ones, with dict-like access.
@@ -598,13 +618,13 @@ myria3d.pctl
-
-myria3d.pctl.dataset.utils.pdal_read_las_array_as_float32(las_path: str)[source]
+myria3d.pctl.dataset.utils.pdal_read_las_array_as_float32(las_path: str, epsg: str)[source]
Read LAS as a a named array, casted to floats.
-
-myria3d.pctl.dataset.utils.split_cloud_into_samples(las_path: str, tile_width: numbers.Number, subtile_width: numbers.Number, subtile_overlap: numbers.Number = 0)[source]
+myria3d.pctl.dataset.utils.split_cloud_into_samples(las_path: str, tile_width: numbers.Number, subtile_width: numbers.Number, epsg: str, subtile_overlap: numbers.Number = 0)[source]
Split LAS point cloud into samples.
tile_width¶ (Number) – width of input LAS file
subtile_width¶ (Number) – width of receptive field.
+
subtile_overlap¶ (Number, optional) – overlap between adjacent tiles. Defaults to 0.
diff --git a/apidoc/myria3d.utils.html b/apidoc/myria3d.utils.html
index 7774fd77..c30bc3da 100644
--- a/apidoc/myria3d.utils.html
+++ b/apidoc/myria3d.utils.html
@@ -4,7 +4,7 @@
- myria3d.utils — myria3d 3.5.2 documentation
+ myria3d.utils — myria3d 3.6.0 documentation
diff --git a/apidoc/scripts.html b/apidoc/scripts.html
index ace35e27..5d9efef0 100644
--- a/apidoc/scripts.html
+++ b/apidoc/scripts.html
@@ -4,7 +4,7 @@
- Scripts — myria3d 3.5.2 documentation
+ Scripts — myria3d 3.6.0 documentation
diff --git a/background/general_design.html b/background/general_design.html
index 31c0d964..594c1e4e 100644
--- a/background/general_design.html
+++ b/background/general_design.html
@@ -4,7 +4,7 @@
- General design of the package — myria3d 3.5.2 documentation
+ General design of the package — myria3d 3.6.0 documentation
diff --git a/background/interpolation.html b/background/interpolation.html
index 6a0821ad..5e75b642 100644
--- a/background/interpolation.html
+++ b/background/interpolation.html
@@ -4,7 +4,7 @@
- KNN-Interpolation to merge multiple predictions [TODO] — myria3d 3.5.2 documentation
+ KNN-Interpolation to merge multiple predictions [TODO] — myria3d 3.6.0 documentation
diff --git a/genindex.html b/genindex.html
index 5a0575ab..6bdfa923 100644
--- a/genindex.html
+++ b/genindex.html
@@ -3,7 +3,7 @@
- Index — myria3d 3.5.2 documentation
+ Index — myria3d 3.6.0 documentation
@@ -273,10 +273,24 @@ D
E
- - eval_time() (in module myria3d.utils.utils)
+
- epsg (myria3d.models.interpolation.Interpolator.load_full_las_for_update parameter)
+
+
+ - (myria3d.models.interpolation.Interpolator.reduce_predictions_and_save parameter)
+
+ - (myria3d.pctl.dataset.hdf5.create_hdf5 parameter)
+
+ - (myria3d.pctl.dataset.utils.get_pdal_reader parameter)
+ - (myria3d.pctl.dataset.utils.pdal_read_las_array parameter)
+
+ - (myria3d.pctl.dataset.utils.split_cloud_into_samples parameter)
+
+
@@ -325,11 +339,13 @@ G
- get_comet_logger() (in module myria3d.callbacks.comet_callbacks)
-
-
+
- get_logger() (in module myria3d.utils.utils)
+
+ - get_metadata() (in module myria3d.pctl.dataset.utils)
- get_neural_net_class() (in module myria3d.models.model)
@@ -377,7 +393,7 @@ L
- las_filepath (myria3d.pctl.points_pre_transform.lidar_hd.lidar_hd_pre_transform parameter)
- - las_path (myria3d.pctl.dataset.hdf5.create_hdf5 parameter)
+
- las_path (myria3d.pctl.dataset.utils.get_metadata parameter)
- (myria3d.pctl.dataset.utils.get_pdal_info_metadata parameter)
@@ -716,17 +732,15 @@
S
- SingleClassIoU (class in myria3d.callbacks.logging_callbacks)
-
- - split (myria3d.pctl.dataset.hdf5.create_hdf5 parameter)
- split_cloud_into_samples() (in module myria3d.pctl.dataset.utils)
- split_csv (myria3d.pctl.dataset.toy_dataset.make_toy_dataset_from_test_file parameter)
-
-
+
- standardize_channel() (myria3d.pctl.transforms.transforms.StandardizeRGBAndIntensity method)
- StandardizeRGBAndIntensity (class in myria3d.pctl.transforms.transforms)
diff --git a/guides/development.html b/guides/development.html
index 8de87cb3..66104a3a 100644
--- a/guides/development.html
+++ b/guides/development.html
@@ -4,7 +4,7 @@
-
Developer’s guide — myria3d 3.5.2 documentation
+ Developer’s guide — myria3d 3.6.0 documentation
diff --git a/guides/train_new_model.html b/guides/train_new_model.html
index 25e200e6..5071a016 100644
--- a/guides/train_new_model.html
+++ b/guides/train_new_model.html
@@ -4,7 +4,7 @@
- How to train new models — myria3d 3.5.2 documentation
+ How to train new models — myria3d 3.6.0 documentation
diff --git a/index.html b/index.html
index 9c1c74fa..12087fe9 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
- Myria3D > Documentation — myria3d 3.5.2 documentation
+ Myria3D > Documentation — myria3d 3.6.0 documentation
diff --git a/introduction.html b/introduction.html
index dafb80d7..63ea2928 100644
--- a/introduction.html
+++ b/introduction.html
@@ -4,7 +4,7 @@
- <no title> — myria3d 3.5.2 documentation
+ <no title> — myria3d 3.6.0 documentation
diff --git a/objects.inv b/objects.inv
index 1ae9c98e3689c902aee0f12368e79ba490593d1a..e0ad2442f96f596f16874a8fd902da6ee7b36006 100644
GIT binary patch
delta 2108
zcmV-C2*dZ95x)_Tntu{0kW{kXr~XENuV2z3DcO=O$(BWVfgqN6Ifoq142Kt`8_DQ5
zaTw7gSM9g?pg_ku(r(HJK{^s5L=a3&&ohAP!5eShy{VMZlQRS21~^PhbMtaw50
zB}*VH;=(cbCB%6IB*R}8X^2hu#EYeAc
z15C|&5@hAED-^V~+9JVr$nYJQoqow86BIv5A(l5H!AKUm_5yZfXR}Oey*iJ_^)y_^
z%YSc&i>3k={xrS&_5qDdnpQqKSRbuy0=8w8(@$KpWFYm%J4YFW?CDaAh7Kn~Lk3GW
zBF)jzXCS_fFfJl6x37BS<+-9An$oHviu%jaR25h*8^;SI>q9VtH+W1-A_
zo!HH1KAWAz81OQ_6k~MY5PbBm
z-~<|j^xX%C>Nn!-r0^}DErs<3RDVjk@g$=LnT=0jnoHY(@HQjTj&xOBE#nTPU!8!;Ue@b
z3pj_Ys-q`fKk8_~7S`Sw&x9Jd(mKQoZ*rwYdb30CztB2{y49_1IWH2a!+&`ZO6BoJ
zWShG@NuGonER`nMVkI%B5@&4h6wlVGW6zDBN|8NTqd0y)yf^qG{m9Zho#CH|!7nu9
zV?odGKTX&t@GR;X>IhqI9>goIzkc(H{H!TQ&lO{v-@p6un#blc6<17eF2fS4T^5Pf
zl=I@sRsYSGW@=|r^Q!yz)qktGm}4iz87FA&IH<`{sYtR+w|}g$-E};x;;#DP6j%dj
zskuEiws+84{B|pli#d+2@m;aDepEoh7|i!LB!(9jf!m;PEhDyB-BW#qrVSs=agAmv
z3`hEi@>8B*P8x+CsH+n{H9G;yd`7e0WFWUK8s6zl;v7SEo%IIhTYrvC*h>aUtj58%
zX%GkKKm)Yu*EQ9FkY<@b4xa=ik{9R)F7saQ3X6yH>*t@z?E3Ncxxup@c$a#O@a}$g
zJO41dZTaToc=h?2HO+zNnN^?O-%jsu&Ly7TKKH7cP&A-*$Ej&ot;*EZuVSB>r$~3&
zrvjzp@9;gi+SVv?Y=4dNYI#szjJ9{PCT-vNG@vzq2NWD6PnvELb>QvpOa=AJN0ZJg
zNyiZDcb9_Zyh%eK(gD1UQ-W&Bq{*~9Pzzvrii%-G|2&&r-PfvW5u|`I
zXON;&vdkRFRX#@eeg4bzmp>-hRK{cYXo(WKKs`dLGSxxfo5#s2XV~^P7~?=9vJ|+k
zHtsODv75u7B9=QY{1mnw(crfvm?EqXAy&G4@(
zd3zMy6lw+k_4(m#@XGW$xcM->4pg3HLh1^eJq4`lZ#5&`eyKvFAk8|-eDTi8vvxyj
ml*epCR%ohM*36lCBgldh$Qpf|!V}2@lf%
delta 2071
zcmV+y21hK@+Ih^5eIJ_uZDMr6Z
z*(tP=qJI(QV^pk6GR)Tj1vOPQl{Z(@J~Ncvm8Kz3V+&4!2~k|L>gR#g?)2r
zTrL)%EWx}GiD6QlNik;vOd*(9gtwnI?D%e-c&7k9!3QySzkU1UB(kbBkhS{y_SK2}
z?uX1^E){sQ$3nduVa;NYuG|5(Hh(Wa{J6Steb%${4!}FZ$1K8RL1ruBsEC~X1&Il-
zvn_7Sx4eV%pnv0-qu&VQ{Ei?C=B19{GN28aQIjk$%6Ktd`g!Z30=`hrQfgh-puErc
z%E7TBfB13U#J4kEUKki$5F`@wj5_0>#wa$ktfz3Hy9BOdCJd-ta=M;GI=rnb-|1=F
z(Bk{`n^b!=Uqe0#5|u<#oB+|UA~3<3h!i=R)L!ieCx44`s%U2CPY!t*o4F*w$^rQm
zq(uTG$6uBhNNotkj2=YRCKqOFLPbh6eSu5!RqCBl4FZ*V8TGa{VP~j(rgq4}ppPLb
zQ=hRBxso$FW1JZVI*!ILrv*oIG%}h<0r5~x)5ZpzwU(W4knX3q%kzaEE3C78Tn)oH
zcD5)`NPn3dma$Ku`pQ@$qtAM!Dh@8J;+W_v-UK;HzN3$Hu59A=V-p$mQWkrZ;%g
z5$IsrDMuBm2l6li)DedF8+>q)#9xrLUOy}SBS4|Bp{%L&o?E?-n
zWq(`w=wU;&vJKdk(cV6B&60yMtKb|}5VB=U9TwW33CTM%$VrQGlM3RC?&1CeHw@
zW=Pj&yLU&9*u3k(V>b;i!=UX6lg>G_TYp6Ud}$cMTry#_-HWm32SVfIoDIl^G}uq&
z%sC8))7pUW#mrbslP{n+&Hbs%@N};%9n$VXaxkn&XFeS0@AfLR_+HFGfk+^T|LcTx
zp}5N}4?KD}eaO7YN$TEOX@f0;%PCbjy#=RucB48C-1xDQ`G1oe6o;?o
zo(%p-KeDXICio{)2n)@`P|y?nPdWPpfmJ<08)5U+gM7u1{I`(E&xQ*0Tq(Bs{ktEp
zMQX3`2+hpuGAyy)WRYY^g(xrjoW34!r}jf?T6h1Uq?*bp3L(!pxABJ%ZH`JOish#J
zp8R?v>a2>J>bp~51E8bk`hT#}-F)is+nqo@<~X?Q^ToR4sDZ>O*iRuy3NI`Hzh?C<
zBd%Hdr}`RA7e3fS0>d)skMt4srvt$p)e9$}E{^=l=LjhK1;cWcgIc$!ztFkDIfiV6
z4F(okk8Rj<20YcnV7oL(BXpnOF3lS8-TmZt`eAb0aozrK_34>4?J?V#RiED9j_+^IC7#|spH!7o96-xG
zXLb8()uyh~DxNa)ll$T_t5IEOj;iap?ncn4>+^~hwDwOhqMhVX
z+x?Y2c$=F#QS-{nXn*fTm_vxo8#7UR-l!!I*#o?eQ=)pxsBLKPLD>xbsF5^kc619u
z-2|d%|1z>lUnp6K^vwbU*lSZ5ud{`y19TShSnqsVR92Mp$Sl!=VI{hNIz#i5fp&uC
zWp{`F^JH>$->7P2lmW(^QHDmza(hNoy8{3F^q283e~hrHOn;>C(GhVvLpwsMD%C^Z
z+sDzOVA%FI7~=q!c?QDN8@HQVjR}_k>c4;f)xK1PQSMYCflm6r+b9&1yVA@;fE3OwWus#T~!$+
zr=MuN@@lyUs((GLaJ?a#wKY(cESnX5T4|>~|H)dCDU3v6xke+wB@O393c{Hv8oKE&
zRdu;bT`LY-^k8$_;a@d>dl20g>IDDw`QdH!%FHsl`7pkYbdl#$nHrlr7^>TEE8TXf
zQl+5mI>~-)%&Oy8OKOeBZbQ~+>KCQ#F={KzR-ux_B@kK;cT9qWQFSqQ^gny&sirQt
B7AOD!
diff --git a/py-modindex.html b/py-modindex.html
index b5e0aee0..04444802 100644
--- a/py-modindex.html
+++ b/py-modindex.html
@@ -3,7 +3,7 @@
- Python Module Index — myria3d 3.5.2 documentation
+ Python Module Index — myria3d 3.6.0 documentation
diff --git a/search.html b/search.html
index 74b32763..8d5d37a0 100644
--- a/search.html
+++ b/search.html
@@ -3,7 +3,7 @@
- Search — myria3d 3.5.2 documentation
+ Search — myria3d 3.6.0 documentation
diff --git a/searchindex.js b/searchindex.js
index 9b4d8c34..23fce87c 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["apidoc/configs","apidoc/myria3d.callbacks","apidoc/myria3d.model","apidoc/myria3d.models.modules","apidoc/myria3d.pctl","apidoc/myria3d.utils","apidoc/scripts","background/general_design","background/interpolation","guides/development","guides/train_new_model","index","introduction","tutorials/install_on_linux","tutorials/install_on_wsl2","tutorials/make_predictions","tutorials/prepare_dataset"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["apidoc/configs.rst","apidoc/myria3d.callbacks.rst","apidoc/myria3d.model.rst","apidoc/myria3d.models.modules.rst","apidoc/myria3d.pctl.rst","apidoc/myria3d.utils.rst","apidoc/scripts.rst","background/general_design.md","background/interpolation.md","guides/development.md","guides/train_new_model.md","index.rst","introduction.md","tutorials/install_on_linux.md","tutorials/install_on_wsl2.md","tutorials/make_predictions.md","tutorials/prepare_dataset.md"],objects:{"":[[6,0,0,"-","run"]],"myria3d.callbacks":[[1,0,0,"-","comet_callbacks"],[1,0,0,"-","finetuning_callbacks"],[1,0,0,"-","logging_callbacks"]],"myria3d.callbacks.comet_callbacks":[[1,1,1,"","LogCode"],[1,1,1,"","LogLogsPath"],[1,3,1,"","get_comet_logger"]],"myria3d.callbacks.comet_callbacks.LogCode":[[1,2,1,"","on_train_start"]],"myria3d.callbacks.comet_callbacks.LogLogsPath":[[1,2,1,"","on_init_end"]],"myria3d.callbacks.finetuning_callbacks":[[1,1,1,"","FinetuningFreezeUnfreeze"]],"myria3d.callbacks.finetuning_callbacks.FinetuningFreezeUnfreeze":[[1,2,1,"","finetune_function"],[1,2,1,"","freeze_before_training"]],"myria3d.callbacks.logging_callbacks":[[1,1,1,"","LogIoUByClass"],[1,1,1,"","SingleClassIoU"]],"myria3d.callbacks.logging_callbacks.LogIoUByClass":[[1,2,1,"","get_all_iou_by_class_object"],[1,2,1,"","log_iou"],[1,2,1,"","on_fit_start"],[1,2,1,"","on_init_end"],[1,2,1,"","on_test_batch_end"],[1,2,1,"","on_test_start"],[1,2,1,"","on_train_batch_end"],[1,2,1,"","on_validation_batch_end"]],"myria3d.callbacks.logging_callbacks.SingleClassIoU":[[1,2,1,"","compute"],[1,4,1,"","confmat"]],"myria3d.models":[[2,0,0,"-","interpolation"],[2,0,0,"-","model"]],"myria3d.models.interpolation":[[2,1,1,"","Interpolator"]],"myria3d.models.interpolation.Interpolator":[[2,2,1,"","load_full_las_for_update"],[2,2,1,"","reduce_predicted_logits"],[2,2,1,"","reduce_predictions_and_save"],[2,2,1,"","store_predictions"]],"myria3d.models.interpolation.Interpolator.load_full_las_for_update.params":[[2,5,1,"","filepath"]],"myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.params":[[2,5,1,"","basename"],[2,5,1,"","interpolation"],[2,5,1,"","output_dir"]],"myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.params.probabilities. Defaults to None":[[2,5,1,"",""]],"myria3d.models.model":[[2,1,1,"","Model"],[2,3,1,"","get_neural_net_class"]],"myria3d.models.model.Model":[[2,2,1,"","configure_optimizers"],[2,2,1,"","forward"],[2,2,1,"","on_fit_start"],[2,2,1,"","on_validation_epoch_end"],[2,2,1,"","predict_step"],[2,2,1,"","setup"],[2,2,1,"","test_step"],[2,2,1,"","training_step"],[2,2,1,"","validation_step"]],"myria3d.models.model.Model.forward.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.on_validation_epoch_end.params":[[2,5,1,"","outputs"]],"myria3d.models.model.Model.predict_step.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.test_step.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.training_step.params":[[2,5,1,"","batch"],[2,5,1,"","batch_idx"],[2,5,1,"","y"]],"myria3d.models.model.Model.validation_step.params":[[2,5,1,"","batch"],[2,5,1,"","batch_idx"],[2,5,1,"","y"]],"myria3d.models.model.get_neural_net_class.params":[[2,5,1,"","class_name"]],"myria3d.models.modules.pyg_randla_net":[[3,1,1,"","PyGRandLANet"]],"myria3d.models.modules.pyg_randla_net.PyGRandLANet":[[3,2,1,"","forward"]],"myria3d.pctl.dataloader":[[4,0,0,"-","dataloader"]],"myria3d.pctl.dataloader.dataloader":[[4,1,1,"","GeometricNoneProofCollater"],[4,1,1,"","GeometricNoneProofDataloader"]],"myria3d.pctl.datamodule":[[4,0,0,"-","hdf5"]],"myria3d.pctl.datamodule.hdf5":[[4,1,1,"","HDF5LidarDataModule"]],"myria3d.pctl.datamodule.hdf5.HDF5LidarDataModule":[[4,6,1,"","dataset"],[4,2,1,"","predict_dataloader"],[4,2,1,"","prepare_data"],[4,2,1,"","setup"],[4,2,1,"","test_dataloader"],[4,2,1,"","train_dataloader"],[4,2,1,"","val_dataloader"]],"myria3d.pctl.dataset":[[4,0,0,"-","hdf5"],[4,0,0,"-","iterable"],[4,0,0,"-","toy_dataset"],[4,0,0,"-","utils"]],"myria3d.pctl.dataset.hdf5":[[4,1,1,"","HDF5Dataset"],[4,3,1,"","create_hdf5"]],"myria3d.pctl.dataset.hdf5.HDF5Dataset":[[4,6,1,"","samples_hdf5_paths"]],"myria3d.pctl.dataset.hdf5.create_hdf5.params":[[4,5,1,"","hdf5_file_path"],[4,5,1,"","las_path"],[4,5,1,"","las_paths_by_split_dict"],[4,5,1,"","points_pre_transform"],[4,5,1,"","pre_filter"],[4,5,1,"","split"],[4,5,1,"","subtile_overlap_train"],[4,5,1,"","subtile_width"],[4,5,1,"","tile_width"]],"myria3d.pctl.dataset.iterable":[[4,1,1,"","InferenceDataset"]],"myria3d.pctl.dataset.iterable.InferenceDataset":[[4,2,1,"","get_iterator"]],"myria3d.pctl.dataset.toy_dataset":[[4,3,1,"","make_toy_dataset_from_test_file"]],"myria3d.pctl.dataset.toy_dataset.make_toy_dataset_from_test_file.params":[[4,5,1,"","`split`"],[4,5,1,"","files"],[4,5,1,"","prepared_data_dir"],[4,5,1,"","split_csv"],[4,5,1,"","src_las_path"]],"myria3d.pctl.dataset.utils":[[4,3,1,"","find_file_in_dir"],[4,3,1,"","get_pdal_info_metadata"],[4,3,1,"","get_pdal_reader"],[4,3,1,"","pdal_read_las_array"],[4,3,1,"","pdal_read_las_array_as_float32"],[4,3,1,"","split_cloud_into_samples"]],"myria3d.pctl.dataset.utils.find_file_in_dir.params":[[4,5,1,"","input_data_dir"]],"myria3d.pctl.dataset.utils.get_pdal_info_metadata.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.get_pdal_reader.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.pdal_read_las_array.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.split_cloud_into_samples.params":[[4,5,1,"","las_path"],[4,5,1,"","subtile_overlap"],[4,5,1,"","subtile_width"],[4,5,1,"","tile_width"]],"myria3d.pctl.points_pre_transform":[[4,0,0,"-","lidar_hd"]],"myria3d.pctl.points_pre_transform.lidar_hd":[[4,3,1,"","lidar_hd_pre_transform"]],"myria3d.pctl.points_pre_transform.lidar_hd.lidar_hd_pre_transform.params":[[4,5,1,"","las_filepath"]],"myria3d.pctl.transforms":[[4,0,0,"-","compose"],[4,0,0,"-","transforms"]],"myria3d.pctl.transforms.compose":[[4,1,1,"","CustomCompose"]],"myria3d.pctl.transforms.compose.CustomCompose.params":[[4,5,1,"","transforms"]],"myria3d.pctl.transforms.transforms":[[4,1,1,"","CopyFullPos"],[4,1,1,"","CopyFullPreparedTargets"],[4,1,1,"","CopySampledPos"],[4,1,1,"","DropPointsByClass"],[4,1,1,"","MaximumNumNodes"],[4,1,1,"","MinimumNumNodes"],[4,1,1,"","NormalizePos"],[4,1,1,"","NullifyLowestZ"],[4,1,1,"","StandardizeRGBAndIntensity"],[4,1,1,"","TargetTransform"],[4,1,1,"","ToTensor"]],"myria3d.pctl.transforms.transforms.StandardizeRGBAndIntensity":[[4,2,1,"","standardize_channel"]],"myria3d.train":[[6,3,1,"","train"]],"myria3d.train.train.params":[[6,5,1,"","config"]],"myria3d.utils":[[5,0,0,"-","utils"]],"myria3d.utils.utils":[[5,3,1,"","define_device_from_config_param"],[5,3,1,"","eval_time"],[5,3,1,"","extras"],[5,3,1,"","get_logger"],[5,3,1,"","log_hyperparameters"],[5,3,1,"","print_config"]],"myria3d.utils.utils.extras.params":[[5,5,1,"","config"]],"myria3d.utils.utils.print_config.params":[[5,5,1,"","config"],[5,5,1,"","fields"],[5,5,1,"","resolve"]],"myria3d.utils.utils.print_config.params.printed and in what order":[[5,5,1,"",""]],"run.TASK_NAMES":[[6,4,1,"","FINETUNE"],[6,4,1,"","FIT"],[6,4,1,"","HDF5"],[6,4,1,"","PREDICT"],[6,4,1,"","TEST"]],myria3d:[[1,0,0,"-","callbacks"],[6,0,0,"-","predict"],[6,0,0,"-","train"]],run:[[6,1,1,"","TASK_NAMES"],[6,3,1,"","launch_hdf5"],[6,3,1,"","launch_predict"],[6,3,1,"","launch_train"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","parameter","Python parameter"],"6":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:attribute","5":"py:parameter","6":"py:property"},terms:{"0":[0,1,4,5,6,7,10,14,15,16],"003933709606504788":0,"03d":0,"04":14,"1":[0,1,2,4,5,7,13,14,16],"10":[0,2,14],"1000":[0,4],"11":[13,14],"12":13,"12345":0,"123_456":4,"12500":7,"14":14,"155":0,"16":[0,3],"160":0,"161":0,"162":0,"17":[0,4],"19041":14,"1_amd64":14,"1km":15,"2":[0,4,7,14],"20":0,"2004":14,"2016":7,"2019":7,"2020":7,"2022":14,"20220607_151_dalles_proto":[10,16],"2023mmdd":9,"204":0,"22":14,"25":[0,15],"25m":[7,15],"2gb":15,"3":[0,1,4,7,10,13,14,16],"30":[10,14],"300":0,"30000":7,"32":7,"3d":[7,11,12],"4":[0,3,7,14,15],"40000":0,"46":0,"47":0,"48":0,"49":0,"5":[0,1,4,14],"50":[0,4,15],"50m":[15,16],"50mx50m":7,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"6":[0,1,4,14],"600":14,"64":0,"65":[0,15],"66":0,"67":0,"7":[0,14],"77":0,"7fa2af80":14,"9":[0,1,4,14],"93":4,"abstract":4,"byte":4,"case":[4,6,9,14,15],"class":[1,2,3,4,6,7,10,11,12,15,16],"default":[1,2,4,11,14,15,16],"do":[4,7,10,14,15,16],"enum":6,"export":[13,14],"final":13,"float":[1,4],"function":[3,4,14],"import":14,"int":[1,2,3,4,5],"new":[2,6,9,11,12,16],"null":[0,15],"return":[1,2,4,6,16],"short":7,"true":[0,1,4,5,10],"try":[10,14],"var":14,"while":[3,14],"z\u00e9ro":4,A:[1,2,4,5,9,15,16],As:[7,14],At:[2,14,15],By:15,For:[4,7,13,14,15],If:[1,4,7,10,13,14,15,16],In:[4,6,7,9,10,14,15,16],It:[2,4,7,11,12,14,15,16],Its:[11,12],On:[2,7],One:15,TO:14,That:14,The:[4,7,9,10,11,12,14,15,16],Then:[2,13,14,15],There:[4,7],These:15,To:[2,10,13,14,15,16],With:14,___:14,_args_:0,_array_lik:4,_convert_:0,_interpol:2,_nested_sequ:4,_nestedsequ:4,_sphinx_paramlinks_myria3d:[2,4,5],_supportsarrai:4,_target_:0,_type:4,_type_:4,abl:14,abov:4,absenc:15,absent_scor:[0,1],acceler:13,accept:[7,9,14],access:[2,4,5,9,14],accord:[14,16],accordingli:14,account:[7,10],achiev:15,acquisit:15,action:15,activ:[6,9,10,13,14],acucmul:2,ad:9,adam:0,add:[2,4,13,14,15],addit:16,additionali:5,additionnali:[6,9,16],address:[14,15],adjac:4,admin:14,administr:14,adopt:7,aerial:[7,11,12,14,16],after:[6,10,14,16],afterward:3,again:[4,14],agre:14,agreement:14,ahead:14,al:7,all:[0,1,2,3,4,6,7,14,15,16],allow:[7,11,12,15,16],alreadi:[4,14],also:[4,7,11,12,14,15,16],alter:6,altern:[7,10,13,14,16],although:[3,11,12],alwai:15,an:[2,4,5,6,9,10,13,14,15,16],anaconda3:[13,14],anaconda:13,ani:[1,4,14,15,16],anymor:16,anyth:14,anywher:13,api_kei:0,app:9,applic:[14,15],approxim:2,apt:14,ar:[0,1,2,4,5,6,7,9,10,13,14,15,16],arbitrari:[4,9],architectur:[1,7,11,12],arg:4,argument:[4,10,13],ari0u:7,around:7,arrai:4,artefact:4,aspx:14,assign:4,associ:[9,10],attempt:7,au:10,augment:[0,4],augmentations_list:0,author:7,auto_insert_metric_nam:0,auto_log_co2:0,auto_lr_find:[0,10],autom:[6,10],automat:10,avail:[14,15],averag:[1,4,7,16],avoid:[2,16],ax:15,axi:4,b:[2,16],back:7,backward:13,balanc:16,base:[1,2,4,5,6,7,13,15],basefinetun:1,basenam:[2,4,16],bash:14,bashrc:[13,14],basic:7,batch:[1,2,3,4,7,10,15],batch_cifar:4,batch_idx:[1,2],batch_mnist:4,batch_siz:[0,4,15],becaus:14,becom:[7,14],been:[1,4],befor:[4,7,10,14,16],begin:1,below:[13,14,15],benchmark:7,benefit:7,best:[3,10,14],better:[14,15],between:[2,4,15,16],block:14,bool:[1,3,4,5],bootstrap:[11,12],both:[7,15],boundari:16,branch:[9,13,14],branch_nam:13,bridg:0,browser:14,build:[0,4,6,7,9,13,14,15],built:[9,11,12,15],bypass:4,c:[2,13],calcul:[2,4],call:[1,3,4,10],callabl:4,callback:[0,2,5,6,11],can:[4,5,7,9,10,11,12,13,14,15,16],cannot:[13,14],capabl:[7,10],card:[9,14],care:[2,3],carri:14,cast:4,center:[0,4],challeng:[7,14],chang:[6,13,14,15],channel:4,channel_data:4,characterist:15,check:[13,14],checkpoint:[0,6,10,15],checkpointed:10,choic:[11,12],choos:[2,10,14],cicd:9,cifar:4,cifar_load:4,ckpt:[0,10],ckpt_path:[0,6,10],clamp:4,clamp_sigma:4,class_nam:[1,2],class_of_interest_idx:1,class_weight:0,classif:[1,2,4,6,10,15,16],classification_dict:[0,1,2,4],classification_preprocessing_dict:[0,4,15],cli:15,click:14,clone:14,close:7,cloud:[2,3,4,11,12,14,15,16],code:[1,4,11,12,13,15],code_dir:[0,1],collat:4,collect:4,color:[4,16],com:[13,14],come:15,comet:[0,1,10],comet_api_token:0,comet_callback:0,comet_project_nam:0,comet_workspac:0,cometlogg:[0,1],command:14,comment:[14,15],commit:9,common:2,commun:7,compar:7,compat:[13,14,15],compil:14,complet:[9,14],complex:[4,7],compliant:9,compos:[5,6],composit:4,comput:[1,2,3,7,14,15],compute_on_step:1,conceiv:7,conceptu:7,conda:[9,13,14],condit:6,config:[0,2,5,6,9,10,15,16],configur:[5,6,7,10,11,15,16],configure_optim:2,confmat:1,confus:[1,7],consecut:4,consid:2,constant:10,contain:[2,4,6,10,14,15],content:[5,15],context:16,continu:14,contrast:6,contribut:7,control:[5,15,16],conveni:16,convent:[9,15,16],cooldown:0,copi:[4,14,15],copyfullpo:[0,4],copyfullpreparedtarget:[0,4],copysampledpo:[0,4],core:[1,5],correct:[4,14],corresond:14,correspond:6,cost:7,coupl:[5,14],cours:7,cp39:14,cpu:[2,7,13,14],creat:[4,9,10,13,14,15,16],create_hdf5:[4,6,16],creation:[4,16],credenti:[10,15],criterion:0,cross:14,crossentropyloss:0,csv:[4,10,16],cu113:[13,14],cuda:[5,11,13],cudatoolkit:[13,14],current:15,current_epoch:1,custom:[1,10,16],customcompos:4,cwd:0,d:14,d_in:[0,1],data:[0,2,4,6,7,10,11,12,14],data_dir:[0,4,16],dataload:15,dataloader_idx:[1,4],datamodul:[0,5,15,16],dataset:[0,6,7,10,15],dataset_descript:[0,5,6,10,15,16],date:[10,14,15],ddp:10,deactiv:1,deb:14,debug:[0,5],decim:[0,3],decis:6,decod:7,decor:5,deep:[4,11,12,14],def:4,defaut:[7,10,13,16],defin:[3,9,10,15],define_device_from_config_param:5,del:14,demonstr:14,denser:7,densiti:[7,11,12,14],depend:[13,14,15,16],design:[11,12,14,16],detail:[7,9,15],detect:7,determin:5,dev:13,develop:[11,14,15],dict:[0,1,2,4],dictconfig:[5,6],dictionari:4,dictionnari:[2,4],differ:[3,4,6,7,16],difficult:14,digest:16,dim:[4,15],dimens:[1,4,16],dir:[4,15],direcli:7,directli:[4,7,13,14,15],directori:[1,2,4,6,13,14,15,16],dirpath:0,disabl:[0,5,10,15],displai:14,dist_sync_on_step:1,distanc:2,distinct:6,distribut:[4,14],distro:14,distronam:14,disturb:15,divid:16,divis:16,doc:2,docker:9,dockerfil:15,document:[9,14],doe:14,don:4,done:[4,6,14,16],doom:7,down:14,download:[4,14,15],downstream:4,dpkg:14,driver:[13,14],drop:[4,15],droppointsbyclass:[0,4],dtype:4,duplic:[4,16],durat:5,dure:[2,7,14,16],e:[1,4,6,7,9,10,14,15,16],each:[1,4,7,10,15,16],earlier:14,early_stop:0,earlystop:0,eas:4,easier:[2,5,13,14],easiest:13,easili:[11,12,14],edit:[4,13,14],effect:[4,7,10,15],either:[4,15],elev:14,els:14,elsewher:14,embed:15,empti:4,en:2,enabl:[1,7,11,12,13,14],encapsul:15,encod:7,end:[1,2,13,14],enough:[13,15,16],ensur:14,enter:14,entropi:[0,2,15],entropy_channel:[0,2,15],enumer:6,env:[0,10,13,14,15],env_exampl:10,environ:[9,10,14,15],environemnt:14,epoch:[0,1,2,6,10],epoch_:0,error:14,et:7,etc:[5,14],eval:[0,7],eval_tim:5,eval_transform:4,evalu:[6,10,11,12],everi:3,everyth:[1,14],ex:14,exampl:[4,6,10,14],except:1,exclude_kei:4,exhaust:4,exist:14,expect:[4,7,13,15],experi:[2,6,7,10,11,12,15],experiment_nam:0,explicit:7,extend:[11,12],extra:[4,5,14],extradim:2,f:[13,14],face:7,factor:[0,15],factori:2,fail:[4,14],fals:[0,1,3,4],far:2,fashion:[4,7],faster:[7,13,15],featur:[2,4,9,14,16],fed:7,feed:4,feedback:7,few:[7,9,14],field:[4,5,16],figur:14,file:[0,1,2,4,5,6,10,13,14,15,16],filenam:0,filepath:2,fill:[10,15,16],filter:4,find:14,find_file_in_dir:4,finder:10,finetun:[1,6],finetune_funct:1,finetuningfreezeunfreez:1,first:[4,7,10,14],fit:[0,2,4,6,11,12,16],fix:[7,16],fixed_num_point:16,fixedpoint:7,flag:[10,15],flexibl:[2,7,11,12],fly:[4,16],focus:[7,11,12,14],folder:[0,10,15],follow:[4,6,7,9,10,13,14,16],follow_batch:4,forc:5,forg:[13,14],format:[4,11,12,15],former:3,forward:[2,3,7,14],found:[14,16],framework:3,free:14,freez:1,freeze_before_train:1,french:[10,15,16],frequent:7,friendli:5,from:[1,4,5,6,7,10,11,12,13,14,16],full:[1,2,3,7,10,11,12],fuller:7,fulli:[2,14],functionn:[1,9],functool:0,further:9,g:[4,6,7,9,10,15,16],gain:7,game:14,geforc:14,gener:[4,11],geometr:[4,7,8,11,12,13,14],geometricnoneproofcollat:4,geometricnoneproofdataload:4,get:[1,2,4,7,14],get_all_iou_by_class_object:1,get_comet_logg:1,get_iter:4,get_logg:5,get_method:0,get_neural_net_class:2,get_pdal_info_metadata:4,get_pdal_read:4,git:14,github:[9,13,14,15],given:[4,13],glanc:0,glibcxx_3:14,glob:15,gnu:14,go:14,good:[1,16],gpg:14,gpu:[0,2,4,5,14,15],gpus_param:5,grid:7,gridsampl:[0,7],ground:[0,7],group:[15,16],guid:[14,15],ha:[1,7,15],hand:7,happen:[4,16],hardwar:4,have:[4,13,14,15,16],hd:[10,15,16],hdf5:[0,6,10,16],hdf5_file_path:[0,4,16],hdf5dataset:4,hdf5lidardatamodul:[0,4],heavili:[11,12],help:[14,15],here:[0,4,7,14,15],hierarch:7,high:[7,9,11,12,14],higher:[14,16],hinder:7,hint:15,hoc:9,hold:14,home:[13,14],homogen:15,hood:16,hook:3,host:[9,15],hous:9,how:[9,11],howev:[4,15],html:2,http:[2,13,14],hu:7,hydra:[0,2,5,6,10,11,12,15],hyperparamet:10,hypothesi:7,i:[1,4,6,7,9,10,14,15,16],id:15,identifi:[2,15],idx_in_original_cloud:[2,4],ign:16,ignf:[13,14],ignor:[3,4],ignore_index:[0,1],ignore_warn:0,ii:7,imag:[9,10],imageri:16,implement:[2,3,4,7,9,11,12,15,16],importerror:14,impos:4,improv:15,includ:[2,4],increas:15,index:[4,11,14],indic:16,infer:[4,6,7,11,12,13,14],inferencedataset:4,info:4,inform:[0,16],infrar:16,init:14,initi:[1,2,4,5,14],inject:10,input:[0,2,4,15,16],input_data_dir:4,instal:[10,11,15],instanc:[3,13,15],instanti:[4,6],instead:[1,3,16],instruct:[10,13,15],integ:4,integr:15,intens:[4,16],interest:13,interestingli:7,interpol:[0,7,11,15],interpolation_k:[0,2],intersect:[1,7],interv:16,intric:7,invers:2,io:2,iou:[0,1,2,10,11,12],iou_dict:1,iou_for_class_nam:1,ipc:15,irregular:15,iter:[7,11,12],its:[4,5,6,9,15],jaccard:1,jaccardindex:[0,1],just:[14,16],keep:[2,10,11,12,14,15],kei:[4,14],kernel:14,keyword:15,kind:7,knn:11,kpconv:7,kwarg:[2,4],la:[0,2,4,6,15,16],label_smooth:0,lamber:4,larg:[4,7,11,12,14,15,16],larger:15,las1:4,las2:4,las_fil:4,las_filepath:4,las_path:4,las_paths_by_split_dict:4,las_paths_by_split_dict_typ:4,lasting_abov:0,later:[4,7,16],latest:[2,14],latter:3,launch_hdf5:6,launch_predict:6,launch_train:6,layer:[1,6],ld_library_path:[13,14],lead:[6,14],learn:[2,4,6,11,12,14],learningratemonitor:0,less:7,level:[1,7,9,15],leverag:[7,9],lib:[13,14],libarari:14,libcuspars:[13,14],librari:[5,9,10,11,12,13,14,16],libstdc:14,licens:14,lidar:[4,7,10,11,12,14,15,16],lidar_hd:0,lidar_hd_pre_transform:[0,4,16],light:2,lightn:[1,2,4,5,6,10,11,12,15],lightning_model:0,lightning_modul:2,lightningdatamodul:5,lightningloggerbas:5,lightningmodul:[1,2,5],like:[4,7,16],limit:[7,15],limit_test_batch:0,limit_train_batch:0,limit_val_batch:0,line:[13,14,15],link:[14,16],lint:9,linux:[11,14,15],linux_x86_64:14,list:[2,4,5,14,15,16],liter:[2,4],loact:4,load:[2,4,6,16],load_full_las_for_upd:2,loader:4,loader_a:4,loader_b:4,loader_n:4,local:[7,10,14,15],local_11:14,local_input:15,local_instal:14,local_output:15,localhost:14,locat:14,log:[1,2,4,5,10],log_cod:0,log_every_n_step:0,log_hyperparamet:5,log_iou:1,log_iou_by_class:0,log_logs_dir:0,log_momentum:0,logcod:[0,1],logger:[0,1,5,10,15],logging_callback:0,logging_interv:0,logic:[2,11,12,15,16],logioubyclass:[0,1],logit:[1,2,7],loglogspath:[0,1],logs_dir:10,look:[4,15],loss:2,loss_epoch:0,lower:16,lowest:4,lr:[0,6],lr_monitor:0,lr_schedul:[0,6],m:9,machin:14,made:2,mai:[7,9,10,14,15,16],main:[5,7,9,13,14],make:[2,3,4,9,10,11,12,13,14,15],make_toy_dataset_from_test_fil:4,mamba:13,manag:[0,13,14,15],mani:[1,7],manual:[10,14],map:[4,15],match:[4,13,14,15],matrix:[1,7,13],max_epoch:0,maxim:2,maximumnumnod:[0,4],md:9,mean:[7,9,10,14,15],meet:7,memori:[2,7,15,16],mention:15,merg:[9,11],metadata:4,method:[4,5,7,14],metric:[1,7],might:[7,10,13,14],min:0,min_delta:0,min_epoch:0,min_num_nod:0,mind:7,miniconda3:[13,14],minim:15,minimumnumnod:[0,4],minut:14,mismatch:14,miss:15,ml:[1,10],mmodel:7,mnist:4,mnist_load:4,mode:[0,5,7,13,14],model:[0,1,4,5,6,9,11,12,14,15,16],model_checkpoint:0,modelcheckpoint:0,modifi:[5,15],modul:[2,11,15],momentum:0,monitor:0,more:[0,4,7,10,14,15],most:[7,14],mount:15,move:[2,14],much:14,multi:[4,5],multiclass:[11,12,14],multigpu:10,multipl:[4,11,15,16],multiple_fil:15,multipli:[7,15],multithread:15,must:[6,7,14,15,16],mv:14,myria3d:[0,7,9,12,15,16],n:[2,7,13,15],name:[2,4,5,9,10,14,15,16],nation:7,navig:14,nb_point:2,ndarrai:[2,4],ndvi:[4,16],necessari:[2,4,14],need:[2,3,4,7,10,13,14,15,16],neg:15,nest:16,net:[2,6,7],network:[2,6,11,12],neural:[2,6,11,12],neural_net_class_nam:0,neural_net_hparam:0,newer:13,next:[7,10,14],nexu:9,nn:[0,2],non:[14,15],none:[1,2,4,5,10,15],noneproof:4,normal:[0,4],normalizations_list:0,normalizepo:[0,4],note:[15,16],now:14,np:4,nullifylowestz:[0,4],num:4,num_class:[0,1,3,6],num_featur:[0,3],num_neighbor:[0,3],num_sanity_val_step:0,num_work:0,number:[4,5,6,10,15,16],numpi:[2,4],nvidia:[13,14],nvml:14,o:4,object:[1,4,6,7,13,14,15,16],oc:[0,15],occlud:16,occur:[7,14],offici:[7,16],old:14,older:13,omegaconf:[5,6],on_fit_start:[1,2],on_init_end:1,on_test_batch_end:1,on_test_start:1,on_train_batch_end:1,on_train_start:1,on_validation_batch_end:1,on_validation_epoch_end:2,onc:[10,16],one:[2,3,4,6,10,14,15],ones:4,onli:[2,4,7,13,14,16],onlin:14,open:[13,14,16],oper:[7,14],opini:[11,12],opposit:7,optim:[0,1,2,11,12],optimizer_idx:1,option:[1,2,4,5],optionn:[2,14,15],optionnali:6,order:[4,5,6,7,15],org:14,origin:[2,4,15],oserror:[13,14],other:[7,10,14,15],otherwis:[4,14],our:[3,7],out:[1,4,10,14,15],outdoor:7,output:[1,2,6],output_dir:[0,2,15],over:[1,7],overfit:10,overlap:[4,8],overrid:[4,15],overridden:3,own:[3,7,16],packag:[9,14,15,16],package_metadata:9,page:[4,9,10,14,16],paper:[7,10],param:[4,5,15],paramet:[1,2,4,5,6,15,16],parcimoni:7,part:[13,14,15,16],partial:0,particular:[7,10,13],pass:[2,3,7,9],path:[0,2,4,10,14,15,16],patienc:[0,6],pattern:[4,15],pctl:[0,11,16],pdal:[4,16],pdal_read_las_arrai:4,pdal_read_las_array_as_float32:4,pdaltool:16,pep8:9,per:10,perfom:10,perform:[3,4,6,10,11,16],persist:14,phase:[1,7],pin:14,pip:[13,14],pipelin:[4,6],pl_modul:1,place:[5,7],placehold:14,pleas:[4,14],plu:[15,16],po:[2,3,4],point:[2,3,4,11,12,14,16],pointcloud:7,pointnet:7,points_budget:16,points_pre_transform:[0,16],posit:[2,4],possibl:16,postiv:4,powershel:14,ppa:14,pre:4,pre_filt:[0,4],pre_filter_below_n_point:[0,4],precomput:4,predict:[0,2,4,5,7,10,11],predict_dataload:4,predict_step:2,predicted_classification_channel:[0,2,15],predictedclassif:[0,2,15],prefer:[7,14],prefetch_factor:0,prefix:14,prepar:[0,2,4,6,10,11],preparations_eval_list:0,preparations_predict_list:0,preparations_train_list:0,prepare_data:4,prepared_data_dir:4,preprocess:[4,16],present:15,press:14,price:15,print:5,print_config:[0,5],proba:[2,15],probabilit:[2,15],probabl:[2,6,13,15],probas_to_sav:[0,2,15],problem:14,proce:10,process:[3,4,7,9,11,12,14],process_group:1,prod:9,produc:15,product:9,progress:8,progress_bar_refresh_r:0,project:15,project_nam:0,prompt:14,propag:7,properli:14,properti:4,provid:[10,15,16],proxi:15,ptr:3,pub:14,pull:[7,9],pure:[13,14],purpos:[4,14],push:9,py:[10,15,16],pyg:[4,14],pyg_randla_net:3,pygrandlanet:[0,3],pytest:9,python:[5,9,10,15,16],pytorch:[2,4,6,7,10,11,12,13,14,15],pytorch_geometr:[14,16],pytorch_lightn:[0,1,5,6],pytorchlight:1,qi:7,quadro:14,queri:4,quit:14,quot:15,r:[14,16],ra:9,randla:7,randlanet:10,randlanet_base_run_fr:10,randlanetdebug:0,randlanetdebugfinetun:6,random:7,rang:[4,10],rapid:[11,12],rate:[2,6],raw:[4,16],raw_path:2,read:[2,4],reader:4,readi:[4,10,14,16],readm:15,readthedoc:2,recent:13,recept:[4,16],recip:[3,13],recommend:[4,14],reconstruct:16,recudelronplateau:6,reduc:[7,10],reduce_predicted_logit:2,reduce_predictions_and_sav:2,reducelronplateau:0,reduct:[1,7],refer:[0,5,10,15],referenc:16,regist:3,regroup:16,regular:[8,15],rel:[4,7],relat:[13,14],releas:[9,13],reli:[11,12],reliabl:[7,11,12],reload:4,reload_dataloaders_every_n_epoch:4,remov:[13,14],renam:10,replac:[13,14],repo:14,repositori:[9,14,15],repres:7,request:[2,7,9],requir:[7,13,14],reset:6,resolut:7,resolv:5,restart:14,result:[4,7,10,11,12,15],resum:6,return_logit:[0,3],review:14,rgb:[4,16],rgbi:16,rich:[5,7],right:14,robust:7,role:9,root:4,rtx:14,run:[1,3,9,13,14,16],runtim:[0,10,15],runtimeerror:14,s3di:7,s:[4,11,13,14,15,16],safe:1,same:[2,7,14],sampl:[4,7,15,16],sampler:4,samples_hdf5_path:4,save:[2,5,10,15],save_last:0,save_top_k:0,scale:[4,7,11,12,14,16],schedul:[2,6],schema:[1,16],scheme:2,scope:[11,12,14],script:11,scroll:14,section:[10,14],see:[4,6,7,9,10,13,14,15,16],seed:[0,5],segment:[6,7,11,12,14,16],select:[14,16],self:4,semant:[6,7,9,11,12,14],semantic3d:7,semantickitti:7,semin:7,sequenc:[4,5],sequenti:1,serv:9,set:[1,4,6,7,10,15,16],setup:[1,2,4],setup_env:13,sever:[4,15],sh:14,share:[13,14,15,16],shm:15,should:[3,4,13,14,15,16],show:[0,15],shown:14,shuffl:4,shut:14,shutdown:14,signatur:[11,12],silent:3,similar:16,similarli:16,simpl:[4,7],simpli:[1,15,16],simplic:7,simplifi:7,sinc:[3,7],singl:[1,4,10,11,12,16],singleclassi:1,situat:7,size:[3,7,10,15,16],small:[4,16],smaller:[7,16],smi:14,smooth:15,so:[2,10,13,14,15],solut:7,some:[4,10,11,12,14],someth:14,sota:7,sourc:[0,1,2,3,4,5,6,14,16],space:15,spatial:15,special:6,specif:[4,6,7,13,14,15,16],specifi:[4,5,6,7,10,15,16],spent:7,spit:16,spli:16,split:[4,16],split_cloud_into_sampl:4,split_csv:4,split_csv_path:[0,16],squar:15,sr:4,src_la:[0,2,15],src_las_path:4,stage:[2,4,9],standalon:15,standard:[4,11,12,16],standardize_channel:4,standardizergbandintens:[0,4],start:[1,2,6,7,13],state:[4,6,14],stem:10,step:[0,1,2,7,9,10,14],still:[13,14,15],store:[15,16],store_predict:2,str:[1,2,4,5],strategi:7,stronger:6,structur:[5,11,12],subclass:3,subdir:6,subdirectori:[4,16],subfold:[4,10],suboptim:7,subsampl:[2,4],subsystem:14,subtil:4,subtile_overlap:[0,4,15],subtile_overlap_predict:0,subtile_overlap_train:[0,4],subtile_width:[0,4],success:[9,15],sudo:14,suit:16,sumbsampl:2,superior:7,supervis:7,support:[10,11,12],sure:14,swicth:15,system:[1,13,14],t:4,tabl:14,tag:9,take:[2,3,7,14,16],taken:14,tarbal:[13,14],target:[1,2,4,14],targettransform:[0,4],task:[0,5,6,10,15,16],task_nam:[0,6,10,15],td_prepar:4,team:14,templat:[11,12],tensor:[1,2,4],term:[7,11,12],termin:14,test:[0,1,2,4,6,7,8,14,16],test_dataload:4,test_step:[2,4],text:14,than:[7,10,13,14],thank:13,thei:15,them:[3,4,7],therefor:2,thi:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],third:7,thoma:7,threshold:1,thu:7,tile:4,tile_width:[0,4],time:[2,4,7,8,10,11,12,14,16],tini:7,todo:11,togeth:4,toi:[4,10],tool:16,toolchain:14,toolkit:[13,14,16],torch:[0,1,2,4,13,14],torch_clust:14,torch_geometr:[0,2,4,7],torch_scatt:14,torch_spars:14,torchmetr:[0,1],totensor:4,toy_dataset:[0,16],track:9,train:[0,1,2,4,7,11,12,15],train_dataload:4,train_transform:4,trainabl:5,trained_model_asset:15,trainer:[0,1,5,6,10],trainin:2,training_step:2,transform:[0,2,7,15,16],tree:5,tri:14,tricki:14,trigger:7,tupl:2,turn:[4,16],tutori:[9,10,15],two:16,type:[2,4,6,14],typic:6,ubuntu:[13,14],uncertainti:15,unclassifi:[0,4],under:[15,16],unfreez:1,unfreeze_decoder_train_epoch:1,unfreeze_fc_end_epoch:1,union:[1,2,4,7],unless:4,unmodifi:14,unorm:4,unseen:[6,11,12],until:7,unus:2,up:[10,15],updat:[1,2,14,15],upgrad:[13,14],upload:1,upon:[11,12],urban:7,url:14,us:[1,2,3,4,5,6,7,9,10,13,14,15,16],useful:4,user:[13,14,15],usernam:14,usual:7,util:[0,11,14],v3:7,v:[9,15],val:[0,1,4,16],val_dataload:4,valid:[2,4,6,7,10,15],validation_step:[2,4],valu:[0,4,6,14,15],variabl:[7,10,15,16],variou:14,vector:4,veget:[0,7,15],verbos:0,veri:15,version:[7,13,14],via:[9,13,15,16],virtual:[10,14,15],visibl:15,volum:15,wa:[7,11,12,14,16],wai:[7,13,14],want:[7,13,14,15,16],warn:[5,8],water:0,we:[0,2,7,13,14,15,16],weight:6,weightn:2,weights_summari:0,well:[2,6,14,15],were:[7,15],wget:14,what:[2,5,15],wheel:[13,14],when:[1,4,9,10,15],where:[4,10],whether:[5,14],which:[2,4,5,6,7,9,10,11,12,13,14,15,16],whl:14,whole:4,whose:[15,16],why:14,width:4,window:[14,15],wise:4,within:[3,7,14,16],without:[2,4,14,16],work:[1,7,8,13,14,15],work_dir:0,workflow:9,workspac:0,would:4,write:14,wsl2:11,www:14,x10:7,x5:7,x86_64:14,x:[2,3,4,15,16],xy:4,xyz:2,y:[2,4,13,14,15],y_mean:4,y_std:4,yaml:[6,9,10,15,16],ye:14,yet:[1,14],yield:4,yml:[13,14],you:[4,10,13,14,15,16],your:[2,10,13,14,15,16],yourself:4,z:4},titles:["Default configuration","myria3d.callbacks","myria3d.models","myria3d.models.modules","myria3d.pctl","myria3d.utils","Scripts","General design of the package","KNN-Interpolation to merge multiple predictions [TODO]","Developer\u2019s guide","How to train new models","Myria3D > Documentation","<no title>","Install Myria3D on Linux","Install Myria3D on WSL2 with CUDA support","Performing inference on new data","Preparing data for training"],titleterms:{"default":0,"function":16,"import":7,"new":[10,15],addit:15,anaconda:14,approach:7,artefact:15,background:11,callback:1,cd:9,ci:9,cloud:7,code:9,comet_callback:1,compos:4,configur:0,content:1,continu:9,cuda:14,data:[15,16],dataload:4,datamodul:4,dataset:[4,16],deliveri:9,design:7,develop:9,dimens:15,docker:15,document:11,dure:15,environ:13,essenc:7,evalu:7,fast:7,field:15,finetuning_callback:1,from:15,gener:7,geometr:3,get:[11,16],gpu:10,guid:[9,11],hdf5:4,how:10,ignor:15,imag:15,improv:7,indic:11,infer:[10,15],instal:[13,14],integr:9,interpol:[2,8],iter:4,kei:7,knn:8,learn:10,lidar_hd:4,linux:13,logging_callback:1,merg:8,model:[2,3,7,10],modul:[1,3],multi:10,multipl:8,myria3d:[1,2,3,4,5,6,11,13,14],net:3,optim:10,option:15,output:15,overlap:15,packag:[7,11,13],pctl:4,peprocess:16,perform:[7,15],point:[7,15],points_pre_transform:4,practic:7,predict:[6,8,15],prepar:16,prerequisit:13,pytorch:3,quick:10,quickli:16,randla:3,rate:10,recept:15,refer:11,right:7,run:[6,10,15],s:9,script:6,select:7,set:[13,14],setup:10,should:7,sourc:[13,15],speed:7,start:[11,16],structur:7,submodul:1,subsampl:7,support:14,tabl:11,test:[9,10],time:15,todo:8,toi:16,toy_dataset:4,train:[6,10,16],transform:4,troubleshoot:[13,14],up:[13,14],util:[4,5],version:9,virtual:13,within:15,wsl2:14,wsl:14}})
\ No newline at end of file
+Search.setIndex({docnames:["apidoc/configs","apidoc/myria3d.callbacks","apidoc/myria3d.model","apidoc/myria3d.models.modules","apidoc/myria3d.pctl","apidoc/myria3d.utils","apidoc/scripts","background/general_design","background/interpolation","guides/development","guides/train_new_model","index","introduction","tutorials/install_on_linux","tutorials/install_on_wsl2","tutorials/make_predictions","tutorials/prepare_dataset"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["apidoc/configs.rst","apidoc/myria3d.callbacks.rst","apidoc/myria3d.model.rst","apidoc/myria3d.models.modules.rst","apidoc/myria3d.pctl.rst","apidoc/myria3d.utils.rst","apidoc/scripts.rst","background/general_design.md","background/interpolation.md","guides/development.md","guides/train_new_model.md","index.rst","introduction.md","tutorials/install_on_linux.md","tutorials/install_on_wsl2.md","tutorials/make_predictions.md","tutorials/prepare_dataset.md"],objects:{"":[[6,0,0,"-","run"]],"myria3d.callbacks":[[1,0,0,"-","comet_callbacks"],[1,0,0,"-","finetuning_callbacks"],[1,0,0,"-","logging_callbacks"]],"myria3d.callbacks.comet_callbacks":[[1,1,1,"","LogCode"],[1,1,1,"","LogLogsPath"],[1,3,1,"","get_comet_logger"]],"myria3d.callbacks.comet_callbacks.LogCode":[[1,2,1,"","on_train_start"]],"myria3d.callbacks.comet_callbacks.LogLogsPath":[[1,2,1,"","on_init_end"]],"myria3d.callbacks.finetuning_callbacks":[[1,1,1,"","FinetuningFreezeUnfreeze"]],"myria3d.callbacks.finetuning_callbacks.FinetuningFreezeUnfreeze":[[1,2,1,"","finetune_function"],[1,2,1,"","freeze_before_training"]],"myria3d.callbacks.logging_callbacks":[[1,1,1,"","LogIoUByClass"],[1,1,1,"","SingleClassIoU"]],"myria3d.callbacks.logging_callbacks.LogIoUByClass":[[1,2,1,"","get_all_iou_by_class_object"],[1,2,1,"","log_iou"],[1,2,1,"","on_fit_start"],[1,2,1,"","on_init_end"],[1,2,1,"","on_test_batch_end"],[1,2,1,"","on_test_start"],[1,2,1,"","on_train_batch_end"],[1,2,1,"","on_validation_batch_end"]],"myria3d.callbacks.logging_callbacks.SingleClassIoU":[[1,2,1,"","compute"],[1,4,1,"","confmat"]],"myria3d.models":[[2,0,0,"-","interpolation"],[2,0,0,"-","model"]],"myria3d.models.interpolation":[[2,1,1,"","Interpolator"]],"myria3d.models.interpolation.Interpolator":[[2,2,1,"","load_full_las_for_update"],[2,2,1,"","reduce_predicted_logits"],[2,2,1,"","reduce_predictions_and_save"],[2,2,1,"","store_predictions"]],"myria3d.models.interpolation.Interpolator.load_full_las_for_update.params":[[2,5,1,"","epsg"],[2,5,1,"","filepath"]],"myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.params":[[2,5,1,"","basename"],[2,5,1,"","epsg"],[2,5,1,"","interpolation"],[2,5,1,"","output_dir"]],"myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.params.probabilities. Defaults to None":[[2,5,1,"",""]],"myria3d.models.model":[[2,1,1,"","Model"],[2,3,1,"","get_neural_net_class"]],"myria3d.models.model.Model":[[2,2,1,"","configure_optimizers"],[2,2,1,"","forward"],[2,2,1,"","on_fit_start"],[2,2,1,"","on_validation_epoch_end"],[2,2,1,"","predict_step"],[2,2,1,"","setup"],[2,2,1,"","test_step"],[2,2,1,"","training_step"],[2,2,1,"","validation_step"]],"myria3d.models.model.Model.forward.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.on_validation_epoch_end.params":[[2,5,1,"","outputs"]],"myria3d.models.model.Model.predict_step.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.test_step.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.training_step.params":[[2,5,1,"","batch"],[2,5,1,"","batch_idx"],[2,5,1,"","y"]],"myria3d.models.model.Model.validation_step.params":[[2,5,1,"","batch"],[2,5,1,"","batch_idx"],[2,5,1,"","y"]],"myria3d.models.model.get_neural_net_class.params":[[2,5,1,"","class_name"]],"myria3d.models.modules.pyg_randla_net":[[3,1,1,"","PyGRandLANet"]],"myria3d.models.modules.pyg_randla_net.PyGRandLANet":[[3,2,1,"","forward"]],"myria3d.pctl.dataloader":[[4,0,0,"-","dataloader"]],"myria3d.pctl.dataloader.dataloader":[[4,1,1,"","GeometricNoneProofCollater"],[4,1,1,"","GeometricNoneProofDataloader"]],"myria3d.pctl.datamodule":[[4,0,0,"-","hdf5"]],"myria3d.pctl.datamodule.hdf5":[[4,1,1,"","HDF5LidarDataModule"]],"myria3d.pctl.datamodule.hdf5.HDF5LidarDataModule":[[4,6,1,"","dataset"],[4,2,1,"","predict_dataloader"],[4,2,1,"","prepare_data"],[4,2,1,"","setup"],[4,2,1,"","test_dataloader"],[4,2,1,"","train_dataloader"],[4,2,1,"","val_dataloader"]],"myria3d.pctl.dataset":[[4,0,0,"-","hdf5"],[4,0,0,"-","iterable"],[4,0,0,"-","toy_dataset"],[4,0,0,"-","utils"]],"myria3d.pctl.dataset.hdf5":[[4,1,1,"","HDF5Dataset"],[4,3,1,"","create_hdf5"]],"myria3d.pctl.dataset.hdf5.HDF5Dataset":[[4,6,1,"","samples_hdf5_paths"]],"myria3d.pctl.dataset.hdf5.create_hdf5.params":[[4,5,1,"","epsg"],[4,5,1,"","hdf5_file_path"],[4,5,1,"","las_paths_by_split_dict"],[4,5,1,"","points_pre_transform"],[4,5,1,"","pre_filter"],[4,5,1,"","subtile_overlap_train"],[4,5,1,"","subtile_width"],[4,5,1,"","tile_width"]],"myria3d.pctl.dataset.iterable":[[4,1,1,"","InferenceDataset"]],"myria3d.pctl.dataset.iterable.InferenceDataset":[[4,2,1,"","get_iterator"]],"myria3d.pctl.dataset.toy_dataset":[[4,3,1,"","make_toy_dataset_from_test_file"]],"myria3d.pctl.dataset.toy_dataset.make_toy_dataset_from_test_file.params":[[4,5,1,"","`split`"],[4,5,1,"","files"],[4,5,1,"","prepared_data_dir"],[4,5,1,"","split_csv"],[4,5,1,"","src_las_path"]],"myria3d.pctl.dataset.utils":[[4,3,1,"","find_file_in_dir"],[4,3,1,"","get_metadata"],[4,3,1,"","get_pdal_info_metadata"],[4,3,1,"","get_pdal_reader"],[4,3,1,"","pdal_read_las_array"],[4,3,1,"","pdal_read_las_array_as_float32"],[4,3,1,"","split_cloud_into_samples"]],"myria3d.pctl.dataset.utils.find_file_in_dir.params":[[4,5,1,"","input_data_dir"]],"myria3d.pctl.dataset.utils.get_metadata.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.get_pdal_info_metadata.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.get_pdal_reader.params":[[4,5,1,"","epsg"],[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.pdal_read_las_array.params":[[4,5,1,"","epsg"],[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.split_cloud_into_samples.params":[[4,5,1,"","epsg"],[4,5,1,"","las_path"],[4,5,1,"","subtile_overlap"],[4,5,1,"","subtile_width"],[4,5,1,"","tile_width"]],"myria3d.pctl.points_pre_transform":[[4,0,0,"-","lidar_hd"]],"myria3d.pctl.points_pre_transform.lidar_hd":[[4,3,1,"","lidar_hd_pre_transform"]],"myria3d.pctl.points_pre_transform.lidar_hd.lidar_hd_pre_transform.params":[[4,5,1,"","las_filepath"]],"myria3d.pctl.transforms":[[4,0,0,"-","compose"],[4,0,0,"-","transforms"]],"myria3d.pctl.transforms.compose":[[4,1,1,"","CustomCompose"]],"myria3d.pctl.transforms.compose.CustomCompose.params":[[4,5,1,"","transforms"]],"myria3d.pctl.transforms.transforms":[[4,1,1,"","CopyFullPos"],[4,1,1,"","CopyFullPreparedTargets"],[4,1,1,"","CopySampledPos"],[4,1,1,"","DropPointsByClass"],[4,1,1,"","MaximumNumNodes"],[4,1,1,"","MinimumNumNodes"],[4,1,1,"","NormalizePos"],[4,1,1,"","NullifyLowestZ"],[4,1,1,"","StandardizeRGBAndIntensity"],[4,1,1,"","TargetTransform"],[4,1,1,"","ToTensor"]],"myria3d.pctl.transforms.transforms.StandardizeRGBAndIntensity":[[4,2,1,"","standardize_channel"]],"myria3d.train":[[6,3,1,"","train"]],"myria3d.train.train.params":[[6,5,1,"","config"]],"myria3d.utils":[[5,0,0,"-","utils"]],"myria3d.utils.utils":[[5,3,1,"","define_device_from_config_param"],[5,3,1,"","eval_time"],[5,3,1,"","extras"],[5,3,1,"","get_logger"],[5,3,1,"","log_hyperparameters"],[5,3,1,"","print_config"]],"myria3d.utils.utils.extras.params":[[5,5,1,"","config"]],"myria3d.utils.utils.print_config.params":[[5,5,1,"","config"],[5,5,1,"","fields"],[5,5,1,"","resolve"]],"myria3d.utils.utils.print_config.params.printed and in what order":[[5,5,1,"",""]],"run.TASK_NAMES":[[6,4,1,"","FINETUNE"],[6,4,1,"","FIT"],[6,4,1,"","HDF5"],[6,4,1,"","PREDICT"],[6,4,1,"","TEST"]],myria3d:[[1,0,0,"-","callbacks"],[6,0,0,"-","predict"],[6,0,0,"-","train"]],run:[[6,1,1,"","TASK_NAMES"],[6,3,1,"","launch_hdf5"],[6,3,1,"","launch_predict"],[6,3,1,"","launch_train"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","parameter","Python parameter"],"6":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:attribute","5":"py:parameter","6":"py:property"},terms:{"0":[0,1,4,5,6,7,10,14,15,16],"003933709606504788":0,"03d":0,"04":14,"1":[0,1,2,4,5,7,13,14,16],"10":[0,2,14],"1000":[0,4],"11":[13,14],"12":13,"12345":0,"123_456":4,"12500":7,"14":14,"155":0,"16":[0,3],"160":0,"161":0,"162":0,"17":[0,4],"19041":14,"1_amd64":14,"1km":15,"2":[0,4,7,14],"20":0,"2004":14,"2016":7,"2019":7,"2020":7,"2022":14,"20220607_151_dalles_proto":[10,16],"2023mmdd":9,"204":0,"22":14,"25":[0,15],"25m":[7,15],"2gb":15,"3":[0,1,4,7,10,13,14,16],"30":[10,14],"300":0,"30000":7,"32":7,"3d":[7,11,12],"4":[0,3,7,14,15],"40000":0,"46":0,"47":0,"48":0,"49":0,"5":[0,1,4,14],"50":[0,4,15],"50m":[15,16],"50mx50m":7,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"6":[0,1,4,14],"600":14,"64":0,"65":[0,15],"66":0,"67":0,"7":[0,14],"77":0,"7fa2af80":14,"9":[0,1,4,14],"abstract":4,"byte":4,"case":[4,6,9,14,15],"class":[1,2,3,4,6,7,10,11,12,15,16],"default":[1,2,4,11,14,15,16],"do":[4,7,10,14,15,16],"enum":6,"export":[13,14],"final":13,"float":[1,4],"function":[3,4,14],"import":14,"int":[1,2,3,4,5],"new":[2,6,9,11,12,16],"null":[0,15],"return":[1,2,4,6,16],"short":7,"true":[0,1,4,5,10],"try":[10,14],"var":14,"while":[3,14],"z\u00e9ro":4,A:[1,2,4,5,9,15,16],As:[7,14],At:[2,14,15],BE:15,By:15,For:[4,7,13,14,15],If:[1,4,7,10,13,14,15,16],In:[4,6,7,9,10,14,15,16],It:[2,4,7,11,12,14,15,16],Its:[11,12],On:[2,7],One:15,TO:[14,15],That:14,The:[4,7,9,10,11,12,14,15,16],Then:[2,13,14,15],There:[4,7],These:15,To:[2,10,13,14,15,16],With:14,___:14,_args_:0,_array_lik:4,_convert_:0,_interpol:2,_nested_sequ:4,_nestedsequ:4,_sphinx_paramlinks_myria3d:[2,4,5],_supportsarrai:4,_target_:0,_type:4,_type_:4,abl:[14,16],abov:4,absenc:15,absent_scor:[0,1],acceler:13,accept:[7,9,14],access:[2,4,5,9,14],accord:[14,16],accordingli:14,account:[7,10],achiev:15,acquisit:15,action:15,activ:[6,9,10,13,14],acucmul:2,ad:9,adam:0,add:[2,4,13,14,15],addit:16,additionali:5,additionnali:[6,9,16],address:[14,15],adjac:4,admin:14,administr:14,adopt:7,aerial:[7,11,12,14,16],after:[6,10,14,16],afterward:3,again:[4,14],agre:14,agreement:14,ahead:14,al:7,all:[0,1,2,3,4,6,7,14,15,16],allow:[7,11,12,15,16],alreadi:[4,14],also:[4,7,11,12,14,15,16],alter:6,altern:[7,10,13,14,16],although:[3,11,12],alwai:15,an:[2,4,5,6,9,10,13,14,15,16],anaconda3:[13,14],anaconda:13,ani:[1,4,14,15,16],anymor:16,anyth:14,anywher:13,api_kei:0,app:9,applic:[14,15],approxim:2,apt:14,ar:[0,1,2,4,5,6,7,9,10,13,14,15,16],arbitrari:[4,9],architectur:[1,7,11,12],arg:4,argument:[4,10,13],ari0u:7,around:7,arrai:4,artefact:4,aspx:14,assign:4,associ:[9,10],attempt:7,au:10,augment:[0,4],augmentations_list:0,author:7,auto_insert_metric_nam:0,auto_log_co2:0,auto_lr_find:[0,10],autom:[6,10],automat:10,avail:[14,15],averag:[1,4,7,16],avoid:[2,16],ax:15,axi:4,b:[2,16],back:7,backward:13,balanc:16,base:[1,2,4,5,6,7,13,15],basefinetun:1,basenam:[2,4,16],bash:14,bashrc:[13,14],basic:7,batch:[1,2,3,4,7,10,15],batch_cifar:4,batch_idx:[1,2],batch_mnist:4,batch_siz:[0,4,15],becaus:14,becom:[7,14],been:[1,4],befor:[4,7,10,14,16],begin:1,below:[13,14,15],benchmark:7,benefit:7,best:[3,10,14],better:[14,15],between:[2,4,15,16],block:14,bool:[1,3,4,5],bootstrap:[11,12],both:[7,15],boundari:16,branch:[9,13,14],branch_nam:13,bridg:0,browser:14,build:[0,4,6,7,9,13,14,15],built:[9,11,12,15],bypass:4,c:[2,13],calcul:[2,4],call:[1,3,4,10],callabl:4,callback:[0,2,5,6,11],can:[4,5,7,9,10,11,12,13,14,15,16],cannot:[13,14],capabl:[7,10],card:[9,14],care:[2,3],carri:14,cast:4,center:[0,4],challeng:[7,14],chang:[6,13,14,15],channel:4,channel_data:4,characterist:15,check:[13,14],checkpoint:[0,6,10,15],checkpointed:10,choic:[11,12],choos:[2,10,14],cicd:9,cifar:4,cifar_load:4,ckpt:[0,10],ckpt_path:[0,6,10],clamp:4,clamp_sigma:4,class_nam:[1,2],class_of_interest_idx:1,class_weight:0,classif:[1,2,4,6,10,15,16],classification_dict:[0,1,2,4],classification_preprocessing_dict:[0,4,15],cli:15,click:14,clone:14,close:7,cloud:[2,3,4,11,12,14,15,16],code:[1,4,11,12,13,15],code_dir:[0,1],collat:4,collect:4,color:[4,16],com:[13,14],come:15,comet:[0,1,10],comet_api_token:0,comet_callback:0,comet_project_nam:0,comet_workspac:0,cometlogg:[0,1],command:14,comment:[14,15],commit:9,common:2,commun:7,compar:7,compat:[13,14,15],compil:14,complet:[9,14],complex:[4,7],compliant:9,compos:[5,6],composit:4,comput:[1,2,3,7,14,15],compute_on_step:1,conceiv:7,conceptu:7,conda:[9,13,14],condit:6,config:[0,2,5,6,9,10,15,16],configur:[5,6,7,10,11,15,16],configure_optim:2,confmat:1,confus:[1,7],consecut:4,consid:2,constant:10,contain:[2,4,6,10,14,15],content:[5,15],context:16,continu:14,contrast:6,contribut:7,control:[5,15,16],conveni:16,convent:[9,15,16],cooldown:0,copi:[4,14,15],copyfullpo:[0,4],copyfullpreparedtarget:[0,4],copysampledpo:[0,4],core:[1,5],correct:[4,14],corresond:14,correspond:6,cost:7,coupl:[5,14],cours:7,cp39:14,cpu:[2,7,13,14],creat:[4,9,10,13,14,15,16],create_hdf5:[4,6,16],creation:[4,16],credenti:[10,15],criterion:0,cross:14,crossentropyloss:0,csv:[4,10,16],cu113:[13,14],cuda:[5,11,13],cudatoolkit:[13,14],current:15,current_epoch:1,custom:[1,10,16],customcompos:4,cwd:0,d:14,d_in:[0,1],data:[0,2,4,6,7,10,11,12,14],data_dir:[0,4,16],dataload:15,dataloader_idx:[1,4],datamodul:[0,5,15,16],dataset:[0,6,7,10,15],dataset_descript:[0,5,6,10,15,16],date:[10,14,15],ddp:10,deactiv:1,deb:14,debug:[0,5],decim:[0,3],decis:6,decod:7,decor:5,deep:[4,11,12,14],def:4,defaut:[7,10,13,16],defin:[3,9,10,15],define_device_from_config_param:5,del:14,demonstr:14,denser:7,densiti:[7,11,12,14],depend:[13,14,15,16],design:[11,12,14,16],detail:[7,9,15],detect:7,determin:5,dev:13,develop:[11,14,15],dict:[0,1,2,4],dictconfig:[5,6],dictionari:4,dictionnari:[2,4],differ:[3,4,6,7,16],difficult:14,digest:16,dim:[4,15],dimens:[1,4,16],dir:[4,15],direcli:7,directli:[4,7,13,14,15],directori:[1,2,4,6,13,14,15,16],dirpath:0,disabl:[0,5,10,15],displai:14,dist_sync_on_step:1,distanc:2,distinct:6,distribut:[4,14],distro:14,distronam:14,disturb:15,divid:16,divis:16,doc:2,docker:9,dockerfil:15,document:[9,14],doe:14,doesn:15,don:[4,16],done:[4,6,14,16],doom:7,down:14,download:[4,14,15],downstream:4,dpkg:14,driver:[13,14],drop:[4,15],droppointsbyclass:[0,4],dtype:4,duplic:[4,16],durat:5,dure:[2,7,14,16],e:[1,4,6,7,9,10,14,15,16],each:[1,4,7,10,15,16],earlier:14,early_stop:0,earlystop:0,eas:4,easier:[2,5,13,14],easiest:13,easili:[11,12,14],edit:[4,13,14],effect:[4,7,10,15],either:15,elev:14,els:14,elsewher:14,embed:15,empti:4,en:2,enabl:[1,7,11,12,13,14],encapsul:15,encod:7,end:[1,2,13,14],enough:[13,15,16],ensur:14,enter:14,entropi:[0,2,15],entropy_channel:[0,2,15],enumer:6,env:[0,10,13,14,15],env_exampl:10,environ:[9,10,14,15],environemnt:14,epoch:[0,1,2,6,10],epoch_:0,epsg:[0,2,4,15,16],error:14,et:7,etc:[5,14],eval:[0,7],eval_tim:5,eval_transform:4,evalu:[6,10,11,12],everi:3,everyth:[1,14],ex:14,exampl:[4,6,10,14],except:1,exclude_kei:4,exhaust:4,exist:14,expect:[4,7,13,15],experi:[2,6,7,10,11,12,15],experiment_nam:0,explicit:7,extend:[11,12],extra:[4,5,14],extradim:2,f:[13,14],face:7,factor:[0,15],factori:2,fail:[4,14],fals:[0,1,3,4],far:2,fashion:[4,7],faster:[7,13,15],featur:[2,4,9,14,16],fed:7,feed:4,feedback:7,few:[7,9,14],field:[4,5,16],figur:14,file:[0,1,2,4,5,6,10,13,14,15,16],filenam:0,filepath:2,fill:[10,15,16],filter:4,find:14,find_file_in_dir:4,finder:10,finetun:[1,6],finetune_funct:1,finetuningfreezeunfreez:1,first:[4,7,10,14],fit:[0,2,4,6,11,12,16],fix:[7,16],fixed_num_point:16,fixedpoint:7,flag:[10,15],flexibl:[2,7,11,12],fly:[4,16],focus:[7,11,12,14],folder:[0,10,15],follow:[4,6,7,9,10,13,14,16],follow_batch:4,forc:[2,4,5],forg:[13,14],format:[4,11,12,15],former:3,forward:[2,3,7,14],found:[14,16],framework:3,free:14,freez:1,freeze_before_train:1,french:[10,15,16],frequent:7,friendli:5,from:[1,4,5,6,7,10,11,12,13,14,16],full:[1,2,3,7,10,11,12],fuller:7,fulli:[2,14],functionn:[1,9],functool:0,further:9,g:[4,6,7,9,10,15,16],gain:7,game:14,geforc:14,gener:[4,11],geometr:[4,7,8,11,12,13,14],geometricnoneproofcollat:4,geometricnoneproofdataload:4,get:[1,2,4,7,14],get_all_iou_by_class_object:1,get_comet_logg:1,get_iter:4,get_logg:5,get_metadata:4,get_method:0,get_neural_net_class:2,get_pdal_info_metadata:4,get_pdal_read:4,git:14,github:[9,13,14,15],given:[4,13,16],glanc:0,glibcxx_3:14,glob:15,gnu:14,go:14,good:[1,16],gpg:14,gpu:[0,2,4,5,14,15],gpus_param:5,grid:7,gridsampl:[0,7],ground:[0,7],group:[15,16],guid:[14,15],ha:[1,7,15],hand:7,happen:[4,16],hardwar:4,have:[4,13,14,15,16],hd:[10,15,16],hdf5:[0,6,10,16],hdf5_file_path:[0,4,16],hdf5dataset:4,hdf5lidardatamodul:[0,4],heavili:[11,12],help:[14,15],here:[0,4,7,14,15],hierarch:7,high:[7,9,11,12,14],higher:[14,16],hinder:7,hint:15,hoc:9,hold:14,home:[13,14],homogen:15,hood:16,hook:3,host:[9,15],hous:9,how:[9,11],howev:[4,15],html:2,http:[2,13,14],hu:7,hydra:[0,2,5,6,10,11,12,15],hyperparamet:10,hypothesi:7,i:[1,4,6,7,9,10,14,15,16],id:15,identifi:[2,15],idx_in_original_cloud:[2,4],ign:16,ignf:[13,14],ignor:[3,4],ignore_index:[0,1],ignore_warn:0,ii:7,imag:[9,10],imageri:16,implement:[2,3,4,7,9,11,12,15,16],importerror:14,improv:15,includ:[2,4],increas:15,index:[4,11,14],indic:16,infer:[4,6,7,11,12,13,14],inferencedataset:4,info:4,inform:[0,16],infrar:16,init:14,initi:[1,2,4,5,14],inject:10,input:[0,2,4,15,16],input_data_dir:4,instal:[10,11,15],instanc:[3,13,15],instanti:[4,6],instead:[1,3,16],instruct:[10,13,15],integ:4,integr:15,intens:[4,16],interest:13,interestingli:7,interpol:[0,7,11,15],interpolation_k:[0,2],intersect:[1,7],interv:16,intric:7,invers:2,io:2,iou:[0,1,2,10,11,12],iou_dict:1,iou_for_class_nam:1,ipc:15,irregular:15,iter:[7,11,12],its:[4,5,6,9,15],jaccard:1,jaccardindex:[0,1],just:[14,16],keep:[2,10,11,12,14,15],kei:[4,14],kernel:14,keyword:15,kind:7,knn:11,kpconv:7,kwarg:[2,4],la:[0,2,4,6,15,16],label_smooth:0,larg:[4,7,11,12,14,15,16],larger:15,las1:4,las2:4,las_fil:4,las_filepath:4,las_path:4,las_paths_by_split_dict:4,las_paths_by_split_dict_typ:4,lasting_abov:0,later:[4,7,16],latest:[2,14],latter:3,launch_hdf5:6,launch_predict:6,launch_train:6,layer:[1,6],ld_library_path:[13,14],lead:[6,14],learn:[2,4,6,11,12,14],learningratemonitor:0,less:7,level:[1,7,9,15],leverag:[7,9],lib:[13,14],libarari:14,libcuspars:[13,14],librari:[5,9,10,11,12,13,14,16],libstdc:14,licens:14,lidar:[4,7,10,11,12,14,15,16],lidar_hd:0,lidar_hd_pre_transform:[0,4,16],light:2,lightn:[1,2,4,5,6,10,11,12,15],lightning_model:0,lightning_modul:2,lightningdatamodul:5,lightningloggerbas:5,lightningmodul:[1,2,5],like:[4,7,16],limit:[7,15],limit_test_batch:0,limit_train_batch:0,limit_val_batch:0,line:[13,14,15],link:[14,16],lint:9,linux:[11,14,15],linux_x86_64:14,list:[2,4,5,14,15,16],liter:[2,4],loact:4,load:[2,4,6,16],load_full_las_for_upd:2,loader:4,loader_a:4,loader_b:4,loader_n:4,local:[7,10,14,15],local_11:14,local_input:15,local_instal:14,local_output:15,localhost:14,locat:14,log:[1,2,4,5,10],log_cod:0,log_every_n_step:0,log_hyperparamet:5,log_iou:1,log_iou_by_class:0,log_logs_dir:0,log_momentum:0,logcod:[0,1],logger:[0,1,5,10,15],logging_callback:0,logging_interv:0,logic:[2,11,12,15,16],logioubyclass:[0,1],logit:[1,2,7],loglogspath:[0,1],logs_dir:10,look:[4,15],loss:2,loss_epoch:0,lower:16,lowest:4,lr:[0,6],lr_monitor:0,lr_schedul:[0,6],m:9,machin:14,made:2,mai:[7,9,10,14,15,16],main:[5,7,9,13,14],make:[2,3,4,9,10,11,12,13,14,15],make_toy_dataset_from_test_fil:4,mamba:13,manag:[0,13,14,15],mani:[1,7],manual:[10,14],map:[4,15],match:[4,13,14,15],matrix:[1,7,13],max_epoch:0,maxim:2,maximumnumnod:[0,4],md:9,mean:[7,9,10,14,15],meatadata:15,meet:7,memori:[2,7,15,16],mention:15,merg:[9,11],metadata:[4,16],method:[4,5,7,14],metric:[1,7],might:[7,10,13,14],min:0,min_delta:0,min_epoch:0,min_num_nod:0,mind:7,miniconda3:[13,14],minim:15,minimumnumnod:[0,4],minut:14,mismatch:14,miss:15,ml:[1,10],mmodel:7,mnist:4,mnist_load:4,mode:[0,5,7,13,14],model:[0,1,4,5,6,9,11,12,14,15,16],model_checkpoint:0,modelcheckpoint:0,modifi:[5,15],modul:[2,11,15],momentum:0,monitor:0,more:[0,4,7,10,14,15],most:[7,14],mount:15,move:[2,14],much:14,multi:[4,5],multiclass:[11,12,14],multigpu:10,multipl:[4,11,15,16],multiple_fil:15,multipli:[7,15],multithread:15,must:[6,7,14,15,16],mv:14,myria3d:[0,7,9,12,15,16],n:[2,7,13,15],name:[2,4,5,9,10,14,15,16],nation:7,navig:14,nb_point:2,ndarrai:[2,4],ndvi:[4,16],necessari:[2,4,14],need:[2,3,4,7,10,13,14,15,16],neg:15,nest:16,net:[2,6,7],network:[2,6,11,12],neural:[2,6,11,12],neural_net_class_nam:0,neural_net_hparam:0,newer:13,next:[7,10,14],nexu:9,nn:[0,2],non:[14,15],none:[1,2,4,5,10,15],noneproof:4,normal:[0,4],normalizations_list:0,normalizepo:[0,4],note:[15,16],now:14,np:4,nullifylowestz:[0,4],num:4,num_class:[0,1,3,6],num_featur:[0,3],num_neighbor:[0,3],num_sanity_val_step:0,num_work:0,number:[4,5,6,10,15,16],numpi:[2,4],nvidia:[13,14],nvml:14,o:4,object:[1,4,6,7,13,14,15,16],oc:[0,15],occlud:16,occur:[7,14],offici:[7,16],old:14,older:13,omegaconf:[5,6],on_fit_start:[1,2],on_init_end:1,on_test_batch_end:1,on_test_start:1,on_train_batch_end:1,on_train_start:1,on_validation_batch_end:1,on_validation_epoch_end:2,onc:[10,16],one:[2,3,4,6,10,14,15],ones:4,onli:[2,4,7,13,14,16],onlin:14,open:[13,14,16],oper:[7,14],opini:[11,12],opposit:7,optim:[0,1,2,11,12],optimizer_idx:1,option:[1,2,4,5],optionn:[2,14,15],optionnali:6,order:[4,5,6,7,15],org:14,origin:[2,4,15],oserror:[13,14],other:[7,10,14,15],otherwis:[4,14],our:[3,7],out:[1,4,10,14,15],outdoor:7,output:[1,2,6],output_dir:[0,2,15],over:[1,7],overfit:10,overlap:[4,8],overrid:[4,15],overridden:3,own:[3,7,16],packag:[9,14,15,16],package_metadata:9,page:[4,9,10,14,16],paper:[7,10],param:[4,5,15],paramet:[1,2,4,5,6,15,16],parcimoni:7,part:[13,14,15,16],partial:0,particular:[7,10,13],pass:[2,3,7,9],path:[0,2,4,10,14,15,16],patienc:[0,6],pattern:[4,15],pctl:[0,11,16],pdal:[4,16],pdal_read_las_arrai:4,pdal_read_las_array_as_float32:4,pdaltool:16,pep8:9,per:10,perfom:10,perform:[3,4,6,10,11,16],persist:14,phase:[1,7],pin:14,pip:[13,14],pipelin:[4,6],pl_modul:1,place:[5,7],placehold:14,pleas:[4,14],plu:[15,16],po:[2,3,4],point:[2,3,4,11,12,14,16],pointcloud:7,pointnet:7,points_budget:16,points_pre_transform:[0,16],posit:[2,4],possibl:16,postiv:4,powershel:14,ppa:14,pre:4,pre_filt:[0,4],pre_filter_below_n_point:[0,4],precomput:4,predict:[0,2,4,5,7,10,11],predict_dataload:4,predict_step:2,predicted_classification_channel:[0,2,15],predictedclassif:[0,2,15],prefer:[7,14],prefetch_factor:0,prefix:14,prepar:[0,2,4,6,10,11],preparations_eval_list:0,preparations_predict_list:0,preparations_train_list:0,prepare_data:4,prepared_data_dir:4,preprocess:[4,16],present:15,press:14,price:15,print:5,print_config:[0,5],proba:[2,15],probabilit:[2,15],probabl:[2,6,13,15],probas_to_sav:[0,2,15],problem:14,proce:10,process:[3,4,7,9,11,12,14],process_group:1,prod:9,produc:15,product:9,progress:8,progress_bar_refresh_r:0,project:15,project_nam:0,prompt:14,propag:7,properli:14,properti:4,provid:[10,15,16],proxi:15,ptr:3,pub:14,pull:[7,9],pure:[13,14],purpos:[4,14],push:9,py:[10,15,16],pyg:[4,14],pyg_randla_net:3,pygrandlanet:[0,3],pytest:9,python:[5,9,10,15,16],pytorch:[2,4,6,7,10,11,12,13,14,15],pytorch_geometr:[14,16],pytorch_lightn:[0,1,5,6],pytorchlight:1,qi:7,quadro:14,queri:4,quit:14,quot:15,r:[14,16],ra:9,randla:7,randlanet:10,randlanet_base_run_fr:10,randlanetdebug:0,randlanetdebugfinetun:6,random:7,rang:[4,10],rapid:[11,12],rate:[2,6],raw:[4,16],raw_path:2,read:[2,4,16],reader:4,readi:[4,10,14,16],readm:15,readthedoc:2,recent:13,recept:[4,16],recip:[3,13],recommend:[4,14],reconstruct:16,recudelronplateau:6,reduc:[7,10],reduce_predicted_logit:2,reduce_predictions_and_sav:2,reducelronplateau:0,reduct:[1,7],refer:[0,5,10,15],referenc:16,regist:3,regroup:16,regular:[8,15],rel:[4,7],relat:[13,14],releas:[9,13],reli:[11,12],reliabl:[7,11,12],reload:4,reload_dataloaders_every_n_epoch:4,remov:[13,14],renam:10,replac:[13,14],repo:14,repositori:[9,14,15],repres:7,request:[2,7,9],requir:[7,13,14],reset:6,resolut:7,resolv:5,restart:14,result:[4,7,10,11,12,15],resum:6,return_logit:[0,3],review:14,rgb:[4,16],rgbi:16,rich:[5,7],right:14,robust:7,role:9,root:4,rtx:14,run:[1,3,9,13,14,16],runtim:[0,10,15],runtimeerror:14,s3di:7,s:[4,11,13,14,15,16],safe:1,same:[2,7,14],sampl:[4,7,15,16],sampler:4,samples_hdf5_path:4,save:[2,5,10,15],save_last:0,save_top_k:0,scale:[4,7,11,12,14,16],schedul:[2,6],schema:[1,16],scheme:2,scope:[11,12,14],script:11,scroll:14,section:[10,14],see:[4,6,7,9,10,13,14,15,16],seed:[0,5],segment:[6,7,11,12,14,16],select:[14,16],self:4,semant:[6,7,9,11,12,14],semantic3d:7,semantickitti:7,semin:7,sequenc:[4,5],sequenti:1,serv:9,set:[1,4,6,7,10,15,16],setup:[1,2,4],setup_env:13,sever:[4,15],sh:14,share:[13,14,15,16],shm:15,should:[3,4,13,14,15,16],show:[0,15],shown:14,shuffl:4,shut:14,shutdown:14,signatur:[11,12],silent:3,similar:16,similarli:16,simpl:[4,7],simpli:[1,15,16],simplic:7,simplifi:7,sinc:[3,7],singl:[1,4,10,11,12,16],singleclassi:1,situat:7,size:[3,7,10,15,16],small:[4,16],smaller:[7,16],smi:14,smooth:15,so:[2,10,13,14,15],solut:7,some:[4,10,11,12,14],someth:14,sota:7,sourc:[0,1,2,3,4,5,6,14,16],space:15,spatial:15,special:6,specif:[4,6,7,13,14,15,16],specifi:[4,5,6,7,10,15,16],spent:7,spit:16,spli:16,split:[4,16],split_cloud_into_sampl:4,split_csv:4,split_csv_path:[0,16],squar:15,src_la:[0,2,15],src_las_path:4,stage:[2,4,9],standalon:15,standard:[4,11,12,16],standardize_channel:4,standardizergbandintens:[0,4],start:[1,2,6,7,13],state:[4,6,14],stem:10,step:[0,1,2,7,9,10,14],still:[13,14,15],store:[15,16],store_predict:2,str:[1,2,4,5],strategi:7,stronger:6,structur:[5,11,12],subclass:3,subdir:6,subdirectori:[4,16],subfold:[4,10],suboptim:7,subsampl:[2,4],subsystem:14,subtil:4,subtile_overlap:[0,4,15],subtile_overlap_predict:0,subtile_overlap_train:[0,4],subtile_width:[0,4],success:[9,15],sudo:14,suit:16,sumbsampl:2,superior:7,supervis:7,support:[10,11,12],sure:14,swicth:15,system:[1,13,14],t:[4,15,16],tabl:14,tag:9,take:[2,3,7,14,16],taken:14,tarbal:[13,14],target:[1,2,4,14],targettransform:[0,4],task:[0,5,6,10,15,16],task_nam:[0,6,10,15],td_prepar:4,team:14,templat:[11,12],tensor:[1,2,4],term:[7,11,12],termin:14,test:[0,1,2,4,6,7,8,14,16],test_dataload:4,test_step:[2,4],text:14,than:[7,10,13,14],thank:13,thei:15,them:[3,4,7],therefor:2,thi:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],third:7,thoma:7,threshold:1,thu:7,tile:4,tile_width:[0,4],time:[2,4,7,8,10,11,12,14,16],tini:7,todo:11,togeth:4,toi:[4,10],tool:16,toolchain:14,toolkit:[13,14,16],torch:[0,1,2,4,13,14],torch_clust:14,torch_geometr:[0,2,4,7],torch_scatt:14,torch_spars:14,torchmetr:[0,1],totensor:4,toy_dataset:[0,16],track:9,train:[0,1,2,4,7,11,12,15],train_dataload:4,train_transform:4,trainabl:5,trained_model_asset:15,trainer:[0,1,5,6,10],trainin:2,training_step:2,transform:[0,2,7,15,16],tree:5,tri:14,tricki:14,trigger:7,tupl:2,turn:[4,16],tutori:[9,10,15],two:16,type:[2,4,6,14],typic:6,ubuntu:[13,14],uncertainti:15,unclassifi:[0,4],under:[15,16],unfreez:1,unfreeze_decoder_train_epoch:1,unfreeze_fc_end_epoch:1,union:[1,2,4,7],unless:4,unmodifi:14,unorm:4,unseen:[6,11,12],until:7,unus:2,up:[10,15],updat:[1,2,14,15],upgrad:[13,14],upload:1,upon:[11,12],urban:7,url:14,us:[1,2,3,4,5,6,7,9,10,13,14,15,16],useful:4,user:[13,14,15],usernam:14,usual:7,util:[0,11,14],v3:7,v:[9,15],val:[0,1,4,16],val_dataload:4,valid:[2,4,6,7,10,15],validation_step:[2,4],valu:[0,4,6,14,15],variabl:[7,10,15,16],variou:14,vector:4,veget:[0,7,15],verbos:0,veri:15,version:[7,13,14],via:[9,13,15,16],virtual:[10,14,15],visibl:15,volum:15,wa:[7,11,12,14,16],wai:[7,13,14],want:[7,13,14,15,16],warn:[5,8],water:0,we:[0,2,7,13,14,15,16],weight:6,weightn:2,weights_summari:0,well:[2,6,14,15],were:[7,15],wget:14,what:[2,5,15],wheel:[13,14],when:[1,4,9,10,15],where:[4,10],whether:[5,14],which:[2,4,5,6,7,9,10,11,12,13,14,15,16],whl:14,whole:4,whose:[15,16],why:14,width:4,window:[14,15],wise:4,within:[3,7,14,16],without:[2,4,14,16],work:[1,7,8,13,14,15],work_dir:0,workflow:9,workspac:0,would:4,write:14,wsl2:11,www:14,x10:7,x5:7,x86_64:14,x:[2,3,4,15,16],xy:4,xyz:2,y:[2,4,13,14,15],y_mean:4,y_std:4,yaml:[6,9,10,15,16],ye:14,yet:[1,14],yield:4,yml:[13,14],you:[4,10,13,14,15,16],your:[2,10,13,14,15,16],yourself:4,z:4},titles:["Default configuration","myria3d.callbacks","myria3d.models","myria3d.models.modules","myria3d.pctl","myria3d.utils","Scripts","General design of the package","KNN-Interpolation to merge multiple predictions [TODO]","Developer\u2019s guide","How to train new models","Myria3D > Documentation","<no title>","Install Myria3D on Linux","Install Myria3D on WSL2 with CUDA support","Performing inference on new data","Preparing data for training"],titleterms:{"default":0,"function":16,"import":7,"new":[10,15],addit:15,anaconda:14,approach:7,artefact:15,background:11,callback:1,cd:9,ci:9,cloud:7,code:9,comet_callback:1,compos:4,configur:0,content:1,continu:9,cuda:14,data:[15,16],dataload:4,datamodul:4,dataset:[4,16],deliveri:9,design:7,develop:9,dimens:15,docker:15,document:11,dure:15,environ:13,essenc:7,evalu:7,fast:7,field:15,finetuning_callback:1,from:15,gener:7,geometr:3,get:[11,16],gpu:10,guid:[9,11],hdf5:4,how:10,ignor:15,imag:15,improv:7,indic:11,infer:[10,15],instal:[13,14],integr:9,interpol:[2,8],iter:4,kei:7,knn:8,learn:10,lidar_hd:4,linux:13,logging_callback:1,merg:8,model:[2,3,7,10],modul:[1,3],multi:10,multipl:8,myria3d:[1,2,3,4,5,6,11,13,14],net:3,optim:10,option:15,output:15,overlap:15,packag:[7,11,13],pctl:4,peprocess:16,perform:[7,15],point:[7,15],points_pre_transform:4,practic:7,predict:[6,8,15],prepar:16,prerequisit:13,pytorch:3,quick:10,quickli:16,randla:3,rate:10,recept:15,refer:11,right:7,run:[6,10,15],s:9,script:6,select:7,set:[13,14],setup:10,should:7,sourc:[13,15],speed:7,start:[11,16],structur:7,submodul:1,subsampl:7,support:14,tabl:11,test:[9,10],time:15,todo:8,toi:16,toy_dataset:4,train:[6,10,16],transform:4,troubleshoot:[13,14],up:[13,14],util:[4,5],version:9,virtual:13,within:15,wsl2:14,wsl:14}})
\ No newline at end of file
diff --git a/tutorials/install_on_linux.html b/tutorials/install_on_linux.html
index 45af7fce..863b0d82 100644
--- a/tutorials/install_on_linux.html
+++ b/tutorials/install_on_linux.html
@@ -4,7 +4,7 @@
- Install Myria3D on Linux — myria3d 3.5.2 documentation
+ Install Myria3D on Linux — myria3d 3.6.0 documentation
diff --git a/tutorials/install_on_wsl2.html b/tutorials/install_on_wsl2.html
index 1e2bb3b9..b2ce253c 100644
--- a/tutorials/install_on_wsl2.html
+++ b/tutorials/install_on_wsl2.html
@@ -4,7 +4,7 @@
- Install Myria3D on WSL2 with CUDA support — myria3d 3.5.2 documentation
+ Install Myria3D on WSL2 with CUDA support — myria3d 3.6.0 documentation
diff --git a/tutorials/make_predictions.html b/tutorials/make_predictions.html
index 517c62b4..237f2ae0 100644
--- a/tutorials/make_predictions.html
+++ b/tutorials/make_predictions.html
@@ -4,7 +4,7 @@
- Performing inference on new data — myria3d 3.5.2 documentation
+ Performing inference on new data — myria3d 3.6.0 documentation
@@ -192,7 +192,8 @@ Run inference from sourcepython run.py task.task_name=predict --help
-Note that predict.src_las
may be any valid glob pattern (e.g. /path/to/multiple_files/*.las
), in order to predict on multiple files successively.
+Note that predict.src_las
may be any valid glob pattern (e.g. /path/to/multiple_files/*.las
), in order to predict on multiple files successively.
+If the lidar file doesn’t specify an EPSG in its meatadata, it HAS TO BE be specified with datamodule.epsg=...
Run inference from sources
diff --git a/tutorials/prepare_dataset.html b/tutorials/prepare_dataset.html
index b4a05884..dec72e82 100644
--- a/tutorials/prepare_dataset.html
+++ b/tutorials/prepare_dataset.html
@@ -4,7 +4,7 @@
- Preparing data for training — myria3d 3.5.2 documentation
+ Preparing data for training — myria3d 3.6.0 documentation
@@ -188,6 +188,7 @@ Preparing the dataset
Under the hood, the path of each LAS file will be reconstructed like this: ‘{data_dir}/{split}/{basename}’.
Large input point clouds need to be divided in smaller clouds that can be digested by segmentation models. We found that a receptive field of 50m x 50m was a good balance between context and memory intensity. The division is performed once, to avoid loading large file in memory multiple times during training.
+To be able to read the lidar files, an EPSG is needed. If the files don’t all specify an EPSG in their metadata, it should be given as a parameter with datamodule.epsg=...
After division, the smaller clouds are preprocessed (i.e. selection of specific LAS dimensions, on-the-fly creation of dimensions) and regrouped into a single HDF5 file whose path is specified via the datamodule.hdf5_file_path
parameter.
The HDF5 dataset is created at training time. It should only happens once. Once this is done, you do not need sources anymore, and simply specifying the path to the HDF5 dataset is enough (there is no need for data_dir or split_csv_path parameters anymore).
It’s also possible to create the hdf5 file without training any model: just fill the datamodule.hdf5_file_path
parameter as before to specify the file path, but use task=create_hdf5
instead of task=fit
.