geo3d.core.functional ===================== .. py:module:: geo3d.core.functional Attributes ---------- .. autoapisummary:: geo3d.core.functional.PDAL_MAX_POINTS Functions --------- .. autoapisummary:: geo3d.core.functional.reader_las geo3d.core.functional.class_ranger geo3d.core.functional.cluster geo3d.core.functional.groupby geo3d.core.functional.unclassifier geo3d.core.functional.merger geo3d.core.functional.stats geo3d.core.functional.info geo3d.core.functional.expression geo3d.core.functional.crop geo3d.core.functional.nndistance geo3d.core.functional.outlier geo3d.core.functional.writer_las Module Contents --------------- .. py:data:: PDAL_MAX_POINTS :value: 18446744073709551615 .. py:function:: reader_las(filename: str, count: int = PDAL_MAX_POINTS, override_srs: str = 'EPSG:2154', nosrs: bool = True) -> altametris.geo3d.core.base.Reader Create a LAS reader object. :param filename: path to the las file. :type filename: str :param count: Maximum number of points to read. Defaults to 'unlimited' PDAL_MAX_POINTS. :type count: int :param override_srs: Spatial reference to apply to the data. Defaults to 'EPSG:2154'. :type override_srs: str :param nosrs: Don't read the SRS VLRs. Defaults to true :type nosrs: bool :returns: pipeline.Reader object. .. py:function:: class_ranger(label1: int, label2: int, inv: bool = False) -> altametris.geo3d.core.base.Filter Create a filters range object based on Classification. :param label1: Left range boundary. :type label1: int :param label2: Right range boundary. :type label2: int :param inv: inverse. Give the complementary space instead. :type inv: bool :returns: pipeline.Filter object. .. py:function:: cluster(min_points: int = 100, tolerance: float = 1) -> altametris.geo3d.core.base.Filter Create a filter cluster object. :param min_points: minimum points per cluster. Defaults to 100. :type min_points: int :param tolerance: maximum distance to a cluster. Defaults to 1. :type tolerance: float :returns: pipeline.Filter object. .. py:function:: groupby(dimension: str = 'ClusterID') -> altametris.geo3d.core.base.Filter Create a filter to groupby the point cloud thanks a specific dimension. :param dimension: Category which will be used to split the pc :type dimension: str :returns: pipeline.Filter object. .. py:function:: unclassifier(condition: str) -> altametris.geo3d.core.base.Filter Create a filter assign with value of Classification = 0 if condition. :param condition: Expression of the condition. "ClusterID == 0" for example. :type condition: str :returns: pipeline.Filter object. .. py:function:: merger() -> altametris.geo3d.core.base.Filter Create a filter merge. :returns: pipeline.Filter object. .. py:function:: stats(dimensions: str = 'X,Y,Z', enumerate: str = 'Classification', count: str = 'Classification') -> altametris.geo3d.core.base.Filter Create a filter stats. :param dimensions: The dimensions on whose to compute the stats. Defaults to 3D coordinates. :param enumerate: The dimensions whose values should be enumerated. :type enumerate: str :param count: Provide the count of the number of points of each enumerated category. :type count: str :returns: pipeline.Filter object. .. py:function:: info() -> altametris.geo3d.core.base.Filter Create a filter info. :returns: pipeline.Filter object. .. py:function:: expression(condition: str) -> altametris.geo3d.core.base.Filter Create an expression filter. :param condition: An expression that limits points passed to a filter. "Classification == 0", for example. :returns: pipeline.Filter object. .. py:function:: crop(bounds: str) -> altametris.geo3d.core.base.Filter Create a crip filter. :param bounds: The clipping rectangle in the format '([xmin, xmax], [ymin, ymax], [zmin, zmax])'. :returns: pipeline.Filter object .. py:function:: nndistance(mode: str = 'avg', k: int = 10) -> altametris.geo3d.core.base.Filter Create an NNdistance filter object. :param mode: The mode of operation. 'kth' to compute the distance from the kth remote point or 'avg' to compute the average Euclidean distance from the k nearest neighbors. Defaults to 'avg'. :type mode: str :param k: The number of nearest neighbors. Defaults to 10. :type k: int :returns: pipeline.Filter object. .. py:function:: outlier(classification: int = 7, method: str = 'statistical', min_k: int = 2, radius: float = 1.0, mean_k: int = 10, multiplier: float = 3) -> altametris.geo3d.core.base.Filter Create an Outlier filter object. :param classification: The class value to assign to outliers. Defaults to 7. :type classification: int :param method: The outlier removal method. 'statistical' or 'radius'. Defaults to 'statistical'. :type method: str :param min_k: Minimum number of neighbors in radius. Applicable to radius method only. Defaults to 2. :type min_k: int :param radius: The value of radius of the ball of neighbors. Defaults to 1.0. :type radius: float :param mean_k: The number of k nearest neighbors. Applicable to statistical method only. Defaults to 10. :type mean_k: int :param multiplier: The multiplier to use in computing the threshold. Defaults to 3. :type multiplier: float :returns: pipeline.Filter object. .. py:function:: writer_las(filename: str, minor_version: int = 4, dataformat_id: int = 6) -> altametris.geo3d.core.base.Writer Create a LAS writer object. Defaults to writing LAS 1.4 with point data record format 6. :param filename: path to the las file. :type filename: str :param minor_version: minor version of the LAS file (0 - 4). Defaults to 4. :type minor_version: int :param dataformat_id: Point data record format (0 - 11). Defaults to 6. :type dataformat_id: int :returns: pipeline.Writer object.