
Figure 1
Conceptual figure showing an overview of Metis as a tool to harmonize across models with variable resolutions.

Figure 2
Key Metis modules and functions.
Table 1
Key Metis functions.
| Function | Description |
|---|---|
| metis.io.R | metis.io.R analyzes inter-sectoral dependencies using an input tables representing demands and supplies of different commodities and/or coefficient matrices representing inter-sectoral intensities. If not provided the function calculates linear inter-sectoral dependencies in the form of a coefficient matrix. Outputs include visualization of the inter-sectoral flows as Sankey diagrams as well as bubble plots representing flows and coefficient values. |
| metis.readgcam.R | This function is designed to interact specifically with GCAM outputs. The function processes GCAM outputs into .csv files by GCAM region, which can then be used as inputs to metis.chartsProcess.R |
| metis.chart.R | A charting function that allows quick and easy access to features like facets, labels and colors. The function is based on ggplot and returns a ggplot chart. |
| metis.chartsProcess.R | A charting function used to compare GCAM time series outputs across scenarios and regions. The function also creates diff plots with percentage and absolute differences from a given reference scenario. |
| metis.map.R | A mapping function used to plot raster and polygon data. The function uses the tmap package and returns a tmap object. Several maps can be combined by overlaying and underlaying using this function. Options allow for different color palettes, labels, and text-size. Visualization features include legend breaks that are freescale, kmeans, or equally divided to highlight different kinds of data. |
| metis.boundaries.R | Metis mapping function to plot shape file boundaries and surrounding regions for quick visualization of any region of interest. |
| metis.grid2poly.R | Function used to crop and aggregate gridded data by a given polygon shape file. If no grid is provided, the function can still be used to produce regional and subregional maps. |
| metis.mapsProcess.R | Metis mapping function used to compare across scenarios. The function produces diff maps with percentage and absolute differences from a given reference scenario. |
| metis.prepGrid.R | This function is designed to be used with specific open-source downscaling models (Xanthos [18], Demeter [19], and Tethys [20]) that downscale GCAM data to the grid level. The function takes outputs from these various models and processes them into the format required for providing input to the metis.mapsProcess.R function. |
| metis.assumptions.R | Contains all conversions and assumptions used in the model. |
| metis.colors.R | Collection of Metis color palettes. A list of palettes can be viewed in the function help file (?metis.colors). To view a particular palette: metis.colors(“pal_hot”). |
| metis.networkOrder.R | Determines the order in which to route water flows through the network of sub-regions, given a user-specified network connectivity matrix. |
| metis.waterBalance.R | Determines the natural flows from upstream sub-regions to downstream sub-regions via routing. |

Figure 3
metis.io.R example outputs. (a) Sankey diagram; (b) Inter-sectoral intensity matrix showing how many units of other sectors are needed to produce one unit of the sector in concern (e.g. To produce 1 unit of “ag”, 0.97 units of “water” and 0.48 units of “elec” are needed.).

Figure 4
metis.chartsProcess.R example outputs. (a) Comparison across regions and scenarios for agricultural outputs in Argentina and Colombia for two hypothetical scenarios Eg1 and Eg2. (b) Diff-plot showing a reference scenario (Eg1) on the left and the difference between the reference and second scenario (Eg2) for each year. Eg2 was only run through 2050, so the difference after 2050 is equal to the negative value of Eg1.

Figure 5
metis.boundaries.R example outputs produced using the example script metis.master.R. (a) US states plotted on broader continent. (b) Sub-set of chosen states. (c) US states overlapped with large river basin boundaries in red. (d) Grid overlay on chosen states.

Figure 6
metis.grid2poly.R conceptual methodology showing two methods of aggregating grid cell values to overlapping polygons. Method 1 uses the sum of partial grid cell values weighted by the grid cell area overlapping with the polygon when the data is in the form of volume (example rainfall in km3). Method 2 uses the mean of partial grid cell values weighted by the area of overlapping shape as a ratio of the total polygon area when the data is in the form of depth (example rainfall in mm or water scarcity as a ratio).

Figure 7
metis.mapsProcess.R example outputs from the example script metis.master.R. (a) Gridded hypothetical data for 2005, 2010 and 2015 in Peru. (b) Data aggregated by polygon for 2005, 2010 and 2015 in Peru.
