69 lines
2.5 KiB
JavaScript
69 lines
2.5 KiB
JavaScript
import { create } from 'zustand';
|
|
|
|
const s = (set, key) => (v) =>
|
|
set((state) => ({ [key]: typeof v === 'function' ? v(state[key]) : v }));
|
|
|
|
export const usePairingStore = create((set) => ({
|
|
// Pairing
|
|
foundPairs: [],
|
|
showPairingModal: false,
|
|
pairingFiles: null,
|
|
pairingAoiMode: 'shp',
|
|
pairingRegionOptions: { provinces: [], cities: [] },
|
|
pairingRegionSelection: { province: '', city: '' },
|
|
pairingRegionLoading: false,
|
|
pairingRegionError: '',
|
|
pairingParams: {
|
|
time_baseline_min: 1,
|
|
time_baseline_max: 90,
|
|
overlap_threshold: 0.5,
|
|
spatial_baseline_max_meters: 3000,
|
|
limit_footprint_center_distance: false,
|
|
coverage_diversity_penalty: 0.3,
|
|
require_same_imaging_mode: false,
|
|
require_same_polarization: false,
|
|
aoi_overlap_threshold: 0,
|
|
start_date: '',
|
|
// === 新增字段 ===
|
|
master_date_from: '',
|
|
master_date_to: '',
|
|
slave_date_from: '',
|
|
slave_date_to: '',
|
|
strategy: 'all',
|
|
num_connections: 1,
|
|
reference_image_id: null,
|
|
allowed_satellites: ['LT1A', 'LT1B'],
|
|
cross_satellite_pairing: false,
|
|
},
|
|
pairingAlert: { warnings: [], fallbackUsed: false },
|
|
// PS
|
|
showPsModal: false,
|
|
psFiles: null,
|
|
psAoiMode: 'shp',
|
|
psRegionOptions: { provinces: [], cities: [] },
|
|
psRegionSelection: { province: '', city: '' },
|
|
psRegionLoading: false,
|
|
psRegionError: '',
|
|
psResults: null,
|
|
psParams: { initial_overlap_threshold: 0.3, final_overlap_threshold: 0.95 },
|
|
setFoundPairs: s(set, 'foundPairs'),
|
|
setShowPairingModal: s(set, 'showPairingModal'),
|
|
setPairingFiles: s(set, 'pairingFiles'),
|
|
setPairingAoiMode: s(set, 'pairingAoiMode'),
|
|
setPairingRegionOptions: s(set, 'pairingRegionOptions'),
|
|
setPairingRegionSelection: s(set, 'pairingRegionSelection'),
|
|
setPairingRegionLoading: s(set, 'pairingRegionLoading'),
|
|
setPairingRegionError: s(set, 'pairingRegionError'),
|
|
setPairingParams: s(set, 'pairingParams'),
|
|
setPairingAlert: s(set, 'pairingAlert'),
|
|
setShowPsModal: s(set, 'showPsModal'),
|
|
setPsFiles: s(set, 'psFiles'),
|
|
setPsAoiMode: s(set, 'psAoiMode'),
|
|
setPsRegionOptions: s(set, 'psRegionOptions'),
|
|
setPsRegionSelection: s(set, 'psRegionSelection'),
|
|
setPsRegionLoading: s(set, 'psRegionLoading'),
|
|
setPsRegionError: s(set, 'psRegionError'),
|
|
setPsResults: s(set, 'psResults'),
|
|
setPsParams: s(set, 'psParams'),
|
|
}));
|