Skip to content

Instantly share code, notes, and snippets.

@rabbl
Created November 27, 2023 09:06
Show Gist options
  • Save rabbl/ceef6a6e9f692c55f7039abdc281c5d6 to your computer and use it in GitHub Desktop.
Save rabbl/ceef6a6e9f692c55f7039abdc281c5d6 to your computer and use it in GitHub Desktop.
ConstantHeadBoundaryMapping
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"outputs": [],
"source": [
"import sys\n",
"\n",
"import numpy as np\n",
"\n",
"sys.path.insert(0, '..')"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:27.555662Z",
"start_time": "2023-11-27T08:54:27.332645Z"
}
},
"id": "ba6761fae9d5e5cb"
},
{
"cell_type": "markdown",
"source": [
"## Setup the model area"
],
"metadata": {
"collapsed": false
},
"id": "5ede1ba5e0993dd1"
},
{
"cell_type": "code",
"execution_count": 2,
"outputs": [
{
"data": {
"text/plain": "Grid(origin=Point(coordinates=(13.922224410263878, 50.9662904037036), type='Point'), x_distances=[33.68941547288559, 33.68941547288559, 33.6894154728856, 33.689415472885585, 33.6894154728856, 33.6894154728856, 33.68941547288557, 33.6894154728856, 33.68941547288563, 33.68941547288557], y_distances=[27.74944856585935, 27.74944856585935, 27.749448565859346, 27.749448565859353, 27.74944856585934, 27.749448565859353, 27.749448565859325, 27.74944856585938, 27.749448565859325, 27.749448565859353], rotation=Rotation(value=0), length_unit=LengthUnit(unit=2))"
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from morpheus.modflow.types.discretization.spatial import Rotation, LengthUnit, Grid\n",
"from morpheus.modflow.types.geometry import Polygon, LineString\n",
"\n",
"polygon = Polygon(\n",
" type='Polygon',\n",
" coordinates=[[\n",
" (13.922514437551428, 50.964720483303836),\n",
" (13.925250781947113, 50.965228748412386),\n",
" (13.925036413951403, 50.96623732041704),\n",
" (13.92222441026388, 50.96629040370362),\n",
" (13.922514437551428, 50.964720483303836)\n",
" ]]\n",
")\n",
"\n",
"rotation = Rotation(0)\n",
"length_unit = LengthUnit.meters()\n",
"x_coordinates = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]\n",
"y_coordinates = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]\n",
"\n",
"grid = Grid.from_polygon_with_relative_coordinates(\n",
" polygon=polygon,\n",
" x_coordinates=x_coordinates,\n",
" y_coordinates=y_coordinates,\n",
" rotation=rotation,\n",
")\n",
"\n",
"grid\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:27.557197Z",
"start_time": "2023-11-27T08:54:27.440292Z"
}
},
"id": "2f69504ab35487aa"
},
{
"cell_type": "markdown",
"source": [
"## Setup Time Discretization"
],
"metadata": {
"collapsed": false
},
"id": "fa27e67f9d801845"
},
{
"cell_type": "code",
"execution_count": 3,
"outputs": [
{
"data": {
"text/plain": "TimeDiscretization(start_date_time=StartDateTime(value=datetime.datetime(2020, 1, 1, 0, 0)), end_date_time=StartDateTime(value=datetime.datetime(2020, 12, 31, 0, 0)), stress_periods=StressPeriodCollection(values=[StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 1, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=True)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 2, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 3, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 4, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 5, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 6, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 7, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 8, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 9, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 10, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 11, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False)), StressPeriod(start_date_time=StartDateTime(value=datetime.datetime(2020, 12, 1, 0, 0)), number_of_time_steps=NumberOfTimeSteps(value=1), time_step_multiplier=TimeStepMultiplier(value=1), steady_state=IsSteadyState(value=False))]), time_unit=TimeUnit(unit=4))"
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from morpheus.modflow.types.discretization.time.TimeUnit import TimeUnit\n",
"from morpheus.modflow.types.discretization.time.Stressperiods import StartDateTime, StressPeriodCollection, \\\n",
" StressPeriod, NumberOfTimeSteps, TimeStepMultiplier, IsSteadyState\n",
"from morpheus.modflow.types.discretization.time import TimeDiscretization\n",
"from datetime import datetime\n",
"\n",
"time_discretization = TimeDiscretization(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 1, 1)),\n",
" end_date_time=StartDateTime.from_datetime(datetime(2020, 12, 31)),\n",
" stress_periods=StressPeriodCollection([\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 1, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.yes()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 2, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 3, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 4, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 5, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 6, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 7, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 8, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 9, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 10, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 11, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" StressPeriod(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 12, 1)),\n",
" number_of_time_steps=NumberOfTimeSteps(1),\n",
" time_step_multiplier=TimeStepMultiplier(1),\n",
" steady_state=IsSteadyState.no()\n",
" ),\n",
" ]),\n",
" time_unit=TimeUnit.days()\n",
")\n",
"\n",
"time_discretization"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:27.612157Z",
"start_time": "2023-11-27T08:54:27.514623Z"
}
},
"id": "8e4e63dd138db9fc"
},
{
"cell_type": "code",
"execution_count": 4,
"outputs": [
{
"data": {
"text/plain": "<folium.folium.Map at 0x106b3e720>",
"text/html": "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe srcdoc=\"&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n \n &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;\n \n &lt;script&gt;\n L_NO_TOUCH = false;\n L_DISABLE_3D = false;\n &lt;/script&gt;\n \n &lt;style&gt;html, body {width: 100%;height: 100%;margin: 0;padding: 0;}&lt;/style&gt;\n &lt;style&gt;#map {position:absolute;top:0;bottom:0;right:0;left:0;}&lt;/style&gt;\n &lt;script src=&quot;https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://code.jquery.com/jquery-3.7.1.min.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js&quot;&gt;&lt;/script&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css&quot;/&gt;\n \n &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,\n initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot; /&gt;\n &lt;style&gt;\n #map_2c22d5caee6190661d399a0436f07b7f {\n position: relative;\n width: 100.0%;\n height: 100.0%;\n left: 0.0%;\n top: 0.0%;\n }\n .leaflet-container { font-size: 1rem; }\n &lt;/style&gt;\n \n&lt;/head&gt;\n&lt;body&gt;\n \n \n &lt;div class=&quot;folium-map&quot; id=&quot;map_2c22d5caee6190661d399a0436f07b7f&quot; &gt;&lt;/div&gt;\n \n&lt;/body&gt;\n&lt;script&gt;\n \n \n var map_2c22d5caee6190661d399a0436f07b7f = L.map(\n &quot;map_2c22d5caee6190661d399a0436f07b7f&quot;,\n {\n center: [50.965, 13.922],\n crs: L.CRS.EPSG3857,\n zoom: 12,\n zoomControl: true,\n preferCanvas: false,\n }\n );\n\n \n\n \n \n var tile_layer_7c67350b6af7aee79a23b163f43bc227 = L.tileLayer(\n &quot;https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png&quot;,\n {&quot;attribution&quot;: &quot;\\u0026copy; \\u003ca target=\\&quot;_blank\\&quot; href=\\&quot;http://www.openstreetmap.org/copyright\\&quot;\\u003eOpenStreetMap\\u003c/a\\u003e contributors \\u0026copy; \\u003ca target=\\&quot;_blank\\&quot; href=\\&quot;http://cartodb.com/attributions\\&quot;\\u003eCartoDB\\u003c/a\\u003e, CartoDB \\u003ca target=\\&quot;_blank\\&quot; href =\\&quot;http://cartodb.com/attributions\\&quot;\\u003eattributions\\u003c/a\\u003e&quot;, &quot;detectRetina&quot;: false, &quot;maxNativeZoom&quot;: 18, &quot;maxZoom&quot;: 18, &quot;minZoom&quot;: 0, &quot;noWrap&quot;: false, &quot;opacity&quot;: 1, &quot;subdomains&quot;: &quot;abc&quot;, &quot;tms&quot;: false}\n );\n \n \n tile_layer_7c67350b6af7aee79a23b163f43bc227.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_b7c9389d13b1efba8074ecdf179f1ad9_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_b7c9389d13b1efba8074ecdf179f1ad9 = L.geoJson(null, {\n onEachFeature: geo_json_b7c9389d13b1efba8074ecdf179f1ad9_onEachFeature,\n \n });\n\n function geo_json_b7c9389d13b1efba8074ecdf179f1ad9_add (data) {\n geo_json_b7c9389d13b1efba8074ecdf179f1ad9\n .addData(data);\n }\n geo_json_b7c9389d13b1efba8074ecdf179f1ad9_add({&quot;coordinates&quot;: [[[13.922514437551428, 50.964720483303836], [13.925250781947113, 50.965228748412386], [13.925036413951403, 50.96623732041704], [13.92222441026388, 50.96629040370362], [13.922514437551428, 50.964720483303836]]], &quot;type&quot;: &quot;Polygon&quot;});\n\n \n \n geo_json_b7c9389d13b1efba8074ecdf179f1ad9.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n map_2c22d5caee6190661d399a0436f07b7f.fitBounds(\n [[50.964720483303836, 13.92222441026388], [50.96629040370362, 13.925250781947113]],\n {}\n );\n \n&lt;/script&gt;\n&lt;/html&gt;\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"\n",
"m = folium.Map(tiles=\"cartodbpositron\", crs=\"EPSG3857\", zoom_start=12, location=[50.965, 13.922])\n",
"m.add_child(folium.GeoJson(polygon.as_geojson()))\n",
"\n",
"m.fit_bounds(m.get_bounds())\n",
"m"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:27.898603Z",
"start_time": "2023-11-27T08:54:27.517166Z"
}
},
"id": "1540b870ae83f298"
},
{
"cell_type": "markdown",
"source": [
"# Setup constant head boundary with 1 observation"
],
"metadata": {
"collapsed": false
},
"id": "62ae3587df801000"
},
{
"cell_type": "code",
"execution_count": 5,
"outputs": [
{
"data": {
"text/plain": "<folium.folium.Map at 0x106b3e720>",
"text/html": "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe srcdoc=\"&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n \n &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;\n \n &lt;script&gt;\n L_NO_TOUCH = false;\n L_DISABLE_3D = false;\n &lt;/script&gt;\n \n &lt;style&gt;html, body {width: 100%;height: 100%;margin: 0;padding: 0;}&lt;/style&gt;\n &lt;style&gt;#map {position:absolute;top:0;bottom:0;right:0;left:0;}&lt;/style&gt;\n &lt;script src=&quot;https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://code.jquery.com/jquery-3.7.1.min.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js&quot;&gt;&lt;/script&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css&quot;/&gt;\n \n &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,\n initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot; /&gt;\n &lt;style&gt;\n #map_2c22d5caee6190661d399a0436f07b7f {\n position: relative;\n width: 100.0%;\n height: 100.0%;\n left: 0.0%;\n top: 0.0%;\n }\n .leaflet-container { font-size: 1rem; }\n &lt;/style&gt;\n \n&lt;/head&gt;\n&lt;body&gt;\n \n \n &lt;div class=&quot;folium-map&quot; id=&quot;map_2c22d5caee6190661d399a0436f07b7f&quot; &gt;&lt;/div&gt;\n \n&lt;/body&gt;\n&lt;script&gt;\n \n \n var map_2c22d5caee6190661d399a0436f07b7f = L.map(\n &quot;map_2c22d5caee6190661d399a0436f07b7f&quot;,\n {\n center: [50.965, 13.922],\n crs: L.CRS.EPSG3857,\n zoom: 12,\n zoomControl: true,\n preferCanvas: false,\n }\n );\n\n \n\n \n \n var tile_layer_7c67350b6af7aee79a23b163f43bc227 = L.tileLayer(\n &quot;https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png&quot;,\n {&quot;attribution&quot;: &quot;\\u0026copy; \\u003ca target=\\&quot;_blank\\&quot; href=\\&quot;http://www.openstreetmap.org/copyright\\&quot;\\u003eOpenStreetMap\\u003c/a\\u003e contributors \\u0026copy; \\u003ca target=\\&quot;_blank\\&quot; href=\\&quot;http://cartodb.com/attributions\\&quot;\\u003eCartoDB\\u003c/a\\u003e, CartoDB \\u003ca target=\\&quot;_blank\\&quot; href =\\&quot;http://cartodb.com/attributions\\&quot;\\u003eattributions\\u003c/a\\u003e&quot;, &quot;detectRetina&quot;: false, &quot;maxNativeZoom&quot;: 18, &quot;maxZoom&quot;: 18, &quot;minZoom&quot;: 0, &quot;noWrap&quot;: false, &quot;opacity&quot;: 1, &quot;subdomains&quot;: &quot;abc&quot;, &quot;tms&quot;: false}\n );\n \n \n tile_layer_7c67350b6af7aee79a23b163f43bc227.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_b7c9389d13b1efba8074ecdf179f1ad9_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_b7c9389d13b1efba8074ecdf179f1ad9 = L.geoJson(null, {\n onEachFeature: geo_json_b7c9389d13b1efba8074ecdf179f1ad9_onEachFeature,\n \n });\n\n function geo_json_b7c9389d13b1efba8074ecdf179f1ad9_add (data) {\n geo_json_b7c9389d13b1efba8074ecdf179f1ad9\n .addData(data);\n }\n geo_json_b7c9389d13b1efba8074ecdf179f1ad9_add({&quot;coordinates&quot;: [[[13.922514437551428, 50.964720483303836], [13.925250781947113, 50.965228748412386], [13.925036413951403, 50.96623732041704], [13.92222441026388, 50.96629040370362], [13.922514437551428, 50.964720483303836]]], &quot;type&quot;: &quot;Polygon&quot;});\n\n \n \n geo_json_b7c9389d13b1efba8074ecdf179f1ad9.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n map_2c22d5caee6190661d399a0436f07b7f.fitBounds(\n [[50.964720483303836, 13.92222441026388], [50.96629040370362, 13.925250781947113]],\n {}\n );\n \n \n\n function geo_json_3530ad0782ad0c4cd7322e93adcb9c27_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_3530ad0782ad0c4cd7322e93adcb9c27 = L.geoJson(null, {\n onEachFeature: geo_json_3530ad0782ad0c4cd7322e93adcb9c27_onEachFeature,\n \n });\n\n function geo_json_3530ad0782ad0c4cd7322e93adcb9c27_add (data) {\n geo_json_3530ad0782ad0c4cd7322e93adcb9c27\n .addData(data);\n }\n geo_json_3530ad0782ad0c4cd7322e93adcb9c27_add({&quot;coordinates&quot;: [[13.9223, 50.9662], [13.925, 50.96615]], &quot;type&quot;: &quot;LineString&quot;});\n\n \n \n geo_json_3530ad0782ad0c4cd7322e93adcb9c27.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_ac511e5c56821476b7e65c58b838c275_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_ac511e5c56821476b7e65c58b838c275 = L.geoJson(null, {\n onEachFeature: geo_json_ac511e5c56821476b7e65c58b838c275_onEachFeature,\n \n });\n\n function geo_json_ac511e5c56821476b7e65c58b838c275_add (data) {\n geo_json_ac511e5c56821476b7e65c58b838c275\n .addData(data);\n }\n geo_json_ac511e5c56821476b7e65c58b838c275_add({&quot;geometries&quot;: [{&quot;coordinates&quot;: [[[13.922224410263878, 50.96629040370359], [13.922527047432201, 50.96629040370359], [13.922527047432201, 50.9661334140511], [13.922224410263878, 50.9661334140511], [13.922224410263878, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.922527047432201, 50.96629040370359], [13.922829684600526, 50.96629040370359], [13.922829684600526, 50.9661334140511], [13.922527047432201, 50.9661334140511], [13.922527047432201, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.922829684600526, 50.96629040370359], [13.923132321768849, 50.96629040370359], [13.923132321768849, 50.9661334140511], [13.922829684600526, 50.9661334140511], [13.922829684600526, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923132321768849, 50.96629040370359], [13.923434958937172, 50.96629040370359], [13.923434958937172, 50.9661334140511], [13.923132321768849, 50.9661334140511], [13.923132321768849, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923434958937172, 50.96629040370359], [13.923737596105495, 50.96629040370359], [13.923737596105495, 50.9661334140511], [13.923434958937172, 50.9661334140511], [13.923434958937172, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923737596105495, 50.96629040370359], [13.924040233273818, 50.96629040370359], [13.924040233273818, 50.9661334140511], [13.923737596105495, 50.9661334140511], [13.923737596105495, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924040233273818, 50.96629040370359], [13.924342870442143, 50.96629040370359], [13.924342870442143, 50.9661334140511], [13.924040233273818, 50.9661334140511], [13.924040233273818, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924342870442143, 50.96629040370359], [13.924645507610466, 50.96629040370359], [13.924645507610466, 50.9661334140511], [13.924342870442143, 50.9661334140511], [13.924342870442143, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924645507610466, 50.96629040370359], [13.92494814477879, 50.96629040370359], [13.92494814477879, 50.9661334140511], [13.924645507610466, 50.9661334140511], [13.924645507610466, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.92494814477879, 50.96629040370359], [13.925250781947113, 50.96629040370359], [13.925250781947113, 50.9661334140511], [13.92494814477879, 50.9661334140511], [13.92494814477879, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}], &quot;type&quot;: &quot;GeometryCollection&quot;});\n\n \n \n geo_json_ac511e5c56821476b7e65c58b838c275.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_697d337decde76e4a03454ea926d25b2_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_697d337decde76e4a03454ea926d25b2 = L.geoJson(null, {\n onEachFeature: geo_json_697d337decde76e4a03454ea926d25b2_onEachFeature,\n \n });\n\n function geo_json_697d337decde76e4a03454ea926d25b2_add (data) {\n geo_json_697d337decde76e4a03454ea926d25b2\n .addData(data);\n }\n geo_json_697d337decde76e4a03454ea926d25b2_add({&quot;coordinates&quot;: [13.9223, 50.9662], &quot;type&quot;: &quot;Point&quot;});\n\n \n \n geo_json_697d337decde76e4a03454ea926d25b2.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n map_2c22d5caee6190661d399a0436f07b7f.fitBounds(\n [[50.964720483303836, 13.922224410263878], [50.96629040370362, 13.925250781947113]],\n {}\n );\n \n&lt;/script&gt;\n&lt;/html&gt;\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from morpheus.modflow.types.geometry import Point\n",
"from morpheus.modflow.types.boundaries.Boundary import BoundaryName, ObservationId\n",
"from morpheus.modflow.types.soil_model import LayerId\n",
"from morpheus.modflow.types.boundaries.ConstantHead import ConstantHead, ConstantHeadObservation, DataItem, StartHead, \\\n",
" EndHead\n",
"\n",
"layers_list = [LayerId.new()]\n",
"constant_head = ConstantHead.from_geometry(\n",
" name=BoundaryName('constant_head'),\n",
" geometry=LineString([\n",
" (13.9223, 50.9662),\n",
" (13.9250, 50.96615),\n",
" ]),\n",
" grid=grid,\n",
" affected_layers=[layers_list[0]],\n",
" observations=[\n",
" ConstantHeadObservation(\n",
" id=ObservationId.new(),\n",
" geometry=Point((13.9223, 50.9662)),\n",
" raw_data=[\n",
" DataItem(\n",
" date_time=StartDateTime.from_datetime(datetime(2019, 1, 1)),\n",
" start_head=StartHead.from_float(100),\n",
" end_head=EndHead.from_float(10),\n",
" ),\n",
" DataItem(\n",
" date_time=StartDateTime.from_datetime(datetime(2021, 12, 31)),\n",
" start_head=StartHead.from_float(300),\n",
" end_head=EndHead.from_float(30),\n",
" ),\n",
" ]\n",
" )\n",
" ]\n",
")\n",
"\n",
"m.add_child(folium.GeoJson(constant_head.as_geojson()))\n",
"m.add_child(folium.GeoJson(constant_head.affected_cells.as_geojson(grid).as_geojson()))\n",
"for constant_head.observation in constant_head.observations:\n",
" m.add_child(folium.GeoJson(constant_head.observation.as_geojson()))\n",
"m.fit_bounds(m.get_bounds())\n",
"m"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:28.140835Z",
"start_time": "2023-11-27T08:54:27.895214Z"
}
},
"id": "53679913aee28ce9"
},
{
"cell_type": "code",
"execution_count": 11,
"outputs": [
{
"data": {
"text/plain": "MeanDataItem(observation_id=ObservationId(value='f48ab9fb-192f-4db9-9cfe-b6e7783178d2'), start_date_time=StartDateTime(value=datetime.datetime(2020, 1, 1, 0, 0)), end_date_time=EndDateTime(value=datetime.datetime(2021, 12, 31, 0, 0)), start_head=StartHead(value=233.33333333333337), end_head=EndHead(value=23.333333333333336))"
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from morpheus.modflow.types.discretization.time.Stressperiods import EndDateTime\n",
"\n",
"mean_data_op_1 = constant_head.observations[0].get_mean_data(\n",
" start_date_time=StartDateTime.from_datetime(datetime(2020, 1, 1)),\n",
" end_date_time=EndDateTime.from_datetime(datetime(2021, 12, 31)),\n",
")\n",
"mean_data_op_1"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:31.728059Z",
"start_time": "2023-11-27T08:54:31.718486Z"
}
},
"id": "621e2265ae79b1ae"
},
{
"cell_type": "markdown",
"source": [
"## Calculate constant head stress periods"
],
"metadata": {
"collapsed": false
},
"id": "b33c8f87aa3516fc"
},
{
"cell_type": "code",
"execution_count": 7,
"outputs": [
{
"data": {
"text/plain": "{0: [[0, 0, 0, 169.49771689497717, 16.949771689497716],\n [0, 0, 1, 169.49771689497717, 16.949771689497716],\n [0, 0, 2, 169.49771689497717, 16.949771689497716],\n [0, 0, 3, 169.49771689497717, 16.949771689497716],\n [0, 0, 4, 169.49771689497717, 16.949771689497716],\n [0, 0, 5, 169.49771689497717, 16.949771689497716],\n [0, 0, 6, 169.49771689497717, 16.949771689497716],\n [0, 0, 7, 169.49771689497717, 16.949771689497716],\n [0, 0, 8, 169.49771689497717, 16.949771689497716],\n [0, 0, 9, 169.49771689497717, 16.949771689497716]],\n 1: [[0, 0, 0, 174.97716894977162, 17.49771689497717],\n [0, 0, 1, 174.97716894977162, 17.49771689497717],\n [0, 0, 2, 174.97716894977162, 17.49771689497717],\n [0, 0, 3, 174.97716894977162, 17.49771689497717],\n [0, 0, 4, 174.97716894977162, 17.49771689497717],\n [0, 0, 5, 174.97716894977162, 17.49771689497717],\n [0, 0, 6, 174.97716894977162, 17.49771689497717],\n [0, 0, 7, 174.97716894977162, 17.49771689497717],\n [0, 0, 8, 174.97716894977162, 17.49771689497717],\n [0, 0, 9, 174.97716894977162, 17.49771689497717]],\n 2: [[0, 0, 0, 180.45662100456622, 18.045662100456617],\n [0, 0, 1, 180.45662100456622, 18.045662100456617],\n [0, 0, 2, 180.45662100456622, 18.045662100456617],\n [0, 0, 3, 180.45662100456622, 18.045662100456617],\n [0, 0, 4, 180.45662100456622, 18.045662100456617],\n [0, 0, 5, 180.45662100456622, 18.045662100456617],\n [0, 0, 6, 180.45662100456622, 18.045662100456617],\n [0, 0, 7, 180.45662100456622, 18.045662100456617],\n [0, 0, 8, 180.45662100456622, 18.045662100456617],\n [0, 0, 9, 180.45662100456622, 18.045662100456617]],\n 3: [[0, 0, 0, 186.02739726027394, 18.602739726027398],\n [0, 0, 1, 186.02739726027394, 18.602739726027398],\n [0, 0, 2, 186.02739726027394, 18.602739726027398],\n [0, 0, 3, 186.02739726027394, 18.602739726027398],\n [0, 0, 4, 186.02739726027394, 18.602739726027398],\n [0, 0, 5, 186.02739726027394, 18.602739726027398],\n [0, 0, 6, 186.02739726027394, 18.602739726027398],\n [0, 0, 7, 186.02739726027394, 18.602739726027398],\n [0, 0, 8, 186.02739726027394, 18.602739726027398],\n [0, 0, 9, 186.02739726027394, 18.602739726027398]],\n 4: [[0, 0, 0, 191.59817351598176, 19.15981735159817],\n [0, 0, 1, 191.59817351598176, 19.15981735159817],\n [0, 0, 2, 191.59817351598176, 19.15981735159817],\n [0, 0, 3, 191.59817351598176, 19.15981735159817],\n [0, 0, 4, 191.59817351598176, 19.15981735159817],\n [0, 0, 5, 191.59817351598176, 19.15981735159817],\n [0, 0, 6, 191.59817351598176, 19.15981735159817],\n [0, 0, 7, 191.59817351598176, 19.15981735159817],\n [0, 0, 8, 191.59817351598176, 19.15981735159817],\n [0, 0, 9, 191.59817351598176, 19.15981735159817]],\n 5: [[0, 0, 0, 197.16894977168957, 19.716894977168952],\n [0, 0, 1, 197.16894977168957, 19.716894977168952],\n [0, 0, 2, 197.16894977168957, 19.716894977168952],\n [0, 0, 3, 197.16894977168957, 19.716894977168952],\n [0, 0, 4, 197.16894977168957, 19.716894977168952],\n [0, 0, 5, 197.16894977168957, 19.716894977168952],\n [0, 0, 6, 197.16894977168957, 19.716894977168952],\n [0, 0, 7, 197.16894977168957, 19.716894977168952],\n [0, 0, 8, 197.16894977168957, 19.716894977168952],\n [0, 0, 9, 197.16894977168957, 19.716894977168952]],\n 6: [[0, 0, 0, 202.73972602739727, 20.273972602739725],\n [0, 0, 1, 202.73972602739727, 20.273972602739725],\n [0, 0, 2, 202.73972602739727, 20.273972602739725],\n [0, 0, 3, 202.73972602739727, 20.273972602739725],\n [0, 0, 4, 202.73972602739727, 20.273972602739725],\n [0, 0, 5, 202.73972602739727, 20.273972602739725],\n [0, 0, 6, 202.73972602739727, 20.273972602739725],\n [0, 0, 7, 202.73972602739727, 20.273972602739725],\n [0, 0, 8, 202.73972602739727, 20.273972602739725],\n [0, 0, 9, 202.73972602739727, 20.273972602739725]],\n 7: [[0, 0, 0, 208.40182648401827, 20.84018264840183],\n [0, 0, 1, 208.40182648401827, 20.84018264840183],\n [0, 0, 2, 208.40182648401827, 20.84018264840183],\n [0, 0, 3, 208.40182648401827, 20.84018264840183],\n [0, 0, 4, 208.40182648401827, 20.84018264840183],\n [0, 0, 5, 208.40182648401827, 20.84018264840183],\n [0, 0, 6, 208.40182648401827, 20.84018264840183],\n [0, 0, 7, 208.40182648401827, 20.84018264840183],\n [0, 0, 8, 208.40182648401827, 20.84018264840183],\n [0, 0, 9, 208.40182648401827, 20.84018264840183]],\n 8: [[0, 0, 0, 213.97260273972606, 21.397260273972606],\n [0, 0, 1, 213.97260273972606, 21.397260273972606],\n [0, 0, 2, 213.97260273972606, 21.397260273972606],\n [0, 0, 3, 213.97260273972606, 21.397260273972606],\n [0, 0, 4, 213.97260273972606, 21.397260273972606],\n [0, 0, 5, 213.97260273972606, 21.397260273972606],\n [0, 0, 6, 213.97260273972606, 21.397260273972606],\n [0, 0, 7, 213.97260273972606, 21.397260273972606],\n [0, 0, 8, 213.97260273972606, 21.397260273972606],\n [0, 0, 9, 213.97260273972606, 21.397260273972606]],\n 9: [[0, 0, 0, 219.5433789954338, 21.954337899543383],\n [0, 0, 1, 219.5433789954338, 21.954337899543383],\n [0, 0, 2, 219.5433789954338, 21.954337899543383],\n [0, 0, 3, 219.5433789954338, 21.954337899543383],\n [0, 0, 4, 219.5433789954338, 21.954337899543383],\n [0, 0, 5, 219.5433789954338, 21.954337899543383],\n [0, 0, 6, 219.5433789954338, 21.954337899543383],\n [0, 0, 7, 219.5433789954338, 21.954337899543383],\n [0, 0, 8, 219.5433789954338, 21.954337899543383],\n [0, 0, 9, 219.5433789954338, 21.954337899543383]],\n 10: [[0, 0, 0, 225.11415525114157, 22.511415525114163],\n [0, 0, 1, 225.11415525114157, 22.511415525114163],\n [0, 0, 2, 225.11415525114157, 22.511415525114163],\n [0, 0, 3, 225.11415525114157, 22.511415525114163],\n [0, 0, 4, 225.11415525114157, 22.511415525114163],\n [0, 0, 5, 225.11415525114157, 22.511415525114163],\n [0, 0, 6, 225.11415525114157, 22.511415525114163],\n [0, 0, 7, 225.11415525114157, 22.511415525114163],\n [0, 0, 8, 225.11415525114157, 22.511415525114163],\n [0, 0, 9, 225.11415525114157, 22.511415525114163]],\n 11: [[0, 0, 0, 230.5936073059361, 23.05936073059361],\n [0, 0, 1, 230.5936073059361, 23.05936073059361],\n [0, 0, 2, 230.5936073059361, 23.05936073059361],\n [0, 0, 3, 230.5936073059361, 23.05936073059361],\n [0, 0, 4, 230.5936073059361, 23.05936073059361],\n [0, 0, 5, 230.5936073059361, 23.05936073059361],\n [0, 0, 6, 230.5936073059361, 23.05936073059361],\n [0, 0, 7, 230.5936073059361, 23.05936073059361],\n [0, 0, 8, 230.5936073059361, 23.05936073059361],\n [0, 0, 9, 230.5936073059361, 23.05936073059361]]}"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from morpheus.modflow.infrastructure.calculation.modflow_2005.packages.ChdPackageMapper import \\\n",
" calculate_chd_boundary_stress_period_data\n",
"\n",
"result = calculate_chd_boundary_stress_period_data(\n",
" stress_periods=time_discretization.stress_periods,\n",
" start_date_times=time_discretization.get_start_date_times(),\n",
" end_date_times=time_discretization.get_end_date_times(),\n",
" layer_ids=layers_list,\n",
" grid=grid,\n",
" chd_boundary=constant_head,\n",
")\n",
"result.to_dict()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:28.507081Z",
"start_time": "2023-11-27T08:54:28.143130Z"
}
},
"id": "c02b9bf2e59abc77"
},
{
"cell_type": "markdown",
"source": [
"## Setup constant head boundary with two observations"
],
"metadata": {
"collapsed": false
},
"id": "894da2e8cf016539"
},
{
"cell_type": "code",
"execution_count": 8,
"outputs": [
{
"data": {
"text/plain": "<folium.folium.Map at 0x106b3e720>",
"text/html": "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe srcdoc=\"&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n \n &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;\n \n &lt;script&gt;\n L_NO_TOUCH = false;\n L_DISABLE_3D = false;\n &lt;/script&gt;\n \n &lt;style&gt;html, body {width: 100%;height: 100%;margin: 0;padding: 0;}&lt;/style&gt;\n &lt;style&gt;#map {position:absolute;top:0;bottom:0;right:0;left:0;}&lt;/style&gt;\n &lt;script src=&quot;https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://code.jquery.com/jquery-3.7.1.min.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js&quot;&gt;&lt;/script&gt;\n &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js&quot;&gt;&lt;/script&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css&quot;/&gt;\n &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css&quot;/&gt;\n \n &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,\n initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot; /&gt;\n &lt;style&gt;\n #map_2c22d5caee6190661d399a0436f07b7f {\n position: relative;\n width: 100.0%;\n height: 100.0%;\n left: 0.0%;\n top: 0.0%;\n }\n .leaflet-container { font-size: 1rem; }\n &lt;/style&gt;\n \n&lt;/head&gt;\n&lt;body&gt;\n \n \n &lt;div class=&quot;folium-map&quot; id=&quot;map_2c22d5caee6190661d399a0436f07b7f&quot; &gt;&lt;/div&gt;\n \n&lt;/body&gt;\n&lt;script&gt;\n \n \n var map_2c22d5caee6190661d399a0436f07b7f = L.map(\n &quot;map_2c22d5caee6190661d399a0436f07b7f&quot;,\n {\n center: [50.965, 13.922],\n crs: L.CRS.EPSG3857,\n zoom: 12,\n zoomControl: true,\n preferCanvas: false,\n }\n );\n\n \n\n \n \n var tile_layer_7c67350b6af7aee79a23b163f43bc227 = L.tileLayer(\n &quot;https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png&quot;,\n {&quot;attribution&quot;: &quot;\\u0026copy; \\u003ca target=\\&quot;_blank\\&quot; href=\\&quot;http://www.openstreetmap.org/copyright\\&quot;\\u003eOpenStreetMap\\u003c/a\\u003e contributors \\u0026copy; \\u003ca target=\\&quot;_blank\\&quot; href=\\&quot;http://cartodb.com/attributions\\&quot;\\u003eCartoDB\\u003c/a\\u003e, CartoDB \\u003ca target=\\&quot;_blank\\&quot; href =\\&quot;http://cartodb.com/attributions\\&quot;\\u003eattributions\\u003c/a\\u003e&quot;, &quot;detectRetina&quot;: false, &quot;maxNativeZoom&quot;: 18, &quot;maxZoom&quot;: 18, &quot;minZoom&quot;: 0, &quot;noWrap&quot;: false, &quot;opacity&quot;: 1, &quot;subdomains&quot;: &quot;abc&quot;, &quot;tms&quot;: false}\n );\n \n \n tile_layer_7c67350b6af7aee79a23b163f43bc227.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_b7c9389d13b1efba8074ecdf179f1ad9_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_b7c9389d13b1efba8074ecdf179f1ad9 = L.geoJson(null, {\n onEachFeature: geo_json_b7c9389d13b1efba8074ecdf179f1ad9_onEachFeature,\n \n });\n\n function geo_json_b7c9389d13b1efba8074ecdf179f1ad9_add (data) {\n geo_json_b7c9389d13b1efba8074ecdf179f1ad9\n .addData(data);\n }\n geo_json_b7c9389d13b1efba8074ecdf179f1ad9_add({&quot;coordinates&quot;: [[[13.922514437551428, 50.964720483303836], [13.925250781947113, 50.965228748412386], [13.925036413951403, 50.96623732041704], [13.92222441026388, 50.96629040370362], [13.922514437551428, 50.964720483303836]]], &quot;type&quot;: &quot;Polygon&quot;});\n\n \n \n geo_json_b7c9389d13b1efba8074ecdf179f1ad9.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n map_2c22d5caee6190661d399a0436f07b7f.fitBounds(\n [[50.964720483303836, 13.92222441026388], [50.96629040370362, 13.925250781947113]],\n {}\n );\n \n \n\n function geo_json_3530ad0782ad0c4cd7322e93adcb9c27_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_3530ad0782ad0c4cd7322e93adcb9c27 = L.geoJson(null, {\n onEachFeature: geo_json_3530ad0782ad0c4cd7322e93adcb9c27_onEachFeature,\n \n });\n\n function geo_json_3530ad0782ad0c4cd7322e93adcb9c27_add (data) {\n geo_json_3530ad0782ad0c4cd7322e93adcb9c27\n .addData(data);\n }\n geo_json_3530ad0782ad0c4cd7322e93adcb9c27_add({&quot;coordinates&quot;: [[13.9223, 50.9662], [13.925, 50.96615]], &quot;type&quot;: &quot;LineString&quot;});\n\n \n \n geo_json_3530ad0782ad0c4cd7322e93adcb9c27.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_ac511e5c56821476b7e65c58b838c275_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_ac511e5c56821476b7e65c58b838c275 = L.geoJson(null, {\n onEachFeature: geo_json_ac511e5c56821476b7e65c58b838c275_onEachFeature,\n \n });\n\n function geo_json_ac511e5c56821476b7e65c58b838c275_add (data) {\n geo_json_ac511e5c56821476b7e65c58b838c275\n .addData(data);\n }\n geo_json_ac511e5c56821476b7e65c58b838c275_add({&quot;geometries&quot;: [{&quot;coordinates&quot;: [[[13.922224410263878, 50.96629040370359], [13.922527047432201, 50.96629040370359], [13.922527047432201, 50.9661334140511], [13.922224410263878, 50.9661334140511], [13.922224410263878, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.922527047432201, 50.96629040370359], [13.922829684600526, 50.96629040370359], [13.922829684600526, 50.9661334140511], [13.922527047432201, 50.9661334140511], [13.922527047432201, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.922829684600526, 50.96629040370359], [13.923132321768849, 50.96629040370359], [13.923132321768849, 50.9661334140511], [13.922829684600526, 50.9661334140511], [13.922829684600526, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923132321768849, 50.96629040370359], [13.923434958937172, 50.96629040370359], [13.923434958937172, 50.9661334140511], [13.923132321768849, 50.9661334140511], [13.923132321768849, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923434958937172, 50.96629040370359], [13.923737596105495, 50.96629040370359], [13.923737596105495, 50.9661334140511], [13.923434958937172, 50.9661334140511], [13.923434958937172, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923737596105495, 50.96629040370359], [13.924040233273818, 50.96629040370359], [13.924040233273818, 50.9661334140511], [13.923737596105495, 50.9661334140511], [13.923737596105495, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924040233273818, 50.96629040370359], [13.924342870442143, 50.96629040370359], [13.924342870442143, 50.9661334140511], [13.924040233273818, 50.9661334140511], [13.924040233273818, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924342870442143, 50.96629040370359], [13.924645507610466, 50.96629040370359], [13.924645507610466, 50.9661334140511], [13.924342870442143, 50.9661334140511], [13.924342870442143, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924645507610466, 50.96629040370359], [13.92494814477879, 50.96629040370359], [13.92494814477879, 50.9661334140511], [13.924645507610466, 50.9661334140511], [13.924645507610466, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.92494814477879, 50.96629040370359], [13.925250781947113, 50.96629040370359], [13.925250781947113, 50.9661334140511], [13.92494814477879, 50.9661334140511], [13.92494814477879, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}], &quot;type&quot;: &quot;GeometryCollection&quot;});\n\n \n \n geo_json_ac511e5c56821476b7e65c58b838c275.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_697d337decde76e4a03454ea926d25b2_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_697d337decde76e4a03454ea926d25b2 = L.geoJson(null, {\n onEachFeature: geo_json_697d337decde76e4a03454ea926d25b2_onEachFeature,\n \n });\n\n function geo_json_697d337decde76e4a03454ea926d25b2_add (data) {\n geo_json_697d337decde76e4a03454ea926d25b2\n .addData(data);\n }\n geo_json_697d337decde76e4a03454ea926d25b2_add({&quot;coordinates&quot;: [13.9223, 50.9662], &quot;type&quot;: &quot;Point&quot;});\n\n \n \n geo_json_697d337decde76e4a03454ea926d25b2.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n map_2c22d5caee6190661d399a0436f07b7f.fitBounds(\n [[50.964720483303836, 13.922224410263878], [50.96629040370362, 13.925250781947113]],\n {}\n );\n \n \n\n function geo_json_74543f459d6b6f9a97892f0bc4d853fd_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_74543f459d6b6f9a97892f0bc4d853fd = L.geoJson(null, {\n onEachFeature: geo_json_74543f459d6b6f9a97892f0bc4d853fd_onEachFeature,\n \n });\n\n function geo_json_74543f459d6b6f9a97892f0bc4d853fd_add (data) {\n geo_json_74543f459d6b6f9a97892f0bc4d853fd\n .addData(data);\n }\n geo_json_74543f459d6b6f9a97892f0bc4d853fd_add({&quot;coordinates&quot;: [[13.9223, 50.9662], [13.925, 50.96615]], &quot;type&quot;: &quot;LineString&quot;});\n\n \n \n geo_json_74543f459d6b6f9a97892f0bc4d853fd.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_bdb115cecaa65672becd7b7988742d08_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_bdb115cecaa65672becd7b7988742d08 = L.geoJson(null, {\n onEachFeature: geo_json_bdb115cecaa65672becd7b7988742d08_onEachFeature,\n \n });\n\n function geo_json_bdb115cecaa65672becd7b7988742d08_add (data) {\n geo_json_bdb115cecaa65672becd7b7988742d08\n .addData(data);\n }\n geo_json_bdb115cecaa65672becd7b7988742d08_add({&quot;geometries&quot;: [{&quot;coordinates&quot;: [[[13.922224410263878, 50.96629040370359], [13.922527047432201, 50.96629040370359], [13.922527047432201, 50.9661334140511], [13.922224410263878, 50.9661334140511], [13.922224410263878, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.922527047432201, 50.96629040370359], [13.922829684600526, 50.96629040370359], [13.922829684600526, 50.9661334140511], [13.922527047432201, 50.9661334140511], [13.922527047432201, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.922829684600526, 50.96629040370359], [13.923132321768849, 50.96629040370359], [13.923132321768849, 50.9661334140511], [13.922829684600526, 50.9661334140511], [13.922829684600526, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923132321768849, 50.96629040370359], [13.923434958937172, 50.96629040370359], [13.923434958937172, 50.9661334140511], [13.923132321768849, 50.9661334140511], [13.923132321768849, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923434958937172, 50.96629040370359], [13.923737596105495, 50.96629040370359], [13.923737596105495, 50.9661334140511], [13.923434958937172, 50.9661334140511], [13.923434958937172, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.923737596105495, 50.96629040370359], [13.924040233273818, 50.96629040370359], [13.924040233273818, 50.9661334140511], [13.923737596105495, 50.9661334140511], [13.923737596105495, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924040233273818, 50.96629040370359], [13.924342870442143, 50.96629040370359], [13.924342870442143, 50.9661334140511], [13.924040233273818, 50.9661334140511], [13.924040233273818, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924342870442143, 50.96629040370359], [13.924645507610466, 50.96629040370359], [13.924645507610466, 50.9661334140511], [13.924342870442143, 50.9661334140511], [13.924342870442143, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.924645507610466, 50.96629040370359], [13.92494814477879, 50.96629040370359], [13.92494814477879, 50.9661334140511], [13.924645507610466, 50.9661334140511], [13.924645507610466, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}, {&quot;coordinates&quot;: [[[13.92494814477879, 50.96629040370359], [13.925250781947113, 50.96629040370359], [13.925250781947113, 50.9661334140511], [13.92494814477879, 50.9661334140511], [13.92494814477879, 50.96629040370359]]], &quot;type&quot;: &quot;Polygon&quot;}], &quot;type&quot;: &quot;GeometryCollection&quot;});\n\n \n \n geo_json_bdb115cecaa65672becd7b7988742d08.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_08dc9ea6fb6a831a4136f5e1d489e526_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_08dc9ea6fb6a831a4136f5e1d489e526 = L.geoJson(null, {\n onEachFeature: geo_json_08dc9ea6fb6a831a4136f5e1d489e526_onEachFeature,\n \n });\n\n function geo_json_08dc9ea6fb6a831a4136f5e1d489e526_add (data) {\n geo_json_08dc9ea6fb6a831a4136f5e1d489e526\n .addData(data);\n }\n geo_json_08dc9ea6fb6a831a4136f5e1d489e526_add({&quot;coordinates&quot;: [13.9223, 50.9662], &quot;type&quot;: &quot;Point&quot;});\n\n \n \n geo_json_08dc9ea6fb6a831a4136f5e1d489e526.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n\n function geo_json_1c14b70be76585c2d1ca6f83461a8ad8_onEachFeature(feature, layer) {\n layer.on({\n });\n };\n var geo_json_1c14b70be76585c2d1ca6f83461a8ad8 = L.geoJson(null, {\n onEachFeature: geo_json_1c14b70be76585c2d1ca6f83461a8ad8_onEachFeature,\n \n });\n\n function geo_json_1c14b70be76585c2d1ca6f83461a8ad8_add (data) {\n geo_json_1c14b70be76585c2d1ca6f83461a8ad8\n .addData(data);\n }\n geo_json_1c14b70be76585c2d1ca6f83461a8ad8_add({&quot;coordinates&quot;: [13.925, 50.96615], &quot;type&quot;: &quot;Point&quot;});\n\n \n \n geo_json_1c14b70be76585c2d1ca6f83461a8ad8.addTo(map_2c22d5caee6190661d399a0436f07b7f);\n \n map_2c22d5caee6190661d399a0436f07b7f.fitBounds(\n [[50.964720483303836, 13.922224410263878], [50.96629040370362, 13.925250781947113]],\n {}\n );\n \n&lt;/script&gt;\n&lt;/html&gt;\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from morpheus.modflow.types.geometry import Point\n",
"from morpheus.modflow.types.boundaries.Boundary import BoundaryName, ObservationId\n",
"from morpheus.modflow.types.soil_model import LayerId\n",
"from morpheus.modflow.types.boundaries.ConstantHead import ConstantHead, ConstantHeadObservation, DataItem, StartHead, \\\n",
" EndHead\n",
"\n",
"layers_list = [LayerId.new()]\n",
"constant_head = ConstantHead.from_geometry(\n",
" name=BoundaryName('constant_head'),\n",
" geometry=LineString([\n",
" (13.9223, 50.9662),\n",
" (13.9250, 50.96615),\n",
" ]),\n",
" grid=grid,\n",
" affected_layers=[layers_list[0]],\n",
" observations=[\n",
" ConstantHeadObservation(\n",
" id=ObservationId.new(),\n",
" geometry=Point((13.9223, 50.9662)),\n",
" raw_data=[\n",
" DataItem(\n",
" date_time=StartDateTime.from_datetime(datetime(2019, 1, 1)),\n",
" start_head=StartHead.from_float(100),\n",
" end_head=EndHead.from_float(10),\n",
" ),\n",
" DataItem(\n",
" date_time=StartDateTime.from_datetime(datetime(2021, 12, 31)),\n",
" start_head=StartHead.from_float(300),\n",
" end_head=EndHead.from_float(30),\n",
" ),\n",
" ]\n",
" ),\n",
" ConstantHeadObservation(\n",
" id=ObservationId.new(),\n",
" geometry=Point((13.9250, 50.96615)),\n",
" raw_data=[\n",
" DataItem(\n",
" date_time=StartDateTime.from_datetime(datetime(2019, 1, 1)),\n",
" start_head=StartHead.from_float(200),\n",
" end_head=EndHead.from_float(20),\n",
" ),\n",
" DataItem(\n",
" date_time=StartDateTime.from_datetime(datetime(2021, 12, 31)),\n",
" start_head=StartHead.from_float(400),\n",
" end_head=EndHead.from_float(40),\n",
" ),\n",
" ]\n",
" )\n",
" ]\n",
")\n",
"\n",
"m.add_child(folium.GeoJson(constant_head.as_geojson()))\n",
"m.add_child(folium.GeoJson(constant_head.affected_cells.as_geojson(grid).as_geojson()))\n",
"for constant_head.observation in constant_head.observations:\n",
" m.add_child(folium.GeoJson(constant_head.observation.as_geojson()))\n",
"m.fit_bounds(m.get_bounds())\n",
"m"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:28.548074Z",
"start_time": "2023-11-27T08:54:28.509230Z"
}
},
"id": "46c0ee9a25e86e17"
},
{
"cell_type": "markdown",
"source": [
"## Calculate constant head stress periods"
],
"metadata": {
"collapsed": false
},
"id": "2ed6c19e1f77c7c2"
},
{
"cell_type": "code",
"execution_count": 9,
"outputs": [
{
"data": {
"text/plain": "{0: [[0, 0, 0, 172.29336231877846, 17.229336231877845],\n [0, 0, 1, 183.49830375816256, 18.349830375816254],\n [0, 0, 2, 194.70324519767817, 19.470324519767814],\n [0, 0, 3, 205.90818663712804, 20.590818663712803],\n [0, 0, 4, 217.11312807657788, 21.711312807657787],\n [0, 0, 5, 228.31806951602775, 22.831806951602772],\n [0, 0, 6, 239.52301095547762, 23.952301095547757],\n [0, 0, 7, 250.72795239492746, 25.07279523949274],\n [0, 0, 8, 261.9328938344431, 26.193289383444306],\n [0, 0, 9, 269.4977168949772, 26.949771689497716]],\n 1: [[0, 0, 0, 177.7728143735729, 17.7772814373573],\n [0, 0, 1, 188.977755812957, 18.897775581295708],\n [0, 0, 2, 200.18269725247265, 20.01826972524727],\n [0, 0, 3, 211.3876386919225, 21.138763869192253],\n [0, 0, 4, 222.59258013137236, 22.25925801313724],\n [0, 0, 5, 233.7975215708222, 23.379752157082223],\n [0, 0, 6, 245.00246301027207, 24.500246301027207],\n [0, 0, 7, 256.20740444972193, 25.620740444972196],\n [0, 0, 8, 267.4123458892376, 26.741234588923756],\n [0, 0, 9, 274.9771689497717, 27.497716894977167]],\n 2: [[0, 0, 0, 183.2522664283675, 18.325226642836746],\n [0, 0, 1, 194.4572078677516, 19.445720786775155],\n [0, 0, 2, 205.6621493072672, 20.56621493072672],\n [0, 0, 3, 216.86709074671705, 21.686709074671704],\n [0, 0, 4, 228.07203218616692, 22.80720321861669],\n [0, 0, 5, 239.27697362561676, 23.927697362561673],\n [0, 0, 6, 250.48191506506663, 25.04819150650666],\n [0, 0, 7, 261.6868565045165, 26.16868565045165],\n [0, 0, 8, 272.89179794403213, 27.28917979440321],\n [0, 0, 9, 280.4566210045662, 28.04566210045662]],\n 3: [[0, 0, 0, 188.82304268407523, 18.882304268407527],\n [0, 0, 1, 200.02798412345933, 20.002798412345935],\n [0, 0, 2, 211.23292556297494, 21.1232925562975],\n [0, 0, 3, 222.4378670024248, 22.243786700242484],\n [0, 0, 4, 233.64280844187465, 23.36428084418747],\n [0, 0, 5, 244.84774988132452, 24.484774988132457],\n [0, 0, 6, 256.0526913207744, 25.605269132077442],\n [0, 0, 7, 267.2576327602242, 26.725763276022427],\n [0, 0, 8, 278.4625741997399, 27.84625741997399],\n [0, 0, 9, 286.027397260274, 28.6027397260274]],\n 4: [[0, 0, 0, 194.39381893978305, 19.4393818939783],\n [0, 0, 1, 205.59876037916712, 20.55987603791671],\n [0, 0, 2, 216.80370181868275, 21.68037018186827],\n [0, 0, 3, 228.0086432581326, 22.800864325813258],\n [0, 0, 4, 239.21358469758246, 23.921358469758243],\n [0, 0, 5, 250.4185261370323, 25.041852613703227],\n [0, 0, 6, 261.62346757648214, 26.162346757648212],\n [0, 0, 7, 272.82840901593204, 27.282840901593197],\n [0, 0, 8, 284.03335045544765, 28.40333504554476],\n [0, 0, 9, 291.5981735159817, 29.15981735159817]],\n 5: [[0, 0, 0, 199.96459519549086, 19.99645951954908],\n [0, 0, 1, 211.16953663487493, 21.11695366348749],\n [0, 0, 2, 222.37447807439054, 22.237447807439054],\n [0, 0, 3, 233.57941951384038, 23.357941951384035],\n [0, 0, 4, 244.78436095329025, 24.478436095329023],\n [0, 0, 5, 255.98930239274006, 25.598930239274008],\n [0, 0, 6, 267.1942438321899, 26.719424383218993],\n [0, 0, 7, 278.3991852716398, 27.83991852716398],\n [0, 0, 8, 289.6041267111554, 28.96041267111554],\n [0, 0, 9, 297.1689497716895, 29.716894977168952]],\n 6: [[0, 0, 0, 205.53537145119856, 20.553537145119854],\n [0, 0, 1, 216.74031289058266, 21.674031289058263],\n [0, 0, 2, 227.94525433009827, 22.794525433009824],\n [0, 0, 3, 239.15019576954813, 23.915019576954812],\n [0, 0, 4, 250.35513720899797, 25.035513720899797],\n [0, 0, 5, 261.5600786484478, 26.15600786484478],\n [0, 0, 6, 272.7650200878977, 27.276502008789766],\n [0, 0, 7, 283.96996152734755, 28.39699615273475],\n [0, 0, 8, 295.1749029668632, 29.517490296686315],\n [0, 0, 9, 302.7397260273973, 30.273972602739725]],\n 7: [[0, 0, 0, 211.19747190781956, 21.119747190781958],\n [0, 0, 1, 222.40241334720366, 22.240241334720366],\n [0, 0, 2, 233.60735478671927, 23.360735478671927],\n [0, 0, 3, 244.8122962261691, 24.481229622616915],\n [0, 0, 4, 256.01723766561895, 25.6017237665619],\n [0, 0, 5, 267.22217910506885, 26.722217910506885],\n [0, 0, 6, 278.4271205445187, 27.84271205445187],\n [0, 0, 7, 289.6320619839686, 28.963206198396854],\n [0, 0, 8, 300.8370034234842, 30.08370034234842],\n [0, 0, 9, 308.4018264840183, 30.84018264840183]],\n 8: [[0, 0, 0, 216.76824816352735, 21.676824816352735],\n [0, 0, 1, 227.97318960291142, 22.797318960291143],\n [0, 0, 2, 239.17813104242705, 23.917813104242704],\n [0, 0, 3, 250.3830724818769, 25.038307248187692],\n [0, 0, 4, 261.58801392132676, 26.158801392132677],\n [0, 0, 5, 272.7929553607766, 27.27929553607766],\n [0, 0, 6, 283.99789680022644, 28.399789680022646],\n [0, 0, 7, 295.20283823967634, 29.52028382396763],\n [0, 0, 8, 306.40777967919195, 30.640777967919195],\n [0, 0, 9, 313.972602739726, 31.397260273972606]],\n 9: [[0, 0, 0, 222.3390244192351, 22.23390244192351],\n [0, 0, 1, 233.54396585861917, 23.35439658586192],\n [0, 0, 2, 244.7489072981348, 24.47489072981348],\n [0, 0, 3, 255.95384873758465, 25.59538487375847],\n [0, 0, 4, 267.1587901770345, 26.715879017703454],\n [0, 0, 5, 278.36373161648436, 27.83637316164844],\n [0, 0, 6, 289.5686730559342, 28.956867305593423],\n [0, 0, 7, 300.7736144953841, 30.077361449538408],\n [0, 0, 8, 311.9785559348997, 31.197855593489972],\n [0, 0, 9, 319.5433789954338, 31.954337899543383]],\n 10: [[0, 0, 0, 227.90980067494286, 22.790980067494292],\n [0, 0, 1, 239.11474211432693, 23.9114742114327],\n [0, 0, 2, 250.31968355384257, 25.03196835538426],\n [0, 0, 3, 261.5246249932924, 26.152462499329243],\n [0, 0, 4, 272.7295664327423, 27.272956643274227],\n [0, 0, 5, 283.9345078721921, 28.393450787219212],\n [0, 0, 6, 295.13944931164195, 29.513944931164197],\n [0, 0, 7, 306.34439075109185, 30.63443907510918],\n [0, 0, 8, 317.54933219060746, 31.754933219060746],\n [0, 0, 9, 325.11415525114154, 32.51141552511415]],\n 11: [[0, 0, 0, 233.3892527297374, 23.33892527297374],\n [0, 0, 1, 244.59419416912147, 24.459419416912148],\n [0, 0, 2, 255.7991356086371, 25.57991356086371],\n [0, 0, 3, 267.00407704808697, 26.700407704808697],\n [0, 0, 4, 278.2090184875368, 27.82090184875368],\n [0, 0, 5, 289.41395992698665, 28.941395992698666],\n [0, 0, 6, 300.6189013664365, 30.06189013664365],\n [0, 0, 7, 311.82384280588633, 31.182384280588636],\n [0, 0, 8, 323.028784245402, 32.3028784245402],\n [0, 0, 9, 330.5936073059361, 33.05936073059361]]}"
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from morpheus.modflow.infrastructure.calculation.modflow_2005.packages.ChdPackageMapper import \\\n",
" calculate_chd_boundary_stress_period_data\n",
"\n",
"result = calculate_chd_boundary_stress_period_data(\n",
" stress_periods=time_discretization.stress_periods,\n",
" start_date_times=time_discretization.get_start_date_times(),\n",
" end_date_times=time_discretization.get_end_date_times(),\n",
" layer_ids=layers_list,\n",
" grid=grid,\n",
" chd_boundary=constant_head,\n",
")\n",
"result.to_dict()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-11-27T08:54:28.662451Z",
"start_time": "2023-11-27T08:54:28.545361Z"
}
},
"id": "61c2482657e0f072"
},
{
"cell_type": "markdown",
"source": [],
"metadata": {
"collapsed": false
},
"id": "42d948d145a8457a"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment