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:
DataConfigThe 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)>}¶