package net.nullschool.grib2json; import ucar.ma2.Array; import ucar.nc2.NetcdfFile; import ucar.nc2.Variable; public class GribReader { public static void main(String[] args) { String filePath = "E:/xxx/ART_ATM_GLB_0P10_6HOR_ANAL_2023010121.grib2"; // 替换为你的 GRIB 文件路径 try { NetcdfFile ncFile = NetcdfFile.open(filePath); // 列出文件中的所有变量 for (Variable variable : ncFile.getVariables()) { System.out.println("Variable: " + variable.getFullName()); System.out.println("Variable: " + variable.getShortName()); // Object storage = variable.read().getStorage(); // System.out.println(storage.toString()); // Object storage = variable.read().get(); } // String absolute_vorticity_isobaric = ncFile.findVariable("Relative_humidity_pressure_difference_layer").getDimensionsString(); // System.out.println(absolute_vorticity_isobaric); // 读取特定变量的数据 // Variable variable = ncFile.findVariable("Relative_humidity_pressure_difference_layer").slice(2,1); Variable variable = ncFile.findVariable("Pressure_potential_vorticity_surface"); //获取多层数据;获取指定的第几层数据dim是 varlable中的 四个调节参数 下标为1的时候是下拉框第几个选项 比如1是第一个 ,范围值可以在variable中的shape中查看,value 是第几个选项 Variable slice = variable.slice(1, 6); Array read = slice.read(); System.out.println(read); // 替换为你感兴趣的变量名 if (variable != null) { Array data = variable.read(); // System.out.println("Data: " + data); } else { System.out.println("Variable not found!"); } } catch (Exception e) { e.printStackTrace(); } } } 需要的包 :edu.ucar:netcdf:4.3.19
java处理获取Grib2文件数据
最新推荐文章于 2025-05-24 08:46:31 发布