description: Data and Code for 'Joint optimization of land carbon uptake and albedo can help achieve moderate instantaneous and long-term cooling effects' by Graf et al. (Communications Earth and Environment) This repository contains this readme.txt and two types of files: *.csv (comma-separated) data files: --------------------------------------------------------------------------------------------------------------------------- Data required to reproduce the figures, table and reported statistics in the article, plus more data of potential interest. The format was chosen such that the files are easy to open, understand and analyze without the below Python code. A legend to all variables occuring in one or more of these files is given at the bottom of this readme. sitesummary.csv One record per site: metadata and (multi-)year averages/sums. Basis of Figs. 1, 2a-d, 3, and supplementary Figures 1, 2, 3 and 6. monthly_allsites.csv One record per site and month: Timeseries of time-dependent variables (plus some constant metadata copied for convenience) at the resolution needed for all remaining Figures. site_scenario_timeseries.csv One record per site, year after land-use change, scenario and ensemble member: Helps reproduce Fig. 2e-h without slow full model run. Timestamps < year 1 (identical data) only to ensure a clear 'before change' representation in plots even in case of a log time-axis. site_results.zip One file per site, one record per year, month and SWout-gapfill window: First aggregation step after (half)hourly FLUXNET input. Shows periods of similar albedo for each site; preparation for monthly_allsites and higher temporal aggregation, required for Table 1. crossval_comparison.csv One record per site, run and selected (half-)hourly timestep: Result of introducing one random artificial SWout gap (of up to 1920 records) per site in 10 runs (missing runs coincided with natural gaps). Used to report out-of-sample performance in supplement; results can slightly vary with each repetition but are not used in the main analysis. With few exceptions (some of the species and canopy height metadata in sitesummary.csv received from co-authoring site operators or prior compilation from different sources by Talie Musavi), all data provided with this study is the result of processing (e.g. aggregating, gap-filling and quality filtering, statistical and scenario analyses) already public 3rd party data, such as FLUXNET / AMERIFLUX / ICOS time series, MODIS fAPAR, Albedo kernels, and tables in publications. If you use data from this repository, it is your responsibility to (also) appropriately cite the primary source and ensure consistency with it. References to all sources are provided in the article. *.py (Python) code files: Software to... --------------------------------------------------------------------------------------------------------------------------- i) plot the article figures from the abovementioned *.csv. Runs without additional external input (alb05a &b, alb06). Also the article table (Table 1) and a more verbose version can be reproduced by running alb03b (unzip site_results). ii) process publicly available 3rd party data NOT included here into the abovementioned *.csv files (alb01 - alb04). This code is mainly stored for documentation, but might also be helpful for future work with similar external input. Most of these scripts will not work without providing their expected external input (alb01, alb02a & b, alb04b). alb04a does; so does alb03a with the limitations that directory site_results needs unzipping first, and that 3rd party albedo kernels (added by alb04b, needed by alb06) will be missing from the monthly output. In this case first back- up monthly_allsites.csv (generally recommended to back-up all provided *.csv files before running any ii-script). iii) help modules providing more functions to the above scripts. When run as a script they demonstrate simple tests with self-produced synthetic data. They do not need any input from inside or outside the repository (alb00 a & b). Used versions: Python 3.9.4, numpy 1.22.3, pandas 1.2.4, matplotlib 3.4.1, scipy 1.11.1 The number in the *.py-filename refers to the original order of the full analysis (e.g. alb06 requires input from alb05b, alb05a and alb05b are independent of each other but 'a' is used earlier in the article / further analysis than 'b'). However with the provided *csv files you can run those scripts requiring no additional external input in any order. Each codefile has a brief description of its functionality at the top, followed by package imports and three sections: 'user constants': Some important parameters that can be changed without much knowledge of the remaining code 'function definitions': Used repeatedly in the code and of potential interest to import elsewhere, sometimes empty 'script part': The main script (or in case of alb00a & b, test script). Variable in *csv Meaning (refer to broken line for optimal table display width) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALB albedo (only in site_scenario_timeseries.csv). Note that a sub-loop with monthly albedos (not written out), not this annual average, determines RFalb AlbAvg monthly climatology (across for this month of all available years of this site) of SW_IN_F ALBEDO albedo - ratio of SW_OUT to SW_IN_F, i.e. flux-weighted average, of this aggregation interval ALBmod1 (NEPmax) albedo of best partner site according to scenario 1 (flux-weighted average of this aggregation interval, but monthly climatologies are used in the model) ALBmod2 (ALBmax) albedo of best partner site according to scenario 2 (flux-weighted average of this aggregation interval, but monthly climatologies are used in the model) ALBmod3 (balanced) albedo of best partner site according to scenario 3 (flux-weighted average of this aggregation interval, but monthly climatologies are used in the model) ALBmod4 (breakthrough) albedo of best partner site according to scenario 4 (flux-weighted average of this aggregation interval, but monthly climatologies are used in the model) APAR absorbed photosynthetic active radiation from FLUXNET - (almost) always empty, unused apt4model boolean indicator whether this site qulifies for the scenario modelling exercise around Fig. 2 (by having climate partner sites) best1 (NEPmax) best partner site according to scenario 1 best2 (ALBmax) best partner site according to scenario 2 best3 (balanced) best partner site according to scenario 3 best4 (breakthrough) best partner site according to scenario 4 CUE=NEP/GPP carbon use efficiency, ratio of this aggregation interval's NEP to GPP deciduous indicator whether a forest is deciduous or evergreen DOI DOI of FLUXNET data DOI_CONTRIBUTOR_EMAIL email address of one operator of this site according to metadata DOI_CONTRIBUTOR_NAME name of one operator of this site according to metadata DOI_CONTRIBUTOR_ORCID ORCID of one operator of this site according to metadata DomSpec dominant species of this site if info is available and one exists (>75% abundance) EM radiative kernel for surface albedo, climatology of this month of the year and nearest coordinates, ensemble mean of the 4 sources EnsembleMember list of the settings of this particular run in the uncertainty ensemble of the scenario modelling exercise (only in site_scenario_timeseries.csv) Epgpp/SWin ratio of Ephot_gpp to SWin for this aggregation interval Epgpp/SWnet ratio of Ephot_gpp to SWnet for this aggregation interval Ephot_gpp inferred radiation energy consumed by photosynthesis according to GPP in W m-2 Ephot_nee inferred net of radiation energy consumed by photosynthesis and heat released by resoiration according to NEE in W m-2 FAPAR fraction of absorbed photosynthetically active radiation in FLUXNET data - (almost) always empty and unused fAPARs*SWin product of fAPARsat and SWin (temporal aggregation after multiplication) fAPARsat monthly fraction of absorbed photosyntheically active radiation according to satellite remote sensing (MODIS) fAPARsintpl indicator whether fAPARsat is interpolated (1) or not (0) first first timestamp of available (e.g. half-hourly) source data in this aggregation interval GPP/SWin ratio of GPP of this aggregation interval to its SWin GPP_DT_VUT_REF gross primary productivity in gC m-2 yr-1, converted from same-named (inferred) FLUXNET variable, own aggregation from (half-)hourly source data H_F_MDS sensible heat flux in W m-2, already gapfilled same-named FLUXNET variable, own aggregation from (half-)hourly source data height_can_fin final canopy height in m after merging and comparing sources for this site HEIGHTC canopy height in m from FLUXNET metadata IGBP IGBP class of site IGBPgroup which of the groups forest, wood-free, other the IGBP class of this site belongs to IGBPSpec combined IGBP class and dominant species information for aggregating sites as in Table 1 InUsedYears Boolean indicator whether this aggregation interval is part of a valid (full core variable availability after gapfilling) siteyear used in analysis kernelB19 radiative kernel for surface albedo, climatology of this month of the year and nearest coordinates to the site according to Bright and O'Halloran 2019 kernelP18 radiative kernel for surface albedo, climatology of this month of the year and nearest coordinates to the site according to Pendergrass et al. 2018 kernelS18 radiative kernel for surface albedo, climatology of this month of the year and nearest coordinates to the site according to Smith et al. 2018 kernelS20 radiative kernel for surface albedo, climatology of this month of the year and nearest coordinates to the site according to Smith et al. 2020 last last timestamp of available (e.g. half-hourlky) source data in this aggregation interval LE_F_MDS latent heat flux in W m-2, , already gapfilled same-named FLUXNET variable, own aggregation from (half-)hourly source data leaves indicator whether a (forest) site is broad- or needleleaved lg(Reco/hc) log10 of ratio of Reco to height_can_fin LOCATION_ELEV elevation in m of site if available LOCATION_LAT latitude in decimal degrees of site LOCATION_LONG longitude in decimal degrees of site MAP mean annual precipitation in mm yr-1 MAPfilled boolean indicator whether MAP of this site is inferred from measured P_F (True) or was available as metadata provided by site operators (False) MAT mean annual temperature in degC MATfilled boolean indicator whether MAT of this site is inferred from measured TA_F (True) or was available as metadata provided by site operators (False) month month of the year as integer N number of (half-) ourly source data records in this aggregation interval NBP net biome productivity (here: NEP - harvest exports, only in site_scenario_timeseries.csv) NBPBAU NBP under business as usual (site retaining ist present land use, only in site_scenario_timeseries.csv) NBPBAUcum cumulative NBPBAU over the course of the scenario modelling exercise in gC m-2 (only in site_scenario_timeseries.csv) NBPcum cumulative NBP over the course of the scenario modelling exercise in gC m-2 (only in site_scenario_timeseries.csv) NBPdcum NBPcum - NBPBAUcum NEE_VUT_REF net ecosystem exchange (= - NEP), converted to gC m-2 yr-1 from same-named FLUXNET variable, own aggregation from (half-)hourly source data NEP net ecosystem productivity in gC m-2 yr-1, converted from (half-) hourly FLUXNET variable NEE_VUT_REF (in site_scenario_timeseries.csv: modeled NEP) NEPBAU NEP under business as usual (site retaining ist present land use, only in site_scenario_timeseries.csv) NEPmod1 (NEPmax) albedo of best partner site according to scenario 1 NEPmod2 (ALBmax) albedo of best partner site according to scenario 2 NEPmod3 (balanced) albedo of best partner site according to scenario 3 NEPmod4 (breakthrough) albedo of best partner site according to scenario 4 NETRAD net radiation in W m-2, either same-named FLUXNET variable, or if missing SW_IN_F + LW_IN_F - SW_OUT - LW_OUT, own aggregation from half-hourly data NfilledSWout number of (half-)hourly source data records where SWout was gapfilled NSWout number of (half-)hourly SWout after gapfilling P_F precipitation in mm yr-1, converted from already gapfilled same-named FLUXNET variable and aggregated from (half-)hourly source data PartnGen list of all 'similar climate' partners of this site pointsperday FLUXNET data points per day (24 or 48 to distinguish half-hourly and hourly input data) PPFD_IN incoming photosynthetic photon flux density in umol m-2 s-1, same-named FLUXNET variable, own aggregation from (half-)hourly source data PPFD_OUT outgoing photosynthetic photon flux density in umol m-2 s-1, same-named FLUXNET variable, own aggregation from (half-)hourly source data predEM prediction of EM if it was estimated by reduced major axis 'regression' from SWinMeasAvg Reco/gpp ratio of site-average Reco to GPP Reco/nee ratio of site-average Reco to NEE RECO_DT_VUT_REF ecosystem respiration in gC m-2 yr-1, converted from same-named (inferred) FLUXNET variable, own aggregation from (half-)hourly source data REFERENCE_DOI DOI of reference article(s) for the site provided with FLUXNET metadata REFERENCE_PAPER reference article(s) for the site provided with FLUXNET metadata RelevSnow for each gapfilling window, either 0 = no (relevant) snow or 1 = snow-affected. Monthly and higher aggregates: time-weighted average. RelevSnow01 indicator whether there was RelevSnow at all in this aggregation interval, i.e. 0 if RelevSnow == 0 and 1 if RelevSnow > 0 RFalbpP albedo-induced estimated radiative forcing per percent of changed global land surface (only in site_scenario_timeseries.csv) RFCO2pP NEP/NBP-induced estimated radiative forcing per percent of changed global land surface (only in site_scenario_timeseries.csv) RFpP net estimated radiative forcing (RFalbpP + RFCO2pP) per percent of changed global land surface (only in site_scenario_timeseries.csv) rmse in-sample root mean square error of the SWout-gapfilling relation for each window. For monthly and higher aggregation intervals, its weighted mean. scenario which of the four scenarios described in the artticle this record (of site_scenario_timeseries.csv) corresponds to site offcicial FLUXNET code of the site (2 letters country code followed by hyphen and 3 letters for location in country) SITE_DESC site description if any was provided with FLUXNET metadata SITE_SNOW_COVER_DAYS average snow cover days per year according to site operator, if thsi information was provided with metadata siteyears number of valid and thus used years from this site siteyearslist list of teh used years of this site SW_IN_F shortwave incoming radiation, already gapfilled same-named FLUXNET variable, own aggregation from (half-)hourly sourcedata SW_NET SW_IN_F - SW_OUT SW_OUT shortwave outgoing radiation, same-named FLUXNET variable but filtered (quality flag 0, omit values <-5, clip other values <0 to 0), then gap-filling SWinMeasAvg monthly climatology (average for this month across all available years of this site) of SW_IN_F SWnet SW_IN_F - SW_OUT SWnetmod1 (NEPmax) SW_IN_F of site * ALBEDO of its best partner (in scenario 1). First indicator of effect but not used in Fig 2, which uses monthly timestep and kernels. SWnetmod2 (ALBmax) SW_IN_F of site * ALBEDO of its best partner (in scenario 2). First indicator of effect but not used in Fig 2, which uses monthly timestep and kernels. SWnetmod3 (balanced) SW_IN_F of site * ALBEDO of its best partner (in scenario 3). First indicator of effect but not used in Fig 2, which uses monthly timestep and kernels. SWnetmod4 (breakthrough)SW_IN_F of site * ALBEDO of its best partner (in scenario 4). First indicator of effect but not used in Fig 2, which uses monthly timestep and kernels. SWnetTOAd estimated change in SWnet at the top-of-atmosphere due to albedo change (only in site_scenario_timeseries.csv) SWOUTfilledFrac fraction of gap-filled Swout across used site-years TA_F air temperature in degC, already gapfilled same-named FLUXNET variable, own aggregation from (half-)hourly source data TAmax maximum of (half-)hourly TA_F in this aggregation interval TAmin minimum of (half-)hourly TA_F in this aggregation interval UTC_OFFSET offset in hours between this site's timestamp and UTC according to FLUXNET metadata windowALB ratio to SW_IN_F used to gapfill SW_OUT with SW_IN_F, thus 1st estimate of albedo (no flux-weighting in monthly aggregates). For diagnostics only. windowNUM running number of the SWout-gapfilling window for this site year year ym year followed by month as one integer ymw year followed by month and (3-digit) windowNUM as one integer