Skip to contents

Overview

In the last few vignettes, I have created various outputs that help me to analyze the risk of SLF establishment at for global viticultural regions. I created risk maps and tables, range shift maps and tables, risk quadrant maps for viticultural regions and SLF populations, and have calculated various summary statistics such as omission and commission error, area under the curve, and the optimal suitability threshold for each model.

In this vignette, I will use my function create_risk_report() to refine each of these outputs (excluding the summary statistics, which area model-specific) for countries and provinces of key importance for global viticulture. These outputs will crop maps and viticultural region risk assessments for each region of interest. I will begin by creating a report for each country in our input the wineries_esri54017_tidied dataset. I will also create reports for key areas where viticulture is expected to expand or decline under climate change. This vignette will also outline the best practice for usage of my function create_risk_report().

Setup

Create internal dataset for function

You should only need to do this once, and again each time you change the input data.

I will start by creating an internal dataset to be used by the function. These datasets were created in the previous vignettes and are stored in the data or data-raw folders of the package. I will import these datasets and save them as internal datasets for the function to use.

If you have other datasets to use, you can replace the datasets below with your own, so long as they are in a similar format.

# .csv files
threshold_exponential_values <- read.csv(file = file.path(here::here(), "data-raw", "threshold_exponential_values.csv"))
# .rds files
IVR_locations <- readr::read_rds(file = file.path(here::here(), "data", "wineries_esri54017_tidied.rds"))
summary_global <- readr::read_rds(file = file.path(here::here(), "data", "global_threshold_values.rds"))
summary_regional_ensemble <- readr::read_rds(file = file.path(here::here(), "data", "ensemble_threshold_values.rds"))
# predicted xy suitability
xy_global_hist <- readr::read_rds(file = file.path(here::here(), "data", "global_wineries_1981-2010_xy_pred_suit.rds"))
xy_global_future <- readr::read_rds(file = file.path(here::here(), "data", "global_wineries_2041-2070_GFDL_ssp_mean_xy_pred_suit.rds"))
xy_regional_ensemble_hist <- readr::read_rds(file = file.path(here::here(), "data", "regional_ensemble_wineries_1981-2010_xy_pred_suit.rds"))
xy_regional_ensemble_future <- readr::read_rds(file = file.path(here::here(), "data", "regional_ensemble_wineries_2041-2070_GFDL_ssp_mean_xy_pred_suit.rds"))

I need to make some edits to the xy datasets.

xy_global_hist <- dplyr::rename(xy_global_hist, "xy_global_hist" = "xy_global_1995")
xy_global_future <- dplyr::rename(xy_global_future, "xy_global_future" = "xy_global_2055")
xy_regional_ensemble_hist <- dplyr::rename(xy_regional_ensemble_hist, "xy_regional_ensemble_hist" = "xy_regional_ensemble_1995")
xy_regional_ensemble_future <- dplyr::rename(xy_regional_ensemble_future, "xy_regional_ensemble_future" = "xy_regional_ensemble_2055")
# mypath
mypath <- file.path(here::here() %>% 
                       dirname(),
                     "maxent/models")

# import raster files
## historical raster
slf_binarized_hist <- terra::rast(x = file.path(mypath, "working_dir", "slf_binarized_summed_1981-2010.asc")) 
slf_binarized_future <- terra::rast(x = file.path(mypath, "working_dir", "slf_binarized_summed_2041-2070_ssp_mean_GFDL.asc")) 
slf_range_shift <- terra::rast(x = file.path(mypath, "working_dir", "slf_range_shift_summed_ssp_mean_GFDL.asc"))

# write to proper folder
terra::writeRaster(
  slf_binarized_hist, 
  filename = file.path(here::here(), "vignette-outputs", "rasters", "slf_binarized_summed_1981-2010.asc"), 
  overwrite = FALSE
)

terra::writeRaster(
  slf_binarized_future, 
  filename = file.path(here::here(), "vignette-outputs", "rasters", "slf_binarized_summed_2041-2070_ssp_mean_GFDL.asc"), 
  overwrite = FALSE
)

terra::writeRaster(
  slf_range_shift, 
  filename = file.path(here::here(), "vignette-outputs", "rasters", "slf_range_shift_summed_ssp_mean_GFDL.asc"), 
  overwrite = FALSE
)
# transform all data frames to internal dataset
usethis::use_data(
  threshold_exponential_values, IVR_locations, summary_global, summary_regional_ensemble, xy_global_hist, xy_global_future, xy_regional_ensemble_hist, xy_regional_ensemble_future,
  internal = TRUE,
  overwrite = FALSE
)

The internal dataset sysdata.rda is used for this function in the remainder of the vignette; this file is stored at root/R.

Example usage for create_risk_report(): France

I will now pull out a specific example of France to analyze and demonstrate usage of this function. I will use France as a case study. Here is an example of the code we could use to retrieve a report for France. We will work through each argument:

scari::create_risk_report(
  locality.iso = "fra", # A3-iso
  locality.name = "France", #name
  locality.type = "country", # record type
  # saving output
  mypath = file.path(here::here(), "vignette-outputs", "reports", "France"), # the output location
  create.dir = FALSE, # not saving so not necessary
  save.report = FALSE, # dont save, this is an example
  raster.path = file.path(here::here(), "vignette-outputs", "rasters"), # path to rasters
  # aesthetics- dont necessarily need to be specified
  buffer.dist = 20000, # 20km, this is the distance at which buffers should be drawn on maps to indicate IVR suitability predictions
  period.present = "1981-2010",
  period.projected = "2041-2070",
  model.projected = "GFDL-ESM4",
  ssp.projected = "ssp_126_370_585",
  crs = "ESRI:54017"
)

First, we need to look up the A3-iso code for France. It is “FRA”. We also need to specify that this is a country.

Now, we need to specify arguments for the report output. mypath specifies the path to the directory where this will be saved. It is not necessary if the report will not be saved (ie, create.dir = FALSE and save.report = FALSE). The argument raster.path specifies where the rasters are stored for this function. They are pre-loaded above and by default are stored in root/vignette-outputs/rasters.

Next, we can optionally specify arguments for the aesthetics. If not specified, they will default to a specified value. I have listed the defaults in the example. Note that if you change any of these from their defaults, you should ensure that you have first changed the input datasets, which I created above. This would require you to rerun the package vignettes. I will give an explanation and list out the arguments below:

buffer.dist: this specifies the distance at which a buffer is drawn around important viticultural regions (IVRs) to calculate the suitability. The max suitability is taken from this buffer region. If left blank, it will assume that you instead used a simple point-wise calculation of suitability (aka, the suitability was taken at the exact point locations of IVRs). NOTE: if you choose to change this here, it will only change the aesthetic and not the calculations (the data are created in vignette 130 and pre-loaded above.) You should change the buffer distance used in that vignette if you wish to make this change.

period.present: The time period of the historical data.

period.projected: The time period for the projected future data.

model.projected: The model used for the projected future data.

ssp.projected: The shared socioeconomic pathway (SSP) used for the projected future data. This is a scenario of future climate change that is used to project future conditions.

crs: The crs chosen for all input data and rasters. Note that changing this would require a complete rerun of the package vignettes.

Finally, we have map.style, which is a purely aesthetic argument. It should be specified as a list argument if not the default (the default is shown below). Again, this does not need to be specified.

  # map stype argument as a list
  map.style <- list(
      xlab("UTM_eastings"), # if raster is in lonlat, label as lon/lat, otherwise UTM
      ylab("UTM_northings"), # if raster is in lonlat, label as lon/lat, otherwise UTM
      # aesthetics
      theme_classic(),
      theme(
        # legend
        legend.position = "bottom",
        legend.key = element_rect(color = "black")
      ),
      guides(fill = guide_legend(nrow = 1, byrow = TRUE)),
      # scales
      scale_x_continuous(expand = c(0, 0)),
      scale_y_continuous(expand = c(0, 0))
    )

Now, lets call the various elements of this report.

First, we have the summary of this report, which shows important data.

france_slf_risk_report[["Report_info"]]
## # A tibble: 6 × 2
##   Report_info                                           value          
##   <chr>                                                 <chr>          
## 1 Report prepared for:                                  France         
## 2 Locality Type:                                        Country        
## 3 Time period of present risk based on historical data: 1981-2010      
## 4 Time period of future risk projection:                2041-2070      
## 5 CMIP6 model used for future risk projection:          GFDL-ESM4      
## 6 SSP scenarios included:                               ssp_126_370_585

Next, we have a summary of the viticultural regions in France, which shows each IVR (winery), its published coordinates, and the risk associated with each winery:

head(france_slf_risk_report[["viticultural_regions_list"]])
## [1] "<table class=\"table table-striped\" style=\"width: auto !important; margin-left: auto; margin-right: auto;\">\n <thead>\n<tr><th style=\"border-bottom:hidden;padding-bottom:0; padding-left:3px;padding-right:3px;text-align: center; font-weight: bold; \" colspan=\"17\"><div style=\"border-bottom: 1px solid #ddd; padding-bottom: 5px; \">L delicatula risk to important viticultural regions</div></th></tr>\n  <tr>\n   <th style=\"text-align:right;\"> ID </th>\n   <th style=\"text-align:right;\"> x </th>\n   <th style=\"text-align:right;\"> y </th>\n   <th style=\"text-align:left;\"> Continent </th>\n   <th style=\"text-align:left;\"> Country </th>\n   <th style=\"text-align:left;\"> Region </th>\n   <th style=\"text-align:left;\"> Sub-Region </th>\n   <th style=\"text-align:right;\"> global_model_risk_present </th>\n   <th style=\"text-align:right;\"> global_model_risk_future </th>\n   <th style=\"text-align:right;\"> regional_ensemble_model_risk_present </th>\n   <th style=\"text-align:right;\"> regional_ensemble_model_risk_future </th>\n   <th style=\"text-align:left;\"> risk_level_present </th>\n   <th style=\"text-align:right;\"> risk_count_present </th>\n   <th style=\"text-align:left;\"> risk_level_future </th>\n   <th style=\"text-align:right;\"> risk_count_future </th>\n   <th style=\"text-align:left;\"> risk_shift </th>\n   <th style=\"text-align:right;\"> risk_shift_count </th>\n  </tr>\n </thead>\n<tbody>\n  <tr>\n   <td style=\"text-align:right;\"> 400 </td>\n   <td style=\"text-align:right;\"> 723647.102 </td>\n   <td style=\"text-align:right;\"> 5488176 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> alsace__alsace_wine </td>\n   <td style=\"text-align:left;\"> NA </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.60 </td>\n   <td style=\"text-align:right;\"> 9.16 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 401 </td>\n   <td style=\"text-align:right;\"> -32939.344 </td>\n   <td style=\"text-align:right;\"> 5137501 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Barsac </td>\n   <td style=\"text-align:right;\"> 3.43 </td>\n   <td style=\"text-align:right;\"> 0.10 </td>\n   <td style=\"text-align:right;\"> 8.09 </td>\n   <td style=\"text-align:right;\"> 5.12 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 402 </td>\n   <td style=\"text-align:right;\"> -51406.925 </td>\n   <td style=\"text-align:right;\"> 5166040 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Entre-Deux-Mers </td>\n   <td style=\"text-align:right;\"> 0.54 </td>\n   <td style=\"text-align:right;\"> 0.21 </td>\n   <td style=\"text-align:right;\"> 7.97 </td>\n   <td style=\"text-align:right;\"> 4.68 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> low </td>\n   <td style=\"text-align:right;\"> 1 </td>\n   <td style=\"text-align:left;\"> high-low </td>\n   <td style=\"text-align:right;\"> -2 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 403 </td>\n   <td style=\"text-align:right;\"> -26238.908 </td>\n   <td style=\"text-align:right;\"> 5173287 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Fronsac </td>\n   <td style=\"text-align:right;\"> 0.85 </td>\n   <td style=\"text-align:right;\"> 0.27 </td>\n   <td style=\"text-align:right;\"> 8.05 </td>\n   <td style=\"text-align:right;\"> 5.65 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 404 </td>\n   <td style=\"text-align:right;\"> -29228.589 </td>\n   <td style=\"text-align:right;\"> 5169499 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Graves </td>\n   <td style=\"text-align:right;\"> 0.65 </td>\n   <td style=\"text-align:right;\"> 0.22 </td>\n   <td style=\"text-align:right;\"> 8.05 </td>\n   <td style=\"text-align:right;\"> 5.08 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 405 </td>\n   <td style=\"text-align:right;\"> -59574.392 </td>\n   <td style=\"text-align:right;\"> 5178231 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Haut-Médoc </td>\n   <td style=\"text-align:right;\"> 0.38 </td>\n   <td style=\"text-align:right;\"> 0.21 </td>\n   <td style=\"text-align:right;\"> 7.91 </td>\n   <td style=\"text-align:right;\"> 4.49 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> low </td>\n   <td style=\"text-align:right;\"> 1 </td>\n   <td style=\"text-align:left;\"> high-low </td>\n   <td style=\"text-align:right;\"> -2 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 406 </td>\n   <td style=\"text-align:right;\"> -65181.843 </td>\n   <td style=\"text-align:right;\"> 5183910 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Margaux </td>\n   <td style=\"text-align:right;\"> 0.38 </td>\n   <td style=\"text-align:right;\"> 0.19 </td>\n   <td style=\"text-align:right;\"> 7.91 </td>\n   <td style=\"text-align:right;\"> 4.45 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> low </td>\n   <td style=\"text-align:right;\"> 1 </td>\n   <td style=\"text-align:left;\"> high-low </td>\n   <td style=\"text-align:right;\"> -2 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 407 </td>\n   <td style=\"text-align:right;\"> -96486.280 </td>\n   <td style=\"text-align:right;\"> 5180102 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Médoc </td>\n   <td style=\"text-align:right;\"> 0.21 </td>\n   <td style=\"text-align:right;\"> 0.11 </td>\n   <td style=\"text-align:right;\"> 7.63 </td>\n   <td style=\"text-align:right;\"> 4.14 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> low </td>\n   <td style=\"text-align:right;\"> 1 </td>\n   <td style=\"text-align:left;\"> high-low </td>\n   <td style=\"text-align:right;\"> -2 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 408 </td>\n   <td style=\"text-align:right;\"> -72257.503 </td>\n   <td style=\"text-align:right;\"> 5198234 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Pauillac </td>\n   <td style=\"text-align:right;\"> 0.19 </td>\n   <td style=\"text-align:right;\"> 0.16 </td>\n   <td style=\"text-align:right;\"> 7.84 </td>\n   <td style=\"text-align:right;\"> 4.40 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> low </td>\n   <td style=\"text-align:right;\"> 1 </td>\n   <td style=\"text-align:left;\"> high-low </td>\n   <td style=\"text-align:right;\"> -2 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 409 </td>\n   <td style=\"text-align:right;\"> -59117.819 </td>\n   <td style=\"text-align:right;\"> 5154778 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Pessac-Léognan </td>\n   <td style=\"text-align:right;\"> 2.35 </td>\n   <td style=\"text-align:right;\"> 0.34 </td>\n   <td style=\"text-align:right;\"> 7.91 </td>\n   <td style=\"text-align:right;\"> 4.66 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> low </td>\n   <td style=\"text-align:right;\"> 1 </td>\n   <td style=\"text-align:left;\"> high-low </td>\n   <td style=\"text-align:right;\"> -2 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 410 </td>\n   <td style=\"text-align:right;\"> -19216.851 </td>\n   <td style=\"text-align:right;\"> 5173994 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Pomerol </td>\n   <td style=\"text-align:right;\"> 0.85 </td>\n   <td style=\"text-align:right;\"> 0.27 </td>\n   <td style=\"text-align:right;\"> 8.09 </td>\n   <td style=\"text-align:right;\"> 5.65 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 411 </td>\n   <td style=\"text-align:right;\"> -16003.697 </td>\n   <td style=\"text-align:right;\"> 5170869 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Saint-Émilion </td>\n   <td style=\"text-align:right;\"> 1.59 </td>\n   <td style=\"text-align:right;\"> 0.21 </td>\n   <td style=\"text-align:right;\"> 8.13 </td>\n   <td style=\"text-align:right;\"> 5.36 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 412 </td>\n   <td style=\"text-align:right;\"> -74288.743 </td>\n   <td style=\"text-align:right;\"> 5202759 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Saint-Estèphe </td>\n   <td style=\"text-align:right;\"> 0.18 </td>\n   <td style=\"text-align:right;\"> 0.10 </td>\n   <td style=\"text-align:right;\"> 7.82 </td>\n   <td style=\"text-align:right;\"> 4.37 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> low </td>\n   <td style=\"text-align:right;\"> 1 </td>\n   <td style=\"text-align:left;\"> high-low </td>\n   <td style=\"text-align:right;\"> -2 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 413 </td>\n   <td style=\"text-align:right;\"> -71687.377 </td>\n   <td style=\"text-align:right;\"> 5194119 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Saint-Julien </td>\n   <td style=\"text-align:right;\"> 0.19 </td>\n   <td style=\"text-align:right;\"> 0.16 </td>\n   <td style=\"text-align:right;\"> 7.84 </td>\n   <td style=\"text-align:right;\"> 4.40 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> low </td>\n   <td style=\"text-align:right;\"> 1 </td>\n   <td style=\"text-align:left;\"> high-low </td>\n   <td style=\"text-align:right;\"> -2 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 414 </td>\n   <td style=\"text-align:right;\"> -31715.040 </td>\n   <td style=\"text-align:right;\"> 5138593 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> bordeaux__bordeaux_wine </td>\n   <td style=\"text-align:left;\"> Sauternes – Sauternes </td>\n   <td style=\"text-align:right;\"> 3.43 </td>\n   <td style=\"text-align:right;\"> 0.10 </td>\n   <td style=\"text-align:right;\"> 8.09 </td>\n   <td style=\"text-align:right;\"> 5.12 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 415 </td>\n   <td style=\"text-align:right;\"> 448661.203 </td>\n   <td style=\"text-align:right;\"> 5283498 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Beaujolais </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.55 </td>\n   <td style=\"text-align:right;\"> 9.08 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 416 </td>\n   <td style=\"text-align:right;\"> 541963.436 </td>\n   <td style=\"text-align:right;\"> 5262718 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Bugey </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.47 </td>\n   <td style=\"text-align:right;\"> 8.96 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 417 </td>\n   <td style=\"text-align:right;\"> 366406.649 </td>\n   <td style=\"text-align:right;\"> 5429494 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Chablis </td>\n   <td style=\"text-align:right;\"> 8.74 </td>\n   <td style=\"text-align:right;\"> 8.27 </td>\n   <td style=\"text-align:right;\"> 9.35 </td>\n   <td style=\"text-align:right;\"> 8.67 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 418 </td>\n   <td style=\"text-align:right;\"> 453485.517 </td>\n   <td style=\"text-align:right;\"> 5341888 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Côte Chalonnaise </td>\n   <td style=\"text-align:right;\"> 9.60 </td>\n   <td style=\"text-align:right;\"> 9.42 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.58 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 419 </td>\n   <td style=\"text-align:right;\"> 466350.355 </td>\n   <td style=\"text-align:right;\"> 5394939 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Côte d'Or </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.33 </td>\n   <td style=\"text-align:right;\"> 9.01 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 420 </td>\n   <td style=\"text-align:right;\"> 461204.420 </td>\n   <td style=\"text-align:right;\"> 5357691 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Côte de Beaune </td>\n   <td style=\"text-align:right;\"> 9.96 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.90 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 421 </td>\n   <td style=\"text-align:right;\"> 468950.124 </td>\n   <td style=\"text-align:right;\"> 5364381 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Aloxe-Corton </td>\n   <td style=\"text-align:right;\"> 9.96 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.84 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 422 </td>\n   <td style=\"text-align:right;\"> 458202.624 </td>\n   <td style=\"text-align:right;\"> 5357472 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Auxey-Duresses </td>\n   <td style=\"text-align:right;\"> 9.96 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.90 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 423 </td>\n   <td style=\"text-align:right;\"> 466966.795 </td>\n   <td style=\"text-align:right;\"> 5360757 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Beaune </td>\n   <td style=\"text-align:right;\"> 9.96 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.84 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 424 </td>\n   <td style=\"text-align:right;\"> 456299.700 </td>\n   <td style=\"text-align:right;\"> 5353111 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Chassagne-Montrachet </td>\n   <td style=\"text-align:right;\"> 9.96 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.76 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 425 </td>\n   <td style=\"text-align:right;\"> 460346.764 </td>\n   <td style=\"text-align:right;\"> 5356717 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Meursault </td>\n   <td style=\"text-align:right;\"> 9.96 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.90 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 426 </td>\n   <td style=\"text-align:right;\"> 453297.905 </td>\n   <td style=\"text-align:right;\"> 5350991 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Santenay </td>\n   <td style=\"text-align:right;\"> 9.96 </td>\n   <td style=\"text-align:right;\"> 8.01 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.76 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 427 </td>\n   <td style=\"text-align:right;\"> 478571.950 </td>\n   <td style=\"text-align:right;\"> 5374314 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Côte de Nuits </td>\n   <td style=\"text-align:right;\"> 9.92 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.84 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 428 </td>\n   <td style=\"text-align:right;\"> 477928.708 </td>\n   <td style=\"text-align:right;\"> 5374872 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Chambolle-Musigny </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.57 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.96 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 429 </td>\n   <td style=\"text-align:right;\"> 479349.201 </td>\n   <td style=\"text-align:right;\"> 5378437 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Gevrey-Chambertin </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.57 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.96 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 430 </td>\n   <td style=\"text-align:right;\"> 477714.294 </td>\n   <td style=\"text-align:right;\"> 5370674 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Nuits-Saint-Georges </td>\n   <td style=\"text-align:right;\"> 9.92 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.84 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 431 </td>\n   <td style=\"text-align:right;\"> 478035.915 </td>\n   <td style=\"text-align:right;\"> 5372592 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Vosne-Romanée </td>\n   <td style=\"text-align:right;\"> 9.92 </td>\n   <td style=\"text-align:right;\"> 9.04 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.84 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 432 </td>\n   <td style=\"text-align:right;\"> 457344.968 </td>\n   <td style=\"text-align:right;\"> 5300379 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Mâconnais </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.54 </td>\n   <td style=\"text-align:right;\"> 9.02 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 433 </td>\n   <td style=\"text-align:right;\"> 457351.144 </td>\n   <td style=\"text-align:right;\"> 5295863 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> burgundy_(bourgogne)__burgundy_wine </td>\n   <td style=\"text-align:left;\"> Pouilly-Fuissé </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.54 </td>\n   <td style=\"text-align:right;\"> 9.02 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 434 </td>\n   <td style=\"text-align:right;\"> 385945.121 </td>\n   <td style=\"text-align:right;\"> 5530554 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> champagne__champagne </td>\n   <td style=\"text-align:left;\"> NA </td>\n   <td style=\"text-align:right;\"> 9.80 </td>\n   <td style=\"text-align:right;\"> 9.39 </td>\n   <td style=\"text-align:right;\"> 9.35 </td>\n   <td style=\"text-align:right;\"> 8.93 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 435 </td>\n   <td style=\"text-align:right;\"> 535927.683 </td>\n   <td style=\"text-align:right;\"> 5330026 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> jura__jura_wine </td>\n   <td style=\"text-align:left;\"> NA </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.95 </td>\n   <td style=\"text-align:right;\"> 9.21 </td>\n   <td style=\"text-align:right;\"> 8.92 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 436 </td>\n   <td style=\"text-align:right;\"> 301814.874 </td>\n   <td style=\"text-align:right;\"> 4946650 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Banyuls </td>\n   <td style=\"text-align:right;\"> 0.46 </td>\n   <td style=\"text-align:right;\"> 0.47 </td>\n   <td style=\"text-align:right;\"> 7.60 </td>\n   <td style=\"text-align:right;\"> 6.54 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 437 </td>\n   <td style=\"text-align:right;\"> 214119.137 </td>\n   <td style=\"text-align:right;\"> 5000805 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Blanquette de Limoux </td>\n   <td style=\"text-align:right;\"> 2.75 </td>\n   <td style=\"text-align:right;\"> 4.34 </td>\n   <td style=\"text-align:right;\"> 8.65 </td>\n   <td style=\"text-align:right;\"> 8.19 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 438 </td>\n   <td style=\"text-align:right;\"> 219381.627 </td>\n   <td style=\"text-align:right;\"> 5032602 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Cabardès </td>\n   <td style=\"text-align:right;\"> 3.85 </td>\n   <td style=\"text-align:right;\"> 3.45 </td>\n   <td style=\"text-align:right;\"> 8.65 </td>\n   <td style=\"text-align:right;\"> 8.19 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 439 </td>\n   <td style=\"text-align:right;\"> 297311.752 </td>\n   <td style=\"text-align:right;\"> 4950776 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Collioure </td>\n   <td style=\"text-align:right;\"> 0.46 </td>\n   <td style=\"text-align:right;\"> 0.47 </td>\n   <td style=\"text-align:right;\"> 7.60 </td>\n   <td style=\"text-align:right;\"> 6.54 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 440 </td>\n   <td style=\"text-align:right;\"> 472241.099 </td>\n   <td style=\"text-align:right;\"> 5188361 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Corbières </td>\n   <td style=\"text-align:right;\"> 7.56 </td>\n   <td style=\"text-align:right;\"> 5.12 </td>\n   <td style=\"text-align:right;\"> 8.17 </td>\n   <td style=\"text-align:right;\"> 7.92 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 441 </td>\n   <td style=\"text-align:right;\"> 279381.385 </td>\n   <td style=\"text-align:right;\"> 4982721 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Côtes du Roussillon </td>\n   <td style=\"text-align:right;\"> 0.35 </td>\n   <td style=\"text-align:right;\"> 0.26 </td>\n   <td style=\"text-align:right;\"> 7.54 </td>\n   <td style=\"text-align:right;\"> 5.40 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 442 </td>\n   <td style=\"text-align:right;\"> 287475.512 </td>\n   <td style=\"text-align:right;\"> 4985465 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Fitou </td>\n   <td style=\"text-align:right;\"> 0.33 </td>\n   <td style=\"text-align:right;\"> 0.14 </td>\n   <td style=\"text-align:right;\"> 7.43 </td>\n   <td style=\"text-align:right;\"> 5.28 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 443 </td>\n   <td style=\"text-align:right;\"> 250355.095 </td>\n   <td style=\"text-align:right;\"> 4977727 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Maury </td>\n   <td style=\"text-align:right;\"> 0.54 </td>\n   <td style=\"text-align:right;\"> 0.62 </td>\n   <td style=\"text-align:right;\"> 7.97 </td>\n   <td style=\"text-align:right;\"> 7.59 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 444 </td>\n   <td style=\"text-align:right;\"> 243038.616 </td>\n   <td style=\"text-align:right;\"> 5026028 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Minervois </td>\n   <td style=\"text-align:right;\"> 3.89 </td>\n   <td style=\"text-align:right;\"> 3.99 </td>\n   <td style=\"text-align:right;\"> 8.16 </td>\n   <td style=\"text-align:right;\"> 7.81 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 445 </td>\n   <td style=\"text-align:right;\"> 277369.110 </td>\n   <td style=\"text-align:right;\"> 4973722 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> languedoc_roussillon </td>\n   <td style=\"text-align:left;\"> Rivesaltes </td>\n   <td style=\"text-align:right;\"> 0.35 </td>\n   <td style=\"text-align:right;\"> 0.26 </td>\n   <td style=\"text-align:right;\"> 7.62 </td>\n   <td style=\"text-align:right;\"> 5.35 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 446 </td>\n   <td style=\"text-align:right;\"> 471314.734 </td>\n   <td style=\"text-align:right;\"> 5211713 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> loire_valley__loire_valley_(wine_region) </td>\n   <td style=\"text-align:left;\"> Anjou – Saumur </td>\n   <td style=\"text-align:right;\"> 7.56 </td>\n   <td style=\"text-align:right;\"> 5.03 </td>\n   <td style=\"text-align:right;\"> 8.33 </td>\n   <td style=\"text-align:right;\"> 8.10 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 447 </td>\n   <td style=\"text-align:right;\"> -32162.093 </td>\n   <td style=\"text-align:right;\"> 5243288 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> loire_valley__loire_valley_(wine_region) </td>\n   <td style=\"text-align:left;\"> Cognac </td>\n   <td style=\"text-align:right;\"> 0.39 </td>\n   <td style=\"text-align:right;\"> 0.54 </td>\n   <td style=\"text-align:right;\"> 7.99 </td>\n   <td style=\"text-align:right;\"> 6.31 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 448 </td>\n   <td style=\"text-align:right;\"> -134993.955 </td>\n   <td style=\"text-align:right;\"> 5371562 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> loire_valley__loire_valley_(wine_region) </td>\n   <td style=\"text-align:left;\"> Muscadet </td>\n   <td style=\"text-align:right;\"> 0.23 </td>\n   <td style=\"text-align:right;\"> 0.26 </td>\n   <td style=\"text-align:right;\"> 7.82 </td>\n   <td style=\"text-align:right;\"> 7.13 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 449 </td>\n   <td style=\"text-align:right;\"> 342207.697 </td>\n   <td style=\"text-align:right;\"> 5369452 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> loire_valley__loire_valley_(wine_region) </td>\n   <td style=\"text-align:left;\"> Pouilly-Fumé </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.99 </td>\n   <td style=\"text-align:right;\"> 9.59 </td>\n   <td style=\"text-align:right;\"> 8.89 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 450 </td>\n   <td style=\"text-align:right;\"> 274021.036 </td>\n   <td style=\"text-align:right;\"> 5387566 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> loire_valley__loire_valley_(wine_region) </td>\n   <td style=\"text-align:left;\"> Sancerre </td>\n   <td style=\"text-align:right;\"> 9.65 </td>\n   <td style=\"text-align:right;\"> 8.92 </td>\n   <td style=\"text-align:right;\"> 9.32 </td>\n   <td style=\"text-align:right;\"> 8.43 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 451 </td>\n   <td style=\"text-align:right;\"> 65900.129 </td>\n   <td style=\"text-align:right;\"> 5393490 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> loire_valley__loire_valley_(wine_region) </td>\n   <td style=\"text-align:left;\"> Touraine </td>\n   <td style=\"text-align:right;\"> 2.27 </td>\n   <td style=\"text-align:right;\"> 0.48 </td>\n   <td style=\"text-align:right;\"> 8.52 </td>\n   <td style=\"text-align:right;\"> 7.96 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 452 </td>\n   <td style=\"text-align:right;\"> 578917.682 </td>\n   <td style=\"text-align:right;\"> 5530554 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> lorraine </td>\n   <td style=\"text-align:left;\"> NA </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.09 </td>\n   <td style=\"text-align:right;\"> 9.33 </td>\n   <td style=\"text-align:right;\"> 8.81 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 453 </td>\n   <td style=\"text-align:right;\"> -5574.763 </td>\n   <td style=\"text-align:right;\"> 5046740 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> madiran </td>\n   <td style=\"text-align:left;\"> NA </td>\n   <td style=\"text-align:right;\"> 7.32 </td>\n   <td style=\"text-align:right;\"> 2.16 </td>\n   <td style=\"text-align:right;\"> 8.66 </td>\n   <td style=\"text-align:right;\"> 6.76 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> extreme-high </td>\n   <td style=\"text-align:right;\"> -1 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 454 </td>\n   <td style=\"text-align:right;\"> 530674.541 </td>\n   <td style=\"text-align:right;\"> 5042137 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> provence </td>\n   <td style=\"text-align:left;\"> NA </td>\n   <td style=\"text-align:right;\"> 1.79 </td>\n   <td style=\"text-align:right;\"> 0.85 </td>\n   <td style=\"text-align:right;\"> 7.94 </td>\n   <td style=\"text-align:right;\"> 7.68 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 455 </td>\n   <td style=\"text-align:right;\"> 485433.197 </td>\n   <td style=\"text-align:right;\"> 5099916 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Beaumes-de-Venise </td>\n   <td style=\"text-align:right;\"> 8.72 </td>\n   <td style=\"text-align:right;\"> 8.56 </td>\n   <td style=\"text-align:right;\"> 7.86 </td>\n   <td style=\"text-align:right;\"> 7.75 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 456 </td>\n   <td style=\"text-align:right;\"> 458476.945 </td>\n   <td style=\"text-align:right;\"> 5220820 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Château-Grillet </td>\n   <td style=\"text-align:right;\"> 9.12 </td>\n   <td style=\"text-align:right;\"> 4.19 </td>\n   <td style=\"text-align:right;\"> 8.22 </td>\n   <td style=\"text-align:right;\"> 8.03 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> extreme-high </td>\n   <td style=\"text-align:right;\"> -1 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 457 </td>\n   <td style=\"text-align:right;\"> 466212.058 </td>\n   <td style=\"text-align:right;\"> 5093763 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Châteauneuf-du-Pape </td>\n   <td style=\"text-align:right;\"> 0.47 </td>\n   <td style=\"text-align:right;\"> 0.51 </td>\n   <td style=\"text-align:right;\"> 7.90 </td>\n   <td style=\"text-align:right;\"> 5.37 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 458 </td>\n   <td style=\"text-align:right;\"> 460078.746 </td>\n   <td style=\"text-align:right;\"> 5222062 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Condrieu </td>\n   <td style=\"text-align:right;\"> 9.12 </td>\n   <td style=\"text-align:right;\"> 4.19 </td>\n   <td style=\"text-align:right;\"> 8.22 </td>\n   <td style=\"text-align:right;\"> 8.03 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> extreme-high </td>\n   <td style=\"text-align:right;\"> -1 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 459 </td>\n   <td style=\"text-align:right;\"> 467958.459 </td>\n   <td style=\"text-align:right;\"> 5176569 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Cornas </td>\n   <td style=\"text-align:right;\"> 8.83 </td>\n   <td style=\"text-align:right;\"> 5.85 </td>\n   <td style=\"text-align:right;\"> 8.03 </td>\n   <td style=\"text-align:right;\"> 7.78 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 460 </td>\n   <td style=\"text-align:right;\"> 466937.055 </td>\n   <td style=\"text-align:right;\"> 5187203 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Côte du Rhône-Villages </td>\n   <td style=\"text-align:right;\"> 8.83 </td>\n   <td style=\"text-align:right;\"> 4.93 </td>\n   <td style=\"text-align:right;\"> 8.09 </td>\n   <td style=\"text-align:right;\"> 7.80 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> extreme-high </td>\n   <td style=\"text-align:right;\"> -1 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 461 </td>\n   <td style=\"text-align:right;\"> 463728.308 </td>\n   <td style=\"text-align:right;\"> 5225380 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Côte-Rôtie </td>\n   <td style=\"text-align:right;\"> 4.54 </td>\n   <td style=\"text-align:right;\"> 2.78 </td>\n   <td style=\"text-align:right;\"> 8.00 </td>\n   <td style=\"text-align:right;\"> 7.80 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 462 </td>\n   <td style=\"text-align:right;\"> 464340.224 </td>\n   <td style=\"text-align:right;\"> 5172678 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Côtes du Rhône </td>\n   <td style=\"text-align:right;\"> 8.83 </td>\n   <td style=\"text-align:right;\"> 5.85 </td>\n   <td style=\"text-align:right;\"> 7.91 </td>\n   <td style=\"text-align:right;\"> 7.75 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 463 </td>\n   <td style=\"text-align:right;\"> 467636.838 </td>\n   <td style=\"text-align:right;\"> 5188345 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Crozes-Hermitage </td>\n   <td style=\"text-align:right;\"> 8.83 </td>\n   <td style=\"text-align:right;\"> 4.93 </td>\n   <td style=\"text-align:right;\"> 8.09 </td>\n   <td style=\"text-align:right;\"> 7.80 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> extreme-high </td>\n   <td style=\"text-align:right;\"> -1 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 464 </td>\n   <td style=\"text-align:right;\"> 482940.634 </td>\n   <td style=\"text-align:right;\"> 5103704 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Gigondas </td>\n   <td style=\"text-align:right;\"> 4.79 </td>\n   <td style=\"text-align:right;\"> 7.68 </td>\n   <td style=\"text-align:right;\"> 7.90 </td>\n   <td style=\"text-align:right;\"> 7.55 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> high-extreme </td>\n   <td style=\"text-align:right;\"> 1 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 465 </td>\n   <td style=\"text-align:right;\"> 467374.814 </td>\n   <td style=\"text-align:right;\"> 5188436 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Hermitage </td>\n   <td style=\"text-align:right;\"> 8.83 </td>\n   <td style=\"text-align:right;\"> 4.93 </td>\n   <td style=\"text-align:right;\"> 8.09 </td>\n   <td style=\"text-align:right;\"> 7.80 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> extreme-high </td>\n   <td style=\"text-align:right;\"> -1 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 466 </td>\n   <td style=\"text-align:right;\"> 445754.361 </td>\n   <td style=\"text-align:right;\"> 5230286 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> St. Joseph </td>\n   <td style=\"text-align:right;\"> 4.54 </td>\n   <td style=\"text-align:right;\"> 2.78 </td>\n   <td style=\"text-align:right;\"> 8.13 </td>\n   <td style=\"text-align:right;\"> 7.89 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> high-high </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 467 </td>\n   <td style=\"text-align:right;\"> 467556.433 </td>\n   <td style=\"text-align:right;\"> 5175509 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Saint-Péray </td>\n   <td style=\"text-align:right;\"> 8.83 </td>\n   <td style=\"text-align:right;\"> 5.85 </td>\n   <td style=\"text-align:right;\"> 8.03 </td>\n   <td style=\"text-align:right;\"> 7.78 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 468 </td>\n   <td style=\"text-align:right;\"> 480796.495 </td>\n   <td style=\"text-align:right;\"> 5101247 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> rhône__rhône_wine </td>\n   <td style=\"text-align:left;\"> Vacqueyras </td>\n   <td style=\"text-align:right;\"> 4.79 </td>\n   <td style=\"text-align:right;\"> 7.68 </td>\n   <td style=\"text-align:right;\"> 7.90 </td>\n   <td style=\"text-align:right;\"> 7.55 </td>\n   <td style=\"text-align:left;\"> high </td>\n   <td style=\"text-align:right;\"> 3 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> high-extreme </td>\n   <td style=\"text-align:right;\"> 1 </td>\n  </tr>\n  <tr>\n   <td style=\"text-align:right;\"> 469 </td>\n   <td style=\"text-align:right;\"> 611079.775 </td>\n   <td style=\"text-align:right;\"> 5232811 </td>\n   <td style=\"text-align:left;\"> Europe </td>\n   <td style=\"text-align:left;\"> france </td>\n   <td style=\"text-align:left;\"> savoie </td>\n   <td style=\"text-align:left;\"> NA </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 10.00 </td>\n   <td style=\"text-align:right;\"> 9.40 </td>\n   <td style=\"text-align:right;\"> 9.20 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme </td>\n   <td style=\"text-align:right;\"> 4 </td>\n   <td style=\"text-align:left;\"> extreme-extreme </td>\n   <td style=\"text-align:right;\"> 0 </td>\n  </tr>\n</tbody>\n</table>"

Here are some of the column explanations:

  • columns that include the word “risk” are a calculation of the risk level, on a scale from 0-1. There are columns for both the present and future projections of risk.
  • Columns labeled “risk_level” and the current level of risk; low, moderate, high, or extreme.
  • the risk_shift column shows the present and future risk, separated by an underscore
  • the risk_shift_count column tallys how many risk levels were gained or lost, in order of the risk level.

Now, we will call up the risk maps, which depict the level of risk and the location of any wineries.

france_slf_risk_report[["risk_maps"]][["present_risk_map"]]

france_slf_risk_report[["risk_maps"]][["future_risk_map"]]

Unfortunately, the map did not format well because France possesses some territories outside its mainland. We can fix this with a few simple lines of code; we merely need to edit the axes of the plot:

france_current <- france_slf_risk_report[["risk_maps"]][["present_risk_map"]] +
  xlim(-482431.4012544825, 964862.802508965) +
  ylim(4804640.544946612, 5695846.383707797)
## Scale for x is already present.
## Adding another scale for x, which will replace the existing scale.
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
france_current

france_future <- france_slf_risk_report[["risk_maps"]][["future_risk_map"]] +
  xlim(-482431.4012544825, 964862.802508965) +
  ylim(4804640.544946612, 5695846.383707797)
## Scale for x is already present.
## Adding another scale for x, which will replace the existing scale.
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
france_future

Now we can see the map of the mainland much better.

The next table shows the proportion of the map that is occupied by each risk level. This is a useful table to see how much of the viticultural area is at risk.

france_slf_risk_report[["risk_maps_prop_area_table"]]
model_suitability area_km²_present prop_area_present area_km²_future prop_area_future
unsuitable_agreement 121,287 18% 169,286 24.8%
regional 214,079 31% 250,768 36.8%
global 801 0% 1,069 0.2%
suitable_agreement 346,052 51% 261,097 38.3%
a future areas at risk calculated for period 2041-2070
a present risk calculated for period 1981-2010

Next, we have the viticultural risk plot, which shows the risk level of each winery in France. This is a useful plot to see the overall trend of how the wineries in France are changing risk over time. The arrows point from a vineyard in the present, to its risk in the future.

france_slf_risk_report[["viticultural_risk_plot"]]

Next is the viticultural risk table, which shows a tally of the wineries at each risk level, both now and in the future. This is a useful table to see how many wineries are at each risk level, and how that changes over time. It serves to quantify the risk plot above. Negative numbers are decreasing in risk over time, and positive numbers are increasing in risk over time.

france_slf_risk_report[["viticultural_risk_table"]]
Risk of L delicatula establishment for important viticultural regions
extreme_future high_future moderate_future low_future total_present
extreme_present 32 -6 0 0 38
high_present +2 22 0 -8 32
moderate_present +0 +0 0 0 0
low_present +0 +0 +0 0 0
total_future 34 28 0 8 70
a 20000m buffer used for suitability of viticultural areas
a number signs indicate whether climate change is increasing or decreasing risk
a present risk calculated for period 1981-2010
a future risk calculated for period 2041-2070

Next, we have a map of the shift in risk for SLF over time. Green areas will gain risk in the future, while blue areas will lose risk in the future. This is a useful map to see where SLF is expected to shift its range over time. The white areas remain consistently at risk over time, while the grey areas are never at risk.

france_slf_risk_report[["range_shift_map"]]

We cannot see this map well either; lets change the view on it.

france_shift <- france_slf_risk_report[["range_shift_map"]] +
  xlim(-482431.4012544825, 964862.802508965) +
  ylim(4804640.544946612, 5695846.383707797)
## Scale for x is already present.
## Adding another scale for x, which will replace the existing scale.
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
france_shift

Finally, we havea table which calculates the total area for each of the categories in the above map.

france_slf_risk_report[["range_shift_table"]]
Ld_range_shift_type area_km² prop_total_area
remains_unsuitable 116,835 17.1%
contraction 52,451 7.7%
expansion 4,453 0.7%
retained_suitability 508,481 74.5%
a future areas at risk calculated for period 2041-2070
a present risk calculated for period 1981-2010

Apply function to all possible countries

loop to apply function to wineries dataset

Primarily, I would like to use the wineries dataset to create a report for each unique country on the list. Our winery records contain 64 unique countries that I will create reports for. These reports will be saved to vignette-outputs/reports.

# import wineries dataset
IVR_locations <- readr::read_rds(file = file.path(here::here(), "data", "wineries_esri54017_tidied.rds"))


n_distinct(IVR_locations$Country)
## [1] 64
# there are 64 unique countries on the list

# get iso codes using rnaturalearth data
admin_0_countries <- read_sf(dsn = file.path(here::here(), "data-raw", "ne_countries", "ne_10m_admin_0_countries.shp")) %>%
  dplyr::select(ADMIN, ADM0_A3)

# replace names in sf
admin_0_countries$ADMIN <- stringr::str_replace_all(admin_0_countries$ADMIN, "United States of America", "United States")
admin_0_countries$ADMIN <- stringr::str_replace_all(admin_0_countries$ADMIN, "South Korea", "Republic of Korea")
admin_0_countries$ADMIN <- stringr::str_replace_all(admin_0_countries$ADMIN, "Palestine", "Palestinian territories")
admin_0_countries$ADMIN <- stringr::str_replace_all(admin_0_countries$ADMIN, "Cabo Verde", "Cape Verde")
admin_0_countries$ADMIN <- stringr::str_replace_all(admin_0_countries$ADMIN, "Czechia", "Czech Republic")
admin_0_countries$ADMIN <- stringr::str_replace_all(admin_0_countries$ADMIN, "Republic of Serbia", "Serbia")

# correct misspelling
IVR_locations$Country <- stringr::str_replace_all(IVR_locations$Country, "Algiera", "Algeria")

# join
IVR_locations_iso <- left_join(IVR_locations, admin_0_countries, join_by(Country == ADMIN)) %>%
  dplyr::rename("iso_a3" = "ADM0_A3")
  
  
# check 
n_distinct(IVR_locations_iso$iso_a3)
## [1] 64
# it was successful, 64 unique iso codes

# sort dataset
unique_iso <- sort(unique(IVR_locations_iso$iso_a3))
# paired country names
unique_name <- IVR_locations_iso %>%
  group_by(iso_a3) %>%
  summarize(country = unique(Country)) %>%
  dplyr::select(country) %>%
  as.matrix() %>%
  as.character()
for (i in seq_along(unique_iso)){
  print(c(unique_name[i],unique_iso[i]))
}
## [1] "Albania" "ALB"    
## [1] "Argentina" "ARG"      
## [1] "Armenia" "ARM"    
## [1] "Australia" "AUS"      
## [1] "Austria" "AUT"    
## [1] "Azerbaijan" "AZE"       
## [1] "Belgium" "BEL"    
## [1] "Bulgaria" "BGR"     
## [1] "Bosnia and Herzegovina" "BIH"                   
## [1] "Bolivia" "BOL"    
## [1] "Brazil" "BRA"   
## [1] "Canada" "CAN"   
## [1] "Switzerland" "CHE"        
## [1] "Chile" "CHL"  
## [1] "China" "CHN"  
## [1] "Cape Verde" "CPV"       
## [1] "Cyprus" "CYP"   
## [1] "Czech Republic" "CZE"           
## [1] "Germany" "DEU"    
## [1] "Algeria" "DZA"    
## [1] "Spain" "ESP"  
## [1] "France" "FRA"   
## [1] "Georgia" "GEO"    
## [1] "Greece" "GRC"   
## [1] "Croatia" "HRV"    
## [1] "Hungary" "HUN"    
## [1] "Indonesia" "IDN"      
## [1] "India" "IND"  
## [1] "Ireland" "IRL"    
## [1] "Iran" "IRN" 
## [1] "Israel" "ISR"   
## [1] "Italy" "ITA"  
## [1] "Japan" "JPN"  
## [1] "Republic of Korea" "KOR"              
## [1] "Lebanon" "LBN"    
## [1] "Lithuania" "LTU"      
## [1] "Luxembourg" "LUX"       
## [1] "Latvia" "LVA"   
## [1] "Morocco" "MAR"    
## [1] "Moldova" "MDA"    
## [1] "Mexico" "MEX"   
## [1] "North Macedonia" "MKD"            
## [1] "Myanmar" "MMR"    
## [1] "Montenegro" "MNE"       
## [1] "Netherlands" "NLD"        
## [1] "New Zealand" "NZL"        
## [1] "Peru" "PER" 
## [1] "Poland" "POL"   
## [1] "Portugal" "PRT"     
## [1] "Palestinian territories" "PSX"                    
## [1] "Romania" "ROU"    
## [1] "Russia" "RUS"   
## [1] "Serbia" "SRB"   
## [1] "Slovakia" "SVK"     
## [1] "Slovenia" "SVN"     
## [1] "Sweden" "SWE"   
## [1] "Syria" "SYR"  
## [1] "Tunisia" "TUN"    
## [1] "Turkey" "TUR"   
## [1] "Ukraine" "UKR"    
## [1] "United States" "USA"          
## [1] "Venezuela" "VEN"      
## [1] "Vietnam" "VNM"    
## [1] "South Africa" "ZAF"
length(unique_name)
## [1] 64

We ran checks and everything seems correct. Above is a list of countries that will get a report, 64 in total. Now, I will run a loop to create those reports and save the, to root/vignette-outputs/reports.

# loop thru country iso codes and names together
for (a in seq_along(unique_iso)) {
  
  scari::create_risk_report(
    locality.iso = unique_iso[a], # iso codes
    locality.name = unique_name[a], # names
    locality.type = "country",
    mypath = file.path(here::here(), "vignette-outputs", "reports", unique_name[a]),
    create.dir = TRUE, # create subdirectory for plots
    save.report = TRUE,
    buffer.dist = 20000 # distance at which buffers should be drawn on maps to indicate IVR suitability predictions
    )
  
}

Some of these maps might need to be edited to zoom in on the countries, because some countries have geographically separated territories that are not relevant to the analysis. The code to zoom in on those plots will be in the following section.