2 Commits 1976cbd34a ... aba312801d

Autore SHA1 Messaggio Data
  Koishi aba312801d 常规上传 1 mese fa
  Koishi a44fceefe5 常规上传 1 mese fa
1 ha cambiato i file con 36 aggiunte e 10 eliminazioni
  1. 36 10
      src/components/modelUnpack.vue

+ 36 - 10
src/components/modelUnpack.vue

@@ -158,7 +158,7 @@ export default {
   },
 
   created() {
-    // this.test();
+    this.test();
   },
   mounted() {
     
@@ -175,18 +175,46 @@ export default {
         })
     },
     async test() {
+      const res = await axios.get(
+        `https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl`,
+        {
+          file: "gfs.t18z.pgrb2full.0p50.f000",
+          leftlon: 0,
+          rightlon: 360,
+          toplat: 90,
+          bottomlat: -90,
+          dir: `/gfs.20250827/18/atmos`,
+          "lev_PV=1e-06_(Km^2/kg/s)_surface": "on",
+          var_TMP: "on",
+        }
+      );
+      console.log(1111111111, res);
+      return;
+      // 获取 gfs 文件列表
       const rootRes = await axios.get("/nomads");
       const gfsList = this.extractDOM(rootRes.data, "body p");
       const firstGfsName = gfsList[1].querySelector("a").innerHTML;
 
-      const gfsRes = await axios.get(`/nomads?dir=/${firstGfsName}/00/atmos`);
+      // 获取首个文件内的日期列表
+      const dateRes = await axios.get(`/nomads?dir=/${firstGfsName}`);
+      const gfsFileDateList = this.extractDOM(dateRes.data, "body td a");
+      const firstDate = gfsFileDateList[0].innerHTML;
+
+      // 获取 gfs 文件详情
+      const gfsRes = await axios.get(
+        `/nomads?dir=/${firstGfsName}/${firstDate}/atmos`
+      );
       const gfsDetailPage = this.extractDOM(gfsRes.data, "body form p");
 
-      console.log(999, gfsDetailPage);
+      // 获取 gfs 模型列表
+      const gfsModelList = gfsDetailPage[1].querySelectorAll("option");
+      let model = [];
+      for (let i = 0; i < gfsModelList.length; i++) {
+        model.push(gfsModelList[i].innerHTML.replace(/\n/g, ""));
+      }
 
+      // 获取级别
       const levelsList = gfsDetailPage[4];
-      const variablesList = gfsDetailPage[5];
-
       const levelInputList = levelsList.querySelectorAll("input");
       let lvl = [];
       for (let i = 0; i < levelInputList.length; i++) {
@@ -200,10 +228,10 @@ export default {
 
       lvl.shift();
 
-      console.log(888, lvl.toString());
-
+      // 获取变量
+      const variablesList = gfsDetailPage[5];
       const varInputList = variablesList.querySelectorAll("input");
-      let variables= [];
+      let variables = [];
       for (let i = 0; i < varInputList.length; i++) {
         const ipt = varInputList[i];
         const varStr = ipt
@@ -214,8 +242,6 @@ export default {
       }
 
       variables.shift();
-
-      console.log(777, variables.toString());
     },
     // 提取DOM元素函数
     extractDOM(htmlString, selector) {