首页 文章

Java GRIB文件开启

提问于
浏览
1

我目前正在开发一个可以在 Map 上显示天气预报的移动应用程序项目(例如PocketGrib) . 我决定使用GRIB文件,但我不知道如何解码它们 . 我发现了一个库JGRIB来打开它们,但我还没弄明白如何使用它 . 对我来说最好的方法是将GRIB数据转换为txt并以我的方式进一步解析以获得所需的值 .

有人有经验吗?任何提示都表示赞赏 . 抱歉我的英语不好 .

2 回答

  • 2
  • 1

    好的,我用NetCDF制作了一些东西 . 对于我的使用它似乎就足够了 . 当然对于每个grib变量都会有所不同 .

    try {
               NetcdfFile ncf = NetcdfFile.open("gribfilename.grb"); //loading grib file
               System.out.println("Variable names are:");
               List<Variable> vars = ncf.getVariables();    //listing variables
               for (Variable var : vars) {
                 System.out.println(var.getName());
               }
    
               Variable Uwind = ncf.findVariable("u-component_of_wind_height_above_ground");
               Variable Vwind = ncf.findVariable("v-component_of_wind_height_above_ground");
               Variable lat = ncf.findVariable("lat");
               Variable lon = ncf.findVariable("lon");
               Variable time = ncf.findVariable("time");
               Variable reftime = ncf.findVariable("reftime");
               Variable reftime_ISO = ncf.findVariable("reftime_ISO");
               Variable height_above_ground = ncf.findVariable("height_above_ground");
               Variable height_above_ground1 = ncf.findVariable("height_above_ground1");
               Variable Temperature_height_above_ground = ncf.findVariable("Temperature_height_above_ground");
               Variable Pressure_reduced_to_MSL_msl = ncf.findVariable("Pressure_reduced_to_MSL_msl");
    
    
    
               Array u_data = Uwind.read(); //reading variables to Array type
               Array v_data = Vwind.read();
               Array lat_data = lat.read();
               Array lon_data = lon.read();
               Array time_data = time.read();
               Array reftime_data = reftime.read();
               Array reftime_ISO_data = reftime_ISO.read();
               Array height_above_ground_data = height_above_ground.read();
               Array height_above_ground1_data = height_above_ground1.read();
               Array Temperature_height_above_ground_data = Temperature_height_above_ground.read();
               Array Pressure_reduced_to_MSL_msl_data = Pressure_reduced_to_MSL_msl.read();
    
               ncf.close();
    
    
        } 
        catch (Exception exc) {
            exc.printStackTrace();
        }
    

相关问题