Skip to content

Jump to hands-on lesson

Overview of Cloud Optimized Point Cloud (COPC)

copc

point_cloud

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

hobu 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.

copc

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

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/


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.

  1. Open QGIS

  2. In the "Layers" menu, go to "Add Layer" and then "Add Point Cloud Layer"

  3. Choose the Source Type and select "Protocol: HTTP(s), cloud, etc" for a file on your computer

  4. Enter a valid https:// in the URl field for a COPC you found online

    Here are a few examples to try. The first is the golf course point cloud located in the Cyverse Data Store:

    https://data.cyverse.org/dav-anon/iplant/home/jgillan/USGA/imagery_products/hole17_point_cloud.copc.laz

    The next example is 3DEP LiDAR data over Prescott, AZ which is also stored in the Cyverse Data Store:

    https://data.cyverse.org/dav-anon/iplant/home/tswetnam/agic-2022/USGS_LPC_AZ_VerdeKaibab_B2_TL_2018_LAS_2019.copc.laz

  5. 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

blah

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

  1. Download a small laz file from Cyverse Data Store here

  2. Go into the directory where you downloaded the file

    On the command line, you would type:
    cd ~/Downloads

  3. Execute the PDAL command to convert the laz file to copc.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 original laz file (1.0 m). This is because the copc.laz file has additional data that is used to organize the point cloud into an octree.

  4. 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


Last update: 2023-12-05