Skip to content

Commit 6bb10a6

Browse files
committed
__init__ docstrings
1 parent 56e2913 commit 6bb10a6

File tree

11 files changed

+178
-208
lines changed

11 files changed

+178
-208
lines changed

mikeio/dataset/_dataarray.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,23 @@ def __call__(self, tail: bool = True) -> "DataArray":
132132
class DataArray:
133133
"""DataArray with data and metadata for a single item in a dfs file.
134134
135-
The DataArray has these main properties:
135+
Parameters
136+
----------
137+
data:
138+
a numpy array containing the data
139+
time:
140+
a pandas.DatetimeIndex with the time instances of the data
141+
item:
142+
an ItemInfo with name, type and unit
143+
geometry:
144+
a geometry object e.g. Grid2D or GeometryFM2D
145+
zn:
146+
only relevant for Dfsu3d
147+
dims:
148+
named dimensions
149+
dt:
150+
placeholder timestep
136151
137-
* time - a pandas.DatetimeIndex with the time instances of the data
138-
* geometry - a geometry object e.g. Grid2D or GeometryFM
139-
* values - a numpy array containing the data
140-
* item - an ItemInfo with name, type and unit
141152
142153
Examples
143154
--------

mikeio/dataset/_dataset.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,29 @@ class Dataset:
5656
5757
The Dataset is primarily a container for one or more DataArrays
5858
all having the same time and geometry (and shape, dims, etc).
59-
For convenience, the Dataset provides access to these common properties:
6059
61-
* time - a pandas.DatetimeIndex with the time instances of the data
62-
* geometry - a geometry object e.g. Grid2D or GeometryFM
63-
* shape - a tuple of array dimensions (for each DataArray)
64-
* dims - a tuple of dimension labels
65-
66-
Selecting items
60+
Parameters
61+
----------
62+
data:
63+
a sequence or mapping of numpy arrays
64+
By providing a mapping of data arrays, the remaining parameters are not needed
65+
time:
66+
a pandas.DatetimeIndex with the time instances of the data
67+
item:
68+
an ItemInfo with name, type and unit
69+
geometry:
70+
a geometry object e.g. Grid2D or GeometryFM2D
71+
zn:
72+
only relevant for Dfsu3d
73+
dims:
74+
named dimensions
75+
validate:
76+
Optional validation of consistency of data arrays.
77+
dt:
78+
placeholder timestep
79+
80+
81+
Notes
6782
---------------
6883
Selecting a specific item "itemA" (at position 0) from a Dataset ds can be done with:
6984

mikeio/dfs/_dfs0.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
from mikecore.DfsFileFactory import DfsFileFactory
1212
from mikecore.eum import eumQuantity
1313

14+
from mikeio.eum._eum import ItemInfoList
15+
1416
from .. import __dfs_version__
1517
from ..dataset import Dataset, DataArray
1618
from ._dfs import _get_item_info, _valid_item_numbers, _valid_timesteps
@@ -305,7 +307,7 @@ def n_items(self) -> int:
305307
return self._n_items
306308

307309
@property
308-
def items(self) -> list[ItemInfo]:
310+
def items(self) -> ItemInfoList:
309311
"""List of items."""
310312
return self._items
311313

mikeio/dfs/_dfs1.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,14 @@ def _write_dfs1_header(filename: str | Path, ds: Dataset, title: str) -> DfsFile
7373

7474

7575
class Dfs1(_Dfs123):
76-
"""Class for reading/writing dfs1 files."""
76+
"""Class for reading/writing dfs1 files.
77+
78+
Parameters
79+
----------
80+
filename:
81+
Path to dfs1 file
82+
83+
"""
7784

7885
_ndim = 1
7986

mikeio/dfs/_dfs2.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,16 @@ def _write_dfs2_spatial_axis(
108108

109109

110110
class Dfs2(_Dfs123):
111-
"""Class for reading/writing dfs2 files."""
111+
"""Class for reading/writing dfs2 files.
112+
113+
Parameters
114+
----------
115+
filename:
116+
Path to dfs2 file
117+
type:
118+
horizontal, spectral or vertical, default horizontal
119+
120+
"""
112121

113122
_ndim = 2
114123

mikeio/dfs/_dfs3.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,14 @@ def _write_dfs3_header(filename: str | Path, ds: Dataset, title: str) -> DfsFile
9999

100100

101101
class Dfs3(_Dfs123):
102-
"""Class for reading/writing dfs3 files."""
102+
"""Class for reading/writing dfs3 files.
103+
104+
Parameters
105+
----------
106+
filename:
107+
Path to dfs3 file
108+
109+
"""
103110

104111
_ndim = 3
105112

mikeio/dfsu/_dfsu.py

Lines changed: 7 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -170,115 +170,15 @@ def _get_dfsu_info(filename: str | Path) -> _DfsuInfo:
170170
)
171171

172172

173-
# class _Dfsu:
174-
# show_progress = False
175-
176-
# def __init__(self, filename: str | Path) -> None:
177-
# """
178-
# Create a Dfsu object
179-
180-
# Parameters
181-
# ---------
182-
# filename: str
183-
# dfsu filename
184-
# """
185-
# info = _get_dfsu_info(filename)
186-
# self._filename = info.filename
187-
# self._type = info.type
188-
# self._deletevalue = info.deletevalue
189-
# self._time = info.time
190-
# self._timestep = info.timestep
191-
# self._items = info.items
192-
193-
# def __repr__(self):
194-
# out = [f"<mikeio.{self.__class__.__name__}>"]
195-
196-
# if self._type is not DfsuFileType.DfsuSpectral0D:
197-
# if self._type is not DfsuFileType.DfsuSpectral1D:
198-
# out.append(f"number of elements: {self.geometry.n_elements}")
199-
# out.append(f"number of nodes: {self.geometry.n_nodes}")
200-
# if self.geometry.is_spectral:
201-
# if self.geometry.n_directions > 0:
202-
# out.append(f"number of directions: {self.geometry.n_directions}")
203-
# if self.geometry.n_frequencies > 0:
204-
# out.append(f"number of frequencies: {self.geometry.n_frequencies}")
205-
# if self.geometry.projection_string:
206-
# out.append(f"projection: {self.geometry.projection_string}")
207-
# if self.geometry.is_layered:
208-
# out.append(f"number of sigma layers: {self.geometry.n_sigma_layers}")
209-
# if (
210-
# self._type == DfsuFileType.DfsuVerticalProfileSigmaZ
211-
# or self._type == DfsuFileType.Dfsu3DSigmaZ
212-
# ):
213-
# out.append(
214-
# f"max number of z layers: {self.geometry.n_layers - self.geometry.n_sigma_layers}"
215-
# )
216-
# if self.n_items < 10:
217-
# out.append("items:")
218-
# for i, item in enumerate(self.items):
219-
# out.append(f" {i}: {item}")
220-
# else:
221-
# out.append(f"number of items: {self.geometry.n_items}")
222-
# if self.n_timesteps == 1:
223-
# out.append(f"time: time-invariant file (1 step) at {self.time[0]}")
224-
# else:
225-
# out.append(
226-
# f"time: {str(self.time[0])} - {str(self.time[-1])} ({self.n_timesteps} records)"
227-
# )
228-
# return str.join("\n", out)
229-
230-
# def _read_items(self, filename: str) -> list[ItemInfo]:
231-
# dfs = DfsuFile.Open(filename)
232-
# items = _get_item_info(dfs.ItemInfo)
233-
# dfs.Close()
234-
# return items
235-
236-
# @property
237-
# def geometry(self):
238-
# return self._geometry
239-
240-
# @property
241-
# def deletevalue(self) -> float:
242-
# """File delete value"""
243-
# return self._deletevalue
244-
245-
# @property
246-
# def n_items(self) -> int:
247-
# """Number of items"""
248-
# return len(self.items)
249-
250-
# @property
251-
# def items(self) -> list[ItemInfo]:
252-
# """List of items"""
253-
# return self._items
254-
255-
# @property
256-
# def start_time(self) -> pd.Timestamp:
257-
# """File start time"""
258-
# return self._time[0]
259-
260-
# @property
261-
# def n_timesteps(self) -> int:
262-
# """Number of time steps"""
263-
# return len(self._time)
264-
265-
# @property
266-
# def timestep(self) -> float:
267-
# """Time step size in seconds"""
268-
# return self._timestep
269-
270-
# @property
271-
# def end_time(self) -> pd.Timestamp:
272-
# """File end time"""
273-
# return self._time[-1]
274-
275-
# @property
276-
# def time(self) -> pd.DatetimeIndex:
277-
# return self._time
173+
class Dfsu2DH:
174+
"""Class for reading/writing dfsu 2d horizontal files.
278175
176+
Parameters
177+
----------
178+
filename:
179+
Path to dfsu file
279180
280-
class Dfsu2DH:
281-
"""Class for reading/writing dfsu 2d horizontal files."""
181+
"""
282182

283183
show_progress = False
284184

mikeio/dfsu/_layered.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,14 @@ def append(self, ds: Dataset, validate: bool = True) -> None:
411411

412412

413413
class Dfsu2DV(DfsuLayered):
414-
"""Class for reading/writing dfsu 2d vertical files."""
414+
"""Class for reading/writing dfsu 2d vertical files.
415+
416+
Parameters
417+
----------
418+
filename:
419+
Path to dfsu file
420+
421+
"""
415422

416423
def plot_vertical_profile(
417424
self,
@@ -467,7 +474,14 @@ def plot_vertical_profile(
467474

468475

469476
class Dfsu3D(DfsuLayered):
470-
"""Class for reading/writing dfsu 3d files."""
477+
"""Class for reading/writing dfsu 3d files.
478+
479+
Parameters
480+
----------
481+
filename:
482+
Path to dfsu file
483+
484+
"""
471485

472486
@property
473487
def geometry2d(self) -> GeometryFM2D:

mikeio/dfsu/_spectral.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,14 @@
2626

2727

2828
class DfsuSpectral:
29-
"""Dfsu for Spectral data."""
29+
"""Dfsu for Spectral data.
30+
31+
Parameters
32+
----------
33+
filename:
34+
Path to dfsu file
35+
36+
"""
3037

3138
show_progress = False
3239

mikeio/eum/_eum.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1404,7 +1404,8 @@ class ItemInfo:
14041404
Parameters
14051405
----------
14061406
name: str or EUMType, optional
1407-
type: EUMType or int, optional
1407+
User defined name
1408+
itemtype: EUMType or int, optional
14081409
Default EUMType.Undefined
14091410
unit: EUMUnit or int, optional
14101411
Default unit matching EUMType

0 commit comments

Comments
 (0)