iode.Variables.to_array

Variables.to_array(vars_axis_name: str = 'names', time_axis_name: str = 'time', periods_as_type: str | type = <class 'str'>) Array[source]

Creates an Array from the current IODE Variables database.

Parameters:
vars_axis_name: str, optional

Name of the axis representing the Variables names. Defaults to ‘names’.

time_axis_name: str, optional

Name of the axis representing the periods. Defaults to ‘time’.

periods_as_type: str or type, optional

Type in which periods are converted. Possible values are: str, int or float. Defaults to str.

Warning

IODE and LArray don’t use the same constant to represent NaN values. When exporting IODE variables as a LArray Array, the IODE NaN values (\(NA\)) are converted to LArray NaN values (\(nan\)).

Examples

>>> from iode import SAMPLE_DATA_DIR
>>> from iode import variables
>>> variables.load(f"{SAMPLE_DATA_DIR}/fun.var")
Loading .../fun.var
394 objects loaded
>>> # Export the IODE Variables database as an (larray) Array object
>>> variables
Workspace: Variables
nb variables: 394
filename: ...fun.var
description: Modèle fun - Simulation 1
sample: 1960Y1:2015Y1
mode: LEVEL

 name       1960Y1  1961Y1  1962Y1  1963Y1  ...  2013Y1  2014Y1   2015Y1
ACAF            na      na      na      na  ...  -68.89  -83.34   -96.41
ACAG            na      na      na      na  ...   31.37   32.42    33.47
AOUC            na    0.25    0.25    0.26  ...    1.39    1.42     1.46
AOUC_           na      na      na      na  ...    1.34    1.37     1.41
AQC           0.22    0.22    0.22    0.23  ...    1.56    1.61     1.67
...            ...     ...     ...     ...  ...     ...     ...      ...
ZJ              na      na      na      na  ...    1.59    1.63     1.67
ZKF           0.80    0.81    0.82    0.81  ...    0.87    0.87     0.87
ZKFO          1.00    1.00    1.00    1.00  ...    1.02    1.02     1.02
ZX            0.00    0.00    0.00    0.00  ...    0.00    0.00     0.00
ZZF_          0.69    0.69    0.69    0.69  ...    0.69    0.69     0.69

>>> array = variables.to_array()
>>> array.shape
(394, 56)
>>> array.axes.info
394 x 56
 names [394]: 'ACAF' 'ACAG' 'AOUC' ... 'ZKFO' 'ZX' 'ZZF_'
 time [56]: '1960Y1' '1961Y1' '1962Y1' ... '2013Y1' '2014Y1' '2015Y1'
>>> array
names\time      1960Y1  ...              2015Y1
       ACAF         nan  ...  -96.41041982848331
       ACAG         nan  ...   33.46960134488098
       AOUC         nan  ...  1.4608626117037322
      AOUC_         nan  ...  1.4075567973393608
        AQC  0.21753037  ...  1.6742905757021305
        ...         ...  ...                 ...
         ZJ         nan  ...  1.6679707618363606
        ZKF  0.80257398  ...  0.8735925955073036
       ZKFO         1.0  ...           1.0159901
         ZX         0.0  ...                 0.0
       ZZF_  0.68840039  ...          0.68840039
>>> # Export a subset of the IODE Variables database as an (larray) Array object
>>> vars_subset = variables["A*;*_", "2000Y1:2010Y1"]
>>> vars_subset
Workspace: Variables
nb variables: 33
filename: ...fun.var
description: Modèle fun - Simulation 1
sample: 2000Y1:2010Y1
mode: LEVEL

 name        2000Y1  2001Y1  2002Y1  2003Y1 ...  2007Y1   2008Y1   2009Y1   2010Y1
ACAF          10.05    2.87   -0.93   -6.09 ...  -33.38   -38.41   -37.46   -37.83
ACAG         -41.53   18.94   19.98   21.02 ...   25.16    26.19    27.23    28.25
AOUC           1.12    1.14    1.16    1.17 ...    1.22     1.26     1.29     1.31
AOUC_          1.10    1.14    1.15    1.16 ...    1.20     1.21     1.23     1.25
AQC            1.34    1.38    1.41    1.42 ...    1.41     1.43     1.45     1.46
...             ...     ...     ...     ... ...     ...      ...      ...      ...
WCF_        3716.45 3863.90 3999.57 4147.95 ... 4665.91  4916.65  5042.74  5170.60
WIND_       1000.14 1035.22 1070.93 1102.91 ... 1178.12  1231.49  1268.86  1301.03
WNF_        2334.76 2427.49 2512.87 2606.28 ... 2932.23  3089.99  3169.32  3249.75
YDH_        7276.61 7635.91 7958.39 8331.07 ... 9685.61 10228.84 10630.74 10995.83
ZZF_           0.69    0.69    0.69    0.69 ...    0.69     0.69     0.69     0.69

>>> array = vars_subset.to_array()
>>> array.shape
(33, 11)
>>> array.axes.info
33 x 11
 names [33]: 'ACAF' 'ACAG' 'AOUC' ... 'WNF_' 'YDH_' 'ZZF_'
 time [11]: '2000Y1' '2001Y1' '2002Y1' ... '2008Y1' '2009Y1' '2010Y1'
>>> array
names\time               2000Y1  ...               2010Y1
       ACAF   10.046610792200543  ...   -37.82742883229439
       ACAG   -41.53478656734795  ...   28.253928978210485
       AOUC   1.1162376230972206  ...   1.3071099004906368
      AOUC_     1.10195719812178  ...   1.2501643331956398
        AQC   1.3386028553645442  ...   1.4628683697450802
        ...                 ...  ...                 ...    
       WCF_   3716.4475089520292  ...    5170.600010384268
      WIND_   1000.1445769794319  ...    1301.025126372868
       WNF_   2334.7636275081923  ...   3249.7517024908175
       YDH_    7276.607740221424  ...   10995.831392939246
       ZZF_           0.68840039  ...           0.68840039
>>> # Export a subset of the IODE Variables database as an (larray) Array object
>>> # with periods as int
>>> array = variables["A*;*_", "2000Y1:2010Y1"].to_array(periods_as_type=int)
>>> array.axes.info
33 x 11
 names [33]: 'ACAF' 'ACAG' 'AOUC' ... 'WNF_' 'YDH_' 'ZZF_'
 time [11]: 2000 2001 2002 ... 2008 2009 2010
>>> array
names\time                 2000  ...                 2010
      ACAF   10.046610792200543  ...   -37.82742883229439
      ACAG   -41.53478656734795  ...   28.253928978210485
      AOUC   1.1162376230972206  ...   1.3071099004906368
     AOUC_     1.10195719812178  ...   1.2501643331956398
       AQC   1.3386028553645442  ...   1.4628683697450802
       ...                 ...  ...                 ...    
      WCF_   3716.4475089520292  ...    5170.600010384268
     WIND_   1000.1445769794319  ...    1301.025126372868
      WNF_   2334.7636275081923  ...   3249.7517024908175
      YDH_    7276.607740221424  ...   10995.831392939246
      ZZF_           0.68840039  ...           0.68840039