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