コンテンツにスキップ

Efficiency considerations in UPD tables

Note

Veda2.0 reports the processing time of each tag under Information > Model > Tag details. This note can help you reduce the time taken by UPD tables.

Good and bad UPD tables

There can be two reasons to use the UPD tag:

  • To numerically transform existing values (seed values)
  • To identify indexes for applying absolute values. For example, MINOIL could have ACT_BND(LO) in various regions and years. If one wanted to replace all of them by 0, UPD is a good option.

UPD is a particularly heavy tag to process because each row involves fetching seed values from a potentially large table. UPD tables that have only a few rows, even if each row affects a large number of records, work quite well. For example, see the table below where investment costs for onshore wind technologies are being differentiated based on the distance information embedded in the name, and additionally based on depth, in the case of offshore wind.

Table 1: Example of a "worthy" update table

~TFM_UPD

Attribute PSET_PN AllRegions
INVCOST E[_]WON*Far* *1.75
INVCOST E[_]WON*Trans* *1.5
INVCOST E[_]WON*Near* *1
INVCOST E[_]WOF*deep*Far* *1.8
INVCOST E[_]WOF*deep*Inter* *1.5
INVCOST E[_]WOF*deep*Near* *1.35
INVCOST E[_]WOF*shal*Far* *1.2
INVCOST E[_]WOF*shal*Inter* *1
INVCOST E[_]WOF*shal*Near* *0.9
INVCOST E[_]WOF*tran*Far* *1.32
INVCOST E[_]WOF*tran*Inter* *1.1
INVCOST E[_]WOF*tran*Near* *0.99

But very long UPD tables can be very slow to process, even if each row doesn’t affect a lot of records. The table shown below took 4 minutes to process on a very fast machine. The function of this table is to apply factors to demand projection, by year and sub-sector.

Table 2: Example of a "heavy" update table

SourceScen Attribute Year AllRegions Cset_CN
BASE COM_PROJ 2020 *1 RBn*
BASE COM_PROJ 2021 *0.96 RBn*
BASE COM_PROJ 2022 *0.93 RBn*
BASE COM_PROJ 2023 *0.91 RBn*
BASE COM_PROJ 2024 *0.88 RBn*
BASE COM_PROJ 2025 *0.86 RBn*
BASE COM_PROJ 2026 *0.83 RBn*
BASE COM_PROJ 2027 *0.81 RBn*
BASE COM_PROJ 2028 *0.78 RBn*
BASE COM_PROJ 2029 *0.76 RBn*
BASE COM_PROJ 2030 *0.73 RBn*
BASE COM_PROJ 2031 *0.73 RBn*
BASE COM_PROJ 2032 *0.72 RBn*
BASE COM_PROJ 2033 *0.72 RBn*
BASE COM_PROJ 2034 *0.72 RBn*
BASE COM_PROJ 2035 *0.71 RBn*
BASE COM_PROJ 2036 *0.71 RBn*
BASE COM_PROJ 2037 *0.7 RBn*
BASE COM_PROJ 2038 *0.7 RBn*
BASE COM_PROJ 2039 *0.69 RBn*
BASE COM_PROJ 2040 *0.69 RBn*
BASE COM_PROJ 2041 *0.68 RBn*
BASE COM_PROJ 2042 *0.68 RBn*
BASE COM_PROJ 2043 *0.67 RBn*
BASE COM_PROJ 2044 *0.67 RBn*
BASE COM_PROJ 2045 *0.66 RBn*
BASE COM_PROJ 2046 *0.66 RBn*
BASE COM_PROJ 2047 *0.65 RBn*
BASE COM_PROJ 2048 *0.65 RBn*
BASE COM_PROJ 2049 *0.64 RBn*
BASE COM_PROJ 2050 *0.64 RBn*
BASE COM_PROJ 2020 *1 RBe*
BASE COM_PROJ 2021 *1 RBe*
BASE COM_PROJ 2022 *1 RBe*
BASE COM_PROJ 2023 *1 RBe*
BASE COM_PROJ 2024 *1 RBe*
BASE COM_PROJ 2025 *1 RBe*
BASE COM_PROJ 2026 *1 RBe*
BASE COM_PROJ 2027 *1 RBe*
BASE COM_PROJ 2028 *1 RBe*
BASE COM_PROJ 2029 *1 RBe*
BASE COM_PROJ 2030 *1 RBe*
BASE COM_PROJ 2031 *1 RBe*
BASE COM_PROJ 2032 *1 RBe*
BASE COM_PROJ 2033 *1 RBe*
BASE COM_PROJ 2034 *1 RBe*
BASE COM_PROJ 2035 *1 RBe*
BASE COM_PROJ 2036 *1 RBe*
BASE COM_PROJ 2037 *1 RBe*
BASE COM_PROJ 2038 *1 RBe*
BASE COM_PROJ 2039 *1 RBe*
BASE COM_PROJ 2040 *1 RBe*
BASE COM_PROJ 2041 *1 RBe*
BASE COM_PROJ 2042 *1 RBe*
BASE COM_PROJ 2043 *1 RBe*
BASE COM_PROJ 2044 *1 RBe*
BASE COM_PROJ 2045 *1 RBe*
BASE COM_PROJ 2046 *1 RBe*
BASE COM_PROJ 2047 *1 RBe*
BASE COM_PROJ 2048 *1 RBe*
BASE COM_PROJ 2049 *1 RBe*
BASE COM_PROJ 2050 *1 RBe*
BASE COM_PROJ 2020 *1 CB*
BASE COM_PROJ 2021 *0.98 CB*
BASE COM_PROJ 2022 *0.97 CB*
BASE COM_PROJ 2023 *0.96 CB*
BASE COM_PROJ 2024 *0.96 CB*
BASE COM_PROJ 2025 *0.95 CB*
BASE COM_PROJ 2026 *0.95 CB*
BASE COM_PROJ 2027 *0.94 CB*
BASE COM_PROJ 2028 *0.94 CB*
BASE COM_PROJ 2029 *0.93 CB*
BASE COM_PROJ 2030 *0.93 CB*
BASE COM_PROJ 2031 *0.92 CB*
BASE COM_PROJ 2032 *0.91 CB*
BASE COM_PROJ 2033 *0.9 CB*
BASE COM_PROJ 2034 *0.9 CB*
BASE COM_PROJ 2035 *0.89 CB*
BASE COM_PROJ 2036 *0.88 CB*
BASE COM_PROJ 2037 *0.87 CB*
BASE COM_PROJ 2038 *0.86 CB*
BASE COM_PROJ 2039 *0.85 CB*
BASE COM_PROJ 2040 *0.84 CB*
BASE COM_PROJ 2041 *0.84 CB*
BASE COM_PROJ 2042 *0.83 CB*
BASE COM_PROJ 2043 *0.83 CB*
BASE COM_PROJ 2044 *0.82 CB*
BASE COM_PROJ 2045 *0.81 CB*
BASE COM_PROJ 2046 *0.81 CB*
BASE COM_PROJ 2047 *0.8 CB*
BASE COM_PROJ 2048 *0.79 CB*
BASE COM_PROJ 2049 *0.79 CB*
BASE COM_PROJ 2050 *0.78 CB*

An alternative to UPD tables

You can get the seed values via a FILL-R table, and prepare a DINS (or even INS) table with transformed values. The table shown below will write COM_PROJ values for qualifying demands on a sheet “Demandupdate”.

Table 3: FILL-R table to pull values to be updated

~TFM_FILL-R:w=Demandupdate;hcol=region

Sourcescen Attribute CSET_CN Year AllRegions
BASE COM_PROJ RBn*,Rbe*,Cb* *1

The output of the FILL-R table above is shown below.

Table 4: Output of the FILL-R table (Cell A1 of sheet Demandupdate)

scenario attribute process commodity lim_type time_slice year commodity_group currency stage sow ACT NSW NT QLD SA TAS VIC WA
BASE COM_PROJ - CB_Age_Care - - 2015 - - - - 0.08 1.6 0.05 1 0.35 0.11 1.26 0.54
BASE COM_PROJ - CB_Age_Care - - 2016 - - - - 0.09 1.63 0.05 1.04 0.37 0.11 1.27 0.57
BASE COM_PROJ - CB_Age_Care - - 2017 - - - - 0.09 1.67 0.05 1.07 0.38 0.11 1.3 0.59
BASE COM_PROJ - CB_Age_Care - - 2018 - - - - 0.09 1.71 0.06 1.1 0.38 0.12 1.34 0.61
BASE COM_PROJ - CB_Age_Care - - 2019 - - - - 0.09 1.75 0.06 1.13 0.39 0.12 1.38 0.64
BASE COM_PROJ - CB_Age_Care - - 2020 - - - - 0.1 1.8 0.06 1.17 0.4 0.12 1.42 0.66
BASE COM_PROJ - CB_Age_Care - - 2021 - - - - 0.1 1.85 0.06 1.21 0.41 0.12 1.47 0.69
BASE COM_PROJ - CB_Age_Care - - 2022 - - - - 0.1 1.91 0.06 1.26 0.42 0.13 1.52 0.72
BASE COM_PROJ - CB_Age_Care - - 2023 - - - - 0.11 1.97 0.07 1.31 0.44 0.13 1.58 0.76
BASE COM_PROJ - CB_Age_Care - - 2024 - - - - 0.11 2.05 0.07 1.37 0.45 0.13 1.65 0.8
BASE COM_PROJ - CB_Age_Care - - 2025 - - - - 0.12 2.13 0.07 1.44 0.47 0.14 1.72 0.84
BASE COM_PROJ - CB_Age_Care - - 2026 - - - - 0.12 2.22 0.08 1.51 0.49 0.14 1.8 0.89
BASE COM_PROJ - CB_Age_Care - - 2027 - - - - 0.13 2.35 0.08 1.61 0.52 0.15 1.91 0.95
BASE COM_PROJ - CB_Age_Care - - 2028 - - - - 0.14 2.46 0.08 1.69 0.54 0.16 2.01 1.01
BASE COM_PROJ - CB_Age_Care - - 2029 - - - - 0.14 2.56 0.09 1.77 0.56 0.16 2.1 1.07
BASE COM_PROJ - CB_Age_Care - - 2030 - - - - 0.15 2.66 0.09 1.85 0.58 0.17 2.19 1.12
BASE COM_PROJ - CB_Age_Care - - 2031 - - - - 0.16 2.76 0.1 1.93 0.6 0.17 2.28 1.18
BASE COM_PROJ - CB_Age_Care - - 2032 - - - - 0.16 2.86 0.1 2.01 0.62 0.18 2.37 1.23
BASE COM_PROJ - CB_Age_Care - - 2033 - - - - 0.17 2.96 0.1 2.09 0.64 0.18 2.46 1.29
BASE COM_PROJ - CB_Age_Care - - 2034 - - - - 0.17 3.05 0.11 2.16 0.66 0.19 2.54 1.34

The table above, combined with the multipliers (in last column below), can be used to set up the DINS table shown below.

Table 5: DINS table with updated values

~TFM_DINS

CB_ attribute CSET_CN year ACT NSW NT QLD SA TAS VIC WA multiplier
CB_ COM_PROJ CB_Age_Care 2015 0
CB_ COM_PROJ CB_Age_Care 2016 0
CB_ COM_PROJ CB_Age_Care 2017 0
CB_ COM_PROJ CB_Age_Care 2018 0
CB_ COM_PROJ CB_Age_Care 2019 0
CB_ COM_PROJ CB_Age_Care 2020 1
CB_ COM_PROJ CB_Age_Care 2021 0.1 1.81 0.06 1.19 0.4 0.12 1.44 0.68 0.98
CB_ COM_PROJ CB_Age_Care 2022 0.1 1.85 0.06 1.22 0.41 0.12 1.48 0.7 0.97
CB_ COM_PROJ CB_Age_Care 2023 0.1 1.89 0.06 1.26 0.42 0.12 1.51 0.73 0.96
CB_ COM_PROJ CB_Age_Care 2024 0.11 1.96 0.07 1.32 0.43 0.13 1.58 0.77 0.96
CB_ COM_PROJ CB_Age_Care 2025 0.11 2.02 0.07 1.37 0.45 0.13 1.64 0.8 0.95
CB_ COM_PROJ CB_Age_Care 2026 0.12 2.11 0.07 1.43 0.46 0.14 1.71 0.85 0.95
CB_ COM_PROJ CB_Age_Care 2027 0.12 2.21 0.08 1.51 0.48 0.14 1.8 0.9 0.94
CB_ COM_PROJ CB_Age_Care 2028 0.13 2.31 0.08 1.59 0.51 0.15 1.89 0.95 0.94
CB_ COM_PROJ CB_Age_Care 2029 0.13 2.38 0.08 1.65 0.52 0.15 1.95 0.99 0.93
CB_ COM_PROJ CB_Age_Care 2030 0.14 2.48 0.09 1.72 0.54 0.16 2.04 1.04 0.93
CB_ COM_PROJ CB_Age_Care 2031 0.14 2.54 0.09 1.78 0.55 0.16 2.1 1.08 0.92
CB_ COM_PROJ CB_Age_Care 2032 0.15 2.6 0.09 1.83 0.56 0.16 2.15 1.12 0.91
CB_ COM_PROJ CB_Age_Care 2033 0.15 2.66 0.09 1.88 0.57 0.16 2.21 1.16 0.9
CB_ COM_PROJ CB_Age_Care 2034 0.16 2.74 0.1 1.95 0.59 0.17 2.29 1.21 0.9

The combination of FILL-R and DINS takes a fraction of the time that the original UPD took.