Skip to content

Commit dc35fed

Browse files
committed
Update GridPointsJSONWriter to accept also an already created Partitioner
1 parent 3c6fb6a commit dc35fed

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

src/atlas/util/GridPointsJSONWriter.cc

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,30 @@ std::vector<long> points_from_list(const std::string& list, long base) {
6060

6161
//------------------------------------------------------------------------------
6262

63+
GridPointsJSONWriter::GridPointsJSONWriter(Grid grid, grid::Partitioner partitioner, const eckit::Parametrisation& args) : grid_{grid} {
64+
args.get("json.precision",precision_=-1);
65+
args.get("verbose",verbose_=0);
66+
if (not args.get("partition",partition_=-1)) {
67+
args.get("partition",partition_);
68+
}
69+
args.get("json.pretty", pretty_=false);
70+
args.get("field",field_="lonlat");
71+
args.get("field_base",field_base_=0);
72+
std::string points_list;
73+
if (args.get("index",points_list)) {
74+
args.get("index_base",points_base_ = 0);
75+
points_ = points_from_list(points_list,points_base_);
76+
}
77+
78+
nb_partitions_ = partitioner.nb_partitions();
79+
ATLAS_DEBUG_VAR(nb_partitions_);
80+
if( nb_partitions_ > 0 ) {
81+
distribution_ = grid::Distribution{grid_, partitioner};
82+
}
83+
}
84+
85+
//------------------------------------------------------------------------------
86+
6387
GridPointsJSONWriter::GridPointsJSONWriter(Grid grid, const eckit::Parametrisation& args) : grid_{grid} {
6488
args.get("json.precision",precision_=-1);
6589
args.get("verbose",verbose_=0);
@@ -85,7 +109,7 @@ GridPointsJSONWriter::GridPointsJSONWriter(Grid grid, const eckit::Parametrisati
85109
partitioner_config.set("type", partitioner);
86110
}
87111
partitioner_config.set("partitions", nb_partitions_);
88-
distribution_ = grid::Distribution{grid_,partitioner_config};
112+
distribution_ = grid::Distribution{grid_, partitioner_config};
89113
}
90114
}
91115

src/atlas/util/GridPointsJSONWriter.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ namespace util {
2222

2323
class GridPointsJSONWriter {
2424
public:
25-
GridPointsJSONWriter(Grid grid, const eckit::Parametrisation& args);
25+
GridPointsJSONWriter(Grid, const eckit::Parametrisation&);
26+
27+
GridPointsJSONWriter(Grid, grid::Partitioner, const eckit::Parametrisation&);
2628

2729
void write(std::ostream& out, eckit::Channel& info) const;
2830

@@ -45,4 +47,4 @@ class GridPointsJSONWriter {
4547
//------------------------------------------------------------------------------
4648

4749
} // namespace util
48-
} // namespace atlas
50+
} // namespace atlas

0 commit comments

Comments
 (0)