mirror of https://github.com/ecmwf/eccodes.git
Testing: C example for fieldset with numeric sorting
This commit is contained in:
parent
1fb1394a55
commit
23e5cba453
|
@ -82,6 +82,7 @@ if( HAVE_BUILD_TOOLS )
|
||||||
grib_set_bitmap
|
grib_set_bitmap
|
||||||
grib_list
|
grib_list
|
||||||
grib_get_data
|
grib_get_data
|
||||||
|
grib_nearest
|
||||||
grib_nearest_multiple
|
grib_nearest_multiple
|
||||||
grib_multi
|
grib_multi
|
||||||
grib_set_missing
|
grib_set_missing
|
||||||
|
|
|
@ -42,7 +42,7 @@ int main(int argc, char** argv)
|
||||||
double values[4] = {0,};
|
double values[4] = {0,};
|
||||||
double distances[4] = {0,};
|
double distances[4] = {0,};
|
||||||
int indexes[4] = {0,};
|
int indexes[4] = {0,};
|
||||||
char* order_by = "param,step";
|
char* order_by = "param,step:i";
|
||||||
|
|
||||||
size_t size = 4;
|
size_t size = 4;
|
||||||
double lat = -40, lon = 15;
|
double lat = -40, lon = 15;
|
||||||
|
@ -63,7 +63,6 @@ int main(int argc, char** argv)
|
||||||
|
|
||||||
printf("\nordering by %s\n", order_by);
|
printf("\nordering by %s\n", order_by);
|
||||||
printf("\n%d fields in the fieldset\n", codes_fieldset_count(set));
|
printf("\n%d fields in the fieldset\n", codes_fieldset_count(set));
|
||||||
printf("n,step,param\n");
|
|
||||||
|
|
||||||
mode = CODES_NEAREST_SAME_GRID | CODES_NEAREST_SAME_POINT;
|
mode = CODES_NEAREST_SAME_GRID | CODES_NEAREST_SAME_POINT;
|
||||||
count = 1;
|
count = 1;
|
||||||
|
@ -73,7 +72,7 @@ int main(int argc, char** argv)
|
||||||
len = 20;
|
len = 20;
|
||||||
CODES_CHECK(codes_get_string(h, "shortName", param, &len), 0);
|
CODES_CHECK(codes_get_string(h, "shortName", param, &len), 0);
|
||||||
|
|
||||||
printf("%d %ld %s ", count, step, param);
|
printf("Msg #%d, step=%ld, param=%s", count, step, param);
|
||||||
if (!nearest) nearest = codes_grib_nearest_new(h, &err);
|
if (!nearest) nearest = codes_grib_nearest_new(h, &err);
|
||||||
CODES_CHECK(err, 0);
|
CODES_CHECK(err, 0);
|
||||||
CODES_CHECK(codes_grib_nearest_find(nearest, h, lat, lon, mode, lats, lons, values, distances, indexes, &size), 0);
|
CODES_CHECK(codes_grib_nearest_find(nearest, h, lat, lon, mode, lats, lons, values, distances, indexes, &size), 0);
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# (C) Copyright 2005- 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.sh
|
||||||
|
set -u
|
||||||
|
|
||||||
|
label="grib_nearest_c"
|
||||||
|
tempTxt=temp.$label.txt
|
||||||
|
tempRef=temp.$label.ref
|
||||||
|
|
||||||
|
input=${data_dir}/high_level_api.grib2
|
||||||
|
${examples_dir}/c_grib_nearest $input > $tempTxt
|
||||||
|
|
||||||
|
cat > $tempRef <<EOF
|
||||||
|
|
||||||
|
ordering by param,step:i
|
||||||
|
|
||||||
|
5 fields in the fieldset
|
||||||
|
Msg #1, step=0, param=msl
|
||||||
|
Idx lat lon dist val
|
||||||
|
58017 -40.85 15.30 97.627 101524
|
||||||
|
58016 -40.85 14.40 107.078 101570
|
||||||
|
57617 -39.95 15.30 26.1625 101655
|
||||||
|
57616 -39.95 14.40 51.4303 101669
|
||||||
|
|
||||||
|
Msg #2, step=6, param=msl
|
||||||
|
Idx lat lon dist val
|
||||||
|
58017 -40.85 15.30 97.627 101547
|
||||||
|
58016 -40.85 14.40 107.078 101605
|
||||||
|
57617 -39.95 15.30 26.1625 101589
|
||||||
|
57616 -39.95 14.40 51.4303 101641
|
||||||
|
|
||||||
|
Msg #3, step=12, param=msl
|
||||||
|
Idx lat lon dist val
|
||||||
|
58017 -40.85 15.30 97.627 101606
|
||||||
|
58016 -40.85 14.40 107.078 101623
|
||||||
|
57617 -39.95 15.30 26.1625 101652
|
||||||
|
57616 -39.95 14.40 51.4303 101678
|
||||||
|
|
||||||
|
Msg #4, step=18, param=msl
|
||||||
|
Idx lat lon dist val
|
||||||
|
58017 -40.85 15.30 97.627 101507
|
||||||
|
58016 -40.85 14.40 107.078 101486
|
||||||
|
57617 -39.95 15.30 26.1625 101573
|
||||||
|
57616 -39.95 14.40 51.4303 101571
|
||||||
|
|
||||||
|
Msg #5, step=24, param=msl
|
||||||
|
Idx lat lon dist val
|
||||||
|
58017 -40.85 15.30 97.627 101379
|
||||||
|
58016 -40.85 14.40 107.078 101372
|
||||||
|
57617 -39.95 15.30 26.1625 101494
|
||||||
|
57616 -39.95 14.40 51.4303 101471
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
diff $tempRef $tempTxt
|
||||||
|
|
||||||
|
|
||||||
|
rm -f $tempTxt $tempRef
|
Loading…
Reference in New Issue