Exemplo n.º 1
0
void * enkf_main_std_scale_correlated_obs_JOB(void * self, const stringlist_type * args)  {

  if (stringlist_get_size(args) > 0) {
    enkf_main_type * enkf_main              = enkf_main_safe_cast( self );
    int ensemble_size                       = enkf_main_get_ensemble_size(enkf_main);
    enkf_fs_type * fs                       = enkf_main_get_fs( enkf_main );
    enkf_obs_type * obs                     = enkf_main_get_obs( enkf_main );
    int_vector_type * realizations          = int_vector_alloc(1, 0);
    local_obsdata_type * obsdata = local_obsdata_alloc( "OBS-JOB" );

    int_vector_init_range(realizations, 0, ensemble_size, 1);

    for (int iarg = 0; iarg < stringlist_get_size(args); iarg++) {
      const char * arg_key = stringlist_iget( args , iarg );
      stringlist_type * key_list = enkf_obs_alloc_matching_keylist(obs, arg_key);
      for (int iobs=0; iobs < stringlist_get_size( key_list ); iobs++) {
        const char * obs_key = stringlist_iget( key_list , iobs);
        const obs_vector_type * obs_vector = enkf_obs_get_vector(obs, obs_key);
        local_obsdata_add_node( obsdata , obs_vector_alloc_local_node(obs_vector) );
      }
      stringlist_free( key_list );
    }

    if (local_obsdata_get_size(obsdata) > 0)
      enkf_obs_scale_correlated_std(obs, fs, realizations, obsdata );

    local_obsdata_free( obsdata );
  }

  return NULL;
}
Exemplo n.º 2
0
int main(int argc , char ** argv) {
  local_obsdata_type * obsdata;

  obsdata = local_obsdata_alloc( "KEY");
  test_assert_true( local_obsdata_is_instance( obsdata ));
  test_assert_int_equal( 0 , local_obsdata_get_size( obsdata ));
  test_assert_string_equal( "KEY" , local_obsdata_get_name( obsdata ));

  {
    local_obsdata_node_type * obsnode = local_obsdata_node_alloc( "KEY" );
    test_assert_true( local_obsdata_add_node( obsdata , obsnode ) );
    test_assert_false( local_obsdata_add_node( obsdata , obsnode ) );
    test_assert_int_equal( 1 , local_obsdata_get_size( obsdata ));
    test_assert_ptr_equal( obsnode , local_obsdata_iget( obsdata , 0));
  }

  local_obsdata_free( obsdata );

  test_wrapper();
  exit(0);
}
Exemplo n.º 3
0
local_obsdata_type * local_obsdata_alloc_wrapper( local_obsdata_node_type * node ) {
  local_obsdata_type * data = local_obsdata_alloc( local_obsdata_node_get_key( node ));
  local_obsdata_add_node( data , node );
  return data;
}
Exemplo n.º 4
0
void local_ministep_add_obsdata_node( local_ministep_type * ministep , local_obsdata_node_type * obsdatanode) {
  local_obsdata_type * obsdata = local_ministep_get_obsdata(ministep);
  local_obsdata_add_node(obsdata, obsdatanode);
}