NEDAS.core.assimilator module

class NEDAS.core.assimilator.Assimilator(c: Context)[source]

Bases: ABC

assim_mode: str
assimilate(c: Context)[source]

Main method to run the batch assimilation algorithm

partition_grid(c: Context) None[source]

Partition the analysis grid into several parts and distribute the workload over the mpi ranks.

abstractmethod init_partitions(c: Context) list[source]

Generate spatial partitioning of the domain

abstractmethod assign_obs(c: Context) dict[Annotated[int, 'obs record id'], dict[Annotated[int, 'partition id'], ndarray]][source]

Assign the observation sequence to each partition par_id

Parameters:

c (Context) – the runtime context object

Returns:

Indices in the full obs_seq for the subset of obs that belongs to partition par_id

Return type:

dict[ObsRecordID, dict[PartitionID, np.ndarray]]

abstractmethod distribute_partitions(c: Context) dict[Annotated[int, 'process id in comm_mem'], list[Annotated[int, 'partition id']]][source]

Distribute partitions across processors

transpose_to_ensemble_complete(c: Context) None[source]

Communicate among mpi ranks and transpose the locally-stored state/obs chunks to ensemble-complete

transpose_to_field_complete(c: Context)[source]

Communicate among mpi ranks and transpose the locally-stored state/obs chunks back to field-complete

abstractmethod assimilation_algorithm(c: Context) None[source]

The main assimilation algorithm will be implemented by subclasses