pointclouds 0.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pointclouds/__init__.py +20 -0
- pointclouds/classify/__init__.py +1 -0
- pointclouds/classify/ground.py +1 -0
- pointclouds/classify/trees.py +1 -0
- pointclouds/convert.py +35 -0
- pointclouds/io/__init__.py +1 -0
- pointclouds/io/_records.py +196 -0
- pointclouds/io/copc.py +570 -0
- pointclouds/io/ept.py +724 -0
- pointclouds/io/las.py +119 -0
- pointclouds/ops/__init__.py +1 -0
- pointclouds/ops/clip.py +99 -0
- pointclouds/ops/decimate.py +107 -0
- pointclouds/ops/filter.py +109 -0
- pointclouds/ops/grid.py +241 -0
- pointclouds/ops/merge.py +107 -0
- pointclouds/points.py +801 -0
- pointclouds-0.0.0.dist-info/METADATA +95 -0
- pointclouds-0.0.0.dist-info/RECORD +21 -0
- pointclouds-0.0.0.dist-info/WHEEL +4 -0
- pointclouds-0.0.0.dist-info/licenses/LICENSE.md +675 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: pointclouds
|
|
3
|
+
Version: 0.0.0
|
|
4
|
+
Summary: Point cloud (LAS/LAZ/COPC) I/O, filtering, decimation and gridding
|
|
5
|
+
Project-URL: homepage, https://github.com/serapeum-org/pointclouds
|
|
6
|
+
Project-URL: repository, https://github.com/serapeum-org/pointclouds
|
|
7
|
+
Project-URL: documentation, https://serapeum-org.github.io/pointclouds
|
|
8
|
+
Project-URL: Changelog, https://github.com/serapeum-org/pointclouds/blob/main/docs/change-log.md
|
|
9
|
+
Author-email: Mostafa Farrag <moah.farag@gmail.com>
|
|
10
|
+
License: GNU General Public License v3
|
|
11
|
+
License-File: LICENSE.md
|
|
12
|
+
Keywords: COPC,GIS,LAS,LAZ,lidar,point cloud,pointcloud
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Science/Research
|
|
17
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
18
|
+
Classifier: Natural Language :: English
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
25
|
+
Requires-Python: <4,>=3.11
|
|
26
|
+
Requires-Dist: laspy[lazrs]>=2.5
|
|
27
|
+
Requires-Dist: numpy>=2.0.0
|
|
28
|
+
Requires-Dist: pyproj>=3.7
|
|
29
|
+
Requires-Dist: scipy>=1.10
|
|
30
|
+
Provides-Extra: all
|
|
31
|
+
Requires-Dist: fsspec>=2024.1; extra == 'all'
|
|
32
|
+
Requires-Dist: pyramids-core>=0.70.0; extra == 'all'
|
|
33
|
+
Requires-Dist: s3fs; extra == 'all'
|
|
34
|
+
Provides-Extra: cloud
|
|
35
|
+
Requires-Dist: fsspec>=2024.1; extra == 'cloud'
|
|
36
|
+
Requires-Dist: s3fs; extra == 'cloud'
|
|
37
|
+
Provides-Extra: gis
|
|
38
|
+
Requires-Dist: pyramids-core>=0.70.0; extra == 'gis'
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
|
|
41
|
+
# pointclouds
|
|
42
|
+
|
|
43
|
+
Read, filter, decimate and grid **point clouds** (LAS / LAZ, and COPC/EPT) in Python.
|
|
44
|
+
|
|
45
|
+
A *point cloud* is a set of 3-D measured points - typically from lidar or photogrammetry - each carrying `x`, `y`,
|
|
46
|
+
`z` plus per-point attributes such as intensity, return number and ASPRS classification. `pointclouds` reads the
|
|
47
|
+
standard exchange formats, exposes the header without touching the records, and provides the operations a cloud
|
|
48
|
+
needs before analysis or rendering: classification filtering, decimation, reprojection, and gridding to a raster
|
|
49
|
+
surface (DSM / DTM / density).
|
|
50
|
+
|
|
51
|
+
## Install
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pip install pointclouds # core: reads LAS/LAZ, grids to arrays, no GDAL required
|
|
55
|
+
pip install pointclouds[gis] # + pyramids-gis: to_dataset() / to_feature_collection()
|
|
56
|
+
pip install pointclouds[cloud] # + fsspec/s3fs: remote LAZ / COPC
|
|
57
|
+
pip install pointclouds[all] # everything
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The core depends only on `numpy`, `laspy`, `pyproj` and `scipy` - no GDAL - so it installs anywhere numpy runs.
|
|
61
|
+
GIS interoperability (turning a cloud into a `pyramids` `Dataset` or `FeatureCollection`) is an optional extra.
|
|
62
|
+
|
|
63
|
+
## Quick look
|
|
64
|
+
|
|
65
|
+
```python
|
|
66
|
+
import pointclouds as pc
|
|
67
|
+
|
|
68
|
+
cloud = pc.PointCloud.read_file("survey.laz")
|
|
69
|
+
cloud.crs, cloud.bounds, cloud.count # from the header, no record read
|
|
70
|
+
xyz = cloud.to_array(("X", "Y", "Z")) # (N, 3) float64
|
|
71
|
+
|
|
72
|
+
# COPC: read a window instead of the whole cloud - only the chunks that overlap are decompressed
|
|
73
|
+
box = pc.PointCloud.read_window("survey.copc.laz", bbox=(155000, 463000, 156000, 464000))
|
|
74
|
+
coarse = pc.PointCloud.read_window("survey.copc.laz", resolution=5.0) # ~one point per 5 m
|
|
75
|
+
|
|
76
|
+
# EPT (Entwine): same windowed read, by directory or URL (remote needs the [cloud] extra)
|
|
77
|
+
box = pc.PointCloud.read_window("s3://bucket/survey-ept", bbox=(155000, 463000, 156000, 464000))
|
|
78
|
+
|
|
79
|
+
ground = cloud.filter(classification=2)
|
|
80
|
+
thin = ground.decimate(target=2_000_000, method="random")
|
|
81
|
+
|
|
82
|
+
arr, transform, crs = ground.to_grid(cell_size=1.0, aggregate="min") # pure NumPy
|
|
83
|
+
dtm = ground.to_dataset(cell_size=1.0, aggregate="min") # needs [gis]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Where it sits
|
|
87
|
+
|
|
88
|
+
`pointclouds` is an independent package in the serapeum-org stack. It interoperates with
|
|
89
|
+
[`pyramids`](https://github.com/serapeum-org/pyramids) (the raster/vector GIS engine) through two converter methods
|
|
90
|
+
behind the `[gis]` extra, but does not depend on it for reading, gridding or classification. See
|
|
91
|
+
`planning/placement-decision.md` for the full architecture rationale.
|
|
92
|
+
|
|
93
|
+
## License
|
|
94
|
+
|
|
95
|
+
GPLv3.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
pointclouds/__init__.py,sha256=r5Vcelidd-D85BjucV8Z_RiEyIANNBKzi_ExsqMa5as,703
|
|
2
|
+
pointclouds/convert.py,sha256=rwv999k19YT3___MASD2hAQPz8Nsnv0dTQgii2UFpS8,1544
|
|
3
|
+
pointclouds/points.py,sha256=R4JTaFWKBAs_oDQTogTbWwCeu-lm7H7rmxa58gwuo1Y,39026
|
|
4
|
+
pointclouds/classify/__init__.py,sha256=YNnJYgTa9c7Asad3GacD-5oB-qsikbeQMPidIiP_VhA,64
|
|
5
|
+
pointclouds/classify/ground.py,sha256=Uq1z0mTmyTJ8FbJQ4HKwskiw76BeVkG8CNMxk-8K7zU,101
|
|
6
|
+
pointclouds/classify/trees.py,sha256=1o9s8lx7dhW2VsO2qMszJBT6XZRCUzKkOUqgqpfGEeI,104
|
|
7
|
+
pointclouds/io/__init__.py,sha256=TvFBTSg5kFUCeC_hlu5N4yV9WhbKBMOn00haTSHdGFY,48
|
|
8
|
+
pointclouds/io/_records.py,sha256=wPawV4ZDdKcXFSFy2MO2meyjuZUbme1s5WSXlhX5Bhg,8705
|
|
9
|
+
pointclouds/io/copc.py,sha256=PH7HwWg_CQ7H-imLbd6imlSgtKsLkOurMISXk-aWNeo,27561
|
|
10
|
+
pointclouds/io/ept.py,sha256=s9IMAOlqwpTCrLi3tv-YKiaV4rWWctCtQhjj5JaU32A,28480
|
|
11
|
+
pointclouds/io/las.py,sha256=IOhhUEUt7a0n3Buyetl_8AmS0WwYYm0Rn9jiE4676lM,4595
|
|
12
|
+
pointclouds/ops/__init__.py,sha256=1Lm6B3nlsUlG_E0tabGCTEbMlNevuixwumdUvaqhQrU,72
|
|
13
|
+
pointclouds/ops/clip.py,sha256=WjPf7XHh-2-_O1jqN3MPoZnKeDnvFODfX198Y2jyRzQ,4138
|
|
14
|
+
pointclouds/ops/decimate.py,sha256=8-E89rPhq5ibfDXUUEk3pxdLxFfBqb-Y4AH-imBgL4M,4572
|
|
15
|
+
pointclouds/ops/filter.py,sha256=cAKxV3vPePRAOzluUMoLtR8w44LPRYzjo_U1g05dIPo,4572
|
|
16
|
+
pointclouds/ops/grid.py,sha256=FLlvGut04H8d7v7kOmdseUlvmsPUX7-d8r2aDWunn9c,12051
|
|
17
|
+
pointclouds/ops/merge.py,sha256=dyzkHdRYoQjjjuewoioHThUqk5xAoHsqR_sjH_CbXgs,4691
|
|
18
|
+
pointclouds-0.0.0.dist-info/METADATA,sha256=bSZMMbLoLCz_h4wicV71PCxgA9sn51f-A1f-t49HDns,4243
|
|
19
|
+
pointclouds-0.0.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
20
|
+
pointclouds-0.0.0.dist-info/licenses/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
|
|
21
|
+
pointclouds-0.0.0.dist-info/RECORD,,
|