{
"cells": [
{
"cell_type": "markdown",
"id": "62e16498-69a3-4822-aa8f-e3bffc4100d7",
"metadata": {},
"source": [
"# Estimation of tree height using GEDI dataset - Support Vector Machine for Regression (SVR) - 2023\n",
"\n",
"Let's see a quick example of how to use Suppor Vector Regression for tree height estimation"
]
},
{
"cell_type": "markdown",
"id": "ed50fa65",
"metadata": {},
"source": [
" jupyther-notebook Tree_Height_04SVM_pred_2023.ipynb"
]
},
{
"cell_type": "markdown",
"id": "62afad74",
"metadata": {},
"source": [
"Packages\n",
"\n",
" pip3 install pytorch torchvision torchaudio scikit-learn pandas\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "5e40151e-7639-42ae-b65a-a6d3f102a03f",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"from sklearn.svm import SVR\n",
"import scipy\n",
"\n",
"# For visualization\n",
"import rasterio\n",
"from rasterio import *\n",
"from rasterio.plot import show\n",
"from pyspatialml import Raster\n",
"from sklearn.ensemble import RandomForestRegressor\n",
"# from sklearn.model_selection import train_test_split,GridSearchCV\n",
"# from sklearn.pipeline import Pipeline\n",
"from scipy.stats import pearsonr\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"id": "9249b3e1-eff7-4f68-bf95-3d5fd82b8f1c",
"metadata": {},
"source": [
"We will load the data using Pandas and display few samples of it"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "beb6a6bf-f7ba-41ae-b83f-826a019264de",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ID | \n",
" X | \n",
" Y | \n",
" h | \n",
" BLDFIE_WeigAver | \n",
" CECSOL_WeigAver | \n",
" CHELSA_bio18 | \n",
" CHELSA_bio4 | \n",
" convergence | \n",
" cti | \n",
" devmagnitude | \n",
" eastness | \n",
" elev | \n",
" forestheight | \n",
" glad_ard_SVVI_max | \n",
" glad_ard_SVVI_med | \n",
" glad_ard_SVVI_min | \n",
" northness | \n",
" ORCDRC_WeigAver | \n",
" outlet_dist_dw_basin | \n",
" SBIO3_Isothermality_5_15cm | \n",
" SBIO4_Temperature_Seasonality_5_15cm | \n",
" treecover | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 6.050001 | \n",
" 49.727499 | \n",
" 3139.00 | \n",
" 1540 | \n",
" 13 | \n",
" 2113 | \n",
" 5893 | \n",
" -10.486560 | \n",
" -238043120 | \n",
" 1.158417 | \n",
" 0.069094 | \n",
" 353.983124 | \n",
" 23 | \n",
" 276.871094 | \n",
" 46.444092 | \n",
" 347.665405 | \n",
" 0.042500 | \n",
" 9 | \n",
" 780403 | \n",
" 19.798992 | \n",
" 440.672211 | \n",
" 85 | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 6.050002 | \n",
" 49.922155 | \n",
" 1454.75 | \n",
" 1491 | \n",
" 12 | \n",
" 1993 | \n",
" 5912 | \n",
" 33.274361 | \n",
" -208915344 | \n",
" -1.755341 | \n",
" 0.269112 | \n",
" 267.511688 | \n",
" 19 | \n",
" -49.526367 | \n",
" 19.552734 | \n",
" -130.541748 | \n",
" 0.182780 | \n",
" 16 | \n",
" 772777 | \n",
" 20.889412 | \n",
" 457.756195 | \n",
" 85 | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 6.050002 | \n",
" 48.602377 | \n",
" 853.50 | \n",
" 1521 | \n",
" 17 | \n",
" 2124 | \n",
" 5983 | \n",
" 0.045293 | \n",
" -137479792 | \n",
" 1.908780 | \n",
" -0.016055 | \n",
" 389.751160 | \n",
" 21 | \n",
" 93.257324 | \n",
" 50.743652 | \n",
" 384.522461 | \n",
" 0.036253 | \n",
" 14 | \n",
" 898820 | \n",
" 20.695877 | \n",
" 481.879700 | \n",
" 62 | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 6.050009 | \n",
" 48.151979 | \n",
" 3141.00 | \n",
" 1526 | \n",
" 16 | \n",
" 2569 | \n",
" 6130 | \n",
" -33.654274 | \n",
" -267223072 | \n",
" 0.965787 | \n",
" 0.067767 | \n",
" 380.207703 | \n",
" 27 | \n",
" 542.401367 | \n",
" 202.264160 | \n",
" 386.156738 | \n",
" 0.005139 | \n",
" 15 | \n",
" 831824 | \n",
" 19.375000 | \n",
" 479.410278 | \n",
" 85 | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 6.050010 | \n",
" 49.588410 | \n",
" 2065.25 | \n",
" 1547 | \n",
" 14 | \n",
" 2108 | \n",
" 5923 | \n",
" 27.493824 | \n",
" -107809368 | \n",
" -0.162624 | \n",
" 0.014065 | \n",
" 308.042786 | \n",
" 25 | \n",
" 136.048340 | \n",
" 146.835205 | \n",
" 198.127441 | \n",
" 0.028847 | \n",
" 17 | \n",
" 796962 | \n",
" 18.777500 | \n",
" 457.880066 | \n",
" 85 | \n",
"
\n",
" \n",
" 5 | \n",
" 6 | \n",
" 6.050014 | \n",
" 48.608456 | \n",
" 1246.50 | \n",
" 1515 | \n",
" 19 | \n",
" 2124 | \n",
" 6010 | \n",
" -1.602039 | \n",
" 17384282 | \n",
" 1.447979 | \n",
" -0.018912 | \n",
" 364.527100 | \n",
" 18 | \n",
" 221.339844 | \n",
" 247.387207 | \n",
" 480.387939 | \n",
" 0.042747 | \n",
" 14 | \n",
" 897945 | \n",
" 19.398880 | \n",
" 474.331329 | \n",
" 62 | \n",
"
\n",
" \n",
" 6 | \n",
" 7 | \n",
" 6.050016 | \n",
" 48.571401 | \n",
" 2938.75 | \n",
" 1520 | \n",
" 19 | \n",
" 2169 | \n",
" 6147 | \n",
" 27.856503 | \n",
" -66516432 | \n",
" -1.073956 | \n",
" 0.002280 | \n",
" 254.679596 | \n",
" 19 | \n",
" 125.250488 | \n",
" 87.865234 | \n",
" 160.696777 | \n",
" 0.037254 | \n",
" 11 | \n",
" 908426 | \n",
" 20.170450 | \n",
" 476.414520 | \n",
" 96 | \n",
"
\n",
" \n",
" 7 | \n",
" 8 | \n",
" 6.050019 | \n",
" 49.921613 | \n",
" 3294.75 | \n",
" 1490 | \n",
" 12 | \n",
" 1995 | \n",
" 5912 | \n",
" 22.102139 | \n",
" -297770784 | \n",
" -1.402633 | \n",
" 0.309765 | \n",
" 294.927765 | \n",
" 26 | \n",
" -86.729492 | \n",
" -145.584229 | \n",
" -190.062988 | \n",
" 0.222435 | \n",
" 15 | \n",
" 772784 | \n",
" 20.855963 | \n",
" 457.195404 | \n",
" 86 | \n",
"
\n",
" \n",
" 8 | \n",
" 9 | \n",
" 6.050020 | \n",
" 48.822645 | \n",
" 1623.50 | \n",
" 1554 | \n",
" 18 | \n",
" 1973 | \n",
" 6138 | \n",
" 18.496584 | \n",
" -25336536 | \n",
" -0.800016 | \n",
" 0.010370 | \n",
" 240.493759 | \n",
" 22 | \n",
" -51.470703 | \n",
" -245.886719 | \n",
" 172.074707 | \n",
" 0.004428 | \n",
" 8 | \n",
" 839132 | \n",
" 21.812290 | \n",
" 496.231110 | \n",
" 64 | \n",
"
\n",
" \n",
" 9 | \n",
" 10 | \n",
" 6.050024 | \n",
" 49.847522 | \n",
" 1400.00 | \n",
" 1521 | \n",
" 15 | \n",
" 2187 | \n",
" 5886 | \n",
" -5.660453 | \n",
" -278652608 | \n",
" 1.477951 | \n",
" -0.068720 | \n",
" 376.671143 | \n",
" 12 | \n",
" 277.297363 | \n",
" 273.141846 | \n",
" -138.895996 | \n",
" 0.098817 | \n",
" 13 | \n",
" 768873 | \n",
" 21.137711 | \n",
" 466.976685 | \n",
" 70 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ID X Y h BLDFIE_WeigAver CECSOL_WeigAver \n",
"0 1 6.050001 49.727499 3139.00 1540 13 \\\n",
"1 2 6.050002 49.922155 1454.75 1491 12 \n",
"2 3 6.050002 48.602377 853.50 1521 17 \n",
"3 4 6.050009 48.151979 3141.00 1526 16 \n",
"4 5 6.050010 49.588410 2065.25 1547 14 \n",
"5 6 6.050014 48.608456 1246.50 1515 19 \n",
"6 7 6.050016 48.571401 2938.75 1520 19 \n",
"7 8 6.050019 49.921613 3294.75 1490 12 \n",
"8 9 6.050020 48.822645 1623.50 1554 18 \n",
"9 10 6.050024 49.847522 1400.00 1521 15 \n",
"\n",
" CHELSA_bio18 CHELSA_bio4 convergence cti devmagnitude eastness \n",
"0 2113 5893 -10.486560 -238043120 1.158417 0.069094 \\\n",
"1 1993 5912 33.274361 -208915344 -1.755341 0.269112 \n",
"2 2124 5983 0.045293 -137479792 1.908780 -0.016055 \n",
"3 2569 6130 -33.654274 -267223072 0.965787 0.067767 \n",
"4 2108 5923 27.493824 -107809368 -0.162624 0.014065 \n",
"5 2124 6010 -1.602039 17384282 1.447979 -0.018912 \n",
"6 2169 6147 27.856503 -66516432 -1.073956 0.002280 \n",
"7 1995 5912 22.102139 -297770784 -1.402633 0.309765 \n",
"8 1973 6138 18.496584 -25336536 -0.800016 0.010370 \n",
"9 2187 5886 -5.660453 -278652608 1.477951 -0.068720 \n",
"\n",
" elev forestheight glad_ard_SVVI_max glad_ard_SVVI_med \n",
"0 353.983124 23 276.871094 46.444092 \\\n",
"1 267.511688 19 -49.526367 19.552734 \n",
"2 389.751160 21 93.257324 50.743652 \n",
"3 380.207703 27 542.401367 202.264160 \n",
"4 308.042786 25 136.048340 146.835205 \n",
"5 364.527100 18 221.339844 247.387207 \n",
"6 254.679596 19 125.250488 87.865234 \n",
"7 294.927765 26 -86.729492 -145.584229 \n",
"8 240.493759 22 -51.470703 -245.886719 \n",
"9 376.671143 12 277.297363 273.141846 \n",
"\n",
" glad_ard_SVVI_min northness ORCDRC_WeigAver outlet_dist_dw_basin \n",
"0 347.665405 0.042500 9 780403 \\\n",
"1 -130.541748 0.182780 16 772777 \n",
"2 384.522461 0.036253 14 898820 \n",
"3 386.156738 0.005139 15 831824 \n",
"4 198.127441 0.028847 17 796962 \n",
"5 480.387939 0.042747 14 897945 \n",
"6 160.696777 0.037254 11 908426 \n",
"7 -190.062988 0.222435 15 772784 \n",
"8 172.074707 0.004428 8 839132 \n",
"9 -138.895996 0.098817 13 768873 \n",
"\n",
" SBIO3_Isothermality_5_15cm SBIO4_Temperature_Seasonality_5_15cm treecover \n",
"0 19.798992 440.672211 85 \n",
"1 20.889412 457.756195 85 \n",
"2 20.695877 481.879700 62 \n",
"3 19.375000 479.410278 85 \n",
"4 18.777500 457.880066 85 \n",
"5 19.398880 474.331329 62 \n",
"6 20.170450 476.414520 96 \n",
"7 20.855963 457.195404 86 \n",
"8 21.812290 496.231110 64 \n",
"9 21.137711 466.976685 70 "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# data = pd.read_csv(\"./tree_height_2/txt/eu_x_y_height_predictors_select.txt\", sep=\" \", index_col=False)\n",
"# pd.set_option('display.max_columns',None)\n",
"\n",
"# print(data.shape)\n",
"# data.head(10)\n",
"predictors = pd.read_csv(\"./tree_height_2/txt/eu_x_y_height_predictors_select.txt\", sep=\" \", index_col=False)\n",
"pd.set_option('display.max_columns',None)\n",
"# change column name\n",
"predictors = predictors.rename({'dev-magnitude':'devmagnitude'} , axis='columns')\n",
"predictors.head(10)"
]
},
{
"cell_type": "markdown",
"id": "d3b005fe-c5bf-4399-b692-2c3b5c3dc2ef",
"metadata": {},
"source": [
"As explained in the previous lecture, 'h' is the estimated tree heigth. So let's use it as our target."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "aacb84f1-34d7-4012-9905-c1ad2ac05d29",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAGdCAYAAAAbudkLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4uklEQVR4nO3df3hU5Z3//1dMyBjS5DQkJOPUaOPVFIlBa2M3BNhCF0iwJFkv9ypqdIRLroCNElMTQWp3i16aKCDYktUi6yWuYONnL6QrBdOE1tJmIcAG0xJ+qL3KQpAMoTJMAOMkhvP9w4vzdZIUGX6F3Dwf13X+mHPeZ879PrSZl/eccybCtm1bAAAABrpqoAcAAABwsRB0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGihroAQykU6dO6dChQ4qLi1NERMRADwcAAJwF27Z1/PhxeTweXXXVmedsruigc+jQIaWmpg70MAAAwDlobW3Vtddee8aaKzroxMXFSfr8RMXHxw/waAAAwNno6OhQamqq8zl+Jld00Dn9dVV8fDxBBwCAQeZsLjvhYmQAAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFhhBZ3PPvtMP/nJT5SWlqaYmBjdcMMNeuqpp3Tq1CmnxrZtLViwQB6PRzExMZowYYJ27doV8j7BYFBz5sxRUlKSYmNjVVhYqIMHD4bU+P1+eb1eWZYly7Lk9Xp17NixkJoDBw6ooKBAsbGxSkpKUmlpqbq6usI8BQAAwFRhBZ3nnntOv/jFL1RdXa09e/Zo4cKFWrRokZYtW+bULFy4UEuWLFF1dbW2b98ut9utyZMn6/jx405NWVmZ1q5dq5qaGjU0NOjEiRPKz89XT0+PU1NUVKTm5mbV1taqtrZWzc3N8nq9zvaenh5NnTpVJ0+eVENDg2pqarRmzRqVl5efz/kAAAAmscMwdepU+4EHHghZd+edd9r33Xefbdu2ferUKdvtdtvPPvuss/3TTz+1Lcuyf/GLX9i2bdvHjh2zhwwZYtfU1Dg1H330kX3VVVfZtbW1tm3b9u7du21JdmNjo1OzZcsWW5K9d+9e27Zte8OGDfZVV11lf/TRR07NL3/5S9vlctmBQOCs+gkEAraks64HAAADL5zP77BmdMaNG6ff/va3+uCDDyRJf/rTn9TQ0KDvf//7kqR9+/bJ5/MpNzfX2cflcmn8+PHavHmzJKmpqUnd3d0hNR6PR5mZmU7Nli1bZFmWsrOznZrRo0fLsqyQmszMTHk8HqcmLy9PwWBQTU1N/Y4/GAyqo6MjZAEAAOYK60c9582bp0AgoBtvvFGRkZHq6enRM888o3vuuUeS5PP5JEkpKSkh+6WkpGj//v1OTXR0tBISEvrUnN7f5/MpOTm5z/GTk5NDanofJyEhQdHR0U5Nb1VVVXryySfDaRkAAAxiYc3ovPnmm1q1apXeeOMN7dixQ6+99poWL16s1157LaSu96+J2rb9pb8w2rumv/pzqfmi+fPnKxAIOEtra+sZxwQAAAa3sGZ0HnvsMT3++OO6++67JUmjRo3S/v37VVVVpenTp8vtdkv6fLblmmuucfZrb293Zl/cbre6urrk9/tDZnXa29s1ZswYp+bw4cN9jn/kyJGQ99m6dWvIdr/fr+7u7j4zPae5XC65XK5wWsZFVrCsIeT1ujnjBmgkAAAThTWj88knn+iqq0J3iYyMdG4vT0tLk9vtVn19vbO9q6tLmzZtckJMVlaWhgwZElLT1tamlpYWpyYnJ0eBQEDbtm1zarZu3apAIBBS09LSora2Nqemrq5OLpdLWVlZ4bQFAAAMFdaMTkFBgZ555hldd911uummm/Tee+9pyZIleuCBByR9/lVSWVmZKisrlZ6ervT0dFVWVmro0KEqKiqSJFmWpZkzZ6q8vFyJiYkaNmyYKioqNGrUKE2aNEmSNHLkSE2ZMkXFxcVavny5JGnWrFnKz8/XiBEjJEm5ubnKyMiQ1+vVokWLdPToUVVUVKi4uFjx8fEX7AQBAIDBK6ygs2zZMv3rv/6rSkpK1N7eLo/Ho9mzZ+vf/u3fnJq5c+eqs7NTJSUl8vv9ys7OVl1dneLi4pyapUuXKioqStOmTVNnZ6cmTpyolStXKjIy0qlZvXq1SktLnbuzCgsLVV1d7WyPjIzU+vXrVVJSorFjxyomJkZFRUVavHjxOZ8MAABglgjbtu2BHsRA6ejokGVZCgQCzAJdAr2vx+kP1+gAAL5MOJ/f/NYVAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYYT0wELjY+nvWDs/WAQCcK2Z0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxeDIyLor+nnAMAMClxowOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFhhBZ2vf/3rioiI6LM89NBDkiTbtrVgwQJ5PB7FxMRowoQJ2rVrV8h7BINBzZkzR0lJSYqNjVVhYaEOHjwYUuP3++X1emVZlizLktfr1bFjx0JqDhw4oIKCAsXGxiopKUmlpaXq6uo6h1MAAABMFRVO8fbt29XT0+O8bmlp0eTJk/WDH/xAkrRw4UItWbJEK1eu1De/+U09/fTTmjx5st5//33FxcVJksrKyrRu3TrV1NQoMTFR5eXlys/PV1NTkyIjIyVJRUVFOnjwoGprayVJs2bNktfr1bp16yRJPT09mjp1qoYPH66GhgZ9/PHHmj59umzb1rJly87/rCBsBcsaBnoIAAD0EWHbtn2uO5eVlenXv/61PvzwQ0mSx+NRWVmZ5s2bJ+nz2ZuUlBQ999xzmj17tgKBgIYPH67XX39dd911lyTp0KFDSk1N1YYNG5SXl6c9e/YoIyNDjY2Nys7OliQ1NjYqJydHe/fu1YgRI/TOO+8oPz9fra2t8ng8kqSamhrNmDFD7e3tio+PP6vxd3R0yLIsBQKBs94H/buYQWfdnHEX7b0BAINPOJ/f53yNTldXl1atWqUHHnhAERER2rdvn3w+n3Jzc50al8ul8ePHa/PmzZKkpqYmdXd3h9R4PB5lZmY6NVu2bJFlWU7IkaTRo0fLsqyQmszMTCfkSFJeXp6CwaCampr+7piDwaA6OjpCFgAAYK5zDjq/+tWvdOzYMc2YMUOS5PP5JEkpKSkhdSkpKc42n8+n6OhoJSQknLEmOTm5z/GSk5NDanofJyEhQdHR0U5Nf6qqqpzrfizLUmpqahgdAwCAweacg84rr7yi22+/PWRWRZIiIiJCXtu23Wddb71r+qs/l5re5s+fr0Ag4Cytra1nHBcAABjcwroY+bT9+/dr48aNeuutt5x1brdb0uezLddcc42zvr293Zl9cbvd6urqkt/vD5nVaW9v15gxY5yaw4cP9znmkSNHQt5n69atIdv9fr+6u7v7zPR8kcvlksvlCrddDLDe1/9wzQ4A4Gyd04zOq6++quTkZE2dOtVZl5aWJrfbrfr6emddV1eXNm3a5ISYrKwsDRkyJKSmra1NLS0tTk1OTo4CgYC2bdvm1GzdulWBQCCkpqWlRW1tbU5NXV2dXC6XsrKyzqUlAABgoLBndE6dOqVXX31V06dPV1TU/797RESEysrKVFlZqfT0dKWnp6uyslJDhw5VUVGRJMmyLM2cOVPl5eVKTEzUsGHDVFFRoVGjRmnSpEmSpJEjR2rKlCkqLi7W8uXLJX1+e3l+fr5GjBghScrNzVVGRoa8Xq8WLVqko0ePqqKiQsXFxdw9BQAAHGEHnY0bN+rAgQN64IEH+mybO3euOjs7VVJSIr/fr+zsbNXV1TnP0JGkpUuXKioqStOmTVNnZ6cmTpyolStXOs/QkaTVq1ertLTUuTursLBQ1dXVzvbIyEitX79eJSUlGjt2rGJiYlRUVKTFixeH2w4AADDYeT1HZ7DjOToXzqV8YCDX6ADAle2SPEcHAADgckfQAQAAxjqn28txZeN3rQAAgwUzOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADBW1EAPAJe/gmUNAz0EAADOCTM6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGCssIPORx99pPvuu0+JiYkaOnSovvWtb6mpqcnZbtu2FixYII/Ho5iYGE2YMEG7du0KeY9gMKg5c+YoKSlJsbGxKiws1MGDB0Nq/H6/vF6vLMuSZVnyer06duxYSM2BAwdUUFCg2NhYJSUlqbS0VF1dXeG2BAAADBVW0PH7/Ro7dqyGDBmid955R7t379bzzz+vr371q07NwoULtWTJElVXV2v79u1yu92aPHmyjh8/7tSUlZVp7dq1qqmpUUNDg06cOKH8/Hz19PQ4NUVFRWpublZtba1qa2vV3Nwsr9frbO/p6dHUqVN18uRJNTQ0qKamRmvWrFF5efl5nA4AAGCSCNu27bMtfvzxx/U///M/+uMf/9jvdtu25fF4VFZWpnnz5kn6fPYmJSVFzz33nGbPnq1AIKDhw4fr9ddf11133SVJOnTokFJTU7Vhwwbl5eVpz549ysjIUGNjo7KzsyVJjY2NysnJ0d69ezVixAi98847ys/PV2trqzwejySppqZGM2bMUHt7u+Lj47+0n46ODlmWpUAgcFb1V6rL7Uc9180ZN9BDAAAMoHA+v8Oa0Xn77bd122236Qc/+IGSk5N16623asWKFc72ffv2yefzKTc311nncrk0fvx4bd68WZLU1NSk7u7ukBqPx6PMzEynZsuWLbIsywk5kjR69GhZlhVSk5mZ6YQcScrLy1MwGAz5Ku2LgsGgOjo6QhYAAGCuqHCK//rXv+qll17So48+qh//+Mfatm2bSktL5XK5dP/998vn80mSUlJSQvZLSUnR/v37JUk+n0/R0dFKSEjoU3N6f5/Pp+Tk5D7HT05ODqnpfZyEhARFR0c7Nb1VVVXpySefDKdlXIb6m2FilgcA0J+wZnROnTqlb3/726qsrNStt96q2bNnq7i4WC+99FJIXURERMhr27b7rOutd01/9edS80Xz589XIBBwltbW1jOOCQAADG5hBZ1rrrlGGRkZIetGjhypAwcOSJLcbrck9ZlRaW9vd2Zf3G63urq65Pf7z1hz+PDhPsc/cuRISE3v4/j9fnV3d/eZ6TnN5XIpPj4+ZAEAAOYKK+iMHTtW77//fsi6Dz74QNdff70kKS0tTW63W/X19c72rq4ubdq0SWPGjJEkZWVlaciQISE1bW1tamlpcWpycnIUCAS0bds2p2br1q0KBAIhNS0tLWpra3Nq6urq5HK5lJWVFU5b+IKCZQ19FgAABquwrtH50Y9+pDFjxqiyslLTpk3Ttm3b9PLLL+vll1+W9PlXSWVlZaqsrFR6errS09NVWVmpoUOHqqioSJJkWZZmzpyp8vJyJSYmatiwYaqoqNCoUaM0adIkSZ/PEk2ZMkXFxcVavny5JGnWrFnKz8/XiBEjJEm5ubnKyMiQ1+vVokWLdPToUVVUVKi4uJiZGgAAICnMoPOd73xHa9eu1fz58/XUU08pLS1NL7zwgu69916nZu7cuers7FRJSYn8fr+ys7NVV1enuLg4p2bp0qWKiorStGnT1NnZqYkTJ2rlypWKjIx0alavXq3S0lLn7qzCwkJVV1c72yMjI7V+/XqVlJRo7NixiomJUVFRkRYvXnzOJwMAAJglrOfomIbn6PQ1WL+q4q4rALhyXLTn6AAAAAwmBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGihroAWBgFSxrGOghAABw0TCjAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjhRV0FixYoIiIiJDF7XY7223b1oIFC+TxeBQTE6MJEyZo165dIe8RDAY1Z84cJSUlKTY2VoWFhTp48GBIjd/vl9frlWVZsixLXq9Xx44dC6k5cOCACgoKFBsbq6SkJJWWlqqrqyvM9gEAgMnCntG56aab1NbW5iw7d+50ti1cuFBLlixRdXW1tm/fLrfbrcmTJ+v48eNOTVlZmdauXauamho1NDToxIkTys/PV09Pj1NTVFSk5uZm1dbWqra2Vs3NzfJ6vc72np4eTZ06VSdPnlRDQ4Nqamq0Zs0alZeXn+t5AAAABgr718ujoqJCZnFOs21bL7zwgp544gndeeedkqTXXntNKSkpeuONNzR79mwFAgG98sorev311zVp0iRJ0qpVq5SamqqNGzcqLy9Pe/bsUW1trRobG5WdnS1JWrFihXJycvT+++9rxIgRqqur0+7du9Xa2iqPxyNJev755zVjxgw988wzio+PP+cTAgAAzBH2jM6HH34oj8ejtLQ03X333frrX/8qSdq3b598Pp9yc3OdWpfLpfHjx2vz5s2SpKamJnV3d4fUeDweZWZmOjVbtmyRZVlOyJGk0aNHy7KskJrMzEwn5EhSXl6egsGgmpqa/u7Yg8GgOjo6QhYAAGCusIJOdna2/vM//1O/+c1vtGLFCvl8Po0ZM0Yff/yxfD6fJCklJSVkn5SUFGebz+dTdHS0EhISzliTnJzc59jJyckhNb2Pk5CQoOjoaKemP1VVVc51P5ZlKTU1NZz2AQDAIBNW0Ln99tv1L//yLxo1apQmTZqk9evXS/r8K6rTIiIiQvaxbbvPut561/RXfy41vc2fP1+BQMBZWltbzzguAAAwuJ3X7eWxsbEaNWqUPvzwQ+e6nd4zKu3t7c7si9vtVldXl/x+/xlrDh8+3OdYR44cCanpfRy/36/u7u4+Mz1f5HK5FB8fH7IAAABznVfQCQaD2rNnj6655hqlpaXJ7Xarvr7e2d7V1aVNmzZpzJgxkqSsrCwNGTIkpKatrU0tLS1OTU5OjgKBgLZt2+bUbN26VYFAIKSmpaVFbW1tTk1dXZ1cLpeysrLOpyUAAGCQsO66qqioUEFBga677jq1t7fr6aefVkdHh6ZPn66IiAiVlZWpsrJS6enpSk9PV2VlpYYOHaqioiJJkmVZmjlzpsrLy5WYmKhhw4apoqLC+SpMkkaOHKkpU6aouLhYy5cvlyTNmjVL+fn5GjFihCQpNzdXGRkZ8nq9WrRokY4ePaqKigoVFxczS3OFKljWEPJ63ZxxAzQSAMDlJKygc/DgQd1zzz3629/+puHDh2v06NFqbGzU9ddfL0maO3euOjs7VVJSIr/fr+zsbNXV1SkuLs55j6VLlyoqKkrTpk1TZ2enJk6cqJUrVyoyMtKpWb16tUpLS527swoLC1VdXe1sj4yM1Pr161VSUqKxY8cqJiZGRUVFWrx48XmdDAAAYJYI27btgR7EQOno6JBlWQoEAlfsTFDvmRBTMKMDAOYK5/Ob37oCAADGIugAAABjEXQAAICxCDoAAMBYYf+oJ85dfxf+XsqLZk298BgAgL+HGR0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYK2qgB2CygmUNAz0EAACuaMzoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi9vLDcbt7QCAKx0zOgAAwFjnFXSqqqoUERGhsrIyZ51t21qwYIE8Ho9iYmI0YcIE7dq1K2S/YDCoOXPmKCkpSbGxsSosLNTBgwdDavx+v7xeryzLkmVZ8nq9OnbsWEjNgQMHVFBQoNjYWCUlJam0tFRdXV3n0xIAADDIOQed7du36+WXX9bNN98csn7hwoVasmSJqqurtX37drndbk2ePFnHjx93asrKyrR27VrV1NSooaFBJ06cUH5+vnp6epyaoqIiNTc3q7a2VrW1tWpubpbX63W29/T0aOrUqTp58qQaGhpUU1OjNWvWqLy8/FxbAgAAhjmnoHPixAnde++9WrFihRISEpz1tm3rhRde0BNPPKE777xTmZmZeu211/TJJ5/ojTfekCQFAgG98sorev755zVp0iTdeuutWrVqlXbu3KmNGzdKkvbs2aPa2lr9x3/8h3JycpSTk6MVK1bo17/+td5//31JUl1dnXbv3q1Vq1bp1ltv1aRJk/T8889rxYoV6ujoON/zAgAADHBOQeehhx7S1KlTNWnSpJD1+/btk8/nU25urrPO5XJp/Pjx2rx5sySpqalJ3d3dITUej0eZmZlOzZYtW2RZlrKzs52a0aNHy7KskJrMzEx5PB6nJi8vT8FgUE1NTf2OOxgMqqOjI2QBAADmCvuuq5qaGu3YsUPbt2/vs83n80mSUlJSQtanpKRo//79Tk10dHTITNDpmtP7+3w+JScn93n/5OTkkJrex0lISFB0dLRT01tVVZWefPLJs2kTAAAYIKwZndbWVj3yyCNatWqVrr766r9bFxEREfLatu0+63rrXdNf/bnUfNH8+fMVCAScpbW19YxjAgAAg1tYQaepqUnt7e3KyspSVFSUoqKitGnTJv385z9XVFSUM8PSe0alvb3d2eZ2u9XV1SW/33/GmsOHD/c5/pEjR0Jqeh/H7/eru7u7z0zPaS6XS/Hx8SELAAAwV1hBZ+LEidq5c6eam5ud5bbbbtO9996r5uZm3XDDDXK73aqvr3f26erq0qZNmzRmzBhJUlZWloYMGRJS09bWppaWFqcmJydHgUBA27Ztc2q2bt2qQCAQUtPS0qK2tjanpq6uTi6XS1lZWedwKgAAgGnCukYnLi5OmZmZIetiY2OVmJjorC8rK1NlZaXS09OVnp6uyspKDR06VEVFRZIky7I0c+ZMlZeXKzExUcOGDVNFRYVGjRrlXNw8cuRITZkyRcXFxVq+fLkkadasWcrPz9eIESMkSbm5ucrIyJDX69WiRYt09OhRVVRUqLi4mJkaAAAg6SL8BMTcuXPV2dmpkpIS+f1+ZWdnq66uTnFxcU7N0qVLFRUVpWnTpqmzs1MTJ07UypUrFRkZ6dSsXr1apaWlzt1ZhYWFqq6udrZHRkZq/fr1Kikp0dixYxUTE6OioiItXrz4QrcEAAAGqQjbtu2BHsRA6ejokGVZCgQCF2UW6Gx+a2rdnHEX/LjhHN9UF/O8AgAGVjif3/zWFQAAMBZBBwAAGIugAwAAjEXQAQAAxrrgd10Bl4P+LsTmAmUAuPIwowMAAIzFjI4hruRbyQEA+HuY0QEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGihroASB8BcsaBnoIAAAMCszoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGCivovPTSS7r55psVHx+v+Ph45eTk6J133nG227atBQsWyOPxKCYmRhMmTNCuXbtC3iMYDGrOnDlKSkpSbGysCgsLdfDgwZAav98vr9cry7JkWZa8Xq+OHTsWUnPgwAEVFBQoNjZWSUlJKi0tVVdXV5jtAwAAk4X1ZORrr71Wzz77rL7xjW9Ikl577TX98z//s9577z3ddNNNWrhwoZYsWaKVK1fqm9/8pp5++mlNnjxZ77//vuLi4iRJZWVlWrdunWpqapSYmKjy8nLl5+erqalJkZGRkqSioiIdPHhQtbW1kqRZs2bJ6/Vq3bp1kqSenh5NnTpVw4cPV0NDgz7++GNNnz5dtm1r2bJlF+zkXC54EjIAAOcmwrZt+3zeYNiwYVq0aJEeeOABeTwelZWVad68eZI+n71JSUnRc889p9mzZysQCGj48OF6/fXXddddd0mSDh06pNTUVG3YsEF5eXnas2ePMjIy1NjYqOzsbElSY2OjcnJytHfvXo0YMULvvPOO8vPz1draKo/HI0mqqanRjBkz1N7ervj4+LMae0dHhyzLUiAQOOt9wnE2AWXdnHEX5H3w5c7mXAMALn/hfH6f8zU6PT09qqmp0cmTJ5WTk6N9+/bJ5/MpNzfXqXG5XBo/frw2b94sSWpqalJ3d3dIjcfjUWZmplOzZcsWWZblhBxJGj16tCzLCqnJzMx0Qo4k5eXlKRgMqqmp6e+OORgMqqOjI2QZaAXLGkIWAABw4YQddHbu3KmvfOUrcrlcevDBB7V27VplZGTI5/NJklJSUkLqU1JSnG0+n0/R0dFKSEg4Y01ycnKf4yYnJ4fU9D5OQkKCoqOjnZr+VFVVOdf9WJal1NTUMLsHAACDSdhBZ8SIEWpublZjY6N++MMfavr06dq9e7ezPSIiIqTetu0+63rrXdNf/bnU9DZ//nwFAgFnaW1tPeO4AADA4BZ20ImOjtY3vvEN3XbbbaqqqtItt9yin/3sZ3K73ZLUZ0alvb3dmX1xu93q6uqS3+8/Y83hw4f7HPfIkSMhNb2P4/f71d3d3Wem54tcLpdzx9jpBQAAmOu8n6Nj27aCwaDS0tLkdrtVX1/vbOvq6tKmTZs0ZswYSVJWVpaGDBkSUtPW1qaWlhanJicnR4FAQNu2bXNqtm7dqkAgEFLT0tKitrY2p6aurk4ul0tZWVnn2xIAADBEWLeX//jHP9btt9+u1NRUHT9+XDU1Nfr973+v2tpaRUREqKysTJWVlUpPT1d6eroqKys1dOhQFRUVSZIsy9LMmTNVXl6uxMREDRs2TBUVFRo1apQmTZokSRo5cqSmTJmi4uJiLV++XNLnt5fn5+drxIgRkqTc3FxlZGTI6/Vq0aJFOnr0qCoqKlRcXDzoZ2m4IBkAgAsnrKBz+PBheb1etbW1ybIs3XzzzaqtrdXkyZMlSXPnzlVnZ6dKSkrk9/uVnZ2turo65xk6krR06VJFRUVp2rRp6uzs1MSJE7Vy5UrnGTqStHr1apWWljp3ZxUWFqq6utrZHhkZqfXr16ukpERjx45VTEyMioqKtHjx4vM6GQAAwCzn/RydwexyeI4OLh2eowMAZrgkz9EBAAC43BF0AACAsQg6AADAWAQdAABgLIIOAAAwVli3lwODWe+74LgLCwDMx4wOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMFVbQqaqq0ne+8x3FxcUpOTlZd9xxh95///2QGtu2tWDBAnk8HsXExGjChAnatWtXSE0wGNScOXOUlJSk2NhYFRYW6uDBgyE1fr9fXq9XlmXJsix5vV4dO3YspObAgQMqKChQbGyskpKSVFpaqq6urnBaAgAABgsr6GzatEkPPfSQGhsbVV9fr88++0y5ubk6efKkU7Nw4UItWbJE1dXV2r59u9xutyZPnqzjx487NWVlZVq7dq1qamrU0NCgEydOKD8/Xz09PU5NUVGRmpubVVtbq9raWjU3N8vr9Trbe3p6NHXqVJ08eVINDQ2qqanRmjVrVF5efj7nAwAAGCTCtm37XHc+cuSIkpOTtWnTJn33u9+VbdvyeDwqKyvTvHnzJH0+e5OSkqLnnntOs2fPViAQ0PDhw/X666/rrrvukiQdOnRIqamp2rBhg/Ly8rRnzx5lZGSosbFR2dnZkqTGxkbl5ORo7969GjFihN555x3l5+ertbVVHo9HklRTU6MZM2aovb1d8fHxXzr+jo4OWZalQCBwVvXhKljWcMHfExfOujnjBnoIAIBzEM7n93ldoxMIBCRJw4YNkyTt27dPPp9Pubm5To3L5dL48eO1efNmSVJTU5O6u7tDajwejzIzM52aLVu2yLIsJ+RI0ujRo2VZVkhNZmamE3IkKS8vT8FgUE1NTefTFgAAMETUue5o27YeffRRjRs3TpmZmZIkn88nSUpJSQmpTUlJ0f79+52a6OhoJSQk9Kk5vb/P51NycnKfYyYnJ4fU9D5OQkKCoqOjnZregsGggsGg87qjo+Os+wUAAIPPOc/oPPzww/rzn/+sX/7yl322RUREhLy2bbvPut561/RXfy41X1RVVeVc3GxZllJTU884JgAAMLidU9CZM2eO3n77bb377ru69tprnfVut1uS+syotLe3O7MvbrdbXV1d8vv9Z6w5fPhwn+MeOXIkpKb3cfx+v7q7u/vM9Jw2f/58BQIBZ2ltbQ2nbQAAMMiEFXRs29bDDz+st956S7/73e+UlpYWsj0tLU1ut1v19fXOuq6uLm3atEljxoyRJGVlZWnIkCEhNW1tbWppaXFqcnJyFAgEtG3bNqdm69atCgQCITUtLS1qa2tzaurq6uRyuZSVldXv+F0ul+Lj40MWAABgrrCu0XnooYf0xhtv6L//+78VFxfnzKhYlqWYmBhFRESorKxMlZWVSk9PV3p6uiorKzV06FAVFRU5tTNnzlR5ebkSExM1bNgwVVRUaNSoUZo0aZIkaeTIkZoyZYqKi4u1fPlySdKsWbOUn5+vESNGSJJyc3OVkZEhr9erRYsW6ejRo6qoqFBxcTEBBgAASAoz6Lz00kuSpAkTJoSsf/XVVzVjxgxJ0ty5c9XZ2amSkhL5/X5lZ2errq5OcXFxTv3SpUsVFRWladOmqbOzUxMnTtTKlSsVGRnp1KxevVqlpaXO3VmFhYWqrq52tkdGRmr9+vUqKSnR2LFjFRMTo6KiIi1evDisEwAAAMx1Xs/RGex4jg5649k6AHD5u2TP0QEAALicEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjRQ30AIDLScGyhj7r1s0ZNwAjAQBcCMzoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGCjvo/OEPf1BBQYE8Ho8iIiL0q1/9KmS7bdtasGCBPB6PYmJiNGHCBO3atSukJhgMas6cOUpKSlJsbKwKCwt18ODBkBq/3y+v1yvLsmRZlrxer44dOxZSc+DAARUUFCg2NlZJSUkqLS1VV1dXuC0BAABDhR10Tp48qVtuuUXV1dX9bl+4cKGWLFmi6upqbd++XW63W5MnT9bx48edmrKyMq1du1Y1NTVqaGjQiRMnlJ+fr56eHqemqKhIzc3Nqq2tVW1trZqbm+X1ep3tPT09mjp1qk6ePKmGhgbV1NRozZo1Ki8vD7clAABgqAjbtu1z3jkiQmvXrtUdd9wh6fPZHI/Ho7KyMs2bN0/S57M3KSkpeu655zR79mwFAgENHz5cr7/+uu666y5J0qFDh5SamqoNGzYoLy9Pe/bsUUZGhhobG5WdnS1JamxsVE5Ojvbu3asRI0bonXfeUX5+vlpbW+XxeCRJNTU1mjFjhtrb2xUfH/+l4+/o6JBlWQoEAmdVH67+fk4Agw8/AQEAl5dwPr8v6DU6+/btk8/nU25urrPO5XJp/Pjx2rx5sySpqalJ3d3dITUej0eZmZlOzZYtW2RZlhNyJGn06NGyLCukJjMz0wk5kpSXl6dgMKimpqZ+xxcMBtXR0RGyAAAAc13QoOPz+SRJKSkpIetTUlKcbT6fT9HR0UpISDhjTXJycp/3T05ODqnpfZyEhARFR0c7Nb1VVVU51/xYlqXU1NRz6BIAAAwWF+Wuq4iIiJDXtm33Wddb75r+6s+l5ovmz5+vQCDgLK2trWccEwAAGNwuaNBxu92S1GdGpb293Zl9cbvd6urqkt/vP2PN4cOH+7z/kSNHQmp6H8fv96u7u7vPTM9pLpdL8fHxIQsAADDXBQ06aWlpcrvdqq+vd9Z1dXVp06ZNGjNmjCQpKytLQ4YMCalpa2tTS0uLU5OTk6NAIKBt27Y5NVu3blUgEAipaWlpUVtbm1NTV1cnl8ulrKysC9kWAAAYpKLC3eHEiRP6y1/+4rzet2+fmpubNWzYMF133XUqKytTZWWl0tPTlZ6ersrKSg0dOlRFRUWSJMuyNHPmTJWXlysxMVHDhg1TRUWFRo0apUmTJkmSRo4cqSlTpqi4uFjLly+XJM2aNUv5+fkaMWKEJCk3N1cZGRnyer1atGiRjh49qoqKChUXFzNTAwAAJJ1D0Pnf//1ffe9733NeP/roo5Kk6dOna+XKlZo7d646OztVUlIiv9+v7Oxs1dXVKS4uztln6dKlioqK0rRp09TZ2amJEydq5cqVioyMdGpWr16t0tJS5+6swsLCkGf3REZGav369SopKdHYsWMVExOjoqIiLV68OPyzAAAAjHRez9EZ7HiODs4Fz9UBgIE1YM/RAQAAuJwQdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgrLB/vRy40vX3Y6380CcAXJ6Y0QEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjMUDA4ELoPdDBHmAIABcHpjRAQAAxiLoAAAAYxF0AACAsQg6AADAWFyMDFwE/MI5AFwemNEBAADGIugAAABjEXQAAICxuEYHuER4qCAAXHrM6AAAAGMRdAAAgLEG/VdXL774ohYtWqS2tjbddNNNeuGFF/SP//iPAz0s4EtxCzoAXHyDOui8+eabKisr04svvqixY8dq+fLluv3227V7925dd911Az08IGxcxwMAF1aEbdv2QA/iXGVnZ+vb3/62XnrpJWfdyJEjdccdd6iqqupL9+/o6JBlWQoEAoqPj7/g4+vvv9iB80X4AXClC+fze9DO6HR1dampqUmPP/54yPrc3Fxt3ry5332CwaCCwaDzOhAISPr8hF0M3Z0nL8r74so2ZeFvzmm///dgzgUeCQAMjNOf22czVzNog87f/vY39fT0KCUlJWR9SkqKfD5fv/tUVVXpySef7LM+NTX1oowRuJxY8wZ6BABwYR0/flyWZZ2xZtAGndMiIiJCXtu23WfdafPnz9ejjz7qvD516pSOHj2qxMTEv7tPODo6OpSamqrW1taL8lXY5exK7f1K7Vui9yux9yu1b+nK7f1y7du2bR0/flwej+dLawdt0ElKSlJkZGSf2Zv29vY+szynuVwuuVyukHVf/epXL/jY4uPjL6v/QVxKV2rvV2rfEr1fib1fqX1LV27vl2PfXzaTc9qgfY5OdHS0srKyVF9fH7K+vr5eY8aMGaBRAQCAy8mgndGRpEcffVRer1e33XabcnJy9PLLL+vAgQN68MEHB3poAADgMjCog85dd92ljz/+WE899ZTa2tqUmZmpDRs26Prrrx+Q8bhcLv30pz/t8/XYleBK7f1K7Vui9yux9yu1b+nK7d2Evgf1c3QAAADOZNBeowMAAPBlCDoAAMBYBB0AAGAsgg4AADAWQecCefHFF5WWlqarr75aWVlZ+uMf/zjQQwpLVVWVvvOd7yguLk7Jycm644479P7774fU2LatBQsWyOPxKCYmRhMmTNCuXbtCaoLBoObMmaOkpCTFxsaqsLBQBw8eDKnx+/3yer2yLEuWZcnr9erYsWMXu8WzUlVVpYiICJWVlTnrTO77o48+0n333afExEQNHTpU3/rWt9TU1ORsN7X3zz77TD/5yU+UlpammJgY3XDDDXrqqad06tQpp8aU3v/whz+ooKBAHo9HERER+tWvfhWy/VL2eeDAARUUFCg2NlZJSUkqLS1VV1fXxWj7jH13d3dr3rx5GjVqlGJjY+XxeHT//ffr0KFDg75v6cv/zb9o9uzZioiI0AsvvBCyfrD23i8b562mpsYeMmSIvWLFCnv37t32I488YsfGxtr79+8f6KGdtby8PPvVV1+1W1pa7ObmZnvq1Kn2ddddZ584ccKpefbZZ+24uDh7zZo19s6dO+277rrLvuaaa+yOjg6n5sEHH7S/9rWv2fX19faOHTvs733ve/Ytt9xif/bZZ07NlClT7MzMTHvz5s325s2b7czMTDs/P/+S9tufbdu22V//+tftm2++2X7kkUec9ab2ffToUfv666+3Z8yYYW/dutXet2+fvXHjRvsvf/mLU2Nq708//bSdmJho//rXv7b37dtn/9d//Zf9la98xX7hhRecGlN637Bhg/3EE0/Ya9assSXZa9euDdl+qfr87LPP7MzMTPt73/uevWPHDru+vt72eDz2ww8/fMn7PnbsmD1p0iT7zTfftPfu3Wtv2bLFzs7OtrOyskLeYzD2/WW9f9HatWvtW265xfZ4PPbSpUtDtg3W3vtD0LkA/uEf/sF+8MEHQ9bdeOON9uOPPz5AIzp/7e3ttiR706ZNtm3b9qlTp2y3220/++yzTs2nn35qW5Zl/+IXv7Bt+/M/HkOGDLFramqcmo8++si+6qqr7NraWtu2bXv37t22JLuxsdGp2bJliy3J3rt376VorV/Hjx+309PT7fr6env8+PFO0DG573nz5tnjxo37u9tN7n3q1Kn2Aw88ELLuzjvvtO+77z7bts3tvfeH3qXsc8OGDfZVV11lf/TRR07NL3/5S9vlctmBQOCi9HvamT7sT9u2bZstyfkPVBP6tu2/3/vBgwftr33ta3ZLS4t9/fXXhwQdU3o/ja+uzlNXV5eampqUm5sbsj43N1ebN28eoFGdv0AgIEkaNmyYJGnfvn3y+XwhfbpcLo0fP97ps6mpSd3d3SE1Ho9HmZmZTs2WLVtkWZays7OdmtGjR8uyrAE9Xw899JCmTp2qSZMmhaw3ue+3335bt912m37wgx8oOTlZt956q1asWOFsN7n3cePG6be//a0++OADSdKf/vQnNTQ06Pvf/74ks3v/okvZ55YtW5SZmRnyI4x5eXkKBoMhX5cOlEAgoIiICOf3D03u+9SpU/J6vXrsscd000039dluWu+D+snIl4O//e1v6unp6fNDoikpKX1+cHSwsG1bjz76qMaNG6fMzExJcnrpr8/9+/c7NdHR0UpISOhTc3p/n8+n5OTkPsdMTk4esPNVU1OjHTt2aPv27X22mdz3X//6V7300kt69NFH9eMf/1jbtm1TaWmpXC6X7r//fqN7nzdvngKBgG688UZFRkaqp6dHzzzzjO655x5JZv+7f9Gl7NPn8/U5TkJCgqKjowf8XHz66ad6/PHHVVRU5Pxwpcl9P/fcc4qKilJpaWm/203rnaBzgURERIS8tm27z7rB4uGHH9af//xnNTQ09Nl2Ln32rumvfqDOV2trqx555BHV1dXp6quv/rt1pvUtff5fdbfddpsqKyslSbfeeqt27dqll156Sffff79TZ2Lvb775platWqU33nhDN910k5qbm1VWViaPx6Pp06c7dSb23p9L1efleC66u7t1991369SpU3rxxRe/tH6w993U1KSf/exn2rFjR9jHH6y989XVeUpKSlJkZGSfdNre3t4nyQ4Gc+bM0dtvv613331X1157rbPe7XZL0hn7dLvd6urqkt/vP2PN4cOH+xz3yJEjA3K+mpqa1N7erqysLEVFRSkqKkqbNm3Sz3/+c0VFRTljMq1vSbrmmmuUkZERsm7kyJE6cOCAJHP/zSXpscce0+OPP667775bo0aNktfr1Y9+9CNVVVVJMrv3L7qUfbrd7j7H8fv96u7uHrBz0d3drWnTpmnfvn2qr693ZnMkc/v+4x//qPb2dl133XXO37z9+/ervLxcX//6150xm9Q7Qec8RUdHKysrS/X19SHr6+vrNWbMmAEaVfhs29bDDz+st956S7/73e+UlpYWsj0tLU1utzukz66uLm3atMnpMysrS0OGDAmpaWtrU0tLi1OTk5OjQCCgbdu2OTVbt25VIBAYkPM1ceJE7dy5U83Nzc5y22236d5771Vzc7NuuOEGI/uWpLFjx/Z5hMAHH3zg/Ciuqf/mkvTJJ5/oqqtC//xFRkY6t5eb3PsXXco+c3Jy1NLSora2Nqemrq5OLpdLWVlZF7XP/pwOOR9++KE2btyoxMTEkO2m9u31evXnP/855G+ex+PRY489pt/85jeSDOz9kl32bLDTt5e/8sor9u7du+2ysjI7NjbW/r//+7+BHtpZ++EPf2hblmX//ve/t9va2pzlk08+cWqeffZZ27Is+6233rJ37txp33PPPf3ehnrttdfaGzdutHfs2GH/0z/9U7+3JN588832li1b7C1bttijRo26LG4vP+2Ld13Ztrl9b9u2zY6KirKfeeYZ+8MPP7RXr15tDx061F61apVTY2rv06dPt7/2ta85t5e/9dZbdlJSkj137lynxpTejx8/br/33nv2e++9Z0uylyxZYr/33nvO3UWXqs/TtxpPnDjR3rFjh71x40b72muvvWi3Gp+p7+7ubruwsNC+9tpr7ebm5pC/ecFgcFD3/WW996f3XVe2PXh77w9B5wL593//d/v666+3o6Oj7W9/+9vObdmDhaR+l1dffdWpOXXqlP3Tn/7Udrvdtsvlsr/73e/aO3fuDHmfzs5O++GHH7aHDRtmx8TE2Pn5+faBAwdCaj7++GP73nvvtePi4uy4uDj73nvvtf1+/yXo8uz0Djom971u3To7MzPTdrlc9o033mi//PLLIdtN7b2jo8N+5JFH7Ouuu86++uqr7RtuuMF+4oknQj7kTOn93Xff7ff/29OnT7dt+9L2uX//fnvq1Kl2TEyMPWzYMPvhhx+2P/3000ve9759+/7u37x33313UPf9Zb33p7+gM1h770+Ebdv2pZg5AgAAuNS4RgcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAY/1/M6vWiJomdL8AAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bins = np.linspace(min(predictors['h']),max(predictors['h']),100)\n",
"plt.hist((predictors['h']),bins,alpha=0.8);"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "02eb033f-bdca-40ee-86af-5f409b504927",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"100000\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ID | \n",
" X | \n",
" Y | \n",
" h | \n",
" hm | \n",
" BLDFIE_WeigAver | \n",
" CECSOL_WeigAver | \n",
" CHELSA_bio18 | \n",
" CHELSA_bio4 | \n",
" convergence | \n",
" cti | \n",
" devmagnitude | \n",
" eastness | \n",
" elev | \n",
" forestheight | \n",
" glad_ard_SVVI_max | \n",
" glad_ard_SVVI_med | \n",
" glad_ard_SVVI_min | \n",
" northness | \n",
" ORCDRC_WeigAver | \n",
" outlet_dist_dw_basin | \n",
" SBIO3_Isothermality_5_15cm | \n",
" SBIO4_Temperature_Seasonality_5_15cm | \n",
" treecover | \n",
"
\n",
" \n",
" \n",
" \n",
" 314189 | \n",
" 314190 | \n",
" 7.019865 | \n",
" 49.703032 | \n",
" 3208.00 | \n",
" 32.0800 | \n",
" 1377 | \n",
" 10 | \n",
" 2395 | \n",
" 5690 | \n",
" -31.017696 | \n",
" -191780608 | \n",
" 2.957162 | \n",
" -0.012165 | \n",
" 649.717590 | \n",
" 10 | \n",
" 667.820068 | \n",
" 463.670654 | \n",
" -39.361328 | \n",
" -0.006963 | \n",
" 28 | \n",
" 803881 | \n",
" 22.027813 | \n",
" 418.627747 | \n",
" 95 | \n",
"
\n",
" \n",
" 496802 | \n",
" 496803 | \n",
" 7.453095 | \n",
" 49.838552 | \n",
" 1594.00 | \n",
" 15.9400 | \n",
" 1462 | \n",
" 12 | \n",
" 2018 | \n",
" 6099 | \n",
" 4.706795 | \n",
" -189148608 | \n",
" 0.799485 | \n",
" 0.064142 | \n",
" 397.831604 | \n",
" 22 | \n",
" -73.028320 | \n",
" -96.732666 | \n",
" -68.537598 | \n",
" -0.070241 | \n",
" 12 | \n",
" 604939 | \n",
" 18.339499 | \n",
" 443.616333 | \n",
" 83 | \n",
"
\n",
" \n",
" 214185 | \n",
" 214186 | \n",
" 6.769923 | \n",
" 49.937723 | \n",
" 2741.25 | \n",
" 27.4125 | \n",
" 1534 | \n",
" 12 | \n",
" 1991 | \n",
" 6151 | \n",
" -26.909725 | \n",
" -315912576 | \n",
" -1.156398 | \n",
" 0.046102 | \n",
" 269.274170 | \n",
" 18 | \n",
" 208.921875 | \n",
" 21.610840 | \n",
" -102.270020 | \n",
" -0.193569 | \n",
" 15 | \n",
" 665763 | \n",
" 19.900623 | \n",
" 460.388519 | \n",
" 79 | \n",
"
\n",
" \n",
" 1102750 | \n",
" 1102751 | \n",
" 9.346924 | \n",
" 49.593979 | \n",
" 2085.00 | \n",
" 20.8500 | \n",
" 1463 | \n",
" 10 | \n",
" 2170 | \n",
" 6425 | \n",
" -12.567190 | \n",
" -240594976 | \n",
" 1.257921 | \n",
" -0.092352 | \n",
" 423.636871 | \n",
" 25 | \n",
" 37.512695 | \n",
" -103.102539 | \n",
" -9.143555 | \n",
" 0.030144 | \n",
" 12 | \n",
" 729055 | \n",
" 19.228687 | \n",
" 451.815948 | \n",
" 87 | \n",
"
\n",
" \n",
" 478661 | \n",
" 478662 | \n",
" 7.401212 | \n",
" 49.598814 | \n",
" 1883.50 | \n",
" 18.8350 | \n",
" 1512 | \n",
" 15 | \n",
" 2048 | \n",
" 6271 | \n",
" 10.439974 | \n",
" -351287040 | \n",
" -1.081400 | \n",
" 0.045427 | \n",
" 318.814331 | \n",
" 25 | \n",
" 168.426025 | \n",
" 123.145020 | \n",
" 248.555664 | \n",
" 0.126946 | \n",
" 11 | \n",
" 623203 | \n",
" 19.742725 | \n",
" 454.855927 | \n",
" 96 | \n",
"
\n",
" \n",
" 809886 | \n",
" 809887 | \n",
" 8.616201 | \n",
" 48.868057 | \n",
" 340.00 | \n",
" 3.4000 | \n",
" 1514 | \n",
" 18 | \n",
" 2385 | \n",
" 6433 | \n",
" -3.628073 | \n",
" -209369520 | \n",
" 0.641144 | \n",
" -0.017633 | \n",
" 391.828796 | \n",
" 4 | \n",
" 933.261230 | \n",
" 634.117432 | \n",
" 542.653809 | \n",
" 0.058795 | \n",
" 7 | \n",
" 747698 | \n",
" 20.744087 | \n",
" 492.085907 | \n",
" 13 | \n",
"
\n",
" \n",
" 679461 | \n",
" 679462 | \n",
" 7.980072 | \n",
" 49.680752 | \n",
" 2379.00 | \n",
" 23.7900 | \n",
" 1541 | \n",
" 11 | \n",
" 1892 | \n",
" 6239 | \n",
" -20.685070 | \n",
" -138075056 | \n",
" 1.200781 | \n",
" -0.052553 | \n",
" 347.009552 | \n",
" 25 | \n",
" -27.094971 | \n",
" -89.953613 | \n",
" -156.206299 | \n",
" 0.020362 | \n",
" 12 | \n",
" 588156 | \n",
" 17.547787 | \n",
" 458.630371 | \n",
" 95 | \n",
"
\n",
" \n",
" 200517 | \n",
" 200518 | \n",
" 6.734687 | \n",
" 48.927598 | \n",
" 1513.00 | \n",
" 15.1300 | \n",
" 1540 | \n",
" 13 | \n",
" 2146 | \n",
" 6264 | \n",
" 7.081443 | \n",
" -45983820 | \n",
" -0.935434 | \n",
" 0.007613 | \n",
" 237.065109 | \n",
" 0 | \n",
" 657.542969 | \n",
" 629.276611 | \n",
" 582.212402 | \n",
" -0.032703 | \n",
" 12 | \n",
" 861020 | \n",
" 18.124147 | \n",
" 466.832214 | \n",
" 90 | \n",
"
\n",
" \n",
" 928805 | \n",
" 928806 | \n",
" 8.917724 | \n",
" 49.644695 | \n",
" 2908.50 | \n",
" 29.0850 | \n",
" 1483 | \n",
" 13 | \n",
" 2629 | \n",
" 6331 | \n",
" 33.069771 | \n",
" -262037664 | \n",
" 1.201575 | \n",
" 0.084139 | \n",
" 378.784515 | \n",
" 27 | \n",
" 84.257812 | \n",
" -63.966797 | \n",
" 10.501709 | \n",
" 0.169573 | \n",
" 14 | \n",
" 738552 | \n",
" 19.076752 | \n",
" 473.688354 | \n",
" 85 | \n",
"
\n",
" \n",
" 240296 | \n",
" 240297 | \n",
" 6.834607 | \n",
" 49.672558 | \n",
" 2677.50 | \n",
" 26.7750 | \n",
" 1389 | \n",
" 11 | \n",
" 2572 | \n",
" 5573 | \n",
" -28.345655 | \n",
" -239594144 | \n",
" 3.465430 | \n",
" -0.011193 | \n",
" 694.449707 | \n",
" 28 | \n",
" 821.419922 | \n",
" 357.111084 | \n",
" 277.945312 | \n",
" -0.070467 | \n",
" 36 | \n",
" 807597 | \n",
" 23.452335 | \n",
" 416.131592 | \n",
" 85 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ID X Y h hm BLDFIE_WeigAver \n",
"314189 314190 7.019865 49.703032 3208.00 32.0800 1377 \\\n",
"496802 496803 7.453095 49.838552 1594.00 15.9400 1462 \n",
"214185 214186 6.769923 49.937723 2741.25 27.4125 1534 \n",
"1102750 1102751 9.346924 49.593979 2085.00 20.8500 1463 \n",
"478661 478662 7.401212 49.598814 1883.50 18.8350 1512 \n",
"809886 809887 8.616201 48.868057 340.00 3.4000 1514 \n",
"679461 679462 7.980072 49.680752 2379.00 23.7900 1541 \n",
"200517 200518 6.734687 48.927598 1513.00 15.1300 1540 \n",
"928805 928806 8.917724 49.644695 2908.50 29.0850 1483 \n",
"240296 240297 6.834607 49.672558 2677.50 26.7750 1389 \n",
"\n",
" CECSOL_WeigAver CHELSA_bio18 CHELSA_bio4 convergence cti \n",
"314189 10 2395 5690 -31.017696 -191780608 \\\n",
"496802 12 2018 6099 4.706795 -189148608 \n",
"214185 12 1991 6151 -26.909725 -315912576 \n",
"1102750 10 2170 6425 -12.567190 -240594976 \n",
"478661 15 2048 6271 10.439974 -351287040 \n",
"809886 18 2385 6433 -3.628073 -209369520 \n",
"679461 11 1892 6239 -20.685070 -138075056 \n",
"200517 13 2146 6264 7.081443 -45983820 \n",
"928805 13 2629 6331 33.069771 -262037664 \n",
"240296 11 2572 5573 -28.345655 -239594144 \n",
"\n",
" devmagnitude eastness elev forestheight glad_ard_SVVI_max \n",
"314189 2.957162 -0.012165 649.717590 10 667.820068 \\\n",
"496802 0.799485 0.064142 397.831604 22 -73.028320 \n",
"214185 -1.156398 0.046102 269.274170 18 208.921875 \n",
"1102750 1.257921 -0.092352 423.636871 25 37.512695 \n",
"478661 -1.081400 0.045427 318.814331 25 168.426025 \n",
"809886 0.641144 -0.017633 391.828796 4 933.261230 \n",
"679461 1.200781 -0.052553 347.009552 25 -27.094971 \n",
"200517 -0.935434 0.007613 237.065109 0 657.542969 \n",
"928805 1.201575 0.084139 378.784515 27 84.257812 \n",
"240296 3.465430 -0.011193 694.449707 28 821.419922 \n",
"\n",
" glad_ard_SVVI_med glad_ard_SVVI_min northness ORCDRC_WeigAver \n",
"314189 463.670654 -39.361328 -0.006963 28 \\\n",
"496802 -96.732666 -68.537598 -0.070241 12 \n",
"214185 21.610840 -102.270020 -0.193569 15 \n",
"1102750 -103.102539 -9.143555 0.030144 12 \n",
"478661 123.145020 248.555664 0.126946 11 \n",
"809886 634.117432 542.653809 0.058795 7 \n",
"679461 -89.953613 -156.206299 0.020362 12 \n",
"200517 629.276611 582.212402 -0.032703 12 \n",
"928805 -63.966797 10.501709 0.169573 14 \n",
"240296 357.111084 277.945312 -0.070467 36 \n",
"\n",
" outlet_dist_dw_basin SBIO3_Isothermality_5_15cm \n",
"314189 803881 22.027813 \\\n",
"496802 604939 18.339499 \n",
"214185 665763 19.900623 \n",
"1102750 729055 19.228687 \n",
"478661 623203 19.742725 \n",
"809886 747698 20.744087 \n",
"679461 588156 17.547787 \n",
"200517 861020 18.124147 \n",
"928805 738552 19.076752 \n",
"240296 807597 23.452335 \n",
"\n",
" SBIO4_Temperature_Seasonality_5_15cm treecover \n",
"314189 418.627747 95 \n",
"496802 443.616333 83 \n",
"214185 460.388519 79 \n",
"1102750 451.815948 87 \n",
"478661 454.855927 96 \n",
"809886 492.085907 13 \n",
"679461 458.630371 95 \n",
"200517 466.832214 90 \n",
"928805 473.688354 85 \n",
"240296 416.131592 85 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predictors_sel = predictors.loc[(predictors['h'] < 7000) ].sample(100000)\n",
"predictors_sel.insert ( 4, 'hm' , predictors_sel['h']/100 ) # add a col of heigh in meters\n",
"print(len(predictors_sel))\n",
"predictors_sel.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "f438fe3e-f402-49e8-bb92-0b15d09e73ad",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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iKj+T5o0SSdOnFBtba27jRs3Tn//93+v2tpa/dVf/VXEjMWXBQIBnTlzRikpKRHzffjud7/b6VYL//M//+M+iDhSxuGGbdu2KSkpSU888YS7L6Rj0KfLhi114xLrrVu3mtOnT5vi4mIzePBg8/HHH4e6aX3mypUr5r333jPvvfeekWTWr19v3nvvPfey8hdeeME4jmNef/11c+LECfPDH/4w7C4h/PGPf2wcxzGHDh0KupTwf//3f92acB+HlStXmnfeececP3/evP/++2bVqlXmvvvuM/v27TPGhH//b+XLVycZExljsXz5cnPo0CHz0UcfmerqapOfn2/i4uLcfwsjYQyOHTtmoqKizPPPP2/OnTtndu/ebQYNGmR27drl1kTCOBhjTHt7uxk+fLh57rnnOh0L1RgQYm7i3//9382IESNMTEyM+fa3v+1eZhuuDh48aCR12ubOnWuM+eIywtWrVxuv12tiY2PNo48+ak6cOBHaRveyrvovyWzbts2tCfdx+NGPfuR+7++//34zadIkN8AYE/79v5WOISYSxuLGvT6io6ONz+czTz75pDl16pR7PBLGwBhj3nzzTZOenm5iY2PNN7/5TfOb3/wm6HikjMPbb79tJJmzZ892OhaqMfAYY0zfzvUAAAD0PtbEAAAAKxFiAACAlQgxAADASoQYAABgJUIMAACwEiEGAABYiRADAACsRIgBAABWIsQAAAArEWIAAICVCDEAAMBKhBgAAGCl/wuprevaxQjWlQAAAABJRU5ErkJggg==",
"text/plain": [
"