GEOWATCH Onboarding

The purpose of this document is to guide a new user in the installation and usage of the GEOWATCH system.

For a high level overview of the system, see the overview.

This document assumes you are proficient with Python and have an understanding of virtual environments.

For internal collaberators you will want to clone this geowatch Python repo, and the two DVC repos one for data and the other for experimental results. We recommend the following directory structure:

# Create a directory for CODE
mkdir -p $HOME/code

# Create a directory for DATA
# Either:
mkdir -p $HOME/data/

# XOR: create a symlink to a drive that has space on it.
ln -s /data $HOME/data

# Clone the code repos
# Internal
# git clone https://gitlab.kitware.com/smart/watch/  $HOME/code/watch

# Public
git clone https://gitlab.kitware.com/computer-vision/geowatch/  $HOME/code/watch

# Clone the data repos
mkdir -p $HOME/data/dvc-repos
git clone https://gitlab.kitware.com/smart/smart_data_dvc/ $HOME/data/dvc-repos/smart_data_dvc
git clone https://gitlab.kitware.com/smart/smart_expt_dvc/ $HOME/data/dvc-repos/smart_expt_dvc

# Or if you have credentials
git clone git@gitlab.kitware.com:smart/smart_data_dvc.git $HOME/data/dvc-repos/smart_data_dvc
git clone git@gitlab.kitware.com:smart/smart_expt_dvc.git $HOME/data/dvc-repos/smart_expt_dvc

For details on installing the geowatch system in development mode see installing geowatch for development guide.

For more detailed instructions on setting up the DVC repos see: accessing dvc repos.

This onboarding document is a work in progress. While things are are still being organized, here is a list of current documentation files:

For quick reference, review the list of current documentation files in the README

Please ensure you review :

TODO: Point to the FAQ examples in kwcoco and other projects with them

Tutorials

The following tutorials detail how to train simple fusion models

Module Structure

The current geowatch module struture is summarized as follows:

╙── geowatch {'.py': 4, '': 1}
    ├─╼ cli {'.py': 45}
       ├─╼ smartflow {'.py': 17, '.rst': 1}
       └─╼ special {'.py': 2}
    ├─╼ demo {'.py': 8}
       └─╼ metrics_demo {'.py': 6}
    ├─╼ mlops {'.py': 13}
    ├─╼ stac {'.py': 3}
    ├─╼ monkey {'.py': 10}
    ├─╼ geoannots {'.py': 3}
    ├─╼ gis {'.py': 5}
       └─╼ sensors {'.py': 2}
    ├─╼ rc {'.json': 3, '.gtx': 1, '.xml': 1, '.py': 2}
       └─╼ requirements {'.txt': 18, '.py': 1}
    ├─╼ utils {'.py': 39}
       └─╼ lightning_ext {'.py': 13}
           └─╼ callbacks {'.py': 8, '.txt': 1}
    └─╼ tasks {'.py': 1}
        ├─╼ fusion {'.py': 9, '.md': 1}
           ├─╼ datamodules {'.py': 10}
              └─╼ temporal_sampling {'.py': 7, '.pyx': 1}
           ├─╼ methods {'.py': 7}
           └─╼ architectures {'.py': 6}
        ├─╼ dino_detector {'.py': 3, '.sh': 1}
        ├─╼ depth {'.py': 8, '.json': 1, '.md': 1}
        ├─╼ sam {'.py': 2}
        ├─╼ rutgers_material_seg {'.py': 5}
           ├─╼ datasets {'.py': 13}
           ├─╼ models {'.py': 21}
           ├─╼ utils {'.py': 6}
           └─╼ scripts {'.py': 3}
        ├─╼ metrics {'.py': 3}
        ├─╼ cold {'.py': 11, '.yaml': 1}
        ├─╼ mae {'.py': 4, '': 1}
        ├─╼ invariants {'.py': 8, '.md': 1, '': 1}
           ├─╼ late_fusion {'.py': 3}
           ├─╼ data {'.py': 4}
           └─╼ utils {'.py': 6}
        ├─╼ rutgers_material_change_detection {'.py': 4, '.md': 1}
           ├─╼ datasets {'.py': 5}
           ├─╼ models {'.py': 23, '.tmp': 1}
           └─╼ utils {'.py': 6}
        ├─╼ landcover {'.py': 8, '.md': 1}
        ├─╼ uky_temporal_prediction {'.py': 7, '.md': 1, '.yml': 1, '': 1}
           └─╼ models {'.py': 4}
        ├─╼ tracking {'.py': 11}
        └─╼ depth_pcd {'.py': 5}