Overview of Cloud Optimized Point Cloud (COPC)¶
The Cloud Optimized Point Cloud developed by HOBU is similar in concept to the COG. It is an .laz
(lasZip) format with additional point data organized in a clustered octree. This is similar to how a COG uses overviews and tiles. The octree organization allows for http streaming of point cloud data from cloud storage (AWS S3, Google Cloud Storage, Azure Blob Storage, etc.) to a web browser or other applications. Just like a COG, it eliminates the need to download large datasets to a local machine for visualization and analysis.
COPC is based on the open source compression file format, *.LAZ
, which was developed by Martin Isenburg (RIP) and is licensed by his company RapidLASso
For technical information on the formats, see the COPC Specification and the LAS Standard
Example COPCs Online¶
Here is a drone-based point cloud in the COPC format. It is 686 mb and stored in Cyverse Data Store here. You can view it here using the COPC Viewer.
Here is another COPC example. It is 3DEP lidar data over Prescott, AZ. It is also stored in the Cyverse Data Store here.
Applications that can Read COPC¶
COPCs are just a special case of laz
, so any application that can read laz
can read COPC.
QGIS, CloudCompare, Argis Pro, and PDAL can all read COPC
Entwine Point Tiles¶
Entwine(EPT) is another cloud-optimized format with similar function to COPC. This format is a few years older than COPC. While COPC is a single compressed file, the EPT consists of many small files (binary and .json) that are organized in a directory structure.
HoBu was contracted by the USGS to process all of the 3DEP lidar data, these are now hosted on commercial cloud in both reqestor pays buckets and FOR FREE as Entwine Point Tiles: https://usgs.entwine.io/
-
More information about these datasets can be found at https://registry.opendata.aws/usgs-lidar/ and at its GitHub page at https://github.com/hobu/usgs-lidar/
Hands On¶
Stream COPCs into QGIS¶
If you are unfamiliar with QGIS, here are 3 ways to use the open-source program
Install on your local machine
Download and install QGIS on your local machine
Use docker to run QGIS locally without installation
Educational material on software containers and Docker are here.
Installing Docker on your personal computer
We are going to be using virtual machines on the cloud for this course, and we will explain why this is a good thing, but there may be a time when you want to run Docker on your own computer.
Installing Docker takes a little time but it is reasonably straight forward and it is a one-time setup.
Installation instructions from Docker Official Docs for common OS and chip architectures:
Once docker has been installed on your local machine it is easiest to use it on the Command Line Interace (CLI). Run the following commands in your terminal:
this will allow the container access to the X server for display purposes
xhost +
this will run the QGIS container and open the application
docker run --rm -it --name qgis \
-v $(pwd):/data \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY \
qgis/qgis:release-3_34 qgis
Run cloud instance of QGIS on Cyverse
Cyverse is a cloud computing and storage tool housed at the University of Arizona. You can sign up for a user account here.
After getting the account, you need to request access to the Visual Interactive Computing Environment (VICE) app. This is a cloud-based desktop environment that allows you to run applications like QGIS in the cloud.
To request VICE access, visit the User Portal look for
and select the REQUEST ACCESS link.
Instructions for launching QGIS and other interactive apps within Cyverse are found here.
Now that you have access to QGIS, let's stream a COPC into the application.
-
Open QGIS
-
In the "Layers" menu, go to "Add Layer" and then "Add Point Cloud Layer"
-
Choose the Source Type and select "Protocol: HTTP(s), cloud, etc" for a file on your computer
-
Enter a valid
https://
in theURl
field for a COPC you found onlineHere are a few examples to try. The first is the golf course point cloud located in the Cyverse Data Store:
The next example is 3DEP LiDAR data over Prescott, AZ which is also stored in the Cyverse Data Store:
-
Click "Add" and the point cloud will stream into QGIS. By default, the point cloud will be displayed in 2D. You can change to a 3D view by going to 'View' menu and selecting '3D map views' and then 'New 3D Map View'
Create your own COPC¶
The best toolset to create your own COPC point clouds is Point Data Abstraction Library (PDAL), which is a command line tool for translating and manipulating point cloud data.
Installing PDAL
Install to local machine to system PATH:
https://pdal.io/en/2.6.0/download.html#download
Install using conda:
conda create --yes --name pdal --channel conda-forge pdal
-
Download a small
laz
file from Cyverse Data Store here -
Go into the directory where you downloaded the file
On the command line, you would type:
cd ~/Downloads
-
Execute the PDAL command to convert the
laz
file tocopc.laz
:
pdal translate tree.laz tree.copc.laz
You should now have the
copc.laz
file in your directory. The new file should be larger (1.6 m) than the originallaz
file (1.0 m). This is because thecopc.laz
file has additional data that is used to organize the point cloud into an octree. -
You can upload your file `tree.copc.laz' to Cyverse Data Store for streaming into applications. Please see this material for a tutorial of uploading to Cyverse Data Store.
Planetary Computer 3DEP Jupyter Notebook