Открыватель файлов Java GRIB

В настоящее время я работаю над проектом мобильного приложения, которое может отображать прогноз погоды на карте (например, PocketGrib). Я решил использовать файлы GRIB, но не знаю, как их расшифровать. Я нашел библиотеку JGRIB, чтобы открыть их, но я еще не понял, как ее использовать. Лучшим способом для меня было бы преобразовать данные GRIB в txt и проанализировать их дальше, чтобы получить необходимые значения.

У кого-нибудь есть опыт? Любые советы приветствуются. Извините за мой плохой английский.


person Leszek Bulawa    schedule 24.03.2015    source источник
comment
Вы уже посмотрели на API?   -  person Alexander    schedule 25.03.2015
comment
Какой API? Я не нашел ни одного.   -  person Leszek Bulawa    schedule 04.05.2015
comment
Существуют такие службы, как data.planetos.com/datasets/noaa_gfs_global_sflux_0.12d, которые предоставляют API -s для моделей погоды, вы рассматривали?   -  person kakk11    schedule 29.11.2016


Ответы (2)


Можно использовать библиотеку NetCDF-java для открытия файлов GRIB: https://www.unidata.ucar.edu/software/thredds/current/netcdf-java/documentation.htm

person DopplerShift    schedule 25.03.2015
comment
Спасибо. Я проверю это и сообщу о любом прогрессе :) - person Leszek Bulawa; 04.05.2015

Хорошо, я сделал что-то с помощью NetCDF. Для моего использования, кажется, достаточно. Конечно для каждого гриба переменные будут разные.

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();
    }
person Leszek Bulawa    schedule 07.05.2015