Skip to content

Commit 5ab3e6c

Browse files
committed
Merge release/2.40.0
2 parents ed5cb9d + 5ed6dbe commit 5ab3e6c

File tree

814 files changed

+41107
-32600
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

814 files changed

+41107
-32600
lines changed
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# (C) Copyright 2024- ECMWF.
2+
#
3+
# This software is licensed under the terms of the Apache Licence Version 2.0
4+
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
5+
# In applying this licence, ECMWF does not waive the privileges and immunities
6+
# granted to it by virtue of its status as an intergovernmental organisation
7+
# nor does it submit to any jurisdiction.
8+
9+
10+
name: Build Python Wrapper Wheel
11+
12+
on:
13+
# Trigger the workflow manually
14+
workflow_dispatch: ~
15+
16+
# Allow to be called from another workflow
17+
workflow_call: ~
18+
19+
# TODO automation trigger
20+
21+
jobs:
22+
python-wrapper-wheel:
23+
name: Python Wrapper Wheel
24+
uses: ecmwf-actions/reusable-workflows/.github/workflows/python-wrapper-wheel.yml@main
25+
secrets: inherit

CMakeLists.txt

+14-2
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,18 @@ ecbuild_add_option( FEATURE GEOGRAPHY
112112
DESCRIPTION "Support for Geoiterator and nearest neighbour"
113113
DEFAULT ON )
114114

115+
ecbuild_add_option( FEATURE ECKIT_GEO
116+
DESCRIPTION "Support for Geoiterator and nearest neighbour (additional backend)"
117+
CONDITION ENABLE_GEOGRAPHY
118+
DEFAULT OFF )
119+
120+
if( eccodes_HAVE_ECKIT_GEO AND NOT TARGET eckit_geo )
121+
ecbuild_find_package(NAME eckit VERSION 1.27 REQUIRED)
122+
if( NOT TARGET eckit_geo )
123+
ecbuild_critical("eckit has not been built with ECKIT_GEO enabled")
124+
endif()
125+
endif()
126+
115127
ecbuild_add_option( FEATURE JPG
116128
DESCRIPTION "Support for JPG decoding/encoding"
117129
DEFAULT ON )
@@ -485,7 +497,7 @@ ecbuild_pkgconfig(
485497
IGNORE_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS} ${NETCDF_INCLUDE_DIRS}
486498
VARIABLES HAVE_MEMFS HAVE_GEOGRAPHY HAVE_JPEG HAVE_LIBJASPER HAVE_LIBOPENJPEG
487499
HAVE_ECCODES_THREADS HAVE_ECCODES_OMP_THREADS
488-
HAVE_NETCDF HAVE_FORTRAN HAVE_PNG HAVE_AEC
500+
HAVE_NETCDF HAVE_FORTRAN HAVE_PNG HAVE_AEC HAVE_ECKIT_GEO
489501
)
490502
if( HAVE_FORTRAN )
491503
ecbuild_pkgconfig(
@@ -497,7 +509,7 @@ if( HAVE_FORTRAN )
497509
${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS} ${NETCDF_INCLUDE_DIRS}
498510
VARIABLES HAVE_MEMFS HAVE_GEOGRAPHY HAVE_JPEG HAVE_LIBJASPER HAVE_LIBOPENJPEG
499511
HAVE_ECCODES_THREADS HAVE_ECCODES_OMP_THREADS
500-
HAVE_NETCDF HAVE_PNG HAVE_AEC
512+
HAVE_NETCDF HAVE_PNG HAVE_AEC HAVE_ECKIT_GEO
501513
)
502514
endif()
503515

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ ecCodes
99

1010
[![codecov](https://codecov.io/gh/ecmwf/eccodes/branch/develop/graph/badge.svg)](https://codecov.io/gh/ecmwf/eccodes)
1111

12+
[![Anaconda-Server Badge](https://anaconda.org/conda-forge/eccodes/badges/version.svg)](https://anaconda.org/conda-forge/eccodes)
13+
1214
ecCodes is a package developed by ECMWF which provides an application programming interface
1315
and a set of tools for decoding and encoding messages in the following formats:
1416

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.39.3
1+
2.40.0

definitions/boot.def

+2
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,5 @@ if(kindOfProduct == `WRAP`){
124124
constant WRAPstr="WRAP";
125125
alias ls.identifier=WRAPstr;
126126
}
127+
128+
meta isMessageValid message_is_valid(kindOfProduct) : hidden;

definitions/create_grib2_codetables.pl

+28-8
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,24 @@ sub WriteFile {
9090
$unit_text =~ s/\(\(Code /(Code /;
9191
$unit_text =~ s/\)\)/)/;
9292
if ($codeFlag =~ /\-/) {
93-
print MYFILE "# $codeFlag $meaning $unit_text\n";
93+
if ($unit_text eq "") {
94+
print MYFILE "# $codeFlag $meaning\n";
95+
} else {
96+
print MYFILE "# $codeFlag $meaning $unit_text\n";
97+
}
9498
} else {
9599
my $codeFlag1 = $codeFlag; # A number
96100
my $codeFlag2 = $codeFlag; # A number or string abbreviation
97101
if ($filename eq "1.4.table") {
98102
# Special case. Do not just put 2nd code, translate it to shortName for 'mars type'
99103
$codeFlag2 = TranslateCodes_Table_1_4($codeFlag);
100104
}
105+
elsif ($filename eq "3.12.table") {
106+
$codeFlag2 = TranslateCodes_Table_3_12($codeFlag);
107+
}
108+
elsif ($filename eq "3.15.table") {
109+
$codeFlag2 = TranslateCodes_Table_3_15($codeFlag);
110+
}
101111
elsif ($filename eq "4.4.table") {
102112
$codeFlag2 = TranslateCodes_Table_4_4($codeFlag);
103113
}
@@ -113,13 +123,15 @@ sub WriteFile {
113123
elsif ($filename eq "4.252.table") {
114124
$codeFlag2 = TranslateCodes_Table_4_252($codeFlag);
115125
}
116-
elsif ($filename eq "3.15.table") {
117-
$codeFlag2 = TranslateCodes_Table_3_15($codeFlag);
118-
}
119126
elsif ($filename eq "4.10.table") {
120127
$codeFlag2 = TranslateCodes_Table_4_10($codeFlag);
121128
}
122-
print MYFILE "$codeFlag1 $codeFlag2 $meaning $unit_text\n";
129+
130+
if ($unit_text eq "") {
131+
print MYFILE "$codeFlag1 $codeFlag2 $meaning\n";
132+
} else {
133+
print MYFILE "$codeFlag1 $codeFlag2 $meaning $unit_text\n";
134+
}
123135
}
124136
}
125137

@@ -132,11 +144,11 @@ sub WriteFlagTable{
132144
#print MYFILE "# Automatically generated by ./create_tables.pl from database fm92_grib2\@wrep-db-misc-prod, do not edit\n";
133145
print MYFILE "# $title\n";
134146
}
135-
my $unit_text = ($unit eq "" ? "" : "($unit)");
147+
my $unit_text = ($unit eq "" ? "" : " ($unit)");
136148
if ($codeFlag =~ /\-/) {
137-
print MYFILE "# $codeFlag $meaning $unit_text\n";
149+
print MYFILE "# $codeFlag $meaning$unit_text\n";
138150
} else {
139-
print MYFILE "$codeFlag $value $meaning $unit_text\n";
151+
print MYFILE "$codeFlag $value $meaning$unit_text\n";
140152
}
141153
}
142154

@@ -155,6 +167,14 @@ sub TranslateCodes_Table_4_10 {
155167
return "missing" if ($code == 255);
156168
return $code;
157169
}
170+
171+
sub TranslateCodes_Table_3_12 {
172+
my ($code) = @_;
173+
return "ring" if ($code == 0);
174+
return "nested" if ($code == 1);
175+
return $code;
176+
}
177+
158178
sub TranslateCodes_Table_3_15 {
159179
my ($code) = @_;
160180
return "pt" if ($code == 107);

0 commit comments

Comments
 (0)