GeoWATCH On Windows =================== Windows usage is far less tested than Linux. If possible use Linux, but we will try to support windows. This document outlines high level steps to get geowatch running on windows. We will use miniconda3 for Python. Other options will works. Steps I used on windows 10: Installer Miniconda ~~~~~~~~~~~~~~~~~~~ Download `Miniconda3 Windows 64-bit installer `_ (with Python 3.10 as the default). Run the installer (using default settings). Install Bash ~~~~~~~~~~~~ We will also need msys or git-bash Download `the git-bash 64-bit standalone installer ` and install it with default settings. Environment Setup ~~~~~~~~~~~~~~~~~ From the start menu, run the Anaconda Prompt (miniconda). BEFORE installing geowatch we will need to use conda to get some dependencies that don't have windows binaries hosted on pypi. It is recommened to be in a virtual enviornment .. code:: bash conda create -n geowatch python=3.10 -y conda activate geowatch conda install gdal jq scikit-learn ffmpeg curl -c conda-forge -y # If you don't have a GPU conda install pytorch torchvision cpuonly -c pytorch -y # If you have a NVIDIA GPU (untested) conda install pytorch torchvision pytorch-cuda=11.8 -c pytorch nvidia -y .. .. pip install msvc-runtime Now that these initial requirements have been satisfied we will use pip to install the rest of the requirements: .. code:: bash pip install geowatch[headless] Optional: Installing From Source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you want to use the source code directly, open an anaconda prompt and run: .. code:: bash # Or the path to wherever you installed the git bash executable "C:\Program Files\Git\bin\bash.exe" source $USERPROFILE/miniconda3/etc/profile.d/conda.sh conda activate geowatch git clone https://gitlab.kitware.com/computer-vision/geowatch cd geowatch pip install -e .[headless] Running The Tutorial ~~~~~~~~~~~~~~~~~~~~ Unfortunately I've been unable to figure out how to get the bash kernel for Jupyter notebooks to work on Windows. To run the tutorial you will need to run the bash commands directly in msys or git-bash. From the start menu, open an anaconda prompt. In this shell we need to start bash and then activate our conda virtualenv: .. code:: bash "C:\Program Files\Git\bin\bash.exe" source $USERPROFILE/miniconda3/etc/profile.d/conda.sh conda activate geowatch The bash tutorial lives `here `_, and can be downloaded and run via: .. code:: bash curl -LJO https://gitlab.kitware.com/computer-vision/geowatch/-/raw/main/tutorial/tutorial1_rgb_network.sh # Show the tutorial (it's readable) cat tutorial1_rgb_network.sh # The tutorial is self-executing. source tutorial1_rgb_network.sh OR if you cloned the source repo: .. code:: bash cd geowatch ./tutorial/tutorial1_rgb_network.sh Or you can run the tutorial commands one at a time by copy / pasting commands from the script into your terminal. WSL2 Instructions ----------------- Ensure you have WSL2 enabled: In the start menu search for "Turn Windows Features On or Off". A Windows Features dialog will pop up. Scroll down to "Windows Subsystem for Linux" and ensure it is checked. Press OK, and restart your computer when prompted. After rebooting type "powershell" in the start menu. Right click the powershell icon and click run as administrator. .. code:: bash wsl --install -d Ubuntu You might be prompted to visit a web page for more information. You will need to do this to download and install a WSL2 Linux kernel update package. You might get an error: "Error: 0x80370102 The virtual machine could not be started because a required feature is not installed." Which means you need to enable virtualization in your BIOS, AND ensure that "Virtual Machine Platform" windows feature is enabled. https://support.microsoft.com/en-us/windows/enable-virtualization-on-windows-11-pcs-c5578302-6e43-4b4b-a449-8ced115f58e1 If this works you will be prompted to enter a new username/password. Running on WSL2 ~~~~~~~~~~~~~~~ If you have a working WSL2 prompt, install conda: .. code:: bash # Download the conda install script into a temporary directory mkdir -p ~/tmp cd ~/tmp # To update to a newer version see: # https://docs.conda.io/en/latest/miniconda_hashes.html for updating CONDA_INSTALL_SCRIPT=Miniconda3-py310_23.3.1-0-Linux-x86_64.sh curl https://repo.anaconda.com/miniconda/$CONDA_INSTALL_SCRIPT > $CONDA_INSTALL_SCRIPT # For security, it is important to verify the hash CONDA_EXPECTED_SHA256=aef279d6baea7f67940f16aad17ebe5f6aac97487c7c03466ff01f4819e5a651 echo "${CONDA_EXPECTED_SHA256} ${CONDA_INSTALL_SCRIPT}" > conda_expected_hash.sha256 if ! sha256sum --status -c conda_expected_hash.sha256; then echo "Downloaded file does not match hash! DO NOT CONTINUE!" else echo "Hash verified, continue with install" chmod +x $CONDA_INSTALL_SCRIPT # Install miniconda to user local directory _CONDA_ROOT=$HOME/.local/conda sh $CONDA_INSTALL_SCRIPT -b -p $_CONDA_ROOT # Activate the basic conda environment source $_CONDA_ROOT/etc/profile.d/conda.sh # Update the base conda update --name base conda --yes fi Create an activate the virtual env .. code:: bash conda create -n geowatch python=3.10 -y conda activate geowatch Install geowatch and GDAL: .. code:: bash pip install geowatch[headless,development,optional] pip install --prefer-binary GDAL>=3.4.1 --find-links https://girder.github.io/large_image_wheels You will also want to install ffmpeg: .. code:: bash sudo apt update -y sudo apt install ffmpeg -y It also may be necessary to install the following packages: .. code:: bash sudo apt install libxcb-icccm4, libxcb-image0, libxcb-keysyms1, libxcb-render-util0, libxcb-xkb1, libxkbcommon-x11-0 -y You can download the shell version of the tutorial: .. code:: bash curl -LJO https://gitlab.kitware.com/computer-vision/geowatch/-/raw/main/tutorial/tutorial1_rgb_network.sh # Can be run directly source tutorial1_rgb_network.sh Or the Jupyter version of the tutorial: .. code:: bash curl -LJO https://gitlab.kitware.com/computer-vision/geowatch/-/raw/main/tutorial/tutorial1_rgb_network.ipynb # ensure you have jupyter with bash_kernel installed pip install jupyter bash_kernel python -m bash_kernel.install # Start the notebook jupyter notebook tutorial1_rgb_network.ipynb For Jupyter on WSL you will need to start a browser on your host machine. Use the URL with the authentication token the ``jupyter notebook`` command printed out (you should be able to ctrl+click it)