From 27e35c3665cd2c15993b26a18af426543e8cac9a Mon Sep 17 00:00:00 2001 From: Dustella Date: Fri, 21 Feb 2025 14:25:27 +0800 Subject: [PATCH] fix bugs --- components.d.ts | 2 +- src/components/DenseFramework.vue | 2 +- src/components/dense/RadarSingle.vue | 54 ++++--- .../dense/saber/day_cycle_power_wave_plot.vue | 43 +++++- .../dense/saber/day_fft_ifft_plot.vue | 42 +++-- .../dense/saber/month_power_wave_plot.vue | 82 ---------- .../saber/month_year_power_wave_plot.vue | 145 ++++++++++++++++++ src/pages/balloon/gravity_wave/0-perday.vue | 17 +- src/pages/balloon/gravity_wave/1-year.vue | 56 +++++-- src/pages/cosmic/gravity_wave/0-perday.vue | 33 +++- src/pages/cosmic/gravity_wave/1-multiday.vue | 35 ++++- src/pages/saber/gravity_wave/1-monthly.vue | 2 +- src/pages/saber/planet_wave/1-monthly.vue | 6 +- 13 files changed, 373 insertions(+), 146 deletions(-) delete mode 100644 src/components/dense/saber/month_power_wave_plot.vue create mode 100644 src/components/dense/saber/month_year_power_wave_plot.vue diff --git a/components.d.ts b/components.d.ts index 0d20ac8..e91b6f3 100644 --- a/components.d.ts +++ b/components.d.ts @@ -104,7 +104,7 @@ declare module 'vue' { MenubarSubContent: typeof import('./src/components/ui/menubar/MenubarSubContent.vue')['default'] MenubarSubTrigger: typeof import('./src/components/ui/menubar/MenubarSubTrigger.vue')['default'] MenubarTrigger: typeof import('./src/components/ui/menubar/MenubarTrigger.vue')['default'] - Month_power_wave_plot: typeof import('./src/components/dense/saber/month_power_wave_plot.vue')['default'] + Month_year_power_wave_plot: typeof import('./src/components/dense/saber/month_year_power_wave_plot.vue')['default'] NavigationMenu: typeof import('./src/components/ui/navigation-menu/NavigationMenu.vue')['default'] NavigationMenuContent: typeof import('./src/components/ui/navigation-menu/NavigationMenuContent.vue')['default'] NavigationMenuIndicator: typeof import('./src/components/ui/navigation-menu/NavigationMenuIndicator.vue')['default'] diff --git a/src/components/DenseFramework.vue b/src/components/DenseFramework.vue index 896211f..d85407c 100644 --- a/src/components/DenseFramework.vue +++ b/src/components/DenseFramework.vue @@ -85,7 +85,7 @@ function download() { - + diff --git a/src/components/dense/RadarSingle.vue b/src/components/dense/RadarSingle.vue index da9773f..137b09c 100644 --- a/src/components/dense/RadarSingle.vue +++ b/src/components/dense/RadarSingle.vue @@ -43,12 +43,12 @@ const queryUrl = computed(() => { query.set('model_name', mode) query.set('wind_type', windType) query.set('H', (selectedH.value * 1000).toString()) - query.set('mode', selectedDateType.value) + query.set('mode', props.isDay ? 'day' : selectedDateType.value) if (props.isDay) { const queryDay = `${selectedDate.value.slice(0, 4)}-${selectedDate.value.slice(4, 6)}-${selectedDate.value.slice(6, 8)}` query.set('day', queryDay) } - if (selectedDateType.value === 'month') { + if (!props.isDay && selectedDateType.value === 'month') { query.set('month', selectedMonth.value) } // const query = `?station=${station}&year=${year}&model_name=${mode}&wind_type=${windType}&H=${selectedH.value}` @@ -85,11 +85,16 @@ onMounted(async () => { }) paths.value = data + if (props.isDay) { + selectedDate.value = Array.from(dates.value).filter( + d => d.startsWith(`${selectedYear.value}${selectedMonth.value.padStart(2, '0')}`), + )[0] + } }) -watch(selectedYear, (newV) => { +watch([selectedYear, selectedMonth], () => { selectedDate.value = Array.from(dates.value).filter( - d => d.startsWith(newV), + d => d.startsWith(`${selectedYear.value}${selectedMonth.value.padStart(2, '0')}`), )[0] }) @@ -179,26 +184,7 @@ watch(selectedYear, (newV) => { -
- - -
+
+
+ + +
diff --git a/src/components/dense/saber/day_cycle_power_wave_plot.vue b/src/components/dense/saber/day_cycle_power_wave_plot.vue index 317b669..c65806e 100644 --- a/src/components/dense/saber/day_cycle_power_wave_plot.vue +++ b/src/components/dense/saber/day_cycle_power_wave_plot.vue @@ -22,10 +22,28 @@ const lat_ranges = [ '50,60', ] +const lon_ranges = [ + '0 ~ 24', + '24 ~ 48', + '48 ~ 72', + '72 ~ 96', + '96 ~ 120', + '120 ~ 144', + '144 ~ 168', + '168 ~ 192', + '192 ~ 216', + '216 ~ 240', + '240 ~ 264', + '264 ~ 288', + '288 ~ 312', + '312 ~ 336', + '336 ~ 360', +] + const selected = reactive({ path: '', day: '', - cycle_no: 1, + cycle_no: '1', lat_range: '0,10', }) @@ -105,14 +123,31 @@ watch(() => selected.path, async () => { - - + + + diff --git a/src/components/dense/saber/day_fft_ifft_plot.vue b/src/components/dense/saber/day_fft_ifft_plot.vue index d05b4c8..e31a0fd 100644 --- a/src/components/dense/saber/day_fft_ifft_plot.vue +++ b/src/components/dense/saber/day_fft_ifft_plot.vue @@ -16,7 +16,7 @@ import { currentSaberDays, parseDayOfYear, refreshCurrentSaberDays, refreshPath, const selected = reactive({ path: './saber/data/2012/SABER_Temp_O3_April2012_v2.0.nc', day: '', - cycle_no: 1, + cycle_no: '1', lat_range: '0,10', }) @@ -29,6 +29,24 @@ const lat_ranges = [ '50,60', ] +const lon_ranges = [ + '0 ~ 24', + '24 ~ 48', + '48 ~ 72', + '72 ~ 96', + '96 ~ 120', + '120 ~ 144', + '144 ~ 168', + '168 ~ 192', + '192 ~ 216', + '216 ~ 240', + '240 ~ 264', + '264 ~ 288', + '288 ~ 312', + '312 ~ 336', + '336 ~ 360', +] + const urll = computed(() => { // const path = encodeURIComponent(selected.path) // const day = encodeURIComponent(selected.day) @@ -105,14 +123,20 @@ watch(() => selected.path, async () => { - - - - - - - - + + diff --git a/src/components/dense/saber/month_power_wave_plot.vue b/src/components/dense/saber/month_power_wave_plot.vue deleted file mode 100644 index e6569af..0000000 --- a/src/components/dense/saber/month_power_wave_plot.vue +++ /dev/null @@ -1,82 +0,0 @@ - -{ - "meta": { - "title": "Saber月周期功率波图", - "description": "Saber月周期功率波图", - "group": "Saber", - "item_name": "月周期功率波图" - } -} - - - - - - - diff --git a/src/components/dense/saber/month_year_power_wave_plot.vue b/src/components/dense/saber/month_year_power_wave_plot.vue new file mode 100644 index 0000000..3b8854e --- /dev/null +++ b/src/components/dense/saber/month_year_power_wave_plot.vue @@ -0,0 +1,145 @@ + +{ + "meta": { + "title": "Saber月周期功率波图", + "description": "Saber月周期功率波图", + "group": "Saber", + "item_name": "月周期功率波图" + } +} + + + + + + + diff --git a/src/pages/balloon/gravity_wave/0-perday.vue b/src/pages/balloon/gravity_wave/0-perday.vue index c64f7f1..85acf13 100644 --- a/src/pages/balloon/gravity_wave/0-perday.vue +++ b/src/pages/balloon/gravity_wave/0-perday.vue @@ -108,14 +108,7 @@ async function customHandle(resp: Response) { {{ k }}: {{ v }} - - - - - {{ m }} - - - + + + + + + {{ m }} + + + diff --git a/src/pages/balloon/gravity_wave/1-year.vue b/src/pages/balloon/gravity_wave/1-year.vue index 906f7ed..df6696e 100644 --- a/src/pages/balloon/gravity_wave/1-year.vue +++ b/src/pages/balloon/gravity_wave/1-year.vue @@ -10,12 +10,29 @@ meta: import { API_BASE_URL } from '~/CONSTANT' const selectedMode = ref('w/f值统计结果') +const selectedStation = ref('LIN') +const allStations = ref([] as string[]) const isIllegal = ref(false) const startYear = ref(2017) const endYear = ref(2024) +onMounted(async () => { + await baseFetch(`${API_BASE_URL}/balloon/metadata`).json().then(({ data }) => { + const das = data.value! + + const _allStations = das.map((a: string) => { + const stationPattern = /data\/balloon\/(\w+)\// + return a.match(stationPattern)?.[1] + }) as string[] + + const stations = Array.from(new Set(_allStations)) + allStations.value = stations + selectedStation.value = stations[0] + }) +}) + const modes = [ 'w/f值统计结果', @@ -70,26 +87,22 @@ watch([selectedMode, startYear, endYear], () => {
- - - + - 模式 - - {{ mode_display_mapping[mode] }} + 台站 + + {{ s }}
+ + + + + + + 模式 + + {{ mode_display_mapping[mode] }} + + + + +
diff --git a/src/pages/cosmic/gravity_wave/0-perday.vue b/src/pages/cosmic/gravity_wave/0-perday.vue index 84f94b6..56815cd 100644 --- a/src/pages/cosmic/gravity_wave/0-perday.vue +++ b/src/pages/cosmic/gravity_wave/0-perday.vue @@ -33,10 +33,26 @@ const df = new DateFormatter('zh-CN', { dateStyle: 'long', }) +const lat_ranges = [ + '-60 ~ -50', + '-50 ~ -40', + '-40 ~ -30', + '-30 ~ -20', + '-20 ~ -10', + '-10 ~ 0', + '0 ~ 10', + '10 ~ 20', + '20 ~ 30', + '30 ~ 40', + '40 ~ 50', + '50 ~ 60', +] + const selected = reactive({ year: '2008', day: '1', mode: 'mean_ktemp_Nz', + lat_range: '0 ~ 10', }) const value = ref( @@ -52,13 +68,14 @@ const queryUrl = computed(() => { const day_No = getDayOfYear(theDate) query.set('day', day_No.toString()) query.set('mode', selected.mode) + query.set('lat_range', selected.lat_range) return `/cosmic/render/gravity_wave/perday?${query}` }) diff --git a/src/pages/cosmic/gravity_wave/1-multiday.vue b/src/pages/cosmic/gravity_wave/1-multiday.vue index d7a3e79..20e84e7 100644 --- a/src/pages/cosmic/gravity_wave/1-multiday.vue +++ b/src/pages/cosmic/gravity_wave/1-multiday.vue @@ -22,18 +22,35 @@ const MODES = [ '不同高度下的逐日统计分析', '每月浮力频率变化趋势', '每月平均重力势能的折线图', - '布伦特-维萨拉频率分布', + '浮力频率均值', + '每月平均N^2的折线图', +] +const lat_ranges = [ + '-60 ~ -50', + '-50 ~ -40', + '-40 ~ -30', + '-30 ~ -20', + '-20 ~ -10', + '-10 ~ 0', + '0 ~ 10', + '10 ~ 20', + '20 ~ 30', + '30 ~ 40', + '40 ~ 50', + '50 ~ 60', ] const selected = reactive({ year: '2008', // begin_day mode: '不同高度下的逐日统计分析', + lat_range: '0 ~ 10', }) const queryUrl = computed(() => { const q = new URLSearchParams() q.set('year', selected.year) q.set('mode', selected.mode) + q.set('lat_range', selected.lat_range) return `${API_BASE_URL}/cosmic/render/gravity_wave/multiday?${q}` }) @@ -54,7 +71,7 @@ const queryUrl = computed(() => { - + @@ -62,6 +79,20 @@ const queryUrl = computed(() => { + + diff --git a/src/pages/saber/gravity_wave/1-monthly.vue b/src/pages/saber/gravity_wave/1-monthly.vue index 95d18a3..fe0f94d 100644 --- a/src/pages/saber/gravity_wave/1-monthly.vue +++ b/src/pages/saber/gravity_wave/1-monthly.vue @@ -7,5 +7,5 @@ diff --git a/src/pages/saber/planet_wave/1-monthly.vue b/src/pages/saber/planet_wave/1-monthly.vue index ddab6bd..8640bff 100644 --- a/src/pages/saber/planet_wave/1-monthly.vue +++ b/src/pages/saber/planet_wave/1-monthly.vue @@ -21,8 +21,9 @@ const selected = reactive({ }) const ranges = [ - '-20', + '-30', '30', + '-60', '60', ] @@ -30,6 +31,7 @@ const queryUrl = computed(() => { const q = new URLSearchParams() q.set('year', selected.year) q.set('T', selected.T.toString()) + q.set('k', selected.k.toString()) return `${API_BASE_URL}/saber/render/planet_wave/per_year/energy_plot?${q}` }) @@ -74,7 +76,7 @@ const queryUrl = computed(() => { }" :default-value="94" :step="20" :max="110" - :min="70" + :min="30" >