diff --git a/Powerline vegetation impact example.ipynb b/Powerline vegetation impact example.ipynb
new file mode 100644
index 000000000..9eade4e08
--- /dev/null
+++ b/Powerline vegetation impact example.ipynb
@@ -0,0 +1,647 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import ipyplot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
0
\n",
+ "
MarinCounty-Vegetation-CanopyCover-2020-Summer-00010m.tiff
![](\"MarinCounty-Vegetation-CanopyCover-2020-Summer-00010m.tiff\"/)
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "ipyplot.plot_images([\"MarinCounty-Vegetation-CanopyCover-2020-Summer-00010m.tiff\"],img_width=500)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from PIL import Image\n",
+ "import IPython.display as dsp\n",
+ "import numpy as np\n",
+ "from scipy.interpolate import interp1d\n",
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# res = 10 # TIFF resolution in meters\n",
+ "# dd = res*39/12 # image resolution in feet\n",
+ "# box = {\"N\":38.317511, \"S\":37.816952, \"E\":-122.372121, \"W\":-123.024393}\n",
+ "# print('size:',data.shape)\n",
+ "\n",
+ "def get_values(specs,p0,p1):\n",
+ " img = Image.open(\"MarinCounty-Vegetation-CanopyCover-2020-Summer-00010m.tiff\")\n",
+ " data = np.array(img)\n",
+ " x0 = int((p0[\"lon\"]-box[\"W\"])/(box[\"E\"]-box[\"W\"])*data.shape[0])\n",
+ " y0 = int((p0[\"lat\"]-box[\"N\"])/(box[\"S\"]-box[\"N\"])*data.shape[1])\n",
+ " x1 = int((p1[\"lon\"]-box[\"W\"])/(box[\"E\"]-box[\"W\"])*data.shape[0])\n",
+ " y1 = int((p1[\"lat\"]-box[\"N\"])/(box[\"S\"]-box[\"N\"])*data.shape[1])\n",
+ " dx = x1-x0\n",
+ " dy = y1-y0\n",
+ " s = 0.0\n",
+ " n = 0\n",
+ " zz = []\n",
+ " tt = []\n",
+ " if abs(dx) > abs(dy): # iterate over x\n",
+ " y = y0\n",
+ " r = dy/dx\n",
+ " for x in range(x0,x1+1,np.sign(dx)):\n",
+ " zz.append(data[int(x),int(y)])\n",
+ " tt.append(np.sqrt((x0-x)*(x0-x)+(y0-y)*(y0-y))*dd)\n",
+ " y += r\n",
+ " else: # iterate over y\n",
+ " x = x0\n",
+ " r = dx/dy\n",
+ " for y in range(y0,y1+1,np.sign(dy)):\n",
+ " zz.append(data[int(x),int(y)])\n",
+ " tt.append(np.sqrt((x0-x)*(x0-x)+(y0-y)*(y0-y))*dd)\n",
+ " x += r\n",
+ " d = round(np.sqrt(dx*dx+dy*dy)*dd) # distance in feet\n",
+ " zz = np.array(zz)\n",
+ " t = np.array(tt)\n",
+ " z = list(map(lambda x:float(x/res/res),list(map(interp1d(t,zz),np.arange(tt[0],tt[-1],1.0)))))\n",
+ " return {\n",
+ " \"from\" : p0,\n",
+ " \"to\" :p1,\n",
+ " \"min\":zz.min(),\n",
+ " \"max\":zz.max(),\n",
+ " \"avg\":np.round(zz.mean(),1),\n",
+ " \"std\":np.round(zz.std(),1),\n",
+ " \"len\":d,\n",
+ " \"t\" : np.arange(tt[0],tt[-1],1.0),\n",
+ " \"z\": np.array(z),\n",
+ " }\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'from': {'lat': 38.131435, 'lon': -122.740464}, 'to': {'lat': 38.110846, 'lon': -122.724984}, 'min': 1, 'max': 84, 'avg': 14.4, 'std': 25.1, 'len': 8990, 't': array([0.000e+00, 1.000e+00, 2.000e+00, ..., 8.988e+03, 8.989e+03,\n",
+ " 8.990e+03]), 'z': array([0.79 , 0.79026918, 0.79053836, ..., 0.01 , 0.01 ,\n",
+ " 0.01 ])}\n"
+ ]
+ }
+ ],
+ "source": [
+ "res = 10 # TIFF resolution in meters\n",
+ "dd = res*39/12 # image resolution in feet\n",
+ "box = {\"N\":38.317511, \"S\":37.816952, \"E\":-122.372121, \"W\":-123.024393}\n",
+ "#print('size:',data.shape)\n",
+ "\n",
+ "result = get_values(\"MarinCounty-Vegetation-CanopyCover-2020-Summer-00010m.tiff\",{\"lat\":38.131435, \"lon\":-122.740464},{\"lat\":38.110846, \"lon\":-122.724984})\n",
+ "img = Image.open(\"MarinCounty-Vegetation-CanopyCover-2020-Summer-00010m.tiff\")\n",
+ "data = np.array(img)\n",
+ "print(result)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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W9RbRERERERE8kQWegC+QovMFqwvNbM3463LQnNz8yXr168vdLMFlc1mCYXU+0Zqm7ZTqXXaRqXWaRuVWqdtdHHYtWvXCefcikLXzXewd8zMVjvnjpjZaqDHv/wg3mr1gXV4CxpO4Zz7DH4nnK1bt7odO3ZUc7yzsn37drZt27bQwxApSdup1Dpto1LrtI1KrdM2ujiY2b5i1813qH8D3or1+P9/L+/yl5tZ3Mw2AZuB2+Z5bCIiIiIiIg2japk9M/sasA1YbmYHgfcBHwa+aWZvAPYDLwFwzu00s28CDwBp4M/ViVNERERERGT2qhbsOedeUeSqa4vc/h+Bf6zWeERERERERBYTzdgUERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2REREREREGpCCPRERERERkQakYE9ERERERKQBKdgTERERERFpQAr2aszgWIpjA2MLPQwREREREalzCvZqyK5jgzzrE79m20e3c+ODxxZ6OCIiIiIiUscU7NWIX+06zos+dQuJdJbTV7Typi/u4Eu/27vQwxIRERERkToVWegBLBbOOa67ZS/7e0fJZLOks45M1pHOOsZSGX58/1E2d7fxudddypKWKG/72l2893s7Odw/xjufuWVWz3mob5SQwerO5gq/GhERERERqXUK9ubJvQf7ef/3H6A5GiYeDREJGeGQEQmFiISN5zxuNR/6w8fRFvf+JP/1mq286zv38p/bH+VFF6/lzO72GT/nW796J82xMF954+WVfjkiIiIiIlLjFOzNk6/fvp+maIhb//ZaOpqi094+HDLe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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "plt.figure(1,figsize=(15,5))\n",
+ "plt.plot(result[\"t\"],result[\"z\"]*100)\n",
+ "plt.xlabel('Line location (ft)')\n",
+ "plt.ylabel('Canopy cover (%)')\n",
+ "plt.ylim([0,100])\n",
+ "plt.grid()\n",
+ "plt.title(f\"Marin County Canopy Cover 2020 Summer from {result['from']} to {result['to']}\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([0.000e+00, 1.000e+00, 2.000e+00, ..., 8.988e+03, 8.989e+03,\n",
+ " 8.990e+03])"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "result['t']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df = pd.DataFrame(data=result['t'], columns= ['t'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df['z'] = pd.DataFrame(data=result['z'], columns= ['z'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df.to_csv(\"output.csv\",index=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 0.0\n",
+ "1 2.1\n",
+ "2 2.1\n",
+ "3 1.5\n",
+ "4 3.1\n",
+ "Name: Wspd (m/s), dtype: float64"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df = pd.read_csv('TMY3-SF.csv')\n",
+ "# Hourly wind speed\n",
+ "wspd = df['Wspd (m/s)']\n",
+ "wspd.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Vegetation contact\n",
+ "\n",
+ "# # V: wind speed - From TMY3\n",
+ "# V = 1\n",
+ "# # d: line diameter in m\n",
+ "# d = 1\n",
+ "# # beta: line windage coefficient\n",
+ "# beta = 1\n",
+ "\n",
+ "F_w = d*beta*V^2\n",
+ "\n",
+ "# w: line weight\n",
+ "w = 1\n",
+ "\n",
+ "# t: line location\n",
+ "# y : observed line sag (for now just assume it to be 1m)\n",
+ "\n",
+ "\n",
+ "\n",
+ "# T1: temperature(degC); A: conductor area(m^2); H: horizontal tension(need to be given)(N); S: span length(m); W: conductor unit weight(N/m)\n",
+ "# E: modulous of elasticity(Pa)\n",
+ "\n",
+ "T1 = 15\n",
+ "H1 = 15450\n",
+ "A = 0.0004029\n",
+ "S = 300\n",
+ "W1 = 10.89\n",
+ "E = 58.9*10**9\n",
+ "\n",
+ "# Total conductor length\n",
+ "L1 = S*(1+(S**2*W1**2/(24*H1**2)))\n",
+ "# Initial sag\n",
+ "D_init = H1/W1*(np.cosh(S/(2*H1/W1))-1)\n",
+ "\n",
+ "# With ice and wind\n",
+ "# rho: density of ice(kg/m^3)\n",
+ "rho = 915\n",
+ "# t: thickness(m)\n",
+ "t = 0.0125\n",
+ "\n",
+ "# d = diameter(m)\n",
+ "d = 0.0261\n",
+ "W_ice = rho*np.pi*t*(d+t)\n",
+ "\n",
+ "\n",
+ "D_total = d+2*t\n",
+ "# P_wind: wind pressure(pa)\n",
+ "P_wind = 190\n",
+ "W_wind = P_wind*D_total\n",
+ "\n",
+ "W_total = np.sqrt(W_wind**2+(W1+W_ice)**2)\n",
+ "# Sag with wind and ice\n",
+ "D_total = H1/W_total*(np.cosh(S/(2*H1/W_total))-1)\n",
+ "\n",
+ "# Blowout angle\n",
+ "theta = np.tan(W_wind/(W_ice+W1))**(-1)\n",
+ "D_l = D_total*np.sin(theta)\n",
+ "# D_v = D_total*np.cos(theta)\n",
+ "\n",
+ "# D_l = y*np.sin((np.tan(w/F_w))**-1)\n",
+ "\n",
+ "# S: susceptibility\n",
+ "S = 0.1\n",
+ "\n",
+ "D_v = S*V\n",
+ "\n",
+ "# D: right-of-way distance\n",
+ "D = 30\n",
+ "# R: vegetation growth rate (ft/yr)\n",
+ "R = 3.28\n",
+ "# dT: time since right-of-way was maintained\n",
+ "dT = 5\n",
+ "\n",
+ "D_o = D - R*dT\n",
+ "\n",
+ "if D_o >= 0:\n",
+ " P_c = (D_l+D_v)/2\n",
+ "else:\n",
+ " P_c = 0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4.820817233606873"
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "P_c"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Vegetation fall\n",
+ "R_f = D_o/D\n",
+ "\n",
+ "# A : age of the tree?\n",
+ "A = 20\n",
+ "\n",
+ "V_c = (100-A)/5 + 10\n",
+ "\n",
+ "if V >= V_c:\n",
+ " P_f = R_f*V/V_c\n",
+ "else:\n",
+ " P_f = 0\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "P_f"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.7.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/Vegetation impact analysis.py b/Vegetation impact analysis.py
new file mode 100644
index 000000000..85c5c345b
--- /dev/null
+++ b/Vegetation impact analysis.py
@@ -0,0 +1,174 @@
+import cfo
+import ipyplot
+from PIL import Image
+import IPython.display as dsp
+import numpy as np
+from scipy.interpolate import interp1d
+import pandas as pd
+import matplotlib.pyplot as plt
+
+forest = cfo.api()
+forest.authenticate()
+forest.search(geography="MarinCounty", metric="CanopyCover", just_assets=False)
+name = forest.search(geography="MarinCounty", metric="CanopyCover", just_assets=False)[0]['asset_id']
+print(name)
+forest.download(name,name)
+ipyplot.plot_images([name+".tif"], img_width=500)
+
+def get_values(specs,p0,p1):
+ img = Image.open(name+".tiff")
+ data = np.array(img)
+ x0 = int((p0["lon"]-box["W"])/(box["E"]-box["W"])*data.shape[0])
+ y0 = int((p0["lat"]-box["N"])/(box["S"]-box["N"])*data.shape[1])
+ x1 = int((p1["lon"]-box["W"])/(box["E"]-box["W"])*data.shape[0])
+ y1 = int((p1["lat"]-box["N"])/(box["S"]-box["N"])*data.shape[1])
+ dx = x1-x0
+ dy = y1-y0
+ s = 0.0
+ n = 0
+ zz = []
+ tt = []
+ if abs(dx) > abs(dy): # iterate over x
+ y = y0
+ r = dy/dx
+ for x in range(x0,x1+1,np.sign(dx)):
+ zz.append(data[int(x),int(y)])
+ tt.append(np.sqrt((x0-x)*(x0-x)+(y0-y)*(y0-y))*dd)
+ y += r
+ else: # iterate over y
+ x = x0
+ r = dx/dy
+ for y in range(y0,y1+1,np.sign(dy)):
+ zz.append(data[int(x),int(y)])
+ tt.append(np.sqrt((x0-x)*(x0-x)+(y0-y)*(y0-y))*dd)
+ x += r
+ d = round(np.sqrt(dx*dx+dy*dy)*dd) # distance in feet
+ zz = np.array(zz)
+ t = np.array(tt)
+ z = list(map(lambda x:float(x/res/res),list(map(interp1d(t,zz),np.arange(tt[0],tt[-1],1.0)))))
+ return {
+ "from" : p0,
+ "to" :p1,
+ "min":zz.min(),
+ "max":zz.max(),
+ "avg":np.round(zz.mean(),1),
+ "std":np.round(zz.std(),1),
+ "len":d,
+ "t" : np.arange(tt[0],tt[-1],1.0),
+ "z": np.array(z),
+ }
+
+res = 10 # TIFF resolution in meters
+dd = res*39/12 # image resolution in feet
+box = {"N":38.317511, "S":37.816952, "E":-122.372121, "W":-123.024393}
+#print('size:',data.shape)
+
+result = get_values(name+".tif",{"lat":38.131435, "lon":-122.740464},{"lat":38.110846, "lon":-122.724984})
+img = Image.open(name+".tif")
+data = np.array(img)
+print(result)
+
+plt.figure(1,figsize=(15,5))
+plt.plot(result["t"],result["z"]*100)
+plt.xlabel('Line location (ft)')
+plt.ylabel('Canopy cover (%)')
+plt.ylim([0,100])
+plt.grid()
+plt.title(f"Marin County Canopy Cover 2020 Summer from {result['from']} to {result['to']}")
+plt.show()
+
+df = pd.read_csv('TMY3-SF.csv')
+# Hourly wind speed
+wspd = df['Wspd (m/s)']
+wspd.head()
+# Vegetation contact
+
+# # V: wind speed - From TMY3
+# V = wspd
+# # d: line diameter in m
+# d = 0.01
+# # beta: line windage coefficient
+# beta = 4
+# F_w = d*beta*V**2
+# # w: line weight
+# w = 1000
+# # t: line location
+# # L: length of the span
+# L = 100
+# # T: tension in the conductor (should be in N) (depends on the sag - need to look for other ways to calculate)
+# # tension needs to be in this magnitude for the result to make sense
+# T = 450000
+# # y : observed line sag
+# y = w*L*L/(8*T)
+# D_l = y*np.sin((np.tan(w/F_w))**-1)
+
+
+# T1: temperature(degC); A: conductor area(m^2); H: horizontal tension(need to be given)(N); S: span length(m);
+# W: conductor unit weight(N/m); E: modulous of elasticity(Pa)
+
+T1 = 15
+H1 = 15450
+A = 0.0004029
+S = 300
+W1 = 10.89
+E = 58.9*10**9
+
+# Total conductor length
+L1 = S*(1+(S**2*W1**2/(24*H1**2)))
+# Initial sag
+D_init = H1/W1*(np.cosh(S/(2*H1/W1))-1)
+
+# With ice and wind
+# rho: density of ice(kg/m^3)
+rho = 915
+# t: thickness(m)
+t = 0.0125
+
+# d = diameter(m)
+d = 0.0261
+W_ice = rho*np.pi*t*(d+t)
+D_total = d+2*t
+# P_wind: wind pressure(pa)
+P_wind = 190
+W_wind = P_wind*D_total
+
+W_total = np.sqrt(W_wind**2+(W1+W_ice)**2)
+# Sag with wind and ice
+D_total = H1/W_total*(np.cosh(S/(2*H1/W_total))-1)
+
+# Blowout angle
+theta = np.tan(W_wind/(W_ice+W1))**(-1)
+D_l = D_total*np.sin(theta)
+
+# S: susceptibility
+S = 0.1
+D_v = S*V
+# D: right-of-way distance
+D = 30
+# R: vegetation growth rate (ft/yr)
+R = 3.28
+# dT: time since right-of-way was maintained
+dT = 5
+D_o = D - R*dT
+if D_o >= 0:
+ P_c = (D_l+D_v)/2
+else:
+ P_c = 0
+P_c.fillna(0)
+
+# Vegetation fall
+R_f = D_o/D
+# A : age of the tree
+A = 80
+V_c = (100-A)/5 + 10
+P_f = []
+for velocity in V:
+ if velocity >= V_c:
+ P_f.append(R_f*velocity/V_c)
+ else:
+ P_f.append(0)
+
+df = pd.DataFrame(data=result['t'], columns= ['t'])
+df['contact'] = pd.DataFrame(data=P_c)
+df['fall'] = pd.DataFrame(data=P_f)
+df.to_csv("output.csv",index=False)
\ No newline at end of file