/* * Copyright 2005-2017 ECMWF. * * This software is licensed under the terms of the Apache Licence Version 2.0 * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. * * In applying this licence, ECMWF does not waive the privileges and immunities granted to it by * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ #include "eccodes.h" int main(int argc, char* argv[]) { FILE* f; int err=0; char infile[]="../../data/reduced_gaussian_model_level.grib1"; codes_handle *h=NULL; codes_box* box; codes_points* points; codes_context* c=codes_context_get_default(); double north,west,south,east; double* val; int i; north=60; south=10; west=-10; east=30; f=fopen(infile,"r"); if (!f) { perror(infile); exit(1); } h=codes_handle_new_from_file(c, f, PRODUCT_GRIB, &err); if (!h) { printf("unable to create handle from file %s\n",infile); exit(err); } box=codes_box_new(h,&err); if (!box) { printf("unable to create box\n"); exit(err); } points=codes_box_get_points(box,north,west,south,east,&err); val=(double*)malloc(sizeof(double)*points->n); codes_points_get_values(h,points,val); for (i=0;in;i++) { printf("%d -- %.3f %.3f %ld %g\n",i, points->latitudes[i], points->longitudes[i], (long)(points->indexes[i]), val[i]); } free(val); fclose(f); return 0; }