@@ -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+
6387GridPointsJSONWriter::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
0 commit comments