This is the full BAS+SV+AC pipeline that extends the joint_bas_sc pipeline.

Currrently WIP, might not be totally right yet. Help wanted.

rm -rf /home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/sc_poly rm -rf /home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/eval/flat/sc_poly_eval

ls -al /home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/sc_poly ls -al /home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/eval/flat/sc_poly_eval/*

python -c “if 1:

path1 = ub.Path(‘/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/sc_poly’) path2 = ub.Path(‘/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/eval/flat/sc_poly_eval’)

blocklist = {‘sc_poly_id_49e78bbb’, ‘sc_poly_eval_id_40027f22’}

for p in path1.glob(‘*’):
if p.name not in blocklist:

print(p) p.delete()

for p in path2.glob(‘*’):
if p.name not in blocklist:

print(p) p.delete()

Baseline:

DVC_DATA_DPATH=$(geowatch_dvc --tags='phase2_data' --hardware=ssd)

# Should contain the high resolution data needed for SC
DVC_HIRES_DATA_DPATH=$(geowatch_dvc --tags='phase2_data' --hardware=hdd)

DVC_EXPT_DPATH=$(geowatch_dvc --tags='phase2_expt' --hardware=hdd)

geowatch schedule --params="
    pipeline: full

    # Convinience argument which uses SMART-specific assumptions
    # to correctly set the paths that the AC/SC clusters will be cropped
    # from.
    smart_highres_bundle: $DVC_HIRES_DATA_DPATH/Aligned-Drop7

    matrix:

        sc_pxl.package_fpath:
            # - $DVC_EXPT_DPATH/models/fusion/Drop4-SC/packages/Drop4_tune_V30_8GSD_V3/Drop4_tune_V30_8GSD_V3_epoch=2-step=17334.pt.pt
            - $DVC_EXPT_DPATH/models/fusion/Drop7-Cropped2GSD/packages/Drop7-Cropped2GSD_SC_bgrn_gnt_split6_V84/Drop7-Cropped2GSD_SC_bgrn_gnt_split6_V84_epoch17_step1548.pt

        bas_pxl.package_fpath:
            - $DVC_EXPT_DPATH/models/fusion/Drop7-MedianNoWinter10GSD/packages/Drop7-MedianNoWinter10GSD_bgrn_split6_V74/Drop7-MedianNoWinter10GSD_bgrn_split6_V74_epoch46_step4042.pt

        bas_pxl.test_dataset:
            - $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/KR_R001/imgonly-KR_R001-rawbands.kwcoco.zip
            - $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/KR_R002/imgonly-KR_R002-rawbands.kwcoco.zip
            # Uncomment to run on more regions
            # - $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/KW_C001/imgonly-KW_C001-rawbands.kwcoco.zip
            # - $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/CO_C001/imgonly-CO_C001-rawbands.kwcoco.zip
            # - $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/CN_C000/imgonly-CN_C000-rawbands.kwcoco.zip
            # - $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/NZ_R001/imgonly-NZ_R001-rawbands.kwcoco.zip
            # - $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/CH_R001/imgonly-CH_R001-rawbands.kwcoco.zip

        bas_pxl.chip_overlap: 0.3
        bas_pxl.chip_dims: auto
        bas_pxl.time_span: auto
        bas_pxl.time_sampling: soft4
        bas_poly.thresh:
            - 0.37
        bas_poly.inner_window_size: 1y
        bas_poly.inner_agg_fn: mean
        bas_poly.norm_ord: inf
        bas_poly.polygon_simplify_tolerance: 1
        bas_poly.agg_fn: probs
        bas_poly.time_thresh:
            - 0.8
        bas_poly.resolution: 10GSD
        bas_poly.moving_window_size: null
        bas_poly.poly_merge_method: 'v2'
        bas_poly.min_area_square_meters: 7200
        bas_poly.max_area_square_meters: 8000000
        bas_poly.time_pad_before:
            - 3 months
            - null
        bas_poly.boundary_region: $DVC_DATA_DPATH/annotations/drop7/region_models
        bas_poly_eval.true_site_dpath: $DVC_DATA_DPATH/annotations/drop7/site_models
        bas_poly_eval.true_region_dpath: $DVC_DATA_DPATH/annotations/drop7/region_models

        ######################
        ## SV Params Params ##
        ######################
        sv_crop.enabled: 1
        sv_crop.minimum_size: '256x256@2GSD'
        sv_crop.num_start_frames: 3
        sv_crop.num_end_frames: 3
        sv_crop.context_factor: 1.6

        sv_dino_boxes.enabled: 1
        sv_dino_boxes.package_fpath: $DVC_EXPT_DPATH/models/kitware/xview_dino.pt
        sv_dino_boxes.window_dims: 256
        sv_dino_boxes.window_overlap: 0.5
        sv_dino_boxes.fixed_resolution: 3GSD

        sv_dino_filter.enabled: 1
        sv_dino_filter.end_min_score:
            - 0.15
        sv_dino_filter.start_max_score: 1.0
        sv_dino_filter.box_score_threshold: 0.01
        sv_dino_filter.box_isect_threshold: 0.1

        sv_depth_score.enabled: 1
        sv_depth_score.model_fpath:
            - $DVC_EXPT_DPATH/models/depth_pcd/basicModel2.h5
        sv_depth_filter.threshold:
            - 0.10

        ##########################
        ## Cluster Sites Params ##
        ##########################
        cluster_sites.context_factor: 1.5
        cluster_sites.minimum_size: '128x128@8GSD'
        cluster_sites.maximum_size: '1024x1024@8GSD'

        ########################
        ## AC/SC CROP PARAMS  ##
        ########################
        sc_crop.target_gsd: 8GSD
        sc_crop.minimum_size: '128x128@8GSD'
        sc_crop.force_min_gsd: 8GSD
        sc_crop.context_factor: 1.0
        sc_crop.rpc_align_method: affine_warp
        sc_crop.sensor_to_time_window:
            - 'S2: 1month'

        ########################
        ## AC/SC PIXEL PARAMS ##
        ########################

        sc_pxl.tta_fliprot: 0.0
        sc_pxl.tta_time: 0.0
        sc_pxl.chip_overlap: 0.3
        sc_pxl.input_space_scale: 8GSD
        sc_pxl.window_space_scale: 8GSD
        sc_pxl.output_space_scale: 8GSD
        sc_pxl.chip_dims: '128,128'
        #sc_pxl.time_span: 6m
        #sc_pxl.time_sampling: auto
        #sc_pxl.time_steps: 12
        #sc_pxl.chip_dims: auto
        sc_pxl.set_cover_algo: null
        sc_pxl.resample_invalid_frames: 3
        sc_pxl.observable_threshold: 0.0
        sc_pxl.mask_low_quality: false
        sc_pxl.drop_unused_frames: true
        #sc_pxl.num_workers: 12
        #sc_pxl.batch_size: 1
        sc_pxl.write_workers: 0

        ########################
        ## AC/SC POLY PARAMS  ##
        ########################

        sc_poly.thresh:
            - 0.1
            - 0.07
        sc_poly.site_score_thresh:
            - 0.0
            - 0.35
        sc_poly.smoothing:
            - 0.0
            - 0.66
        sc_poly.boundaries_as:
            - polys
        sc_poly.resolution: 8GSD
        sc_poly.min_area_square_meters: 7200
        sc_poly.polygon_simplify_tolerance: null

        #############################
        ## AC/SC POLY EVAL PARAMS  ##
        #############################

        sc_poly_eval.true_site_dpath: $DVC_DATA_DPATH/annotations/drop7/site_models
        sc_poly_eval.true_region_dpath: $DVC_DATA_DPATH/annotations/drop7/region_models

        ##################################
        ## HIGH LEVEL PIPELINE CONTROLS ##
        ##################################
        bas_poly.enabled: 1
        bas_poly_eval.enabled: 1
        bas_pxl.enabled: 1
        bas_pxl_eval.enabled: 1
        sc_crop.enabled: 1
        sc_poly.enabled: 1
        sc_poly_eval.enabled: 1
        sc_pxl.enabled: 1
        sc_pxl_eval.enabled: 1
        sc_poly_viz.enabled: 0
        bas_poly_viz.enabled: 0

    submatrices2:
        - bas_poly.time_pad_before: 3 months
          bas_poly.time_pad_after: 3 months

        - bas_poly.time_pad_before: null
          bas_poly.time_pad_after: null
    " \
    --root_dpath="$DVC_EXPT_DPATH/_baseline_2023-10-12_full_pipeline" \
    --devices="0," --tmux_workers=8 \
    --backend=tmux --queue_name "_baseline_2023-10-12_full_pipeline" \
    --skip_existing=0 \
    --run=0
DVC_DATA_DPATH=$(geowatch_dvc --tags='phase2_data' --hardware=ssd)

# Should contain the high resolution data needed for SC
DVC_HIRES_DATA_DPATH=$(geowatch_dvc --tags='phase2_data' --hardware=hdd)

DVC_EXPT_DPATH=$(geowatch_dvc --tags='phase2_expt' --hardware=hdd)

geowatch schedule --params="
    pipeline: full

    # Convinience argument which uses SMART-specific assumptions
    # to correctly set the paths that the AC/SC clusters will be cropped
    # from.
    smart_highres_bundle: $DVC_HIRES_DATA_DPATH/Aligned-Drop7

    matrix:

        sc_pxl.package_fpath:
            - $DVC_EXPT_DPATH/models/fusion/Drop7-Cropped2GSD/packages/Drop7-Cropped2GSD_SC_bgrn_gnt_split6_V84/Drop7-Cropped2GSD_SC_bgrn_gnt_split6_V84_epoch17_step1548.pt

        bas_pxl.package_fpath:
            - $DVC_EXPT_DPATH/models/fusion/Drop7-MedianNoWinter10GSD/packages/Drop7-MedianNoWinter10GSD_bgrn_split6_V74/Drop7-MedianNoWinter10GSD_bgrn_split6_V74_epoch46_step4042.pt

        bas_pxl.test_dataset:
            - $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/KR_R001/imgonly-KR_R001-rawbands.kwcoco.zip
            #- $DVC_DATA_DPATH/Drop7-MedianNoWinter10GSD-V2/KR_R002/imgonly-KR_R002-rawbands.kwcoco.zip

        bas_pxl.chip_overlap: 0.3
        bas_pxl.chip_dims: auto
        bas_pxl.time_span: auto
        bas_pxl.time_sampling: soft4
        bas_poly.thresh:
            - 0.37
        bas_poly.inner_window_size: 1y
        bas_poly.inner_agg_fn: mean
        bas_poly.norm_ord: inf
        bas_poly.polygon_simplify_tolerance: 1
        bas_poly.agg_fn: probs
        bas_poly.time_thresh:
            - 0.8
        bas_poly.resolution: 10GSD
        bas_poly.moving_window_size: null
        bas_poly.poly_merge_method: 'v2'
        bas_poly.min_area_square_meters: 7200
        bas_poly.max_area_square_meters: 8000000
        bas_poly.time_pad_before:
            - 3 months
            - null
        # bas_poly.time_pad_after:
        #    - 3 months
        bas_poly.boundary_region: $DVC_DATA_DPATH/annotations/drop7/region_models
        bas_poly_eval.true_site_dpath: $DVC_DATA_DPATH/annotations/drop7/site_models
        bas_poly_eval.true_region_dpath: $DVC_DATA_DPATH/annotations/drop7/region_models

        ######################
        ## SV Params Params ##
        ######################
        sv_crop.enabled: 1
        sv_crop.minimum_size: '256x256@2GSD'
        sv_crop.num_start_frames: 3
        sv_crop.num_end_frames: 3
        sv_crop.context_factor: 1.6

        sv_dino_boxes.enabled: 1
        sv_dino_boxes.package_fpath: $DVC_EXPT_DPATH/models/kitware/xview_dino.pt
        sv_dino_boxes.window_dims: 256
        sv_dino_boxes.window_overlap: 0.5
        sv_dino_boxes.fixed_resolution: 3GSD

        sv_dino_filter.enabled: 1
        sv_dino_filter.end_min_score:
            - 0.15
        sv_dino_filter.start_max_score: 1.0
        sv_dino_filter.box_score_threshold: 0.01
        sv_dino_filter.box_isect_threshold: 0.1

        sv_depth_score.enabled: 1
        sv_depth_score.model_fpath:
            - $DVC_EXPT_DPATH/models/depth_pcd/basicModel2.h5
        sv_depth_filter.threshold:
            - 0.10

        ##########################
        ## Cluster Sites Params ##
        ##########################
        cluster_sites.context_factor: 1.5
        cluster_sites.minimum_size: '128x128@8GSD'
        cluster_sites.maximum_size: '1024x1024@8GSD'

        ########################
        ## AC/SC CROP PARAMS  ##
        ########################
        sc_crop.target_gsd: 8GSD
        sc_crop.minimum_size: '128x128@8GSD'
        sc_crop.force_min_gsd: 8GSD
        sc_crop.context_factor: 1.0
        sc_crop.rpc_align_method: affine_warp
        sc_crop.sensor_to_time_window:
            - 'S2: 1month'

        ########################
        ## AC/SC PIXEL PARAMS ##
        ########################

        sc_pxl.tta_fliprot: 0.0
        sc_pxl.tta_time: 0.0
        sc_pxl.chip_overlap: 0.3
        sc_pxl.input_space_scale: 8GSD
        sc_pxl.window_space_scale: 8GSD
        sc_pxl.output_space_scale: 8GSD
        sc_pxl.chip_dims: '128,128'
        #sc_pxl.time_span: 6m
        #sc_pxl.time_sampling: auto
        #sc_pxl.time_steps: 12
        #sc_pxl.chip_dims: auto
        sc_pxl.set_cover_algo: null
        sc_pxl.resample_invalid_frames: 3
        sc_pxl.observable_threshold: 0.0
        sc_pxl.mask_low_quality: false
        sc_pxl.drop_unused_frames: true
        #sc_pxl.num_workers: 12
        #sc_pxl.batch_size: 1
        sc_pxl.write_workers: 0

        ########################
        ## AC/SC POLY PARAMS  ##
        ########################

        sc_poly.thresh:
            #- 0.07
            #- 0.1
            #- 0.275
            - 0.3
            #- 0.325
            #- 0.35
            #- 0.4
        sc_poly.site_score_thresh:
            #- 0.0
            - 0.3
            #- 0.35
        sc_poly.smoothing:
            - 0.0
            #- 0.66
        sc_poly.boundaries_as:
            #- polys
            - bounds
        sc_poly.resolution: 8GSD
        sc_poly.min_area_square_meters: 7200
        sc_poly.new_algo: crall
        sc_poly.polygon_simplify_tolerance:
            #- 0
            - 1

        #############################
        ## AC/SC POLY EVAL PARAMS  ##
        #############################

        sc_poly_eval.true_site_dpath: $DVC_DATA_DPATH/annotations/drop7/site_models
        sc_poly_eval.true_region_dpath: $DVC_DATA_DPATH/annotations/drop7/region_models

        ##################################
        ## HIGH LEVEL PIPELINE CONTROLS ##
        ##################################
        bas_poly.enabled: 1
        bas_poly_eval.enabled: 1
        bas_pxl.enabled: 1
        bas_pxl_eval.enabled: 1
        sc_crop.enabled: 1
        sc_poly.enabled: 1
        sc_poly_eval.enabled: 1
        sc_pxl.enabled: 1
        sc_pxl_eval.enabled: 1
        sc_poly_viz.enabled: 0
        bas_poly_viz.enabled: 0

    submatrices2:
        - bas_poly.time_pad_before: 3 months
          bas_poly.time_pad_after: 3 months

        - bas_poly.time_pad_before: null
          bas_poly.time_pad_after: null
    " \
    --root_dpath="$DVC_EXPT_DPATH/_baseline_2023-10-12_full_pipeline" \
    --devices="0," --tmux_workers=8 \
    --backend=tmux --queue_name "_baseline_2023-10-12_full_pipeline" \
    --skip_existing=0 \
    --run=0 --print-commands


DVC_EXPT_DPATH=$(geowatch_dvc --tags='phase2_expt' --hardware=auto)
python -m geowatch.mlops.aggregate \
    --pipeline=full \
    --target "
        - $DVC_EXPT_DPATH/_baseline_2023-10-12_full_pipeline
    " \
    --output_dpath="$DVC_EXPT_DPATH/_baseline_2023-10-12_full_pipeline/aggregate" \
    --resource_report=0 \
    --eval_nodes="
        - sc_poly_eval
        #- bas_poly_eval
        #- bas_pxl_eval
    " \
    --plot_params="
        enabled: 0
        stats_ranking: 0
        min_variations: 1
        params_of_interest:
            - params.bas_poly.thresh
    " \
    --stdout_report="
        top_k: 111
        per_group: 1
        macro_analysis: 0
        analyze: 0
        print_models: True
        reference_region: final
        concise: 1
        show_csv: 0
    " --rois="KR_R002"
python -m geowatch.cli.run_tracker \
    --input_kwcoco "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/bas_pxl/bas_pxl_id_0bf6f958/pred.kwcoco.zip" \
    --default_track_fn saliency_heatmaps \
    --track_kwargs '{"agg_fn": "probs", "thresh": 0.37, "inner_window_size": "1y", "inner_agg_fn": "mean", "norm_ord": "inf", "polygon_simplify_tolerance": 1, "time_thresh": 0.8, "resolution": "10GSD", "moving_window_size": null, "poly_merge_method": "v2", "min_area_square_meters": 7200, "max_area_square_meters": 8000000}' \
    --clear_annots=True \
    --out_site_summaries_fpath "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/bas_poly/bas_poly_id_2444e464/site_summaries_manifest.json" \
    --out_site_summaries_dir "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/bas_poly/bas_poly_id_2444e464/site_summaries" \
    --out_sites_fpath "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/bas_poly/bas_poly_id_2444e464/sites_manifest.json" \
    --out_sites_dir "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/bas_poly/bas_poly_id_2444e464/sites" \
    --out_kwcoco "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/bas_poly/bas_poly_id_2444e464/poly.kwcoco.zip" \
    --boundary_region=/home/joncrall/remote/toothbrush/data/dvc-repos/smart_data_dvc-ssd/annotations/drop7/region_models \
    --site_summary=None

python -m geowatch.cli.run_tracker \
    --input_kwcoco "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/sc_pxl/sc_pxl_id_c26ada5f/pred.kwcoco.zip" \
    --default_track_fn class_heatmaps \
    --track_kwargs '{"boundaries_as": "bounds", "thresh": 0.07, "resolution": "8GSD", "min_area_square_meters": 7200, "new_algo": "crall"}' \
    --clear_annots=True \
    --out_site_summaries_fpath "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/custom/flat/sc_poly/sc_poly_id_6e4c366b/site_summaries_manifest.json" \
    --out_site_summaries_dir "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/custom/flat/sc_poly/sc_poly_id_6e4c366b/site_summaries" \
    --out_sites_fpath "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/custom/flat/sc_poly/sc_poly_id_6e4c366b/sites_manifest.json" \
    --out_sites_dir "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/custom/flat/sc_poly/sc_poly_id_6e4c366b/sites" \
    --out_kwcoco "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/custom/flat/sc_poly/sc_poly_id_6e4c366b/poly.kwcoco.zip" \
    --viz_out_dir "/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/custom/flat/sc_poly/sc_poly_id_6e4c366b/viz" \
    --boundary_region=None \
    --site_summary=/home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/pred/flat/sv_depth_filter/sv_depth_filter_id_6c373e98/sv_depth_out_region.geojson


geowatch visualize /home/joncrall/remote/toothbrush/data/dvc-repos/smart_expt_dvc/_baseline_2023-10-12_full_pipeline/custom/flat/sc_poly/sc_poly_id_6e4c366b/poly.kwcoco.zip --smart