{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"id": "257335f5-02e4-4388-a33d-a60920cccb61",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib as plt\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"import statsmodels.formula.api as smf\n",
"import statsmodels.api as sm\n",
"import utide \n",
"import datetime as dt\n",
"from datetime import timedelta\n",
"from matplotlib.lines import Line2D\n",
"from scipy import integrate\n",
"import functools as ft\n",
"from sklearn.linear_model import LinearRegression\n",
"from scipy.stats import pearsonr\n",
"import math \n",
"import matplotlib.colors as colors\n",
"import matplotlib.cm as cmx"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "40bd0c0a-6c6c-4f45-8f93-15d9dc4bb2ac",
"metadata": {},
"outputs": [],
"source": [
"df_odaw = pd.read_csv('C://Users/schre086/OneDrive - Wageningen University & Research/analysis/data/unep/odaw.csv')\n",
"df_mekong = pd.read_csv('C://Users/schre086/OneDrive - Wageningen University & Research/analysis/data/unep/mekong.csv')\n",
"df_rhine = pd.read_csv('C://Users/schre086/OneDrive - Wageningen University & Research/analysis/data/unep/rhine.csv')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "dd62e656-8389-415a-aea5-d9f04578a9ad",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Date\\n[dd-mm-yyyy]', 'Time\\n[hh:mm]', 'Observer', 'River name',\n",
" 'Location\\n[Bridge name]', 'Bridge width', 'Segment', 'ID', 'Latitude',\n",
" 'Longitude', 'Duration \\n[min]', 'PET', 'PO soft', 'PO hard', 'PS',\n",
" 'ML', 'EPS', 'Other', 'Rubber', 'Textile', 'Paper', 'Wood', 'Metal',\n",
" 'Glass', 'Sanitary', 'Medical', 'Other.1', 'Total counted \\n[items]',\n",
" 'Flow?', 'Item flux\\n[items/min]', 'Item flux\\n[items/hour]',\n",
" 'Item flux\\n[Items/hour/m]', 'Extrapolated\\n[Items/hour]', 'Comments'],\n",
" dtype='object')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_mekong.columns"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6dfc11e4-203e-4572-aaa2-1730ca2baa77",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Date\\n[dd-mm-yyyy] \n",
" Time\\n[hh:mm] \n",
" Observer \n",
" River name \n",
" Location\\n[Bridge name] \n",
" Bridge width \n",
" Segment \n",
" ID \n",
" Latitude \n",
" Longitude \n",
" ... \n",
" Sanitary \n",
" Medical \n",
" Other.1 \n",
" Total counted \\n[items] \n",
" Flow? \n",
" Item flux\\n[items/min] \n",
" Item flux\\n[items/hour] \n",
" Item flux\\n[Items/hour/m] \n",
" Extrapolated\\n[Items/hour] \n",
" Comments \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 26-02-2022 \n",
" 11:19 \n",
" Vatey \n",
" Mekong \n",
" Mekong Upstream \n",
" 610 \n",
" 3 \n",
" Mekong Upstream 3 \n",
" NaN \n",
" NaN \n",
" ... \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 1 \n",
" Yes \n",
" 0,2 \n",
" 12 \n",
" 0,8 \n",
" 488 \n",
" NaN \n",
" \n",
" \n",
" 1 \n",
" 26-02-2022 \n",
" 11:37 \n",
" Vatey \n",
" Mekong \n",
" Mekong Upstream \n",
" 610 \n",
" 3 \n",
" Mekong Upstream 3 \n",
" NaN \n",
" NaN \n",
" ... \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" Yes \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" NaN \n",
" \n",
" \n",
" 2 \n",
" 26-02-2022 \n",
" 11:42 \n",
" Vatey \n",
" Mekong \n",
" Mekong Upstream \n",
" 610 \n",
" 4 \n",
" Mekong Upstream 4 \n",
" NaN \n",
" NaN \n",
" ... \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" Yes \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" NaN \n",
" \n",
" \n",
" 3 \n",
" 26-02-2022 \n",
" 11:48 \n",
" Vatey \n",
" Mekong \n",
" Mekong Upstream \n",
" 610 \n",
" 4 \n",
" Mekong Upstream 4 \n",
" NaN \n",
" NaN \n",
" ... \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 1 \n",
" Yes \n",
" 0,2 \n",
" 12 \n",
" 0,8 \n",
" 488 \n",
" NaN \n",
" \n",
" \n",
" 4 \n",
" 26-02-2022 \n",
" 11:54 \n",
" Vatey \n",
" Mekong \n",
" Mekong Upstream \n",
" 610 \n",
" 4 \n",
" Mekong Upstream 4 \n",
" NaN \n",
" NaN \n",
" ... \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 1 \n",
" Yes \n",
" 0,2 \n",
" 12 \n",
" 0,8 \n",
" 488 \n",
" NaN \n",
" \n",
" \n",
"
\n",
"
5 rows × 34 columns
\n",
"
"
],
"text/plain": [
" Date\\n[dd-mm-yyyy] Time\\n[hh:mm] Observer River name \\\n",
"0 26-02-2022 11:19 Vatey Mekong \n",
"1 26-02-2022 11:37 Vatey Mekong \n",
"2 26-02-2022 11:42 Vatey Mekong \n",
"3 26-02-2022 11:48 Vatey Mekong \n",
"4 26-02-2022 11:54 Vatey Mekong \n",
"\n",
" Location\\n[Bridge name] Bridge width Segment ID Latitude \\\n",
"0 Mekong Upstream 610 3 Mekong Upstream 3 NaN \n",
"1 Mekong Upstream 610 3 Mekong Upstream 3 NaN \n",
"2 Mekong Upstream 610 4 Mekong Upstream 4 NaN \n",
"3 Mekong Upstream 610 4 Mekong Upstream 4 NaN \n",
"4 Mekong Upstream 610 4 Mekong Upstream 4 NaN \n",
"\n",
" Longitude ... Sanitary Medical Other.1 Total counted \\n[items] Flow? \\\n",
"0 NaN ... 0 0 0 1 Yes \n",
"1 NaN ... 0 0 0 0 Yes \n",
"2 NaN ... 0 0 0 0 Yes \n",
"3 NaN ... 0 0 0 1 Yes \n",
"4 NaN ... 0 0 0 1 Yes \n",
"\n",
" Item flux\\n[items/min] Item flux\\n[items/hour] Item flux\\n[Items/hour/m] \\\n",
"0 0,2 12 0,8 \n",
"1 0 0 0 \n",
"2 0 0 0 \n",
"3 0,2 12 0,8 \n",
"4 0,2 12 0,8 \n",
"\n",
" Extrapolated\\n[Items/hour] Comments \n",
"0 488 NaN \n",
"1 0 NaN \n",
"2 0 NaN \n",
"3 488 NaN \n",
"4 488 NaN \n",
"\n",
"[5 rows x 34 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_mekong.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "cc7dc53a-d8f6-4f89-a56a-748bed139772",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Date\\n[dd-mm-yyyy]', 'Time\\n[hh:mm]', 'Observer', 'River name',\n",
" 'Location\\n[Bridge name]', 'Bridge width', 'Segment', 'ID', 'Latitude',\n",
" 'Longitude', 'Duration \\n[min]', 'PET', 'PO soft', 'PO hard', 'PS',\n",
" 'ML', 'EPS', 'Other', 'Rubber', 'Textile', 'Paper', 'Wood', 'Metal',\n",
" 'Glass', 'Sanitary', 'Medical', 'Other.1', 'Total counted \\n[items]',\n",
" 'Flow?', 'Item flux\\n[items/min]', 'Item flux\\n[items/hour]',\n",
" 'Item flux\\n[Items/hour/m]', 'Extrapolated\\n[Items/hour]', 'Comments'],\n",
" dtype='object')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_odaw.columns"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "7817478a-4777-42cd-b26f-1c46b681747c",
"metadata": {},
"outputs": [],
"source": [
"df_mekong['river'] = 'mekong'\n",
"df_odaw['river'] = 'odaw'\n",
"df_odaw['seg_width'] = np.nan\n",
"df_mekong['seg_width'] = 15"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "173de6c6-aadc-4612-b1d6-59340492119b",
"metadata": {},
"outputs": [],
"source": [
"list_dfs = [df_odaw,df_mekong]\n",
"\n",
"df_odaw_mekong = pd.concat(list_dfs)\n",
"df_odaw_mekong.columns\n",
"\n",
"df_odaw_mekong = df_odaw_mekong.replace({'1-3-2022': '3/1/2022', '4-3-2022': '3/4/2022', '28-2-2022':'28-02-2022'})"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "35f97fef-b352-404f-956e-b46086603275",
"metadata": {},
"outputs": [],
"source": [
"cols_pl = ['PET', 'PO soft', 'PO hard', 'PS',\n",
" 'ML', 'EPS', 'Other']\n",
"\n",
"df_odaw_mekong['tot_pl'] = df_odaw_mekong[cols_pl].sum(axis=1)\n",
"\n",
"df_odaw_mekong_pl = df_odaw_mekong.copy()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "bb75267e-13a4-4217-975e-6ec875441327",
"metadata": {},
"outputs": [],
"source": [
"cols_int = ['Date\\n[dd-mm-yyyy]', 'Time\\n[hh:mm]',\n",
" 'Location\\n[Bridge name]', 'Segment', 'ID', 'Duration \\n[min]', 'tot_pl', 'Bridge width','seg_width','river'\n",
" ]\n",
"df_odaw_mekong = df_odaw_mekong[cols_int]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "db1dc96e-4d7c-4297-ba30-68a1eb1eb023",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" time \n",
" loc \n",
" seg \n",
" id \n",
" duration \n",
" tot_pl \n",
" bridge_width \n",
" seg_width \n",
" \n",
" \n",
" river \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" odaw \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" 1 \n",
" Winneba 1 \n",
" 2 \n",
" 0.0 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" odaw \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" 1 \n",
" Winneba 1 \n",
" 2 \n",
" 0.0 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" odaw \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" 1 \n",
" Winneba 1 \n",
" 2 \n",
" 0.0 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" odaw \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" 1 \n",
" Winneba 1 \n",
" 2 \n",
" 0.0 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" odaw \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" 2 \n",
" Winneba 2 \n",
" 2 \n",
" 0.0 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" mekong \n",
" 3/1/2022 \n",
" 14:56 \n",
" Tonle Sap \n",
" 2 \n",
" Tonle Sap 2 \n",
" 5 \n",
" 12.0 \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
" mekong \n",
" 3/1/2022 \n",
" 15:05 \n",
" Tonle Sap \n",
" 3 \n",
" Tonle Sap 3 \n",
" 5 \n",
" 2.0 \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
" mekong \n",
" 3/1/2022 \n",
" 15:15 \n",
" Tonle Sap \n",
" 4 \n",
" Tonle Sap 4 \n",
" 5 \n",
" 3.0 \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
" mekong \n",
" 3/1/2022 \n",
" 14:24 \n",
" Tonle Sap \n",
" 5 \n",
" Tonle Sap 5 \n",
" 5 \n",
" 15.0 \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
" mekong \n",
" 3/1/2022 \n",
" 15:32 \n",
" Tonle Sap \n",
" 6 \n",
" Tonle Sap 6 \n",
" 5 \n",
" 16.0 \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
"
\n",
"
1045 rows × 9 columns
\n",
"
"
],
"text/plain": [
" date time loc seg id duration tot_pl \\\n",
"river \n",
"odaw 11/12/2021 10:00 Winneba 1 Winneba 1 2 0.0 \n",
"odaw 11/12/2021 10:00 Winneba 1 Winneba 1 2 0.0 \n",
"odaw 11/12/2021 10:00 Winneba 1 Winneba 1 2 0.0 \n",
"odaw 11/12/2021 10:00 Winneba 1 Winneba 1 2 0.0 \n",
"odaw 11/12/2021 10:00 Winneba 2 Winneba 2 2 0.0 \n",
"... ... ... ... ... ... ... ... \n",
"mekong 3/1/2022 14:56 Tonle Sap 2 Tonle Sap 2 5 12.0 \n",
"mekong 3/1/2022 15:05 Tonle Sap 3 Tonle Sap 3 5 2.0 \n",
"mekong 3/1/2022 15:15 Tonle Sap 4 Tonle Sap 4 5 3.0 \n",
"mekong 3/1/2022 14:24 Tonle Sap 5 Tonle Sap 5 5 15.0 \n",
"mekong 3/1/2022 15:32 Tonle Sap 6 Tonle Sap 6 5 16.0 \n",
"\n",
" bridge_width seg_width \n",
"river \n",
"odaw NaN NaN \n",
"odaw NaN NaN \n",
"odaw NaN NaN \n",
"odaw NaN NaN \n",
"odaw NaN NaN \n",
"... ... ... \n",
"mekong 375.0 15.0 \n",
"mekong 375.0 15.0 \n",
"mekong 375.0 15.0 \n",
"mekong 375.0 15.0 \n",
"mekong 375.0 15.0 \n",
"\n",
"[1045 rows x 9 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_odaw_mekong.columns = ['date','time','loc','seg','id','duration','tot_pl','bridge_width','seg_width','river']\n",
"df_odaw_mekong.set_index('river')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "56cf7ec8-e05c-4828-8a05-59330a9677ae",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Date', 'Time', 'Observer Name', 'Location', 'Segment ID', 'Duration',\n",
" 'PET', 'PO Soft', 'PO Hard PS', 'PS', 'ML', 'PS-E', 'Other', 'Rubber',\n",
" 'Textile', 'Paper', 'Wood', 'Metal', 'Glass', 'Sanitary', 'Medical',\n",
" 'Other.1', 'Total', 'Location name', 'Latitude', 'Longitude',\n",
" 'Segment width', 'Rivier width'],\n",
" dtype='object')"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_rhine_add = pd.read_csv('C://Users/schre086/OneDrive - Wageningen University & Research/analysis/data/unep/rhine_add.csv')\n",
"df_rhine_add['Location name'].unique()\n",
"df_rhine_add = df_rhine_add.replace({'Spijkenisse': 'Spijkernisse', 'Gorinchem': 'Merwedebrug Gorinchem', 'Briesach Waterkracht':'Breisach Rivier'})\n",
"\n",
"dfrhine = pd.merge(df_rhine,df_rhine_add, left_on = 'Location', right_on = 'Location name')\n",
"dfrhine.columns"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "89ede5df-832c-4061-b47e-bd31e48becc5",
"metadata": {},
"outputs": [],
"source": [
"rhine_pl = ['PET', 'PO Soft', 'PO Hard PS', 'PS', 'ML', 'PS-E', 'Other']\n",
"\n",
"dfrhine['tot_pl'] = dfrhine[rhine_pl].sum(axis=1)\n",
"dfrhine['river'] = 'rhine'\n",
"dfrhine.columns\n",
"dfrhine = dfrhine.replace({'1-3-2022': '3/1/2022', '4-3-2022': '3/4/2022', '28-2-2022':'28-02-2022'})\n",
"dfPlRhine = dfrhine.copy()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "c8034fce-566c-4ce8-9c10-38254ccf38fd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Int64Index: 444 entries, 0 to 443\n",
"Data columns (total 9 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Date 444 non-null object \n",
" 1 Time 444 non-null int64 \n",
" 2 Location 444 non-null object \n",
" 3 Segment ID 444 non-null int64 \n",
" 4 Duration 416 non-null float64\n",
" 5 tot_pl 444 non-null float64\n",
" 6 Rivier width 444 non-null int64 \n",
" 7 Segment width 444 non-null int64 \n",
" 8 river 444 non-null object \n",
"dtypes: float64(2), int64(4), object(3)\n",
"memory usage: 34.7+ KB\n"
]
}
],
"source": [
"cols_int_rhine = ['Date', 'Time','Location', 'Segment ID', 'Duration', 'tot_pl','Rivier width','Segment width','river']\n",
"\n",
"dfrhine = dfrhine[cols_int_rhine]\n",
"dfrhine.info()\n",
"dfrhine['id'] = dfrhine['Location'] + ' ' + dfrhine['Segment ID'].map(str)\n",
"#df_rhine.head()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "fbfdcf70-b0ba-441e-93a9-fee01f0b8a05",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" time \n",
" loc \n",
" seg \n",
" duration \n",
" tot_pl \n",
" bridge_width \n",
" seg_width \n",
" river \n",
" id \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 3/23/2022 \n",
" 1020 \n",
" Merwedebrug Gorinchem \n",
" 5 \n",
" 5.0 \n",
" 0.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" Merwedebrug Gorinchem 5 \n",
" \n",
" \n",
" 1 \n",
" 3/23/2022 \n",
" 1021 \n",
" Merwedebrug Gorinchem \n",
" 4 \n",
" 5.0 \n",
" 0.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" Merwedebrug Gorinchem 4 \n",
" \n",
" \n",
" 2 \n",
" 3/23/2022 \n",
" 1028 \n",
" Merwedebrug Gorinchem \n",
" 4 \n",
" 5.0 \n",
" 0.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" Merwedebrug Gorinchem 4 \n",
" \n",
" \n",
" 3 \n",
" 3/23/2022 \n",
" 1029 \n",
" Merwedebrug Gorinchem \n",
" 3 \n",
" 5.0 \n",
" 3.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" Merwedebrug Gorinchem 3 \n",
" \n",
" \n",
" 4 \n",
" 3/23/2022 \n",
" 1035 \n",
" Merwedebrug Gorinchem \n",
" 3 \n",
" 5.0 \n",
" 1.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" Merwedebrug Gorinchem 3 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date time loc seg duration tot_pl \\\n",
"0 3/23/2022 1020 Merwedebrug Gorinchem 5 5.0 0.0 \n",
"1 3/23/2022 1021 Merwedebrug Gorinchem 4 5.0 0.0 \n",
"2 3/23/2022 1028 Merwedebrug Gorinchem 4 5.0 0.0 \n",
"3 3/23/2022 1029 Merwedebrug Gorinchem 3 5.0 3.0 \n",
"4 3/23/2022 1035 Merwedebrug Gorinchem 3 5.0 1.0 \n",
"\n",
" bridge_width seg_width river id \n",
"0 530 25 rhine Merwedebrug Gorinchem 5 \n",
"1 530 25 rhine Merwedebrug Gorinchem 4 \n",
"2 530 25 rhine Merwedebrug Gorinchem 4 \n",
"3 530 25 rhine Merwedebrug Gorinchem 3 \n",
"4 530 25 rhine Merwedebrug Gorinchem 3 "
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfrhine.columns = ['date','time','loc','seg','duration','tot_pl','bridge_width','seg_width','river','id']\n",
"#dfrhine = dfrhine[['date', 'time', 'loc', 'seg', 'id', 'duration', 'tot_pl','bridge_width', 'seg_width', 'river']]\n",
"\n",
"dfrhine.head()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "4347b8a7-297e-4137-abb8-a361bdb59afa",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" time \n",
" loc \n",
" seg \n",
" id \n",
" duration \n",
" tot_pl \n",
" bridge_width \n",
" seg_width \n",
" river \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 3/23/2022 \n",
" 1020 \n",
" Merwedebrug Gorinchem \n",
" 5 \n",
" Merwedebrug Gorinchem 5 \n",
" 5.0 \n",
" 0.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" \n",
" \n",
" 1 \n",
" 3/23/2022 \n",
" 1021 \n",
" Merwedebrug Gorinchem \n",
" 4 \n",
" Merwedebrug Gorinchem 4 \n",
" 5.0 \n",
" 0.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" \n",
" \n",
" 2 \n",
" 3/23/2022 \n",
" 1028 \n",
" Merwedebrug Gorinchem \n",
" 4 \n",
" Merwedebrug Gorinchem 4 \n",
" 5.0 \n",
" 0.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" \n",
" \n",
" 3 \n",
" 3/23/2022 \n",
" 1029 \n",
" Merwedebrug Gorinchem \n",
" 3 \n",
" Merwedebrug Gorinchem 3 \n",
" 5.0 \n",
" 3.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" \n",
" \n",
" 4 \n",
" 3/23/2022 \n",
" 1035 \n",
" Merwedebrug Gorinchem \n",
" 3 \n",
" Merwedebrug Gorinchem 3 \n",
" 5.0 \n",
" 1.0 \n",
" 530 \n",
" 25 \n",
" rhine \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date time loc seg id \\\n",
"0 3/23/2022 1020 Merwedebrug Gorinchem 5 Merwedebrug Gorinchem 5 \n",
"1 3/23/2022 1021 Merwedebrug Gorinchem 4 Merwedebrug Gorinchem 4 \n",
"2 3/23/2022 1028 Merwedebrug Gorinchem 4 Merwedebrug Gorinchem 4 \n",
"3 3/23/2022 1029 Merwedebrug Gorinchem 3 Merwedebrug Gorinchem 3 \n",
"4 3/23/2022 1035 Merwedebrug Gorinchem 3 Merwedebrug Gorinchem 3 \n",
"\n",
" duration tot_pl bridge_width seg_width river \n",
"0 5.0 0.0 530 25 rhine \n",
"1 5.0 0.0 530 25 rhine \n",
"2 5.0 0.0 530 25 rhine \n",
"3 5.0 3.0 530 25 rhine \n",
"4 5.0 1.0 530 25 rhine "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfrhine = dfrhine[['date', 'time', 'loc', 'seg', 'id', 'duration', 'tot_pl','bridge_width', 'seg_width', 'river']]\n",
"dfrhine.head()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "a1417d41-63e7-4427-b17a-1c57e4ad69b9",
"metadata": {},
"outputs": [],
"source": [
"all_dfs = [dfrhine,df_odaw_mekong]\n",
"\n",
"df_all = pd.concat(all_dfs)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "64eed2b8-985e-495e-83a7-e2145d167126",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"loc\n",
"Bassac 144\n",
"Mekong Downstream 153\n",
"Mekong Upstream 162\n",
"Tonle Sap 98\n",
"Name: tot_pl, dtype: int64"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_all['date'].unique()\n",
"\n",
"#df_all = df_all.replace({'1-3-2022': '3/1/2022', '4-3-2022': '3/4/2022', '28-2-2022':'28-02-2022'})\n",
"\n",
"df_all[df_all.river=='mekong'].groupby('loc')['tot_pl'].count()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "25f3768d-fb0d-4bdc-a07f-3c20770adde0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" id \n",
" duration \n",
" tot_pl \n",
" loc \n",
" river \n",
" bridge_width \n",
" seg_width \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 11/12/2021 \n",
" Abelenkpe 1 \n",
" 8.0 \n",
" 0.0 \n",
" Abelenkpe \n",
" odaw \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 1 \n",
" 11/12/2021 \n",
" Abelenkpe 2 \n",
" 8.0 \n",
" 97.0 \n",
" Abelenkpe \n",
" odaw \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 2 \n",
" 11/12/2021 \n",
" Abelenkpe 3 \n",
" 8.0 \n",
" 0.0 \n",
" Abelenkpe \n",
" odaw \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 3 \n",
" 11/12/2021 \n",
" Agbogba 1 \n",
" 8.0 \n",
" 1.0 \n",
" Agbogba \n",
" odaw \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 4 \n",
" 11/12/2021 \n",
" Agbogba 2 \n",
" 8.0 \n",
" 0.0 \n",
" Agbogba \n",
" odaw \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 364 \n",
" 3/4/2022 \n",
" Tonle Sap 2 \n",
" 8.0 \n",
" 2.0 \n",
" Tonle Sap \n",
" mekong \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
" 365 \n",
" 3/4/2022 \n",
" Tonle Sap 3 \n",
" 8.0 \n",
" 0.0 \n",
" Tonle Sap \n",
" mekong \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
" 366 \n",
" 3/4/2022 \n",
" Tonle Sap 4 \n",
" 8.0 \n",
" 0.0 \n",
" Tonle Sap \n",
" mekong \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
" 367 \n",
" 3/4/2022 \n",
" Tonle Sap 5 \n",
" 14.0 \n",
" -5.0 \n",
" Tonle Sap \n",
" mekong \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
" 368 \n",
" 3/4/2022 \n",
" Tonle Sap 6 \n",
" 14.0 \n",
" -4.0 \n",
" Tonle Sap \n",
" mekong \n",
" 375.0 \n",
" 15.0 \n",
" \n",
" \n",
"
\n",
"
369 rows × 8 columns
\n",
"
"
],
"text/plain": [
" date id duration tot_pl loc river \\\n",
"0 11/12/2021 Abelenkpe 1 8.0 0.0 Abelenkpe odaw \n",
"1 11/12/2021 Abelenkpe 2 8.0 97.0 Abelenkpe odaw \n",
"2 11/12/2021 Abelenkpe 3 8.0 0.0 Abelenkpe odaw \n",
"3 11/12/2021 Agbogba 1 8.0 1.0 Agbogba odaw \n",
"4 11/12/2021 Agbogba 2 8.0 0.0 Agbogba odaw \n",
".. ... ... ... ... ... ... \n",
"364 3/4/2022 Tonle Sap 2 8.0 2.0 Tonle Sap mekong \n",
"365 3/4/2022 Tonle Sap 3 8.0 0.0 Tonle Sap mekong \n",
"366 3/4/2022 Tonle Sap 4 8.0 0.0 Tonle Sap mekong \n",
"367 3/4/2022 Tonle Sap 5 14.0 -5.0 Tonle Sap mekong \n",
"368 3/4/2022 Tonle Sap 6 14.0 -4.0 Tonle Sap mekong \n",
"\n",
" bridge_width seg_width \n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN \n",
".. ... ... \n",
"364 375.0 15.0 \n",
"365 375.0 15.0 \n",
"366 375.0 15.0 \n",
"367 375.0 15.0 \n",
"368 375.0 15.0 \n",
"\n",
"[369 rows x 8 columns]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_all_day = df_all.groupby(['date','id']).agg({'duration':'sum','tot_pl':'sum', 'loc':'first','river':'first',\n",
" 'bridge_width':'first','seg_width':'first'}).reset_index()\n",
"df_all_day"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "4e0cb8fb-befa-4d8f-9841-73bb6eb1745e",
"metadata": {},
"outputs": [],
"source": [
"df_all_flux = df_all_day.groupby(['date','loc']).agg({'duration':'sum','tot_pl':'sum', 'id':'count',\n",
" 'seg_width':'mean','bridge_width':'first','river':'first'}).reset_index()\n",
"df_all_flux['tot_pl_h'] = np.nan \n",
"df_all_flux.loc[df_all_flux['river']=='odaw','tot_pl_h']= ((df_all_flux['tot_pl'] / df_all_flux['duration'])*60)*df_all_flux['id']\n",
"\n",
"#df_all_flux.loc['bridge_width','Note: there was a lot of accumulation. This caused a very slow flow. Seth told me that this part get dredged once a month'] \n",
"df_all_flux['bridge_width'] = df_all_flux['bridge_width'].astype('float')"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "c5849e59-42cc-4152-895b-237d617323f3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" loc \n",
" duration \n",
" tot_pl \n",
" id \n",
" seg_width \n",
" bridge_width \n",
" river \n",
" tot_pl_h \n",
" \n",
" \n",
" \n",
" \n",
" 40 \n",
" 26-02-2022 \n",
" Bassac \n",
" 76.0 \n",
" 3.0 \n",
" 8 \n",
" 15.0 \n",
" 500.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 41 \n",
" 26-02-2022 \n",
" Mekong Downstream \n",
" 210.0 \n",
" 37.0 \n",
" 10 \n",
" 15.0 \n",
" 600.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 42 \n",
" 26-02-2022 \n",
" Mekong Upstream \n",
" 200.0 \n",
" 76.0 \n",
" 10 \n",
" 15.0 \n",
" 610.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 43 \n",
" 26-02-2022 \n",
" Tonle Sap \n",
" 120.0 \n",
" 119.0 \n",
" 6 \n",
" 15.0 \n",
" 375.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 44 \n",
" 28-02-2022 \n",
" Bassac \n",
" 114.0 \n",
" 213.0 \n",
" 10 \n",
" 15.0 \n",
" 500.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 45 \n",
" 28-02-2022 \n",
" Mekong Downstream \n",
" 155.0 \n",
" 230.0 \n",
" 10 \n",
" 15.0 \n",
" 600.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 46 \n",
" 28-02-2022 \n",
" Mekong Upstream \n",
" 200.0 \n",
" 95.0 \n",
" 9 \n",
" 15.0 \n",
" 610.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 47 \n",
" 28-02-2022 \n",
" Tonle Sap \n",
" 120.0 \n",
" 151.0 \n",
" 6 \n",
" 15.0 \n",
" 375.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 51 \n",
" 3/1/2022 \n",
" Bassac \n",
" 64.0 \n",
" 48.0 \n",
" 8 \n",
" 15.0 \n",
" 500.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 56 \n",
" 3/1/2022 \n",
" Mekong Downstream \n",
" 200.0 \n",
" 179.0 \n",
" 10 \n",
" 15.0 \n",
" 600.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 57 \n",
" 3/1/2022 \n",
" Mekong Upstream \n",
" 200.0 \n",
" 147.0 \n",
" 10 \n",
" 15.0 \n",
" 610.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 60 \n",
" 3/1/2022 \n",
" Tonle Sap \n",
" 130.0 \n",
" 308.0 \n",
" 6 \n",
" 15.0 \n",
" 375.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 83 \n",
" 3/4/2022 \n",
" Bassac \n",
" 160.0 \n",
" 69.0 \n",
" 8 \n",
" 15.0 \n",
" 500.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 84 \n",
" 3/4/2022 \n",
" Mekong Downstream \n",
" 200.0 \n",
" 193.0 \n",
" 10 \n",
" 15.0 \n",
" 600.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 85 \n",
" 3/4/2022 \n",
" Mekong Upstream \n",
" 105.0 \n",
" -34.0 \n",
" 10 \n",
" 15.0 \n",
" 610.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
" 86 \n",
" 3/4/2022 \n",
" Tonle Sap \n",
" 60.0 \n",
" 2.0 \n",
" 6 \n",
" 15.0 \n",
" 375.0 \n",
" mekong \n",
" NaN \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date loc duration tot_pl id seg_width \\\n",
"40 26-02-2022 Bassac 76.0 3.0 8 15.0 \n",
"41 26-02-2022 Mekong Downstream 210.0 37.0 10 15.0 \n",
"42 26-02-2022 Mekong Upstream 200.0 76.0 10 15.0 \n",
"43 26-02-2022 Tonle Sap 120.0 119.0 6 15.0 \n",
"44 28-02-2022 Bassac 114.0 213.0 10 15.0 \n",
"45 28-02-2022 Mekong Downstream 155.0 230.0 10 15.0 \n",
"46 28-02-2022 Mekong Upstream 200.0 95.0 9 15.0 \n",
"47 28-02-2022 Tonle Sap 120.0 151.0 6 15.0 \n",
"51 3/1/2022 Bassac 64.0 48.0 8 15.0 \n",
"56 3/1/2022 Mekong Downstream 200.0 179.0 10 15.0 \n",
"57 3/1/2022 Mekong Upstream 200.0 147.0 10 15.0 \n",
"60 3/1/2022 Tonle Sap 130.0 308.0 6 15.0 \n",
"83 3/4/2022 Bassac 160.0 69.0 8 15.0 \n",
"84 3/4/2022 Mekong Downstream 200.0 193.0 10 15.0 \n",
"85 3/4/2022 Mekong Upstream 105.0 -34.0 10 15.0 \n",
"86 3/4/2022 Tonle Sap 60.0 2.0 6 15.0 \n",
"\n",
" bridge_width river tot_pl_h \n",
"40 500.0 mekong NaN \n",
"41 600.0 mekong NaN \n",
"42 610.0 mekong NaN \n",
"43 375.0 mekong NaN \n",
"44 500.0 mekong NaN \n",
"45 600.0 mekong NaN \n",
"46 610.0 mekong NaN \n",
"47 375.0 mekong NaN \n",
"51 500.0 mekong NaN \n",
"56 600.0 mekong NaN \n",
"57 610.0 mekong NaN \n",
"60 375.0 mekong NaN \n",
"83 500.0 mekong NaN \n",
"84 600.0 mekong NaN \n",
"85 610.0 mekong NaN \n",
"86 375.0 mekong NaN "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_all_flux[df_all_flux.river=='mekong']"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "2662d2c8-09b6-4a94-b614-046e4f8d1e7c",
"metadata": {},
"outputs": [],
"source": [
"\n",
"df_all_flux.loc[df_all_flux['river']!='odaw','tot_pl_h'] = ((df_all_flux['tot_pl'] / df_all_flux['duration'])*60)*(df_all_flux['bridge_width']/df_all_flux['seg_width'])\n",
"#df_all_flux\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "7370b9d6-140d-4d90-9f20-87b37e767c35",
"metadata": {},
"outputs": [],
"source": [
"df_all_final = df_all_flux.groupby('loc').agg({'tot_pl_h':'mean','river':'first'}).reset_index()\n",
"#df_all_final"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "bc78bd4a-4fe2-47b5-ade1-453c20ac7f26",
"metadata": {},
"outputs": [],
"source": [
"df_all_final = df_all_final.sort_values(by=['river','loc'])"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "cfa7e7d1-3a21-4b29-8a32-a2046d4a052d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Abelenkpe', 'Agbogba', 'Alajo', 'Dome-Parakuo', 'Graphic road',\n",
" 'Guggisberg', 'Haatso ', 'Pantang East', 'Ring road', 'Winneba'],\n",
" dtype=object)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_all_final[df_all_final.river=='odaw']['loc'].unique()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "cafba16c-d210-4b66-a287-c0e87a005f70",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" loc \n",
" tot_pl_h \n",
" river \n",
" \n",
" \n",
" \n",
" \n",
" 21 \n",
" Mekong Downstream \n",
" 2112.036866 \n",
" mekong \n",
" \n",
" \n",
" 32 \n",
" Tonle Sap \n",
" 1744.711538 \n",
" mekong \n",
" \n",
" \n",
" 4 \n",
" Bassac \n",
" 1544.572368 \n",
" mekong \n",
" \n",
" \n",
" 22 \n",
" Mekong Upstream \n",
" 772.376190 \n",
" mekong \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" loc tot_pl_h river\n",
"21 Mekong Downstream 2112.036866 mekong\n",
"32 Tonle Sap 1744.711538 mekong\n",
"4 Bassac 1544.572368 mekong\n",
"22 Mekong Upstream 772.376190 mekong"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_all_final[df_all_final.river=='mekong'].sort_values(by='tot_pl_h',ascending=False)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "2a97504c-76a4-4359-b04e-4651e84a420e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" loc \n",
" bridge_id \n",
" long \n",
" lat \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Pantang East \n",
" 1 \n",
" -0.19449 \n",
" 5.733530 \n",
" \n",
" \n",
" 1 \n",
" Agbogba \n",
" 2 \n",
" -0.20666 \n",
" 5.688030 \n",
" \n",
" \n",
" 2 \n",
" Haatso \n",
" 3 \n",
" -0.21403 \n",
" 5.667566 \n",
" \n",
" \n",
" 3 \n",
" Dome Parakuo \n",
" 4 \n",
" -0.22085 \n",
" 5.641030 \n",
" \n",
" \n",
" 4 \n",
" Abelenkpe \n",
" 5 \n",
" -0.22663 \n",
" 5.613180 \n",
" \n",
" \n",
" 5 \n",
" Alajo \n",
" 6 \n",
" -0.21771 \n",
" 5.590680 \n",
" \n",
" \n",
" 6 \n",
" Ringroad \n",
" 7 \n",
" -0.21796 \n",
" 5.569870 \n",
" \n",
" \n",
" 7 \n",
" Graphic \n",
" 8 \n",
" -0.22112 \n",
" 5.556530 \n",
" \n",
" \n",
" 8 \n",
" Guggisberg \n",
" 9 \n",
" -0.21960 \n",
" 5.537740 \n",
" \n",
" \n",
" 9 \n",
" Winneba \n",
" 10 \n",
" -0.22109 \n",
" 5.530910 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" loc bridge_id long lat\n",
"0 Pantang East 1 -0.19449 5.733530\n",
"1 Agbogba 2 -0.20666 5.688030\n",
"2 Haatso 3 -0.21403 5.667566\n",
"3 Dome Parakuo 4 -0.22085 5.641030\n",
"4 Abelenkpe 5 -0.22663 5.613180\n",
"5 Alajo 6 -0.21771 5.590680\n",
"6 Ringroad 7 -0.21796 5.569870\n",
"7 Graphic 8 -0.22112 5.556530\n",
"8 Guggisberg 9 -0.21960 5.537740\n",
"9 Winneba 10 -0.22109 5.530910"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_odaw_locations= pd.read_csv('C://Users/schre086/OneDrive - Wageningen University & Research/analysis/data/unep/locations_river.csv')\n",
"df_odaw_locations.columns = ['loc','bridge_id','long','lat']\n",
"df_odaw_locations['loc'].unique()\n",
"df_odaw_locations"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "5d8964f7-8bf8-457e-b3e4-8c1c6b334d20",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" loc \n",
" bridge_id \n",
" long \n",
" lat \n",
" tot_pl_h \n",
" river \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Pantang East \n",
" 1.0 \n",
" -0.19449 \n",
" 5.733530 \n",
" 0.0 \n",
" odaw \n",
" \n",
" \n",
" 1 \n",
" Agbogba \n",
" 2.0 \n",
" -0.20666 \n",
" 5.688030 \n",
" 10.5 \n",
" odaw \n",
" \n",
" \n",
" 2 \n",
" Haatso \n",
" 3.0 \n",
" -0.21403 \n",
" 5.667566 \n",
" 163.5 \n",
" odaw \n",
" \n",
" \n",
" 3 \n",
" Dome-Parakuo \n",
" 4.0 \n",
" -0.22085 \n",
" 5.641030 \n",
" 108.0 \n",
" odaw \n",
" \n",
" \n",
" 4 \n",
" Abelenkpe \n",
" 5.0 \n",
" -0.22663 \n",
" 5.613180 \n",
" 621.0 \n",
" odaw \n",
" \n",
" \n",
" 5 \n",
" Alajo \n",
" 6.0 \n",
" -0.21771 \n",
" 5.590680 \n",
" 877.5 \n",
" odaw \n",
" \n",
" \n",
" 6 \n",
" Ring road \n",
" 7.0 \n",
" -0.21796 \n",
" 5.569870 \n",
" 559.5 \n",
" odaw \n",
" \n",
" \n",
" 7 \n",
" Graphic road \n",
" 8.0 \n",
" -0.22112 \n",
" 5.556530 \n",
" 1575.0 \n",
" odaw \n",
" \n",
" \n",
" 8 \n",
" Guggisberg \n",
" 9.0 \n",
" -0.21960 \n",
" 5.537740 \n",
" 525.0 \n",
" odaw \n",
" \n",
" \n",
" 9 \n",
" Winneba \n",
" 10.0 \n",
" -0.22109 \n",
" 5.530910 \n",
" 678.0 \n",
" odaw \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" loc bridge_id long lat tot_pl_h river\n",
"0 Pantang East 1.0 -0.19449 5.733530 0.0 odaw\n",
"1 Agbogba 2.0 -0.20666 5.688030 10.5 odaw\n",
"2 Haatso 3.0 -0.21403 5.667566 163.5 odaw\n",
"3 Dome-Parakuo 4.0 -0.22085 5.641030 108.0 odaw\n",
"4 Abelenkpe 5.0 -0.22663 5.613180 621.0 odaw\n",
"5 Alajo 6.0 -0.21771 5.590680 877.5 odaw\n",
"6 Ring road 7.0 -0.21796 5.569870 559.5 odaw\n",
"7 Graphic road 8.0 -0.22112 5.556530 1575.0 odaw\n",
"8 Guggisberg 9.0 -0.21960 5.537740 525.0 odaw\n",
"9 Winneba 10.0 -0.22109 5.530910 678.0 odaw"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_odaw_locations = df_odaw_locations.replace({'Dome Parakuo': 'Dome-Parakuo', 'Ringroad': 'Ring road', 'Graphic':'Graphic road'})\n",
"df_all_final = df_all_final.replace({'Haatso ': 'Haatso'})\n",
"\n",
"df_odaw_final = pd.merge(df_odaw_locations,df_all_final,how='outer',on='loc')\n",
"df_odaw_final = df_odaw_final.iloc[:10,:]\n",
"df_odaw_final"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "0954fc11-6e70-424e-8419-78ae2886351b",
"metadata": {},
"outputs": [],
"source": [
"df_riverbank= pd.read_csv('C://Users/schre086/OneDrive - Wageningen University & Research/analysis/data/unep/odaw_riverbank.csv')\n",
"df_riverbank = df_riverbank.iloc[1:,:]\n",
"\n",
"colPl = df_riverbank.columns[df_riverbank.columns.str.contains(pat = 'PLASTIC')] \n",
"\n",
"df_riverbank[colPl] = df_riverbank[colPl].astype('float')\n",
"\n",
"df_riverbank['pl_sum'] = df_riverbank[colPl].sum(axis=1, numeric_only=True)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "bd98c8c7-7d4a-4b14-b870-a7544dd1f554",
"metadata": {},
"outputs": [],
"source": [
"#df_riverbank.head(20)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "946ce444-9f54-4693-af45-fa95fda65d5b",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\schre086\\AppData\\Local\\Temp\\ipykernel_7372\\86779732.py:9: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df_density[col_for_area] = df_density[col_for_area].astype('float')\n"
]
}
],
"source": [
"cols_inter = ['Date', 'Time', 'Observer name', 'River name', 'Location', 'Land/river',\n",
" 'Coordinates riverbank sampling', 'Segment', 'Length [m]', 'Width [m]', 'pl_sum']\n",
"\n",
"df_density = df_riverbank[cols_inter]\n",
"\n",
"df_density.columns = ['date','time','obs','river','loc','type','coord','seg','len','width','pl_count']\n",
"col_for_area = ['len','width']\n",
"\n",
"df_density[col_for_area] = df_density[col_for_area].astype('float')"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "ea06da8a-931e-4ad4-875f-4dbe03f5a543",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\schre086\\AppData\\Local\\Temp\\ipykernel_7372\\1361293395.py:1: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df_density['area'] = df_density['len'] * df_density['width']\n",
"C:\\Users\\schre086\\AppData\\Local\\Temp\\ipykernel_7372\\1361293395.py:2: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df_density['pl_dens'] = df_density['pl_count']/df_density['area']\n"
]
}
],
"source": [
"df_density['area'] = df_density['len'] * df_density['width']\n",
"df_density['pl_dens'] = df_density['pl_count']/df_density['area']\n",
"\n",
"df_density = df_density.replace({'Land ': 'Land', 'Riverbank ': 'Riverbank', 'Riverbed':'Riverbank'})\n",
"df_density = df_density.replace({'Dome- Parakuo': 'Dome-Parakuo','Haatso ':'Haatso'})\n",
"df_density.loc[df_density['loc']=='Alajo','type'] = 'Riverbank'\n",
"df_density.loc[df_density['loc']=='Dome-Parakuo','type'] = 'Land'\n",
"\n",
"\n",
"df_density['year'] = df_density['date'].str[-4:]\n",
"df_density = df_density.loc[df_density['year']=='2021'] \n",
"\n",
"\n",
"#df_density\n",
"#Alajo: no land \n",
"# Dome-Parakuo: no riverbank "
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "d30da002-ceb0-4b3c-a285-9c9e4f158562",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Abelenkpe', 'Agbogba', 'Alajo', 'Dome-Parakuo', 'Graphic road',\n",
" 'Guggisberg', 'Haatso', 'Pantang East', 'Ring road', 'Winneba'],\n",
" dtype=object)"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_pl_dens = df_density.groupby(['type','loc'])['pl_dens'].mean().reset_index()\n",
"\n",
"\n",
"df_pl_dens = df_pl_dens.sort_values(by=['loc','type'],ascending=[True,True])\n",
"df_pl_dens['loc'].unique()\n",
"\n",
"#df_pl_dens"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "f70d2a91-5f5f-4083-8f86-5ead585d8c68",
"metadata": {},
"outputs": [],
"source": [
"df_odaw_all = pd.merge(df_odaw_final, df_pl_dens, on ='loc',how='outer')\n",
"df_odaw_all.loc[18] = ['Alajo',6,np.nan, np.nan, 877.5,'odaw','Land',np.nan]\n",
"df_odaw_all.loc[19] = ['Dome-Parakuo',4,np.nan, np.nan, 108.0,'odaw','Riverbank',np.nan]"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "adfad5b1-d8b4-4895-ad8b-646af7222718",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" loc \n",
" bridge_id \n",
" long \n",
" lat \n",
" tot_pl_h \n",
" river \n",
" type \n",
" pl_dens \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Pantang East \n",
" 1.0 \n",
" -0.19449 \n",
" 5.733530 \n",
" 0.0 \n",
" odaw \n",
" Land \n",
" 3.358333 \n",
" \n",
" \n",
" 1 \n",
" Pantang East \n",
" 1.0 \n",
" -0.19449 \n",
" 5.733530 \n",
" 0.0 \n",
" odaw \n",
" Riverbank \n",
" 2.266667 \n",
" \n",
" \n",
" 2 \n",
" Agbogba \n",
" 2.0 \n",
" -0.20666 \n",
" 5.688030 \n",
" 10.5 \n",
" odaw \n",
" Land \n",
" 1.533333 \n",
" \n",
" \n",
" 3 \n",
" Agbogba \n",
" 2.0 \n",
" -0.20666 \n",
" 5.688030 \n",
" 10.5 \n",
" odaw \n",
" Riverbank \n",
" 5.972222 \n",
" \n",
" \n",
" 4 \n",
" Haatso \n",
" 3.0 \n",
" -0.21403 \n",
" 5.667566 \n",
" 163.5 \n",
" odaw \n",
" Land \n",
" 1.375000 \n",
" \n",
" \n",
" 5 \n",
" Haatso \n",
" 3.0 \n",
" -0.21403 \n",
" 5.667566 \n",
" 163.5 \n",
" odaw \n",
" Riverbank \n",
" 12.777778 \n",
" \n",
" \n",
" 19 \n",
" Dome-Parakuo \n",
" 4.0 \n",
" NaN \n",
" NaN \n",
" 108.0 \n",
" odaw \n",
" Riverbank \n",
" NaN \n",
" \n",
" \n",
" 6 \n",
" Dome-Parakuo \n",
" 4.0 \n",
" -0.22085 \n",
" 5.641030 \n",
" 108.0 \n",
" odaw \n",
" Land \n",
" 3.777778 \n",
" \n",
" \n",
" 7 \n",
" Abelenkpe \n",
" 5.0 \n",
" -0.22663 \n",
" 5.613180 \n",
" 621.0 \n",
" odaw \n",
" Land \n",
" 7.100000 \n",
" \n",
" \n",
" 8 \n",
" Abelenkpe \n",
" 5.0 \n",
" -0.22663 \n",
" 5.613180 \n",
" 621.0 \n",
" odaw \n",
" Riverbank \n",
" 4.241667 \n",
" \n",
" \n",
" 18 \n",
" Alajo \n",
" 6.0 \n",
" NaN \n",
" NaN \n",
" 877.5 \n",
" odaw \n",
" Land \n",
" NaN \n",
" \n",
" \n",
" 9 \n",
" Alajo \n",
" 6.0 \n",
" -0.21771 \n",
" 5.590680 \n",
" 877.5 \n",
" odaw \n",
" Riverbank \n",
" 5.400000 \n",
" \n",
" \n",
" 10 \n",
" Ring road \n",
" 7.0 \n",
" -0.21796 \n",
" 5.569870 \n",
" 559.5 \n",
" odaw \n",
" Land \n",
" 4.177778 \n",
" \n",
" \n",
" 11 \n",
" Ring road \n",
" 7.0 \n",
" -0.21796 \n",
" 5.569870 \n",
" 559.5 \n",
" odaw \n",
" Riverbank \n",
" 3.633333 \n",
" \n",
" \n",
" 12 \n",
" Graphic road \n",
" 8.0 \n",
" -0.22112 \n",
" 5.556530 \n",
" 1575.0 \n",
" odaw \n",
" Land \n",
" 4.066667 \n",
" \n",
" \n",
" 13 \n",
" Graphic road \n",
" 8.0 \n",
" -0.22112 \n",
" 5.556530 \n",
" 1575.0 \n",
" odaw \n",
" Riverbank \n",
" 8.800000 \n",
" \n",
" \n",
" 14 \n",
" Guggisberg \n",
" 9.0 \n",
" -0.21960 \n",
" 5.537740 \n",
" 525.0 \n",
" odaw \n",
" Land \n",
" 3.100000 \n",
" \n",
" \n",
" 15 \n",
" Guggisberg \n",
" 9.0 \n",
" -0.21960 \n",
" 5.537740 \n",
" 525.0 \n",
" odaw \n",
" Riverbank \n",
" 17.433333 \n",
" \n",
" \n",
" 16 \n",
" Winneba \n",
" 10.0 \n",
" -0.22109 \n",
" 5.530910 \n",
" 678.0 \n",
" odaw \n",
" Land \n",
" 32.400000 \n",
" \n",
" \n",
" 17 \n",
" Winneba \n",
" 10.0 \n",
" -0.22109 \n",
" 5.530910 \n",
" 678.0 \n",
" odaw \n",
" Riverbank \n",
" 4.166667 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" loc bridge_id long lat tot_pl_h river type \\\n",
"0 Pantang East 1.0 -0.19449 5.733530 0.0 odaw Land \n",
"1 Pantang East 1.0 -0.19449 5.733530 0.0 odaw Riverbank \n",
"2 Agbogba 2.0 -0.20666 5.688030 10.5 odaw Land \n",
"3 Agbogba 2.0 -0.20666 5.688030 10.5 odaw Riverbank \n",
"4 Haatso 3.0 -0.21403 5.667566 163.5 odaw Land \n",
"5 Haatso 3.0 -0.21403 5.667566 163.5 odaw Riverbank \n",
"19 Dome-Parakuo 4.0 NaN NaN 108.0 odaw Riverbank \n",
"6 Dome-Parakuo 4.0 -0.22085 5.641030 108.0 odaw Land \n",
"7 Abelenkpe 5.0 -0.22663 5.613180 621.0 odaw Land \n",
"8 Abelenkpe 5.0 -0.22663 5.613180 621.0 odaw Riverbank \n",
"18 Alajo 6.0 NaN NaN 877.5 odaw Land \n",
"9 Alajo 6.0 -0.21771 5.590680 877.5 odaw Riverbank \n",
"10 Ring road 7.0 -0.21796 5.569870 559.5 odaw Land \n",
"11 Ring road 7.0 -0.21796 5.569870 559.5 odaw Riverbank \n",
"12 Graphic road 8.0 -0.22112 5.556530 1575.0 odaw Land \n",
"13 Graphic road 8.0 -0.22112 5.556530 1575.0 odaw Riverbank \n",
"14 Guggisberg 9.0 -0.21960 5.537740 525.0 odaw Land \n",
"15 Guggisberg 9.0 -0.21960 5.537740 525.0 odaw Riverbank \n",
"16 Winneba 10.0 -0.22109 5.530910 678.0 odaw Land \n",
"17 Winneba 10.0 -0.22109 5.530910 678.0 odaw Riverbank \n",
"\n",
" pl_dens \n",
"0 3.358333 \n",
"1 2.266667 \n",
"2 1.533333 \n",
"3 5.972222 \n",
"4 1.375000 \n",
"5 12.777778 \n",
"19 NaN \n",
"6 3.777778 \n",
"7 7.100000 \n",
"8 4.241667 \n",
"18 NaN \n",
"9 5.400000 \n",
"10 4.177778 \n",
"11 3.633333 \n",
"12 4.066667 \n",
"13 8.800000 \n",
"14 3.100000 \n",
"15 17.433333 \n",
"16 32.400000 \n",
"17 4.166667 "
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_odaw_all = df_odaw_all.sort_values(by='bridge_id',ascending=True)\n",
"df_odaw_all"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "3cdd766a-6d85-48ca-986e-789832b10531",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(7, 4)) \n",
"\n",
"ax2 = ax.twinx()\n",
"\n",
"df_odaw_all.plot(y='tot_pl_h', x= 'bridge_id', ax=ax, linewidth=1, c = 'tab:blue', legend=False, marker='o',linestyle=':')\n",
"df_odaw_all[df_odaw_all.type=='Land'].plot(y='pl_dens', x= 'bridge_id', ax=ax2, linewidth=1, c = 'darkgreen', \n",
" legend=False, marker='s',linestyle=':')\n",
"df_odaw_all[df_odaw_all.type=='Riverbank'].plot(y='pl_dens', x= 'bridge_id', ax=ax2, linewidth=1, c = 'darkgoldenrod', \n",
" legend=False, marker='s', linestyle=':')\n",
"\n",
"ax.set_xlabel('Bridge number')\n",
"ax.set_xticks([1,2,3,4,5,6,7,8,9,10])\n",
"ax2.set_yticks([0,10,20, 30,40,50,60])\n",
"ax.set_yticks([0,300,600,900,1200,1500,1800])\n",
"ax.set_ylabel('Plastic transport [items/hour]')\n",
"ax2.set_ylabel('Plastic density [items/m$^{2}$]')\n",
"\n",
"line1 = Line2D([0], [0], color='tab:blue', label='Plastic flux', \n",
" markersize=6, marker ='o',linestyle=':')\n",
"line2 = Line2D([0], [0], color='darkgreen', label='Plastic density (land)',\n",
" markersize=6, marker = 's',linestyle=':')\n",
"line3 = Line2D([0], [0], color='darkgoldenrod', label='Plastic density (riverbank)',\n",
" markersize=6, marker = 's',linestyle=':')\n",
"\n",
"ax.legend([line1,line2,line3], ['Floating plastic transport', 'Land plastic density','Riverbank plastic density'], loc= 'upper left',fontsize=9)\n",
"\n",
"ax.annotate('Upstream',xy=(1,300),fontsize=10, xytext=(0.4,-330))\n",
"ax.annotate('Downstream',xy=(1,300),fontsize=10, xytext=(9.4,-330))\n",
"\n",
"plt.savefig('C://Users/schre086/OneDrive - Wageningen University & Research/analysis/figures/unep_report/figOdaw.png',dpi=800)"
]
},
{
"cell_type": "code",
"execution_count": 317,
"id": "133e73d0-9523-4e4b-b19d-b3a59cc54031",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" river \n",
" tot_pl_h \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" mekong \n",
" 1543.424241 \n",
" \n",
" \n",
" 1 \n",
" odaw \n",
" 511.800000 \n",
" \n",
" \n",
" 2 \n",
" rhine \n",
" 219.629643 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" river tot_pl_h\n",
"0 mekong 1543.424241\n",
"1 odaw 511.800000\n",
"2 rhine 219.629643"
]
},
"execution_count": 317,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_mean_all = df_all_final.groupby('river')['tot_pl_h'].mean().reset_index()\n",
"\n",
"df_mean_all"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4bbe7392-fa8f-41e8-9304-f53a938f6a52",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 318,
"id": "fe21d12e-c44c-454f-b747-c560f3023a06",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Date\\n[dd-mm-yyyy]', 'Time\\n[hh:mm]', 'Observer', 'River name',\n",
" 'Location\\n[Bridge name]', 'Bridge width', 'Segment', 'ID', 'Latitude',\n",
" 'Longitude', 'Duration \\n[min]', 'PET', 'PO soft', 'PO hard', 'PS',\n",
" 'ML', 'EPS', 'Other', 'Rubber', 'Textile', 'Paper', 'Wood', 'Metal',\n",
" 'Glass', 'Sanitary', 'Medical', 'Other.1', 'Total counted \\n[items]',\n",
" 'Flow?', 'Item flux\\n[items/min]', 'Item flux\\n[items/hour]',\n",
" 'Item flux\\n[Items/hour/m]', 'Extrapolated\\n[Items/hour]', 'Comments',\n",
" 'river', 'seg_width', 'tot_pl'],\n",
" dtype='object')"
]
},
"execution_count": 318,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_odaw_mekong_pl.columns"
]
},
{
"cell_type": "code",
"execution_count": 319,
"id": "f3ebeb95-21b3-4566-8aa9-528cc3b5fb29",
"metadata": {},
"outputs": [],
"source": [
"cols_keep = ['Date\\n[dd-mm-yyyy]','Time\\n[hh:mm]', 'Location\\n[Bridge name]','Bridge width','Duration \\n[min]','ID','PET', 'PO soft', 'PO hard', 'PS', 'ML', 'EPS', 'Other','river', 'seg_width', 'tot_pl']\n",
"\n",
"dfPlC = df_odaw_mekong_pl[cols_keep]\n",
"\n",
"dfPlC.loc[(dfPlC['river']=='odaw')&(dfPlC['tot_pl']>0)]\n",
"\n",
"dfPlC.columns = ['date','time','loc','bridge_width','duration','id','PET', 'PO soft', 'PO hard', 'PS', 'ML', 'EPS', 'Other','river', 'seg_width', 'tot_pl' ]"
]
},
{
"cell_type": "code",
"execution_count": 320,
"id": "1f7ebad1-772f-4d24-857c-e710a9b482a1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['date', 'time', 'loc', 'bridge_width', 'duration', 'id', 'PET',\n",
" 'PO soft', 'PO hard', 'PS', 'ML', 'EPS', 'Other', 'river', 'seg_width',\n",
" 'tot_pl'],\n",
" dtype='object')"
]
},
"execution_count": 320,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfPlC.columns"
]
},
{
"cell_type": "code",
"execution_count": 321,
"id": "05e51325-6684-48fc-b577-d546547eb737",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Date', 'Time', 'Observer Name', 'Location', 'Segment ID', 'Duration',\n",
" 'PET', 'PO Soft', 'PO Hard PS', 'PS', 'ML', 'PS-E', 'Other', 'Rubber',\n",
" 'Textile', 'Paper', 'Wood', 'Metal', 'Glass', 'Sanitary', 'Medical',\n",
" 'Other.1', 'Total', 'Location name', 'Latitude', 'Longitude',\n",
" 'Segment width', 'Rivier width', 'tot_pl', 'river'],\n",
" dtype='object')"
]
},
"execution_count": 321,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfPlRhine.columns"
]
},
{
"cell_type": "code",
"execution_count": 322,
"id": "86047210-62b6-4bb5-8932-ebd1219e3b32",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" time \n",
" loc \n",
" bridge_width \n",
" duration \n",
" id \n",
" PET \n",
" PO soft \n",
" PO hard \n",
" PS \n",
" ML \n",
" EPS \n",
" Other \n",
" river \n",
" seg_width \n",
" tot_pl \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 3/23/2022 \n",
" 1020 \n",
" Merwedebrug Gorinchem \n",
" 530 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 5 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25 \n",
" 0.0 \n",
" \n",
" \n",
" 1 \n",
" 3/23/2022 \n",
" 1021 \n",
" Merwedebrug Gorinchem \n",
" 530 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 4 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25 \n",
" 0.0 \n",
" \n",
" \n",
" 2 \n",
" 3/23/2022 \n",
" 1028 \n",
" Merwedebrug Gorinchem \n",
" 530 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 4 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25 \n",
" 0.0 \n",
" \n",
" \n",
" 3 \n",
" 3/23/2022 \n",
" 1029 \n",
" Merwedebrug Gorinchem \n",
" 530 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 3 \n",
" NaN \n",
" 3.0 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25 \n",
" 3.0 \n",
" \n",
" \n",
" 4 \n",
" 3/23/2022 \n",
" 1035 \n",
" Merwedebrug Gorinchem \n",
" 530 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 3 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" 1.0 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25 \n",
" 1.0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date time loc bridge_width duration \\\n",
"0 3/23/2022 1020 Merwedebrug Gorinchem 530 5.0 \n",
"1 3/23/2022 1021 Merwedebrug Gorinchem 530 5.0 \n",
"2 3/23/2022 1028 Merwedebrug Gorinchem 530 5.0 \n",
"3 3/23/2022 1029 Merwedebrug Gorinchem 530 5.0 \n",
"4 3/23/2022 1035 Merwedebrug Gorinchem 530 5.0 \n",
"\n",
" id PET PO soft PO hard PS ML EPS Other river \\\n",
"0 Merwedebrug Gorinchem 5 NaN NaN NaN NaN NaN NaN NaN rhine \n",
"1 Merwedebrug Gorinchem 4 NaN NaN NaN NaN NaN NaN NaN rhine \n",
"2 Merwedebrug Gorinchem 4 NaN NaN NaN NaN NaN NaN NaN rhine \n",
"3 Merwedebrug Gorinchem 3 NaN 3.0 NaN NaN NaN NaN NaN rhine \n",
"4 Merwedebrug Gorinchem 3 NaN NaN NaN 1.0 NaN NaN NaN rhine \n",
"\n",
" seg_width tot_pl \n",
"0 25 0.0 \n",
"1 25 0.0 \n",
"2 25 0.0 \n",
"3 25 3.0 \n",
"4 25 1.0 "
]
},
"execution_count": 322,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cols_int = ['Date', 'Time','Location', 'Segment ID', 'Duration', 'PET', 'PO Soft', 'PO Hard PS', 'PS', 'ML', 'PS-E', 'Other', 'tot_pl','Rivier width','Segment width','river']\n",
"\n",
"dfPlRhine = dfPlRhine[cols_int]\n",
"#dfPlRhine.info()\n",
"dfPlRhine['id'] = dfPlRhine['Location'] + ' ' + dfPlRhine['Segment ID'].map(str)\n",
"\n",
"dfPlRhine.columns\n",
"\n",
"dfPlRhine.columns = ['date','time','loc','seg','duration', 'PET', 'PO soft', 'PO hard', 'PS', 'ML', 'EPS', 'Other','tot_pl','bridge_width','seg_width','river','id']\n",
"\n",
"dfPlRhine = dfPlRhine[['date', 'time', 'loc','bridge_width','duration','id', 'PET', 'PO soft', 'PO hard', 'PS', 'ML', 'EPS',\n",
" 'Other', 'river', 'seg_width', 'tot_pl']]\n",
"\n",
"dfPlRhine.head()"
]
},
{
"cell_type": "code",
"execution_count": 323,
"id": "838767f2-f0e6-47f8-ba12-e8e43f7ba459",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" time \n",
" loc \n",
" bridge_width \n",
" duration \n",
" id \n",
" PET \n",
" PO soft \n",
" PO hard \n",
" PS \n",
" ML \n",
" EPS \n",
" Other \n",
" river \n",
" seg_width \n",
" tot_pl \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" NaN \n",
" 2 \n",
" Winneba 1 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0.0 \n",
" odaw \n",
" NaN \n",
" 0.0 \n",
" \n",
" \n",
" 1 \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" NaN \n",
" 2 \n",
" Winneba 1 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0.0 \n",
" odaw \n",
" NaN \n",
" 0.0 \n",
" \n",
" \n",
" 2 \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" NaN \n",
" 2 \n",
" Winneba 1 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0.0 \n",
" odaw \n",
" NaN \n",
" 0.0 \n",
" \n",
" \n",
" 3 \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" NaN \n",
" 2 \n",
" Winneba 1 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0.0 \n",
" odaw \n",
" NaN \n",
" 0.0 \n",
" \n",
" \n",
" 4 \n",
" 11/12/2021 \n",
" 10:00 \n",
" Winneba \n",
" NaN \n",
" 2 \n",
" Winneba 2 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0 \n",
" 0.0 \n",
" odaw \n",
" NaN \n",
" 0.0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date time loc bridge_width duration id PET \\\n",
"0 11/12/2021 10:00 Winneba NaN 2 Winneba 1 0 \n",
"1 11/12/2021 10:00 Winneba NaN 2 Winneba 1 0 \n",
"2 11/12/2021 10:00 Winneba NaN 2 Winneba 1 0 \n",
"3 11/12/2021 10:00 Winneba NaN 2 Winneba 1 0 \n",
"4 11/12/2021 10:00 Winneba NaN 2 Winneba 2 0 \n",
"\n",
" PO soft PO hard PS ML EPS Other river seg_width tot_pl \n",
"0 0 0 0 0 0 0.0 odaw NaN 0.0 \n",
"1 0 0 0 0 0 0.0 odaw NaN 0.0 \n",
"2 0 0 0 0 0 0.0 odaw NaN 0.0 \n",
"3 0 0 0 0 0 0.0 odaw NaN 0.0 \n",
"4 0 0 0 0 0 0.0 odaw NaN 0.0 "
]
},
"execution_count": 323,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfPlC.head()"
]
},
{
"cell_type": "code",
"execution_count": 324,
"id": "484dd741-6db3-4cc0-b253-d0fb65efa96b",
"metadata": {},
"outputs": [],
"source": [
"all_dfsP = [dfPlRhine,dfPlC]\n",
"\n",
"df_allP = pd.concat(all_dfsP)"
]
},
{
"cell_type": "code",
"execution_count": 325,
"id": "5497624b-9f3b-48fb-bfc9-2538c9f3fb25",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" date \n",
" time \n",
" loc \n",
" bridge_width \n",
" duration \n",
" id \n",
" PET \n",
" PO soft \n",
" PO hard \n",
" PS \n",
" ML \n",
" EPS \n",
" Other \n",
" river \n",
" seg_width \n",
" tot_pl \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 3/23/2022 \n",
" 1020 \n",
" Merwedebrug Gorinchem \n",
" 530.0 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 5 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1 \n",
" 3/23/2022 \n",
" 1021 \n",
" Merwedebrug Gorinchem \n",
" 530.0 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 4 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25.0 \n",
" 0.0 \n",
" \n",
" \n",
" 2 \n",
" 3/23/2022 \n",
" 1028 \n",
" Merwedebrug Gorinchem \n",
" 530.0 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 4 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25.0 \n",
" 0.0 \n",
" \n",
" \n",
" 3 \n",
" 3/23/2022 \n",
" 1029 \n",
" Merwedebrug Gorinchem \n",
" 530.0 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 3 \n",
" NaN \n",
" 3.0 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25.0 \n",
" 3.0 \n",
" \n",
" \n",
" 4 \n",
" 3/23/2022 \n",
" 1035 \n",
" Merwedebrug Gorinchem \n",
" 530.0 \n",
" 5.0 \n",
" Merwedebrug Gorinchem 3 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" 1.0 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" rhine \n",
" 25.0 \n",
" 1.0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date time loc bridge_width duration \\\n",
"0 3/23/2022 1020 Merwedebrug Gorinchem 530.0 5.0 \n",
"1 3/23/2022 1021 Merwedebrug Gorinchem 530.0 5.0 \n",
"2 3/23/2022 1028 Merwedebrug Gorinchem 530.0 5.0 \n",
"3 3/23/2022 1029 Merwedebrug Gorinchem 530.0 5.0 \n",
"4 3/23/2022 1035 Merwedebrug Gorinchem 530.0 5.0 \n",
"\n",
" id PET PO soft PO hard PS ML EPS Other river \\\n",
"0 Merwedebrug Gorinchem 5 NaN NaN NaN NaN NaN NaN NaN rhine \n",
"1 Merwedebrug Gorinchem 4 NaN NaN NaN NaN NaN NaN NaN rhine \n",
"2 Merwedebrug Gorinchem 4 NaN NaN NaN NaN NaN NaN NaN rhine \n",
"3 Merwedebrug Gorinchem 3 NaN 3.0 NaN NaN NaN NaN NaN rhine \n",
"4 Merwedebrug Gorinchem 3 NaN NaN NaN 1.0 NaN NaN NaN rhine \n",
"\n",
" seg_width tot_pl \n",
"0 25.0 0.0 \n",
"1 25.0 0.0 \n",
"2 25.0 0.0 \n",
"3 25.0 3.0 \n",
"4 25.0 1.0 "
]
},
"execution_count": 325,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_allP\n",
"\n",
"pl_cols = ['PET', 'PO soft', 'PO hard', 'PS', 'ML', 'EPS', 'Other','tot_pl']\n",
"df_allP.head()"
]
},
{
"cell_type": "code",
"execution_count": 326,
"id": "cfc03fb1-86cd-4eba-8be0-45c839932e15",
"metadata": {},
"outputs": [],
"source": [
"df_all_dayP = df_allP.groupby(['date','id']).agg({'duration':'sum','tot_pl':'sum','PET':'sum', 'PO soft':'sum','PO hard':'sum',\n",
" 'PS':'sum','ML':'sum','EPS':'sum','Other':'sum',\n",
" 'loc':'first','river':'first',\n",
" 'bridge_width':'first','seg_width':'first'}).reset_index()\n",
"\n",
"df_all_fluxP = df_all_dayP.groupby(['date','loc']).agg({'duration':'sum','tot_pl':'sum', 'PET':'sum', 'PO soft':'sum','PO hard':'sum',\n",
" 'PS':'sum','ML':'sum','EPS':'sum','Other':'sum','id':'count',\n",
" 'seg_width':'mean','bridge_width':'first','river':'first'}).reset_index()\n",
"\n",
"\n",
"df_odawP = df_all_fluxP[df_all_fluxP.river=='odaw']\n",
"df_restP = df_all_fluxP[df_all_fluxP.river!='odaw']"
]
},
{
"cell_type": "code",
"execution_count": 327,
"id": "8f9fbf86-212a-4b01-aa7b-40a12497f27a",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\schre086\\AppData\\Local\\Temp\\ipykernel_12252\\362689331.py:2: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df_odawP[col] = ((df_odawP[col] / df_odawP['duration']) *60)* df_odawP['id']\n",
"C:\\Users\\schre086\\AppData\\Local\\Temp\\ipykernel_12252\\362689331.py:5: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df_restP[col] = ((df_restP[col] / df_restP['duration'])*60)*(df_restP['bridge_width']/df_restP['seg_width'])\n"
]
}
],
"source": [
"for col in pl_cols:\n",
" df_odawP[col] = ((df_odawP[col] / df_odawP['duration']) *60)* df_odawP['id']\n",
" \n",
"for col in pl_cols: \n",
" df_restP[col] = ((df_restP[col] / df_restP['duration'])*60)*(df_restP['bridge_width']/df_restP['seg_width'])\n",
" \n",
"frames = [df_restP, df_odawP]\n",
"\n",
"DfCompTr = pd.concat(frames)"
]
},
{
"cell_type": "code",
"execution_count": 328,
"id": "ff7413d2-a27a-4416-8cfe-1dbb973c928c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" loc \n",
" tot_pl \n",
" PET \n",
" PO soft \n",
" PO hard \n",
" PS \n",
" ML \n",
" EPS \n",
" Other \n",
" river \n",
" \n",
" \n",
" \n",
" \n",
" 4 \n",
" Bassac \n",
" 1544.572368 \n",
" 133.031798 \n",
" 516.063596 \n",
" 145.942982 \n",
" 58.223684 \n",
" 237.554825 \n",
" 387.746711 \n",
" 66.008772 \n",
" mekong \n",
" \n",
" \n",
" 21 \n",
" Mekong Downstream \n",
" 2112.036866 \n",
" 174.981567 \n",
" 712.608295 \n",
" 90.152074 \n",
" 142.751152 \n",
" 415.165899 \n",
" 433.953917 \n",
" 142.423963 \n",
" mekong \n",
" \n",
" \n",
" 22 \n",
" Mekong Upstream \n",
" 772.376190 \n",
" 40.521429 \n",
" 304.273810 \n",
" 73.780952 \n",
" 42.264286 \n",
" 114.883333 \n",
" 77.411905 \n",
" 119.240476 \n",
" mekong \n",
" \n",
" \n",
" 32 \n",
" Tonle Sap \n",
" 1744.711538 \n",
" 195.192308 \n",
" 411.538462 \n",
" 125.961538 \n",
" 154.807692 \n",
" 212.740385 \n",
" 478.365385 \n",
" 166.105769 \n",
" mekong \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" loc tot_pl PET PO soft PO hard \\\n",
"4 Bassac 1544.572368 133.031798 516.063596 145.942982 \n",
"21 Mekong Downstream 2112.036866 174.981567 712.608295 90.152074 \n",
"22 Mekong Upstream 772.376190 40.521429 304.273810 73.780952 \n",
"32 Tonle Sap 1744.711538 195.192308 411.538462 125.961538 \n",
"\n",
" PS ML EPS Other river \n",
"4 58.223684 237.554825 387.746711 66.008772 mekong \n",
"21 142.751152 415.165899 433.953917 142.423963 mekong \n",
"22 42.264286 114.883333 77.411905 119.240476 mekong \n",
"32 154.807692 212.740385 478.365385 166.105769 mekong "
]
},
"execution_count": 328,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfPlCompTrans = DfCompTr.groupby('loc').agg({'tot_pl':'mean', 'PET':'mean', 'PO soft':'mean','PO hard':'mean',\n",
" 'PS':'mean','ML':'mean','EPS':'mean','Other':'mean','river':'first'}).reset_index()\n",
"\n",
"dfPlCompTrans[dfPlCompTrans.river=='mekong']"
]
},
{
"cell_type": "code",
"execution_count": 329,
"id": "21c1ce76-25f4-4b02-b1aa-290313cccf06",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['loc', 'tot_pl', 'PET', 'PO soft', 'PO hard', 'PS', 'ML', 'EPS',\n",
" 'Other', 'river', 'PET_%', 'PO soft_%', 'PO hard_%', 'PS_%', 'ML_%',\n",
" 'EPS_%', 'Other_%', 'tot_pl_%'],\n",
" dtype='object')"
]
},
"execution_count": 329,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"for col in pl_cols: \n",
" dfPlCompTrans[col+'_%'] = (dfPlCompTrans[col]/dfPlCompTrans['tot_pl'])*100\n",
" \n",
"dfPlCompTrans.columns"
]
},
{
"cell_type": "code",
"execution_count": 330,
"id": "61005f0f-1e07-4332-b851-163898f09e5b",
"metadata": {},
"outputs": [],
"source": [
"dfPlCompTrans = dfPlCompTrans[['loc','river','PET','PET_%','PO soft','PO soft_%','PO hard','PO hard_%',\n",
" 'PS','PS_%','ML','ML_%','EPS','EPS_%','Other','Other_%','tot_pl','tot_pl_%']]\n",
"\n",
"dfPlCompTrans = dfPlCompTrans.round(0)\n",
"\n",
"\n",
"\n",
"\n",
"#dfPlCompTrans"
]
},
{
"cell_type": "code",
"execution_count": 331,
"id": "a10eb27c-a1c7-42fb-843a-dc6aa1bdd820",
"metadata": {},
"outputs": [],
"source": [
"dfPlCompTrans.columns = ['Location','River','PET','PET_%','PO soft','PO soft_%','PO hard','PO hard_%',\n",
" 'PS','PS_%','ML','ML_%','EPS','EPS_%','Other','Other_%','Total plastic transport','Total plastic transport_%']\n",
"\n",
"\n",
"dfPlCompTrans = dfPlCompTrans.replace({'mekong': 'Mekong','odaw':'Odaw','rhine':'Rhine'})\n",
"\n",
"#dfPlCompTrans = dfPlCompTrans.set_index('River')\n",
"dfPlCompTrans = dfPlCompTrans.sort_values(by='River')\n"
]
},
{
"cell_type": "code",
"execution_count": 337,
"id": "26159840-78ae-45cd-bf05-8bbd261ca600",
"metadata": {},
"outputs": [],
"source": [
"dfPlCompTrans = dfPlCompTrans.sort_values(by=['River','Location'])\n",
"\n",
"dfPlCompTrans.to_csv(\"C:/Users/schre086/OneDrive - Wageningen University & Research/analysis/data/unep/data_exports/final_dataset_by_loc.csv\", header=True)"
]
},
{
"cell_type": "code",
"execution_count": 339,
"id": "83ec3fbc-0b10-4de2-9d7e-3fb61154a31a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Location \n",
" River \n",
" PET \n",
" PET_% \n",
" PO soft \n",
" PO soft_% \n",
" PO hard \n",
" PO hard_% \n",
" PS \n",
" PS_% \n",
" ML \n",
" ML_% \n",
" EPS \n",
" EPS_% \n",
" Other \n",
" Other_% \n",
" Total plastic transport \n",
" Total plastic transport_% \n",
" \n",
" \n",
" \n",
" \n",
" 4 \n",
" Bassac \n",
" Mekong \n",
" 133.0 \n",
" 9.0 \n",
" 516.0 \n",
" 33.0 \n",
" 146.0 \n",
" 9.0 \n",
" 58.0 \n",
" 4.0 \n",
" 238.0 \n",
" 15.0 \n",
" 388.0 \n",
" 25.0 \n",
" 66.0 \n",
" 4.0 \n",
" 1545.0 \n",
" 100.0 \n",
" \n",
" \n",
" 21 \n",
" Mekong Downstream \n",
" Mekong \n",
" 175.0 \n",
" 8.0 \n",
" 713.0 \n",
" 34.0 \n",
" 90.0 \n",
" 4.0 \n",
" 143.0 \n",
" 7.0 \n",
" 415.0 \n",
" 20.0 \n",
" 434.0 \n",
" 21.0 \n",
" 142.0 \n",
" 7.0 \n",
" 2112.0 \n",
" 100.0 \n",
" \n",
" \n",
" 22 \n",
" Mekong Upstream \n",
" Mekong \n",
" 41.0 \n",
" 5.0 \n",
" 304.0 \n",
" 39.0 \n",
" 74.0 \n",
" 10.0 \n",
" 42.0 \n",
" 5.0 \n",
" 115.0 \n",
" 15.0 \n",
" 77.0 \n",
" 10.0 \n",
" 119.0 \n",
" 15.0 \n",
" 772.0 \n",
" 100.0 \n",
" \n",
" \n",
" 32 \n",
" Tonle Sap \n",
" Mekong \n",
" 195.0 \n",
" 11.0 \n",
" 412.0 \n",
" 24.0 \n",
" 126.0 \n",
" 7.0 \n",
" 155.0 \n",
" 9.0 \n",
" 213.0 \n",
" 12.0 \n",
" 478.0 \n",
" 27.0 \n",
" 166.0 \n",
" 10.0 \n",
" 1745.0 \n",
" 100.0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Location River PET PET_% PO soft PO soft_% PO hard \\\n",
"4 Bassac Mekong 133.0 9.0 516.0 33.0 146.0 \n",
"21 Mekong Downstream Mekong 175.0 8.0 713.0 34.0 90.0 \n",
"22 Mekong Upstream Mekong 41.0 5.0 304.0 39.0 74.0 \n",
"32 Tonle Sap Mekong 195.0 11.0 412.0 24.0 126.0 \n",
"\n",
" PO hard_% PS PS_% ML ML_% EPS EPS_% Other Other_% \\\n",
"4 9.0 58.0 4.0 238.0 15.0 388.0 25.0 66.0 4.0 \n",
"21 4.0 143.0 7.0 415.0 20.0 434.0 21.0 142.0 7.0 \n",
"22 10.0 42.0 5.0 115.0 15.0 77.0 10.0 119.0 15.0 \n",
"32 7.0 155.0 9.0 213.0 12.0 478.0 27.0 166.0 10.0 \n",
"\n",
" Total plastic transport Total plastic transport_% \n",
"4 1545.0 100.0 \n",
"21 2112.0 100.0 \n",
"22 772.0 100.0 \n",
"32 1745.0 100.0 "
]
},
"execution_count": 339,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfPlCompTrans[dfPlCompTrans.River=='Mekong']"
]
},
{
"cell_type": "code",
"execution_count": 341,
"id": "b066b71c-a1b6-45c5-b36b-05ec48779b1c",
"metadata": {},
"outputs": [],
"source": [
"dfPlRiver = dfPlCompTrans.groupby('River').agg({'Total plastic transport':'mean'})"
]
},
{
"cell_type": "code",
"execution_count": 343,
"id": "49bc0f7e-d503-4c4d-924b-dfc7b3ccea8f",
"metadata": {},
"outputs": [],
"source": [
"dfPlRiver = dfPlRiver.reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 346,
"id": "32c11242-e12b-45de-ba13-f8d783eb7ee8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Location', 'River', 'PET', 'PET_%', 'PO soft', 'PO soft_%', 'PO hard',\n",
" 'PO hard_%', 'PS', 'PS_%', 'ML', 'ML_%', 'EPS', 'EPS_%', 'Other',\n",
" 'Other_%', 'Total plastic transport', 'Total plastic transport_%'],\n",
" dtype='object')"
]
},
"execution_count": 346,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfPlCompTrans.columns"
]
},
{
"cell_type": "code",
"execution_count": 352,
"id": "9ac563ed-1900-4366-9a43-b493f1370d10",
"metadata": {},
"outputs": [],
"source": [
"#df_plastic_comp = df_plastic_comp.set_index('river')\n",
"DfPlasComp = dfPlCompTrans[['PET_%','PO soft_%','PO hard_%','PS_%','ML_%','EPS_%', 'Other_%','River']]\n",
"DfCompFin = DfPlasComp.groupby('River').agg({'PET_%':'mean','PO soft_%':'mean','PO hard_%':'mean','PS_%':'mean','ML_%':'mean','EPS_%':'mean', 'Other_%':'mean'})"
]
},
{
"cell_type": "code",
"execution_count": 212,
"id": "34666435-bc0c-4579-9c04-6b324236779b",
"metadata": {},
"outputs": [],
"source": [
"#df_all_final = df_all_final.replace({'mekong': 'Mekong','odaw':'Odaw','rhine':'Rhine'})\n",
"#df_mean_all = df_mean_all.replace({'mekong': 'Mekong','odaw':'Odaw','rhine':'Rhine'})\n",
"#df_plastic_comp = df_plastic_comp.replace({'mekong': 'Mekong','odaw':'Odaw','rhine':'Rhine'})"
]
},
{
"cell_type": "code",
"execution_count": 356,
"id": "8eee5adc-a4ab-4199-beb8-ad8af091cf75",
"metadata": {},
"outputs": [],
"source": [
"DfCompFin.columns = ['PET','PO soft','PO hard', 'PS', 'ML', 'EPS', 'Other']"
]
},
{
"cell_type": "code",
"execution_count": 486,
"id": "3f5f42c3-4c23-41c3-b19c-6cfac92a6021",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA2cAAAFZCAYAAAAcpFeRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABy7klEQVR4nO3dd1QU19sH8O/Sl44oAooUKQIioqhBjYglEks0xIhdNBqNsUajMZagscREjb1EE0BjiT8lxBB7wYaKDUXFiggqhmABUeruvH94mNeVjsDu4vdzzh5l5s6d5+4ul3323rkjEQRBABERERERESmVhrIDICIiIiIiIiZnREREREREKoHJGRERERERkQpgckZERERERKQCmJwRERERERGpACZnREREREREKoDJGRERERERkQpgckZERERERKQCmJwRERERERGpACZnREREREREKoDJ2Vvy8PCARCKBVCpFRkaGssMhIlJ5dnZ2kEgkhR6GhoZo0qQJpk2bhsePHys7TCIiomonEQRBUHYQ6io2NhZeXl7iz7/++iuGDRumxIiIiFSfnZ0d7t27BycnJ1hYWAAA5HI5UlJSkJiYCACoV68eTpw4ATs7O+UFSkREVM04cvYWNm3aBAAwNTVV+JmIiEr37bff4sSJEzhx4gSio6Nx9+5dXLhwAdbW1njw4AGmTJmi7BCJiIiqFZOzCpLJZNi6dSsAYOXKldDU1MTRo0eRlJSk5MiIiNSXl5cXpk+fDgA4ePCgkqMhIiKqXkzOKujgwYNISUmBpaUl+vbtiw4dOkAQBGzevFnZoRERqTVbW1sAQG5urpIjISIiql5Mzipo48aNAIDAwEBoampiwIABADi1kYjobZ07dw4A0KhRIyVHQkREVL2YnFVAZmYmIiIiAEBMygICAiCVShEfH4/z588rMToiIvUjl8vx8OFDrFmzBgsXLoREIsG0adOUHRYREVG1YnJWATt37sTLly/h6OiIFi1aAACMjIzQvXt3ABw9IyIqi6FDh4rL6GtqaqJevXoYPXo0GjdujL179+KTTz5RdohERETVislZBRQkX/3791fYXjCKtnXrVuTn51d7XERE6sTJyQlt2rQRHy4uLtDV1cX58+exevVqPH36VNkhEhERVSve56ycHjx4gAYNGkAul+P69etwcXER9+Xm5sLS0hJPnz7FP//8g65d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6BS7ZkJZ6OjowNDQsPKConcCkzM1wKSKiIiIqPrUqlULs2bNQmZmZoXrMDQ0RK1atSoxKnoXMDkjIiIiInpDrVq1mFxRtVPvtdGJiIiIiIhqCCZnREREREREKoDJGRERERERkQpgckZERERERKQCmJwRERERERGpACZnREREREREKoDJGRERERERkQqQCIIgKDsIVZeRkQETExOkp6fD2NhY2eEQUQ1U0/uZmt4+IlI+9jNUE3DkjIiIiIiISAVoKTsAIiIiIiJleJDwX7Wer55DnXIfExQUhLCwMACAlpYWbGxsEBAQgNmzZ+O///6Dvb19kcedOnUK33zzDY4ePVps3ba2tkhMTCx3TFR1mJwREREREakwf39/hISEIC8vD8ePH8fw4cPx4sULTJ06FQBw8OBBuLu7Kxxjbm6O8PBw5ObmAgCSk5PRsmVLhbKamprV2xAqFZMzIiIiIiIVpqurC0tLSwBA//79ceTIEURERIjJmbm5ubj/dbVq1RL/n52dXWJZUg285oyIiIiISI1IpVLk5eUpOwyqAhw5IyIiIiJSEzExMdiyZQs6duwobmvdujU0NBTHXNLT0zltUQ0xOSMiIiIiUmGRkZEwNDREfn4+8vLy0LNnT6xYsQIvX74EAPzxxx9wdXVVOIaJmXpickZEREREpML8/PywZs0aaGtrw9raGtra2gAgrrRoY2MDR0dHJUZIlYXJGRERERGRCjMwMGDy9Y5gckZEREREpMYeP36MR48eKWwzNTWFnp6ekiKiimJyRkRERESkxjp16lRo29atW9G3b18lRENvg8kZEREREb2T6jnUUXYIpQoNDS12n52dHQRBKFM95SlLysP7nBEREREREakAJmdEREREREQqgMkZERERERGRCmByRkREREREpAKYnBEREREREakAJmdEREREREQqgMlZCVatWgU3Nze0aNFC2aEQEakl9qNERERlJxF4w4NSZWRkwMTEBOnp6TA2NlZ2OERUA9X0fqamt4+IlI/9DNUEHDkjIiIiIiJSAUzOiIiIiIio3CIiIuDo6AhNTU1MmDBB2eHUCFrKDoCIiIiISBm8l/5Trec7N6FbucoHBQUhLCwMAKClpQUbGxsEBARg9uzZMDAwEMuFhYVh1apVuHr1KjQ0NODl5YUpU6age/fulRr/m0aOHImhQ4di3LhxMDIyQlBQ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4oTCtujoaDg7O4uJZZ06dRSWjb516xZevnz5Vu0gIlI1EyZMwMSJE1G/fn3IZDKFL6Hy8/ML9fVEROqOI2dU49jZ2SEzMxOHDh2Cp6cn9PX14ezsjAEDBmDw4MFYvHgxvLy8kJaWhsOHD8PDwwNdu3at0LkiIyORkJCAdu3awczMDLt374ZcLoeLiwtSU1Nx9uzZct8QddKkSWjRogW+//57BAYG4tSpU1i5ciVWr14tlunQoQNWrlyJ9957D3K5HFOnTi00wkdEpM4OHDiAW7duYePGjQCAli1b4vr169izZw+Sk5OhqakJFxcXJUdJRFS5OHJGNU7r1q0xatQoBAYGok6dOvjxxx8BACEhIRg8eDAmTZoEFxcXfPTRRzhz5gxsbGwqfC5TU1OEh4ejQ4cOcHV1xdq1a7F161a4u7vj77//RqtWrWBhYVGuOps1a4bt27dj27ZtaNy4MWbNmoU5c+YoLAayePFi2NjYoF27dujfvz8mT54sXudGRKTusrKyMGbMGKxbt05c6bZevXpYsWIFhg4dinnz5iEsLKzQlHEiInUnEd68cIVIxbVv3x5NmzbF0qVLlR1KiT766CO0bdsWU6ZMUXYohQQFBeHZs2flHtUjIqosoaGhmDBhAp49e1ZpdUokEvz555/o1atXpdVJRFSdOHJGamn16tUwNDREXFycskMpVtu2bdGvXz9lh6Hg+PHjMDQ0xObNm5UdChER0tPTYWhoiKlTp75VPaNGjVJY3ImISF1x5IzUzoMHD5CVlQUAaNCgAXR0dJQckfrIysrCgwcPALxapfJtF0MhIqqo58+f499//wXwaop47dq1K1xXamoqMjIyALy6PQlXqiUidcXkjIiIiIiISAVwWiMREREREZEKYHJGRERERESkApicERERERERqQAmZ0RERERERCqAyRkREREREZEKYHJGRERERESkApicERERERERqQAmZ0RERERERCqAyRkREREREZEK+D+xePzYLscDfwAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, (ax1, ax2) = plt.subplots(figsize=(8, 3), nrows=1, ncols=2, sharey=True) \n",
"\n",
"\n",
"ax1 = sns.scatterplot(y=dfPlCompTrans['River'], x=dfPlCompTrans['Total plastic transport'], hue = dfPlCompTrans['River'], \n",
" palette = ['dimgrey','dimgrey','dimgrey'],legend=False, s = 70,edgecolor='white',ax=ax1)\n",
"\n",
"ax1 = sns.scatterplot(y=dfPlRiver['River'], x = dfPlRiver['Total plastic transport'], hue = dfPlRiver['River'], \n",
" palette = ['white','white','white'],legend=False, s = 150,edgecolor=['dimgrey','dimgrey','dimgrey'], marker='s',ax=ax1)\n",
"\n",
"ax1.set_yticks(['Mekong','Odaw','Rhine'])\n",
"#ax1.set_yticklabels(['Mekong','Odaw','Rhine'])\n",
"ax1.set_xlabel('Floating plastic transport \\n[items/hour]',labelpad=10)\n",
"ax1.set_ylabel(None)\n",
"\n",
"line1 = Line2D([0], [0], color='white', markeredgecolor ='dimgrey', \n",
" markersize=12, marker ='s',linestyle=':',lw=0)\n",
"line2 = Line2D([0], [0], color='dimgrey', markeredgecolor='white', \n",
" markersize=8, marker = 'o',linestyle=':', lw=0)\n",
"\n",
"ax1.legend([line2,line1], ['Location means','River means'], bbox_to_anchor = (2.82,1),fontsize=10,frameon=False)\n",
"\n",
"\n",
"my_colors = ['#e4ddea', '#338fb4', '#df1d7b','#8c8c8c','#e0db79','#ea84f3','#20141c']\n",
"\n",
"DfCompFin.plot(kind = 'barh',stacked = True,color=my_colors, ax=ax2)\n",
"\n",
"ax2.set_xlabel('Plastic items composition \\n [%]',labelpad=10)\n",
"\n",
"ax2.legend(bbox_to_anchor = (1,.8),frameon=False)\n",
"\n",
"ax1.set_title('A',fontsize=16,loc='left')\n",
"ax2.set_title('B',fontsize=16, loc = 'left')\n",
"ax2.set_yticks(['Mekong','Odaw','Rhine'])\n",
"#fig.align_labels()\n",
"plt.savefig('C://Users/schre086/OneDrive - Wageningen University & Research/analysis/figures/unep_report/figAll.png',bbox_inches='tight',dpi=1200)\n",
"\n",
"plt.show()\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}