Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions AGENDA.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Monday
- 900-1000: 01 Introductions and IT sorting (Mike)
- 1000-1100: 02 Build your first model with FloPy (Kalle)
- 1100-1115: break
- 1115-1245: 03 Loading and visualizing models with FloPy (Andy)
- 1115-1245: 03 Loading and visualizing models with FloPy (Josh)
- 1245-1345: lunch
- 1345-1615: 04 Intersection Capabilities, modelgrid, time wrangling (Josh)
- 1615-1630: break
Expand All @@ -55,8 +55,8 @@ Monday
- 1230-1330: lunch
- 1330-1500: 07 Streamflow Capture Analysis with FloPy – using Voronoi (Mike)
- 1500-1515: break
- 1515-1545: 08 Modflow-setup demo (Andy)
- 1515-1545: 08 Modflow-setup demo (Mike)
- 1545-1600: break
- 1600-1630: 09 Run and process MF6 GWT (Kalle)
- 1630-1700: 10 Run and process MODPATH/MF6-PRT models (Andy)
- 1630-1700: 10 Run and process MODPATH/MF6-PRT models (Josh)
- 1700: Wrap up
2 changes: 1 addition & 1 deletion installation/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ channels:
- nodefaults
dependencies:
# required
- python=3.14
- python
- pip

- numpy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -469,12 +469,7 @@
"cell_type": "code",
"execution_count": null,
"id": "cfc5092f",
"metadata": {
"ExecuteTime": {
"end_time": "2026-07-13T20:33:01.937415100Z",
"start_time": "2026-07-13T20:33:01.902023300Z"
}
},
"metadata": {},
"outputs": [],
"source": [
"class Rectangle(object):\n",
Expand All @@ -492,12 +487,7 @@
"cell_type": "code",
"execution_count": null,
"id": "a9e31831",
"metadata": {
"ExecuteTime": {
"end_time": "2026-07-13T20:33:01.993260200Z",
"start_time": "2026-07-13T20:33:01.940307700Z"
}
},
"metadata": {},
"outputs": [],
"source": [
"print(Rectangle)"
Expand All @@ -507,12 +497,7 @@
"cell_type": "code",
"execution_count": null,
"id": "99393550",
"metadata": {
"ExecuteTime": {
"end_time": "2026-07-13T20:33:02.047728Z",
"start_time": "2026-07-13T20:33:02.008492Z"
}
},
"metadata": {},
"outputs": [],
"source": [
"r1 = Rectangle(2, 3, 'f')\n",
Expand All @@ -525,12 +510,7 @@
"cell_type": "code",
"execution_count": null,
"id": "a0ba121a",
"metadata": {
"ExecuteTime": {
"end_time": "2026-07-13T20:34:14.783207400Z",
"start_time": "2026-07-13T20:34:14.763440600Z"
}
},
"metadata": {},
"outputs": [],
"source": [
"# attrs"
Expand Down Expand Up @@ -679,12 +659,7 @@
"cell_type": "code",
"execution_count": null,
"id": "f17dae1f-8061-4e03-a90f-6e8e967419fe",
"metadata": {
"ExecuteTime": {
"end_time": "2026-07-13T20:33:01.937415100Z",
"start_time": "2026-07-13T20:33:01.902023300Z"
}
},
"metadata": {},
"outputs": [],
"source": [
"class Rectangle(object):\n",
Expand Down Expand Up @@ -1151,18 +1126,6 @@
"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.14.6"
}
},
"nbformat": 4,
Expand Down
4 changes: 0 additions & 4 deletions notebooks/part0_python_intro/04_files_and_strings.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -915,10 +915,6 @@
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python",
"version": "3.12.8"
}
},
"nbformat": 4,
Expand Down
16 changes: 8 additions & 8 deletions notebooks/part0_python_intro/05_numpy.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@
"metadata": {},
"outputs": [],
"source": [
"print('The type of a: ', a.dtype)"
"print('The type of data in a: ', a.dtype)"
]
},
{
Expand Down Expand Up @@ -323,7 +323,7 @@
"source": [
"## TEST YOUR SKILLS #0\n",
"\n",
"1. Write the Mt. St. Helens array (before) to a new file called `mynewarray.dat` in the same folder as `mt_st_helens_before.dat`. Explore different formats (see the note under [documentation](https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html) for more) and see if you can read it back in again. What are the file size ramifications of format choices?\n",
"1. Write the Mt. St. Helens array (before) to a new file called `mynewarray.dat` in the same folder (the variable `datapath` we defined already) as `mt_st_helens_before.dat`. Explore different formats (see the note under [documentation](https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html) for more) and see if you can read it back in again. What are the file size ramifications of format choices?\n",
"2. Take a look at `bottom_commented.dat` in a text editor. What about this file? Can you read this file using `loadtxt` without having to manually change the file? Hint: look at the `loadtxt` arguments."
]
},
Expand Down Expand Up @@ -450,7 +450,7 @@
"\n",
"Okay, now for the good stuff...\n",
"\n",
"Numpy arrays are zero based, which means the first position is referenced as 0. If you are a FORTRAN person or a MATLAB person, THIS WILL CAUSE YOU GREAT GRIEF! You will be burned by the fact that the first element in an array is not `a[1]`. It is `a[0]`. You will accept it, eventually, and then you will find zero-based arrays to be more intuitive, maybe.\n",
"Numpy arrays are zero based, which means the first position is referenced as 0. If you are a FORTRAN person or a MATLAB person or an R person, THIS WILL CAUSE YOU GREAT GRIEF! You will be burned by the fact that the first element in an array is not `a[1]`. It is `a[0]`. You will accept it, eventually, and then you will find zero-based arrays to be more intuitive, maybe.\n",
"\n",
"Let's do some array slicing to see how all of this works."
]
Expand Down Expand Up @@ -1718,17 +1718,17 @@
"\n",
"The radial and tangential components of the velocity vector $\\vec{v}=(v_r,v_\\theta)$ for inviscid fluid flow around a cylinder are given by\n",
"\n",
"$\\begin{split}\n",
"$$\\begin{split}\n",
"v_r&=U(1-R^2/r^2)\\cos(\\theta) \\qquad r\\ge R \\\\\n",
"v_\\theta&=-U(1+R^2/r^2)\\sin(\\theta) \\qquad r\\ge R\n",
"\\end{split}$\n",
"\\end{split}$$\n",
"\n",
"and is zero otherwise. The $x$ and $y$ components of the velocity vector may be obtained from the radial and tangential components as\n",
"\n",
"$\\begin{split}\n",
"$$\\begin{split}\n",
"v_x&=v_r\\cos(\\theta) - v_\\theta\\sin(\\theta) \\\\\n",
"v_y &= v_r\\sin(\\theta) + v_\\theta\\cos(\\theta) \n",
"\\end{split}$\n",
"\\end{split}$$\n",
"\n",
"1. Write a function that returns the $x$ and $y$ components of the velocity vector for fluid flow around a cylinder with $R=1.5$ and $U=2$.\n",
"\n",
Expand Down Expand Up @@ -1757,7 +1757,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "pyclass",
"language": "python",
"name": "python3"
}
Expand Down
12 changes: 0 additions & 12 deletions notebooks/part0_python_intro/06_matplotlib.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1307,18 +1307,6 @@
"display_name": "pyclass",
"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.14.6"
}
},
"nbformat": 4,
Expand Down
12 changes: 0 additions & 12 deletions notebooks/part0_python_intro/06b_matplotlib_animation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -243,18 +243,6 @@
"display_name": "pyclass",
"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.14.6"
}
},
"nbformat": 4,
Expand Down
12 changes: 0 additions & 12 deletions notebooks/part0_python_intro/08_pandas.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1676,18 +1676,6 @@
"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.14.6"
}
},
"nbformat": 4,
Expand Down
4 changes: 2 additions & 2 deletions notebooks/part0_python_intro/09_a_Geopandas.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1125,7 +1125,7 @@
"***\n",
"We have an Excel file that contains a crosswalk between SPECIES number as provided and species name. Can we bring that into our dataset and evaluate some conclusions about tree species by neighborhood?\n",
"- start with the `trees_with_hoods` GeoDataFrame\n",
"- load up and join the data from datapath / 'Madison_Tree_Species_Lookup.xlsx'\n",
"- load up and join the data from `datapath / 'Madison_Tree_Species_Lookup.xlsx'`\n",
"- hint: check the dtypes before merging - if you are going to join on a column, the column must be the same dtype in both dataframes\n",
"- Make a multipage PDF with a page for each neighborhood showing a bar chart of the top ten tree species (by name) in each neighborhood\n",
"- Make a map (use explore, or save to SHP or geojson) showing the neighborhoods with a color-coded field showing the most common tree species for each neighborhood\n",
Expand All @@ -1146,7 +1146,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "pyclass",
"language": "python",
"name": "python3"
}
Expand Down
1,403 changes: 27 additions & 1,376 deletions notebooks/part0_python_intro/bonus_examples/Geopandas_ABQ.ipynb

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@
"outputs": [],
"source": [
"# read back in the trees and hoods data\n",
"trees = gp.read_file(datapath / 'Street_Trees.geojson', index_col=0)\n",
"trees = gp.read_file(datapath / 'Street_Trees.geojson')\n",
"trees.to_crs(hoods.crs, inplace=True)\n",
"trees_with_hoods = trees[['SPECIES','DIAMETER','geometry']].sjoin(hoods[['NEIGHB_NAME','geometry']])\n",
"trees_with_hoods.head()"
Expand Down Expand Up @@ -413,7 +413,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "pyclass",
"language": "python",
"name": "python3"
},
Expand All @@ -427,7 +427,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.11"
"version": "3.14.6"
}
},
"nbformat": 4,
Expand Down
12 changes: 0 additions & 12 deletions notebooks/part1_flopy/03_Loading_and_visualizing_models.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1098,18 +1098,6 @@
"display_name": "pyclass",
"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.14.3"
}
},
"nbformat": 4,
Expand Down
12 changes: 0 additions & 12 deletions notebooks/part1_flopy/04_Modelgrid_and_intersection.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1469,18 +1469,6 @@
"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.14.6"
}
},
"nbformat": 4,
Expand Down
12 changes: 0 additions & 12 deletions notebooks/part1_flopy/05_Unstructured_Grid_generation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1799,18 +1799,6 @@
"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.14.6"
}
},
"nbformat": 4,
Expand Down
12 changes: 0 additions & 12 deletions notebooks/part1_flopy/07-stream_capture_voronoi.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -699,18 +699,6 @@
"display_name": "pyclass",
"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.14.3"
}
},
"nbformat": 4,
Expand Down
12 changes: 0 additions & 12 deletions notebooks/part1_flopy/08_Modflow-setup-demo.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -793,18 +793,6 @@
"display_name": "pyclass",
"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.12.11"
}
},
"nbformat": 4,
Expand Down
Loading
Loading