Skip to content

Instantly share code, notes, and snippets.

@sasaco
Created November 15, 2021 00:38
Show Gist options
  • Save sasaco/9e137ad795f488845f5faa516c1c6380 to your computer and use it in GitHub Desktop.
Save sasaco/9e137ad795f488845f5faa516c1c6380 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Slope stability.ipynb",
"provenance": [],
"collapsed_sections": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "V9_L8aaKluUF"
},
"source": [
"# 斜面の安定計算\n",
"\n",
">参考\n",
"\n",
"- [公式リファレンス](https://docs.sympy.org/latest/modules/geometry/index.html)\n",
"- [SymPy Geometry 学習メモ(点・直線)](https://qiita.com/code0327/items/88623603449dc1e0d395)\n",
"- [SymPy Geometry 学習メモ(多角形)](https://qiita.com/code0327/items/1a4d8c587ccdf7a0bc62)\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "esVVBDXXoQ-E"
},
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from matplotlib import pyplot as plt\n",
"import matplotlib.patches as patches"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "cpQJmk7bwOP3"
},
"source": [
"import sympy.geometry as sg"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "ou1Cu0wrqB2M"
},
"source": [
"# 入力データ"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ijqFFuiLoffz"
},
"source": [
"# 点データ\n",
"node = [(1.000, 15.000), (5.000, 14.000), (10.000, 11.000), (15.000, 9.000), (20.000, 6.000),\n",
"(25.000, 6.000), (1.000, 13.000), (5.000, 12.000), (15.000, 7.500), (20.000, 5.000), (25.000, 5.000),\n",
"(1.000, 10.000), (15.000, 6.000), (20.000, 4.500), (25.000, 4.500), (1.000, 11.000), (15.000, 8.000),\n",
"(18.000, 7.200), (25.000, 7.200), (1.000, 1.000), (25.000, 1.000) ]\n"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "YmreBewusTGv"
},
"source": [
"# 地盤情報\n",
"strana = []"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "ib91txMVrUBQ"
},
"source": [
"# 地層1\n",
"strana.append({\n",
" \"gamma\": 1.8,\n",
" \"cohesion\": 0.5,\n",
" \"fai\": 20,\n",
" \"name\": \"地層1\",\n",
" \"organization\": [1, 2, 3, 4, 5, 6, 11, 10, 9, 8, 7, 1]\n",
"})"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "5aenKvjlsbZD"
},
"source": [
"# 地層2\n",
"strana.append({\n",
" \"gamma\": 2,\n",
" \"cohesion\": 1,\n",
" \"fai\": 28,\n",
" \"name\": \"地層2\",\n",
" \"organization\": [ 7, 8, 9, 10, 11, 15, 14, 13, 12, 7]\n",
"})"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "w5qCtrc-sogx"
},
"source": [
"# 地層3\n",
"strana.append({\n",
" \"gamma\": 2,\n",
" \"cohesion\": 1,\n",
" \"fai\": 30,\n",
" \"name\": \"地層3\",\n",
" \"organization\": [ 12, 13, 14, 15, 21, 20, 12]\n",
"})"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "zV5FS_oas4hz"
},
"source": [
"# 水位情報\n",
"waterlevel = [ (1, 11), (15, 8), (18, 7.2), (25, 7.2) ]"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "hiUrHiK1t4Uh"
},
"source": [
"# 荷重情報\n",
"load = []"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "MmsHnMmttwGg"
},
"source": [
"load.append({\n",
" \"x_s\": 15,\n",
" \"x_d\": 18,\n",
" \"loadAmount\": 1\n",
"})"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "wLdE2Et8uDOw"
},
"source": [
"# 設計条件\n",
"init = {\n",
" \"seimic\": 0, # 震度\n",
" \"dWidth\": 2, # 分割幅\n",
" \"waterDif\": 0.1,\n",
" \"diagonal\": \"右上がり\",\n",
" \"calcShow\": \"表示する\",\n",
" \"x0\": 16,\n",
" \"y0\": 16,\n",
" \"r0\": 13\n",
"}"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "2sEwEBL-ucgd"
},
"source": [
"## 入力データを図にして確認してみる"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "MToi80AFf9Yg",
"outputId": "19cb8422-05ff-4fae-f871-5dbb37ac4969"
},
"source": [
"# 地盤条件\n",
"for st in strana:\n",
" posX = []\n",
" posY = []\n",
" for i in st['organization']:\n",
" pos = node[i-1]\n",
" posX.append(pos[0])\n",
" posY.append(pos[1])\n",
"\n",
" plt.fill(posX, posY, alpha=0.5) # 領域の表示\n",
"\n",
"# 水位情報\n",
"wposX = []\n",
"wposY = []\n",
"for pos in waterlevel:\n",
" wposX.append(pos[0])\n",
" wposY.append(pos[1])\n",
"plt.plot(wposX,wposY, alpha=0.5) # 水位線の表示\n",
"\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BAvAPMt3e2Hr"
},
"source": [
"# 計算"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NsRkKXCJO8ED"
},
"source": [
"## 入力を計算用に変換"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ylTpm8jUO6Cp",
"outputId": "675e4180-6e2a-437a-ff87-c1d619620a22"
},
"source": [
"# 地盤条件\n",
"plygons = {}\n",
"for st in strana:\n",
" tmp = []\n",
" name = st['name']\n",
" for i in st['organization']:\n",
" pos = node[ i - 1 ]\n",
" tmp.append(pos)\n",
" plygons[name] = sg.Polygon( *tmp )\n",
"\n",
"print('地盤形状をポリゴンに変換', plygons)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"地盤形状をポリゴンに変換 {'地層1': Polygon(Point2D(1, 15), Point2D(5, 14), Point2D(10, 11), Point2D(15, 9), Point2D(20, 6), Point2D(25, 6), Point2D(25, 5), Point2D(20, 5), Point2D(15, 15/2), Point2D(5, 12), Point2D(1, 13)), '地層2': Polygon(Point2D(1, 13), Point2D(5, 12), Point2D(15, 15/2), Point2D(20, 5), Point2D(25, 5), Point2D(25, 9/2), Point2D(20, 9/2), Point2D(15, 6), Point2D(1, 10)), '地層3': Polygon(Point2D(1, 10), Point2D(15, 6), Point2D(20, 9/2), Point2D(25, 9/2), Point2D(25, 1), Point2D(1, 1))}\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "MOoD8qsnS9uY",
"outputId": "ec95a648-1f40-4823-9208-65d2d56c7a64"
},
"source": [
"# 水位線\n",
"segments = []\n",
"\n",
"for i in range(1, len(waterlevel)):\n",
" s1 = waterlevel[i-1]\n",
" s2 = waterlevel[i]\n",
"\n",
" s = sg.Segment(s1,s2)\n",
" segments.append(s)\n",
"\n",
"print('水位線をLineに変換', segments)\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"水位線をLineに変換 [Segment2D(Point2D(1, 11), Point2D(15, 8)), Segment2D(Point2D(15, 8), Point2D(18, 36/5)), Segment2D(Point2D(18, 36/5), Point2D(25, 36/5))]\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "B77p-dW8i4vP"
},
"source": [
"## 斜面の安定計算\n",
"\n",
"将来は、以下をトライアル計算することになる"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ufZYrtwsilT8"
},
"source": [
"### 円弧の中心位置と半径を仮定"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Clr7Tdl6RAn1",
"outputId": "057ca97a-83bc-4166-d204-7f6376079c0c"
},
"source": [
"center = sg.Point(17, 12) # 円弧中心\n",
"radius = 8 # 半径\n",
"\n",
"circle = sg.Circle(center, radius)\n",
"print(circle)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Circle(Point2D(17, 12), 8)\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DuoXR1QCKa9o"
},
"source": [
"### 円と地表、地層、水位折れ線との交点を求める\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "YdsRXvLXcOgB"
},
"source": [
"gCross = [] # 交点"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "T4D3NyxxXUDI"
},
"source": [
"# 地層\n",
"for key in plygons:\n",
" p = plygons[key]\n",
"\n",
" # 地層と円の交点\n",
" result = sg.intersection(circle, p ) \n",
" for cross in result:\n",
" if len(cross) > 0:\n",
" gCross.append(cross)\n",
" \n",
" # 円内部の地層の折れ点\n",
" for pos in list(map(lambda p:(float(p.x),float(p.y)), p.vertices)):\n",
" point = sg.Point2D(pos)\n",
" if circle.encloses_point(point): # 点が円の内部にあるか\n",
" gCross.append(point)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "SPMHOyjQlmq3"
},
"source": [
"# 円内部の水位の折れ点\n",
"for pos in waterlevel:\n",
" point = sg.Point2D(pos)\n",
" if circle.encloses_point(point): # 点が円の内部にあるか\n",
" gCross.append(point)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "EhkusDtbKp2w"
},
"source": [
"# 水位線との交点\n",
"for key in plygons:\n",
" groundline = plygons[key]\n",
" for waterline in segments:\n",
" result = sg.intersection(groundline, waterline )\n",
" for cross in result:\n",
" if len(cross) > 0:\n",
" if circle.encloses_point(cross): # 点が円の内部にあるか\n",
" gCross.append(cross)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "844xfAJCj6kq",
"outputId": "4543f26d-9ef8-45f6-ebb7-92ee8db470b0"
},
"source": [
"# 重複する点を削除\n",
"cross = set(gCross)\n",
"\n",
"print(len(gCross), '→', len(cross))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"25 → 15\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "ZmO_4MzrUtnD",
"outputId": "ead6ae6f-99f2-4555-f130-033962614ad8"
},
"source": [
"ax = plt.axes()\n",
"\n",
"# 地盤条件\n",
"for st in strana:\n",
" posX = []\n",
" posY = []\n",
" for i in st['organization']:\n",
" pos = node[i-1]\n",
" posX.append(pos[0])\n",
" posY.append(pos[1])\n",
"\n",
" plt.fill(posX, posY, alpha=0.5) # 領域の表示\n",
"\n",
"# 水位情報\n",
"wposX = []\n",
"wposY = []\n",
"for pos in waterlevel:\n",
" wposX.append(pos[0])\n",
" wposY.append(pos[1])\n",
"plt.plot(wposX,wposY, alpha=0.5) # 水位線の表示\n",
"\n",
"# fc = face color, ec = edge color\n",
"c = patches.Circle(xy=center, radius=radius, fill=False, ec='r')\n",
"ax.add_patch(c)\n",
"\n",
"# 中心点\n",
"pX = [center.x]\n",
"pY = [center.y]\n",
"\n",
"#地盤との交点\n",
"for p in cross:\n",
" pX.append(p.x)\n",
" pY.append(p.y)\n",
"\n",
"plt.scatter(pX, pY)\n",
"\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "lKoa_hWjmkhc"
},
"source": [
"### 地層を分割する"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "2zx1ZB4qVZ-f",
"outputId": "95b3cc03-8eae-47fd-ce3a-8f94f019b68a"
},
"source": [
"# 上による交点のx座標\n",
"splitX = [float(pos.x) for pos in cross]\n",
"\n",
"minX = min(splitX)\n",
"maxX = max(splitX)\n",
"\n",
"# 荷重による交点\n",
"for lo in load:\n",
" for xo in [float(lo['x_s']), float(lo['x_d'])]:\n",
" if minX < xo and xo < maxX:\n",
" splitX.append(xo)\n",
"\n",
"# 重複する点を削除\n",
"splitX = list(set(splitX))\n",
"\n",
"# 分割点\n",
"splitX.sort()\n",
"print(splitX)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[9.010318608518505, 9.229726064883625, 10.0, 10.546264237870103, 12.878787878787879, 15.0, 18.0, 19.879443630117333, 20.0, 20.872983346207416, 22.29150262212918]\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "KkLoUN5qmfkV",
"outputId": "4bec39e1-50d2-44cd-b721-47ce05ed05c8"
},
"source": [
"for x in splitX:\n",
" # Line を生成\n",
" "
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[9.010318608518505, 9.229726064883625, 10.0, 10.546264237870103, 12.878787878787879, 15.0, 18.0, 19.879443630117333, 20.0, 20.872983346207416, 22.29150262212918]\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "KQi-vxvlpYEZ"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment