ladim 2.0.5__tar.gz → 2.0.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. {ladim-2.0.5 → ladim-2.0.6}/PKG-INFO +6 -4
  2. {ladim-2.0.5 → ladim-2.0.6}/ladim/__init__.py +1 -1
  3. {ladim-2.0.5 → ladim-2.0.6}/ladim/forcing.py +12 -16
  4. ladim-2.0.6/ladim/grid.py +634 -0
  5. {ladim-2.0.5 → ladim-2.0.6}/ladim/gridforce/ROMS.py +11 -4
  6. ladim-2.0.6/ladim/ibms/__init__.py +26 -0
  7. {ladim-2.0.5 → ladim-2.0.6}/ladim/main.py +1 -1
  8. ladim-2.0.6/ladim/model.py +144 -0
  9. {ladim-2.0.5 → ladim-2.0.6}/ladim/output.py +21 -22
  10. {ladim-2.0.5 → ladim-2.0.6}/ladim/release.py +18 -21
  11. {ladim-2.0.5 → ladim-2.0.6}/ladim/solver.py +6 -6
  12. {ladim-2.0.5 → ladim-2.0.6}/ladim/state.py +12 -33
  13. {ladim-2.0.5 → ladim-2.0.6}/ladim/tracker.py +8 -11
  14. {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/PKG-INFO +6 -4
  15. {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/SOURCES.txt +1 -0
  16. {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/requires.txt +5 -3
  17. {ladim-2.0.5 → ladim-2.0.6}/setup.cfg +5 -3
  18. ladim-2.0.6/tests/test_grid.py +334 -0
  19. {ladim-2.0.5 → ladim-2.0.6}/tests/test_output.py +15 -18
  20. {ladim-2.0.5 → ladim-2.0.6}/tests/test_release.py +15 -17
  21. {ladim-2.0.5 → ladim-2.0.6}/tests/test_solver.py +21 -20
  22. ladim-2.0.5/ladim/grid.py +0 -89
  23. ladim-2.0.5/ladim/ibms/__init__.py +0 -21
  24. ladim-2.0.5/ladim/model.py +0 -145
  25. {ladim-2.0.5 → ladim-2.0.6}/LICENSE +0 -0
  26. {ladim-2.0.5 → ladim-2.0.6}/README.md +0 -0
  27. {ladim-2.0.5 → ladim-2.0.6}/ladim/__main__.py +0 -0
  28. {ladim-2.0.5 → ladim-2.0.6}/ladim/config.py +0 -0
  29. {ladim-2.0.5 → ladim-2.0.6}/ladim/gridforce/__init__.py +0 -0
  30. {ladim-2.0.5 → ladim-2.0.6}/ladim/gridforce/analytical.py +0 -0
  31. {ladim-2.0.5 → ladim-2.0.6}/ladim/gridforce/zROMS.py +0 -0
  32. {ladim-2.0.5 → ladim-2.0.6}/ladim/ibms/light.py +0 -0
  33. {ladim-2.0.5 → ladim-2.0.6}/ladim/plugins/__init__.py +0 -0
  34. {ladim-2.0.5 → ladim-2.0.6}/ladim/sample.py +0 -0
  35. {ladim-2.0.5 → ladim-2.0.6}/ladim/utilities.py +0 -0
  36. {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/dependency_links.txt +0 -0
  37. {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/entry_points.txt +0 -0
  38. {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/top_level.txt +0 -0
  39. {ladim-2.0.5 → ladim-2.0.6}/postladim/__init__.py +0 -0
  40. {ladim-2.0.5 → ladim-2.0.6}/postladim/cellcount.py +0 -0
  41. {ladim-2.0.5 → ladim-2.0.6}/postladim/kde_plot.py +0 -0
  42. {ladim-2.0.5 → ladim-2.0.6}/postladim/particlefile.py +0 -0
  43. {ladim-2.0.5 → ladim-2.0.6}/postladim/variable.py +0 -0
  44. {ladim-2.0.5 → ladim-2.0.6}/pyproject.toml +0 -0
  45. {ladim-2.0.5 → ladim-2.0.6}/tests/test_config.py +0 -0
  46. {ladim-2.0.5 → ladim-2.0.6}/tests/test_forcing.py +0 -0
  47. {ladim-2.0.5 → ladim-2.0.6}/tests/test_ladim.py +0 -0
  48. {ladim-2.0.5 → ladim-2.0.6}/tests/test_model.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ladim
3
- Version: 2.0.5
3
+ Version: 2.0.6
4
4
  Summary: Lagrangian Advection and Diffusion Model
5
5
  Home-page: https://github.com/pnsaevik/ladim
6
6
  Author: Bjørn Ådlandsvik
@@ -17,12 +17,14 @@ Classifier: Operating System :: OS Independent
17
17
  Requires-Python: >=3.7
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: numpy
21
- Requires-Dist: pyyaml
22
20
  Requires-Dist: netCDF4
21
+ Requires-Dist: numpy
23
22
  Requires-Dist: pandas
24
- Requires-Dist: xarray
25
23
  Requires-Dist: pyarrow
24
+ Requires-Dist: pyproj
25
+ Requires-Dist: pyyaml
26
+ Requires-Dist: scipy
27
+ Requires-Dist: xarray
26
28
 
27
29
  LADiM – the Lagrangian Advection and Diffusion Model
28
30
  ====================================================
@@ -1,3 +1,3 @@
1
- __version__ = '2.0.5'
1
+ __version__ = '2.0.6'
2
2
 
3
3
  from .main import main, run
@@ -2,19 +2,15 @@ from .model import Model, Module
2
2
 
3
3
 
4
4
  class Forcing(Module):
5
- def __init__(self, model: Model):
6
- super().__init__(model)
7
-
8
5
  def velocity(self, X, Y, Z, tstep=0.0):
9
6
  raise NotImplementedError
10
7
 
11
8
 
12
9
  class RomsForcing(Forcing):
13
- def __init__(self, model: Model, file, variables=None, **conf):
10
+ def __init__(self, file, variables=None, **conf):
14
11
  """
15
12
  Forcing module which uses output data from the ROMS ocean model
16
13
 
17
- :param model: Parent model
18
14
  :param file: Glob pattern for the input files
19
15
  :param variables: A mapping of variable names to interpolation
20
16
  specifications. Each interpolaction specification consists of 0-4
@@ -34,14 +30,12 @@ class RomsForcing(Forcing):
34
30
 
35
31
  :param conf: Legacy config dict
36
32
  """
37
- super().__init__(model)
38
-
39
33
  # Apply default interpolation configs
40
34
  variables = variables or dict()
41
35
  default_vars = dict(u="xt", v="yt", w="zt", temp="xyzt", salt="xyzt")
42
36
  self.variables = {**default_vars, **variables}
43
37
 
44
- grid_ref = GridReference(model)
38
+ grid_ref = GridReference()
45
39
  legacy_conf = dict(
46
40
  gridforce=dict(
47
41
  input_file=file,
@@ -67,17 +61,19 @@ class RomsForcing(Forcing):
67
61
  # self.U = self.forcing.U
68
62
  # self.V = self.forcing.V
69
63
 
70
- def update(self):
71
- elapsed = self.model.solver.time - self.model.solver.start
72
- t = elapsed // self.model.solver.step
64
+ def update(self, model: Model):
65
+ elapsed = model.solver.time - model.solver.start
66
+ t = elapsed // model.solver.step
73
67
 
68
+ # noinspection PyProtectedMember
69
+ self.forcing._grid.modules = model
74
70
  self.forcing.update(t)
75
71
 
76
72
  # Update state variables by sampling the field
77
- x, y, z = self.model.state['X'], self.model.state['Y'], self.model.state['Z']
73
+ x, y, z = model.state['X'], model.state['Y'], model.state['Z']
78
74
  for v in self.variables:
79
- if v in self.model.state:
80
- self.model.state[v] = self.field(x, y, z, v)
75
+ if v in model.state:
76
+ model.state[v] = self.field(x, y, z, v)
81
77
 
82
78
  def velocity(self, X, Y, Z, tstep=0.0):
83
79
  return self.forcing.velocity(X, Y, Z, tstep=tstep)
@@ -90,8 +86,8 @@ class RomsForcing(Forcing):
90
86
 
91
87
 
92
88
  class GridReference:
93
- def __init__(self, modules: Model):
94
- self.modules = modules
89
+ def __init__(self):
90
+ self.modules = None
95
91
 
96
92
  def __getattr__(self, item):
97
93
  return getattr(self.modules.grid.grid, item)