Skip to content

Commit 8ef98f3

Browse files
committed
More executable examples
1 parent 57a64e5 commit 8ef98f3

File tree

5 files changed

+65
-69
lines changed

5 files changed

+65
-69
lines changed

mikeio/dataset/_data_plot.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,15 @@ class _DataArrayPlotterGrid1D(_DataArrayPlotter):
171171
172172
Examples
173173
--------
174-
>>> da = mikeio.read("tide1.dfs1")["Level"]
175-
>>> da.plot()
176-
>>> da.plot.line()
177-
>>> da.plot.timeseries()
178-
>>> da.plot.imshow()
179-
>>> da.plot.pcolormesh()
180-
>>> da.plot.hist()
174+
```{python}
175+
import mikeio
176+
da = mikeio.read("../data/tide1.dfs1")["Level"]
177+
da.plot()
178+
```
179+
```{python}
180+
da.plot.timeseries()
181+
```
182+
181183
182184
"""
183185

@@ -575,7 +577,6 @@ def _plot_FM_map(self, ax: Axes, **kwargs: Any) -> Axes:
575577
class _DataArrayPlotterFMVerticalColumn(_DataArrayPlotter):
576578
"""Plot a DataArray with a GeometryFMVerticalColumn geometry.
577579
578-
If DataArray has multiple time steps, the first step will be plotted.
579580
580581
Examples
581582
--------
@@ -592,9 +593,6 @@ class _DataArrayPlotterFMVerticalColumn(_DataArrayPlotter):
592593
```{python}
593594
da.plot.pcolormesh()
594595
```
595-
```{python}
596-
da.plot.hist()
597-
```
598596
599597
"""
600598

@@ -909,9 +907,15 @@ def scatter(
909907
910908
Examples
911909
--------
912-
>>> ds = mikeio.read("oresund_sigma_z.dfsu")
913-
>>> ds.plot.scatter(x="Salinity", y="Temperature", title="S-vs-T")
914-
>>> ds.plot.scatter(x=0, y=1, figsize=(9,9), marker='*')
910+
```{python}
911+
import mikeio
912+
ds = mikeio.read("../data/oresund_sigma_z.dfsu")
913+
ds.plot.scatter(x="Salinity", y="Temperature", title="S-vs-T")
914+
```
915+
916+
```{python}
917+
ds.plot.scatter(x=0, y=1, figsize=(9,9), marker='*')
918+
```
915919
916920
"""
917921
_, ax = self._get_fig_ax(ax, figsize)

mikeio/dataset/_dataarray.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,7 +1010,7 @@ def interp(
10101010
# TODO find out optimal syntax to allow interpolation to single point, new time, grid, mesh...
10111011
self,
10121012
# *, # TODO: make this a keyword-only argument in the future
1013-
time: pd.DatetimeIndex | DataArray | None = None,
1013+
time: pd.DatetimeIndex | DataArray | Dataset | int | float | None = None,
10141014
x: float | None = None,
10151015
y: float | None = None,
10161016
z: float | None = None,
@@ -1064,12 +1064,12 @@ def interp(
10641064
10651065
Examples
10661066
--------
1067-
>>> da = mikeio.read("random.dfs1")[0]
1068-
>>> da.interp(time=3600)
1069-
>>> da.interp(x=110)
1067+
```{python}
1068+
import mikeio
10701069
1071-
>>> da = mikeio.read("HD2D.dfsu").Salinity
1072-
>>> da.interp(x=340000, y=6160000)
1070+
da = mikeio.read("../data/HD2D.dfsu")["Current speed"]
1071+
da.interp(x=340000, y=6160000)
1072+
```
10731073
10741074
"""
10751075
if z is not None:
@@ -1194,7 +1194,7 @@ def extract_track(
11941194

11951195
def interp_time(
11961196
self,
1197-
dt: float | pd.DatetimeIndex | DataArray,
1197+
dt: pd.DatetimeIndex | DataArray | Dataset | int | float,
11981198
*,
11991199
method: str = "linear",
12001200
extrapolate: bool = True,
@@ -1302,11 +1302,6 @@ def interp_like(
13021302
**kwargs: Any
13031303
additional kwargs are passed to interpolation method
13041304
1305-
Examples
1306-
--------
1307-
>>> dai = da.interp_like(da2)
1308-
>>> dae = da.interp_like(da2, extrapolate=True)
1309-
>>> dat = da.interp_like(da2.time)
13101305
13111306
Returns
13121307
-------
@@ -1546,10 +1541,12 @@ def average(
15461541
15471542
Examples
15481543
--------
1549-
>>> dfs = Dfsu("HD2D.dfsu")
1550-
>>> da = dfs.read(["Current speed"])[0]
1551-
>>> area = dfs.get_element_area()
1552-
>>> da2 = da.average(axis="space", weights=area)
1544+
```{python}
1545+
import mikeio
1546+
da= mikeio.read("../data/HD2D.dfsu")["Current speed"]
1547+
area = da.geometry.get_element_area()
1548+
da.average(axis="space", weights=area)
1549+
```
15531550
15541551
"""
15551552

@@ -2087,7 +2084,8 @@ def _values_txt(self) -> str:
20872084

20882085
@staticmethod
20892086
def _parse_interp_time(
2090-
old_time: pd.DatetimeIndex, new_time: Any
2087+
old_time: pd.DatetimeIndex,
2088+
new_time: pd.DatetimeIndex | DataArray | Dataset | int | float,
20912089
) -> pd.DatetimeIndex:
20922090
if isinstance(new_time, pd.DatetimeIndex):
20932091
t_out_index = new_time

mikeio/dataset/_dataset.py

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -398,18 +398,7 @@ def create_data_array(
398398
item: ItemInfo | None = None,
399399
name: str | None = None,
400400
) -> DataArray:
401-
"""Create a new DataArray with the same time and geometry as the dataset.
402-
403-
Examples
404-
--------
405-
406-
>>> ds = mikeio.read("file.dfsu")
407-
>>> values = np.zeros(ds.Temperature.shape)
408-
>>> da = ds.create_data_array(values)
409-
>>> da_name = ds.create_data_array(values,"Foo")
410-
>>> da_eum = ds.create_data_array(values, item=mikeio.ItemInfo("TS", mikeio.EUMType.Temperature))
411-
412-
"""
401+
"""Create a new DataArray with the same time and geometry as the dataset."""
413402
return DataArray(
414403
data=data,
415404
time=self.time,
@@ -503,9 +492,15 @@ def rename(self, mapper: Mapping[str, str], inplace: bool = False) -> Dataset:
503492
504493
Examples
505494
--------
506-
>>> ds = mikeio.read("tide1.dfs1")
507-
>>> newds = ds.rename({"Level":"Surface Elevation"})
508-
>>> ds.rename({"Level":"Surface Elevation"}, inplace=True)
495+
```{python}
496+
import mikeio
497+
ds = mikeio.read("../data/tide1.dfs1")
498+
ds
499+
```
500+
```{python}
501+
ds.rename({"Level":"Surface Elevation"})
502+
```
503+
509504
510505
"""
511506
if inplace:
@@ -701,14 +696,11 @@ def isel(
701696
702697
Examples
703698
--------
704-
>>> ds = mikeio.read("europe_wind_long_lat.dfs2")
705-
>>> ds.isel(time=-1)
706-
>>> ds.isel(x=slice(10,20), y=slice(40,60))
707-
>>> ds.isel(y=34)
708-
709-
>>> ds = mikeio.read("tests/testdata/HD2D.dfsu")
710-
>>> ds2 = ds.isel(time=[0,1,2])
711-
>>> ds3 = ds2.isel(elements=[100,200])
699+
```{python}
700+
import mikeio
701+
ds = mikeio.read("../data/europe_wind_long_lat.dfs2")
702+
ds.isel(x=slice(10,20), y=slice(40,60))
703+
```
712704
713705
"""
714706
# TODO deprecate idx, axis to prefer x= instead
@@ -791,15 +783,19 @@ def sel(
791783
792784
Examples
793785
--------
794-
>>> ds = mikeio.read("random.dfs1")
795-
>>> ds.sel(time=slice(None, "2012-1-1 00:02"))
796-
>>> ds.sel(x=100)
786+
```{python}
787+
import mikeio
788+
ds = mikeio.read("../data/oresund_sigma_z.dfsu")
789+
ds.sel(x=340000, y=6160000, z=-3)
790+
```
797791
798-
>>> ds = mikeio.read("oresund_sigma_z.dfsu")
799-
>>> ds.sel(time="1997-09-15")
800-
>>> ds.sel(x=340000, y=6160000, z=-3)
801-
>>> ds.sel(area=(340000, 6160000, 350000, 6170000))
802-
>>> ds.sel(layers="bottom")
792+
```{python}
793+
ds.sel(area=(340000, 6160000, 350000, 6170000))
794+
```
795+
796+
```{python}
797+
ds.sel(layers="bottom")
798+
```
803799
804800
"""
805801
res = [
@@ -960,7 +956,7 @@ def extract_track(
960956

961957
def interp_time(
962958
self,
963-
dt: float | pd.DatetimeIndex | Dataset | DataArray | None = None,
959+
dt: float | int | pd.DatetimeIndex | Dataset | DataArray | None = None,
964960
*,
965961
freq: str | None = None,
966962
method: str = "linear",

mikeio/spatial/_FM_geometry.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ def __init__(
469469
self.plot = _GeometryFMPlotter(self)
470470

471471
def __str__(self) -> str:
472-
return f"{self.type_name} ({self.n_elements} elements, {self.n_nodes} nodes)"
472+
return f"{self._type.name} ({self.n_elements} elements, {self.n_nodes} nodes)"
473473

474474
def __repr__(self) -> str:
475475
return (
@@ -500,11 +500,6 @@ def _area_is_polygon(area: Sequence[tuple[float, float]] | Sequence[float]) -> b
500500
polygon = np.array(area)
501501
return polygon.ndim == 2 and polygon.shape[1] == 2
502502

503-
@property
504-
def type_name(self) -> str:
505-
"""Type name, e.g. Mesh, Dfsu2D."""
506-
return self._type.name if self._type else "Mesh"
507-
508503
@property
509504
def ndim(self) -> int:
510505
return 2

mikeio/spatial/_FM_geometry_layered.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ def __init__(
6060
self._2d_ids: np.ndarray | None = None
6161
self._layer_ids: np.ndarray | None = None
6262

63+
def __str__(self) -> str:
64+
return f"{self._type.name} ({self.n_elements} elements, {self.n_nodes} nodes)"
65+
6366
def __repr__(self) -> str:
6467
return (
6568
f"Flexible Mesh Geometry: {self._type.name}\n"

0 commit comments

Comments
 (0)