geowatch.tasks.cold.predict module

Main prediction script for cold

SeeAlso:

../../cli/queue_cli/prepare_teamfeats.py

predict.py *

prepare_kwcoco.py

tile_processing_kwcoco.py

export_cold_result_kwcoco.py

assemble_cold_result_kwcoco.py

CommandLine

##############
### SMALL TEST
##############

DATA_DVC_DPATH=$(geowatch_dvc --tags=phase2_data --hardware="auto")
EXPT_DVC_DPATH=$(geowatch_dvc --tags=phase2_expt --hardware="auto")

mkdir -p $DATA_DVC_DPATH/Drop6-SMALL
kwcoco subset \
    --src "$DATA_DVC_DPATH/Drop6/imgonly-KR_R001.kwcoco.json" \
    --dst "$DATA_DVC_DPATH/Drop6-SMALL/imgonly-KR_R001.kwcoco.json" \
    --select_images '(.sensor_coarse == "L8")'

# Pull out a small selection of images just so we can test.
python -c "if 1:
    import ubelt as ub
    import kwcoco
    dset = kwcoco.CocoDataset('$DATA_DVC_DPATH/Drop6-SMALL/imgonly-KR_R001.kwcoco.json')
    from kwutil import util_time
    images = dset.images()
    dates = list(map(util_time.coerce_datetime, images.lookup('date_captured')))
    flags = [d.year < 2017 for d in dates]
    chosen = images.compress(flags)
    sub = dset.subset(chosen)
    sub.fpath = dset.fpath
    sub.dump()
"

DATA_DVC_DPATH=$(geowatch_dvc --tags=phase2_data --hardware="auto")
EXPT_DVC_DPATH=$(geowatch_dvc --tags=phase2_expt --hardware="auto")
python -m geowatch.tasks.cold.predict \
    --coco_fpath="$DATA_DVC_DPATH/Drop6-SMALL/imgonly-KR_R001.kwcoco.json" \
    --out_dpath="$DATA_DVC_DPATH/Drop6-SMALL/_pycold" \
    --sensors='L8' \
    --resolution=30GSD \
    --mod_coco_fpath="$DATA_DVC_DPATH/Drop6-SMALL/_pycold/imgonly-KR_R001-cold.kwcoco.json" \
    --adj_cloud=False \
    --method='COLD' \
    --prob=0.99 \
    --conse=6 \
    --cm_interval=60 \
    --year_lowbound=None \
    --year_highbound=None \
    --coefs=cv \
    --coefs_bands=0,1,2,3,4,5 \
    --timestamp=False \
    --workermode='process' \
    --workers=16

kwcoco reroot \
    --src="$DATA_DVC_DPATH"/Drop6-SMALL/_pycold/imgonly-KR_R001-cold.kwcoco.json \
    --dst="$DATA_DVC_DPATH"/Drop6-SMALL/_pycold/imgonly-KR_R001-cold.fixed.kwcoco.zip \
    --old_prefix="KR_R001" --new_prefix="../KR_R001"

geowatch visualize \
    "$DATA_DVC_DPATH"/Drop6-SMALL/_pycold/imgonly-KR_R001-cold.fixed.kwcoco.zip \
    --channels="L8:(red|green|blue,red_COLD_cv|green_COLD_cv|blue_COLD_cv)" \
    --exclude_sensors="S2" \
    --smart=True --skip_aggressive=True

###################################################################################
### FULL REGION TEST: COLD FEATURES WITH HIGH TEMPORAL RESOLUTION (HTR) + L8/S2 ###
###################################################################################

DATA_DVC_DPATH=$(geowatch_dvc --tags=phase2_data --hardware="auto")
EXPT_DVC_DPATH=$(geowatch_dvc --tags=phase2_expt --hardware="auto")
python -m geowatch.tasks.cold.predict \
    --coco_fpath="$DATA_DVC_DPATH/Aligned-Drop7/KR_R001/imgonly-KR_R001.kwcoco.zip" \
    --out_dpath="$DATA_DVC_DPATH/Aligned-Drop7/_pycold_L8S2_HTR" \
    --mod_coco_fpath="$DATA_DVC_DPATH/Aligned-Drop7/KR_R001/imgonly_KR_R001_cold-L8S2-HTR.kwcoco.zip" \
    --sensors='L8,S2' \
    --coefs=cv,rmse,a0,a1,b1,c1 \
    --prob=0.99 \
    --conse=8 \
    --coefs_bands=0,1,2,3,4,5 \
    --combine=False \
    --resolution='10GSD' \
    --workermode='process' \
    --workers=8

######################################################################
### FULL REGION TEST: TRANSFER COLD FEATURE FROM RAW TO COMBINED INPUT
######################################################################

DATA_DVC_DPATH=$(geowatch_dvc --tags=phase2_data --hardware="auto")
EXPT_DVC_DPATH=$(geowatch_dvc --tags=phase2_expt --hardware="auto")
python -m geowatch.tasks.cold.transfer_features \
    --coco_fpath="$DATA_DVC_DPATH/Drop6/imgonly_KR_R001_cold-HTR.kwcoco.zip" \
    --combine_fpath="$DATA_DVC_DPATH/Drop6-MeanYear10GSD-V2/imgonly-KR_R001.kwcoco.zip" \
    --new_coco_fpath="$DATA_DVC_DPATH/Drop6-MeanYear10GSD-V2/imganns-KR_R001_uconn_cold.kwcoco.zip"

kwcoco stats "$DATA_DVC_DPATH/Drop6-MeanYear10GSD-V2/imganns-KR_R001_uconn_cold.kwcoco.zip"
geowatch stats "$DATA_DVC_DPATH/Drop6-MeanYear10GSD-V2/imganns-KR_R001_uconn_cold.kwcoco.zip"
kwcoco validate "$DATA_DVC_DPATH/Drop6-MeanYear10GSD-V2/imganns-KR_R001_uconn_cold.kwcoco.zip"

DATA_DVC_DPATH=$(geowatch_dvc --tags=phase2_data --hardware="auto")
geowatch visualize \
    "$DATA_DVC_DPATH/Drop6-MeanYear10GSD-V2/imganns-KR_R001_uconn_cold.kwcoco.zip" \
    --channels="L8:(red|green|blue,red_COLD_a1|green_COLD_a1|blue_COLD_a1,red_COLD_cv|green_COLD_cv|blue_COLD_cv,red_COLD_rmse|green_COLD_rmse|blue_COLD_rmse)" \
    --exclude_sensors=WV,PD,S2 \
    --smart=True

########################
### MULTIPLE REGION TEST
########################
DVC_DATA_DPATH=$(geowatch_dvc --tags='phase2_data' --hardware=auto)

"$BUNDLE_DPATH"/imganns-*BR_[RC]*.kwcoco.zip \
"$BUNDLE_DPATH"/imganns-*KR_[RC]*.kwcoco.zip \
"$BUNDLE_DPATH"/imganns-*NZ_[RC]*.kwcoco.zip \
"$BUNDLE_DPATH"/imganns-*US_[RC]*.kwcoco.zip \

echo "$DVC_DATA_DPATH"
BUNDLE_DPATH=$DVC_DATA_DPATH/Drop6
python -m geowatch.cli.queue_cli.prepare_teamfeats \
    --base_fpath \
        "$BUNDLE_DPATH"/imganns-*AE_[RC]*.kwcoco.zip \
        "$BUNDLE_DPATH"/imganns-*BH_[RC]*.kwcoco.zip \
        "$BUNDLE_DPATH"/imganns-*CH_[RC]*.kwcoco.zip \
        "$BUNDLE_DPATH"/imganns-*LT_[RC]*.kwcoco.zip \
        "$BUNDLE_DPATH"/imganns-*NZ_[RC]*.kwcoco.zip \
        "$BUNDLE_DPATH"/imganns-*PE_[RC]*.kwcoco.zip \
        "$BUNDLE_DPATH"/imganns-*QA_[RC]*.kwcoco.zip \
        "$BUNDLE_DPATH"/imganns-*SA_[RC]*.kwcoco.zip \
        "$BUNDLE_DPATH"/imganns-*US_C*.kwcoco.zip \
    --with_cold=1 \
    --with_landcover=0 \
    --with_materials=0 \
    --with_invariants=0 \
    --with_depth=0 \
    --skip_existing=1 \
    --cold_workers=8 \
    --cold_workermode=thread \
    --tmux_workers=2 \
    --backend=tmux --run=0
class geowatch.tasks.cold.predict.ColdPredictConfig(*args, **kwargs)[source]

Bases: DataConfig

The docstring will be the description in the CLI help

Valid options: []

Parameters:
  • *args – positional arguments for this data config

  • **kwargs – keyword arguments for this data config

default = {'adj_cloud': <Value(False)>, 'cm_interval': <Value(60)>, 'coco_fpath': <Value(None)>, 'coefs': <Value(None)>, 'coefs_bands': <Value(None)>, 'combine': <Value(False)>, 'combined_coco_fpath': <Value(None)>, 'conse': <Value(6)>, 'exclude_first': <Value(True)>, 'method': <Value('COLD')>, 'mod_coco_fpath': <Value(None)>, 'out_dpath': <Value(None)>, 'prob': <Value(0.99)>, 'resolution': <Value('30GSD')>, 'sensors': <Value('L8')>, 'timestamp': <Value(False)>, 'track_emissions': <Value(True)>, 'workermode': <Value('process')>, 'workers': <Value(16)>, 'write_kwcoco': <Value(True)>, 'year_highbound': <Value(None)>, 'year_lowbound': <Value(None)>}
geowatch.tasks.cold.predict.cold_predict_main(cmdline=1, **kwargs)[source]
Parameters:

cmdline (int, optional) – _description_. Defaults to 1.

geowatch.tasks.cold.predict.read_json_metadata(folder_path)[source]