-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update script for FOSS4G 2023 NA Image Creation
- Loading branch information
Showing
3 changed files
with
161 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
FROM condaforge/mambaforge:latest as build | ||
MAINTAINER Howard Butler <[email protected]> | ||
|
||
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 | ||
|
||
COPY environment.yml . | ||
RUN mamba env create -f environment.yml | ||
|
||
RUN mamba install -c conda-forge conda-pack | ||
|
||
RUN conda-pack -n "pdal-workshop" -o /tmp/env.tar && \ | ||
mkdir /venv && cd /venv && tar xf /tmp/env.tar && \ | ||
rm /tmp/env.tar | ||
|
||
RUN /venv/bin/conda-unpack | ||
|
||
FROM debian:bookworm-slim AS runtime | ||
|
||
COPY --from=build /venv /venv | ||
|
||
SHELL ["/bin/bash", "-c"] | ||
ENTRYPOINT source /venv/bin/activate |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
name: pdal-workshop | ||
channels: | ||
- conda-forge | ||
dependencies: | ||
- python=3.11 | ||
- pdal=2.5.6 | ||
- python-pdal | ||
- gdal | ||
- untwine | ||
- geopandas | ||
- jq | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,69 +1,136 @@ | ||
#!/bin/bash | ||
eval "$(conda shell.bash hook)" | ||
|
||
# curl https://pdal.io/PDAL.pdf -o PDAL-docs.pdf | ||
export ROOT_DIR="$PWD/PDAL Workshop Materials" | ||
# create root_directory for image | ||
mkdir -p "$ROOT_DIR" | ||
|
||
git clone -n --depth=1 --filter=tree:0 https://github.com/PDAL/PDAL | ||
cd PDAL | ||
git sparse-checkout set --no-cone doc | ||
git checkout | ||
cd .. | ||
# grab PDAL repo | ||
git clone -n --depth=1 https://github.com/PDAL/PDAL | ||
|
||
# build pdal docs | ||
conda create -n "pdal-docs" python=3.11 --yes --quiet | ||
conda activate pdal-docs | ||
mamba install -c conda-forge graphviz --yes --quiet | ||
pip install -r PDAL/doc/requirements.txt | ||
make -C PDAL/doc doxygen | ||
make -C PDAL/doc html | ||
make -C PDAL/doc latexpdf | ||
|
||
git clone -n --depth=1 --filter=tree:0 https://github.com/PDAL/data | ||
# copy workshop docs to image directory | ||
cp -R PDAL/doc/build/html "$ROOT_DIR/docs" | ||
cp PDAL/doc/build/latex/PDAL.pdf "$ROOT_DIR"/docs | ||
|
||
# copy needed datasets | ||
git clone --depth=1 https://github.com/PDAL/data | ||
cd data | ||
git sparse-checkout set --no-cone workshop | ||
git checkout | ||
cd .. | ||
git lfs install | ||
git lfs pull | ||
cd .. | ||
|
||
mkdir -p exercises exercises/info | ||
mkdir -p software software/MacOS software/Windows software/Linux | ||
|
||
# Moving docs | ||
mv PDAL/doc/workshop/manipulation exercises | ||
mv exercises/manipulation exercises/analysis | ||
mv PDAL/doc/workshop/generation/meshing PDAL/doc/workshop/generation/rasterize \ | ||
PDAL/doc/workshop/generation/dtm exercises/analysis | ||
mv PDAL/doc/workshop/generation/batch_processing PDAL/doc/workshop/generation/georeferencing \ | ||
PDAL/doc/workshop/generation/python PDAL/doc/workshop/introduction exercises | ||
mv exercises/introduction exercises/translation | ||
mv exercises/translation/metadata.rst exercises/translation/single-point.rst \ | ||
exercises/translation/near.rst exercises/info | ||
# Moving data | ||
mkdir -p exercises/batch_processing/source | ||
mv data/workshop/TM_551_101.laz data/workshop/TM_551_102.laz data/workshop/TM_552_101.laz \ | ||
data/workshop/TM_552_102.laz exercises/batch_processing/source | ||
mv data/workshop/autzen.laz exercises/analysis/clipping | ||
mv data/workshop/casi-2015-04-29-weekly-mosaic.tif exercises/analysis/colorization | ||
mv data/workshop/18TWK820985.laz exercises/analysis/denoising | ||
cp data/workshop/uncompahgre.laz exercises/analysis/density | ||
mv data/workshop/CSite1_orig-utm.laz exercises/analysis/ground | ||
mv data/workshop/uncompahgre.laz data/workshop/uncompahgre.copc.laz exercises/analysis/thinning | ||
mv data/workshop/S1C1_csd_004.csd exercises/georeferencing | ||
mv data/workshop/athletic-fields.laz exercises/python | ||
mv data/workshop/csite-dd.laz data/workshop/interesting.laz exercises/translation | ||
cp data/workshop/interesting.las exercises/translation | ||
mv data/workshop/interesting.las exercises/info | ||
|
||
# software download | ||
cd software/Windows | ||
curl https://qgis.org/downloads/QGIS-OSGeo4W-3.32.0-1.msi -o QGIS-OSGeo4W-3.32.0-1.msi | ||
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -o Miniconda3-latest-Windows-x86_64.exe | ||
curl https://www.danielgm.net/cc/release/CloudCompare_v2.13.alpha_setup_x64.exe -o CloudCompare_v2.13.alpha_setup_x64.exe | ||
cd .. | ||
cd MacOS | ||
curl https://qgis.org/downloads/macos/qgis-macos-pr.dmg -o qgis-macos-pr.dmg | ||
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o Miniconda3-latest-MacOSX-x86_64.sh | ||
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o Miniconda3-latest-MacOSX-arm64.sh | ||
curl https://www.danielgm.net/cc/release/CloudCompare-2.13.0-x86_64.dmg -o CloudCompare-2.13.0-x86_64.dmg | ||
curl https://www.danielgm.net/cc/release/CloudCompare-2.13.0-arm64.dmg -o CloudCompare-2.13.0-arm64.dmg | ||
mkdir -p "$ROOT_DIR/exercises/batch_processing" | ||
cp PDAL/doc/workshop/generation/batch_processing/batch_srs_gdal.json \ | ||
"$ROOT_DIR/exercises/batch_processing" | ||
|
||
|
||
mkdir -p "$ROOT_DIR/exercises/batch_processing/source" | ||
cp data/workshop/TM_551_101.laz \ | ||
data/workshop/TM_551_102.laz \ | ||
data/workshop/TM_552_101.laz \ | ||
data/workshop/TM_552_102.laz \ | ||
"$ROOT_DIR/exercises/batch_processing/source/" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/analysis/clipping" | ||
cp data/workshop/autzen.laz \ | ||
PDAL/doc/workshop/manipulation/clipping/clipping.json \ | ||
"$ROOT_DIR/exercises/analysis/clipping/" | ||
|
||
|
||
mkdir -p "$ROOT_DIR/exercises/analysis/colorization" | ||
cp data/workshop/casi-2015-04-29-weekly-mosaic.tif \ | ||
PDAL/doc/workshop/manipulation/colorization/colorize.json \ | ||
"$ROOT_DIR/exercises/analysis/colorization/" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/analysis/denoising" | ||
cp PDAL/doc/workshop/manipulation/denoising/denoise.json \ | ||
data/workshop/18TWK820985.laz \ | ||
"$ROOT_DIR/exercises/analysis/denoising/" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/analysis/density" | ||
cp data/workshop/uncompahgre.laz "$ROOT_DIR/exercises/analysis/density/" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/analysis/dtm" | ||
cp PDAL/doc/workshop/generation/dtm/gdal.json "$ROOT_DIR/exercises/analysis/dtm" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/analysis/ground" | ||
cp data/workshop/CSite1_orig-utm.laz "$ROOT_DIR/exercises/analysis/ground/" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/analysis/rasterize" | ||
cp PDAL/doc/workshop/generation/rasterize/classification.json "$ROOT_DIR/exercises/analysis/rasterize" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/analysis/thinning" | ||
cp data/workshop/uncompahgre.laz \ | ||
data/workshop/uncompahgre.copc.laz \ | ||
"$ROOT_DIR/exercises/analysis/thinning/" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/georeferencing" | ||
cp data/workshop/S1C1_csd_004.csd "$ROOT_DIR/exercises/georeferencing" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/python" | ||
cp PDAL/doc/workshop/generation/python/histogram.json \ | ||
PDAL/doc/workshop/generation/python/histogram.py \ | ||
data/workshop/athletic-fields.laz \ | ||
"$ROOT_DIR/exercises/python/" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/translation" | ||
cp data/workshop/csite-dd.laz \ | ||
data/workshop/interesting.laz \ | ||
PDAL/doc/workshop/introduction/entwine.json \ | ||
"$ROOT_DIR/exercises/translation" | ||
|
||
cp data/workshop/interesting.las "$ROOT_DIR/exercises/translation" | ||
|
||
mkdir -p "$ROOT_DIR/exercises/info" | ||
cp data/workshop/interesting.las "$ROOT_DIR/exercises/info/" | ||
|
||
curl --output-dir "$ROOT_DIR/software/windows" -C - -OL --create-dirs https://download.qgis.org/downloads/QGIS-OSGeo4W-3.32.2-1.msi | ||
curl --output-dir "$ROOT_DIR/software/windows" -C - -OL --create-dirs https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe | ||
curl --output-dir "$ROOT_DIR/software/windows" -C - -OL --create-dirs https://github.com/jqlang/jq/releases/download/jq-1.7/jq-windows-amd64.exe | ||
curl --output-dir "$ROOT_DIR/software/windows" -C - -OL --create-dirs https://www.danielgm.net/cc/release/CloudCompare_v2.13.beta_setup_x64.exe | ||
|
||
# grab macOS Installers | ||
curl --output-dir "$ROOT_DIR/software/macOS" -C - -OL --create-dirs https://download.qgis.org/downloads/macos/qgis-macos-pr.dmg | ||
curl --output-dir "$ROOT_DIR/software/macOS" -C - -OL --create-dirs https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-arm64.sh | ||
curl --output-dir "$ROOT_DIR/software/macOS" -C - -OL --create-dirs https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-x86_64.sh | ||
curl --output-dir "$ROOT_DIR/software/macOS" -C - -OL --create-dirs https://github.com/jqlang/jq/releases/download/jq-1.7/jq-macos-amd64 | ||
curl --output-dir "$ROOT_DIR/software/macOS" -C - -OL --create-dirs https://github.com/jqlang/jq/releases/download/jq-1.7/jq-macos-arm64 | ||
curl --output-dir "$ROOT_DIR/software/macOS" -C - -OL --create-dirs https://www.danielgm.net/cc/release/CloudCompare-2.13.0-x86_64.dmg | ||
curl --output-dir "$ROOT_DIR/software/macOS" -C - -OL --create-dirs https://www.danielgm.net/cc/release/CloudCompare-2.13.0-arm64.dmg | ||
|
||
# mamba env create -f environment-pdal_workshop_image.yml --yes --quiet | ||
conda create -n "pdal-gen-workshop-image" python=3.11 --yes --quiet | ||
conda activate pdal-gen-workshop-image | ||
mamba install -c conda-forge conda-pack awscli --yes --quiet | ||
|
||
# grab cool-lidar content | ||
aws s3 sync s3://cool-lidar "$ROOT_DIR/cool-lidar" | ||
|
||
# grab conda environments | ||
mkdir -p "$ROOT_DIR/software/conda_environments" | ||
|
||
# make docker environment | ||
# NOTE: need to do this for x86_64 | ||
mkdir docker | ||
cd docker | ||
docker image build -t pdal-workshop data/workshop/docker | ||
docker save -o pdal-workshop_docker-arm64.tar.gz pdal-workshop | ||
cd .. | ||
cd Linux | ||
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o Miniconda3-latest-Linux-x86_64.sh | ||
cd ../.. | ||
cp "docker/pdal-workshop_docker*.tar.gz" "$ROOT_DIR/software/conda_environments/" | ||
|
||
|
||
mkdir -p staging/conda_environments | ||
# NOTE: this needs to happen for every platform, not just osx-arm64 | ||
mamba env create --file "$PWD/PDAL/doc/workshop/environment.yml" -p "$PWD/staging/conda_environments" --yes --quiet | ||
conda-pack -p staging/conda_environments -o "$ROOT_DIR/software/conda_environments/pdal-workshop_osx-arm64.tar.gz" -f | ||
|
||
chmod -R +w data PDAL exercises software | ||
rm -rf data PDAL | ||
|
||
zip_filename="PDAL_Workshop_complete.zip" | ||
zip -r "$zip_filename" exercises software #PDAL-docs.pdf | ||
|
||
rm -rf exercises software #PDAL-docs.pdf |