Skip to content

Commit 86ae89d

Browse files
committed
Call GRIB2 encoder in metkit from grib1-to-grib2 tool
1 parent e1239f0 commit 86ae89d

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/multio/tools/grib1-to-grib2.cc

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,13 @@
3030
#include "eckit/option/SimpleOption.h"
3131
#include "metkit/codes/CodesContent.h"
3232
#include "metkit/codes/api/CodesAPI.h"
33-
#include "multio/LibMultio.h"
33+
#include "metkit/mars2grib/api/Grib2Encoder.h"
3434
#include "multio/datamod/AtlasGeo.h"
3535
#include "multio/datamod/core/Record.h"
3636
#include "multio/tools/MultioTool.h"
3737

3838
#include "multio/datamod/ContainerInterop.h"
3939
#include "multio/datamod/MarsMiscGeo.h"
40-
#include "multio/mars2grib/api/RawAPI.h"
4140
#include "multio/mars2mars/Rules.h"
4241
#include "multio/util/Print.h"
4342

@@ -1005,7 +1004,7 @@ void Grib1ToGrib2::execute(const eckit::option::CmdArgs& args) {
10051004
// optDict.set("print-whole-error-stack", std::to_string(verbosity_ > 1 ? 1 : 0));
10061005
// optDict.set("print-dictionaries", std::to_string(verbosity_ > 1 ? 1 : 0));
10071006

1008-
mars2grib::Mars2GribRaw mars2grib{};
1007+
metkit::mars2grib::Grib2Encoder encoder{};
10091008

10101009
eckit::message::Message msg;
10111010
while ((msg = reader.next())) {
@@ -1129,9 +1128,14 @@ void Grib1ToGrib2::execute(const eckit::option::CmdArgs& args) {
11291128
datamod::applyRecordDefaults(misc);
11301129
datamod::validateRecord(misc);
11311130

1132-
std::unique_ptr<metkit::codes::CodesHandle> preparedHandle = mars2grib.getHandle(mars, misc, geo);
1133-
preparedHandle->set("values", values);
1131+
// Convert mars/misc/geo to eckit::LocalConfiguration
1132+
const auto marsConfig = dm::dumpRecord<eckit::LocalConfiguration>(mars);
1133+
const auto miscConfig = dm::dumpRecord<eckit::LocalConfiguration>(misc);
1134+
const auto geomConfig
1135+
= std::visit([](const auto& geomRec) { return dm::dumpRecord<eckit::LocalConfiguration>(geomRec); }, geo);
11341136

1137+
// Call the GRIB2 encoder in metkit
1138+
auto preparedHandle = encoder.encode(marsConfig, miscConfig, geomConfig, values);
11351139

11361140
// Apply more changes
11371141
extract::postFixToolOnly(*inputHandle.get(), *preparedHandle.get());

0 commit comments

Comments
 (0)