A basic use case to generate tidal setup fails. These default values used to be True.
The test case is:
import os
from pathlib import Path
from datetime import datetime, timedelta
import logging
import tempfile
from contextlib import contextmanager, ExitStack
import numpy as np
from pyschism.driver import ModelConfig
from pyschism.forcing.bctides import iettype, ifltype
from pyschism.mesh import Hgrid, gridgr3
from pyschism.mesh.fgrid import ManningsN
mesh_path = Path("./hgrid.grd")
schism_dir = Path("./schism.dir").absolute()
# Inputs: Modify As Needed!
start_date = "2018091000" #in YYYYMMDDHH format
end_date = "2018091600" #in YYYYMMDDHH format
tide_source = "tpxo"
dt = timedelta(seconds=150.)
nspool = timedelta(minutes=20.)
schism_dir.mkdir(exist_ok=True, parents=True)
start_date = datetime.strptime(start_date, "%Y%m%d%H")
end_date = datetime.strptime(end_date, "%Y%m%d%H")
rnday = end_date - start_date
hgrid = Hgrid.open(mesh_path, crs="epsg:4326")
config = ModelConfig(
hgrid=hgrid,
fgrid=fgrid,
iettype=iettype.Iettype3(database=tide_source),
ifltype=ifltype.Ifltype3(database=tide_source),
)
coldstart = config.coldstart(
start_date=start_date,
end_date=start_date + rnday,
timestep=dt,
nspool=timedelta(hours=1),
elev=True,
dahv=True,
)
coldstart.write(schism_dir, overwrite=True)
and the error is
Process Process-9:
Traceback (most recent call last):
Process Process-10:
File "/home/Soroosh.Mani/env/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/home/Soroosh.Mani/env/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/home/Soroosh.Mani/env/lib/python3.10/site-packages/pyschism/forcing/bctides/bctides.py", line 174, in write_elev2D
Elev2D(self).write(
Traceback (most recent call last):
File "/home/Soroosh.Mani/env/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/home/Soroosh.Mani/env/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/home/Soroosh.Mani/env/lib/python3.10/site-packages/pyschism/forcing/bctides/uv3d.py", line 22, in write
uv3d = pathlib.Path(uv3d)
File "/home/Soroosh.Mani/env/lib/python3.10/site-packages/pyschism/forcing/bctides/bctides.py", line 186, in write_uv3D
UV3D(self).write(
File "/home/Soroosh.Mani/env/lib/python3.10/site-packages/pyschism/forcing/bctides/elev2d.py", line 22, in write
elev2D = pathlib.Path(elev2D)
Process Process-11:
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 960, in __new__
self = cls._from_parts(args)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 594, in _from_parts
drv, root, parts = self._parse_args(args)
Traceback (most recent call last):
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 578, in _parse_args
a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not bool
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 960, in __new__
self = cls._from_parts(args)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 594, in _from_parts
drv, root, parts = self._parse_args(args)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 578, in _parse_args
a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not bool
File "/home/Soroosh.Mani/env/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
Process Process-12:
File "/home/Soroosh.Mani/env/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
Traceback (most recent call last):
File "/home/Soroosh.Mani/env/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/home/Soroosh.Mani/env/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/home/Soroosh.Mani/env/lib/python3.10/site-packages/pyschism/forcing/bctides/bctides.py", line 209, in write_sal3D
SAL_3D(self).write(
File "/home/Soroosh.Mani/env/lib/python3.10/site-packages/pyschism/forcing/bctides/mod3d.py", line 22, in write
path = pathlib.Path(path)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 960, in __new__
self = cls._from_parts(args)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 594, in _from_parts
drv, root, parts = self._parse_args(args)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 578, in _parse_args
a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not bool
File "/home/Soroosh.Mani/env/lib/python3.10/site-packages/pyschism/forcing/bctides/bctides.py", line 198, in write_tem3D
TEM_3D(self).write(
File "/home/Soroosh.Mani/env/lib/python3.10/site-packages/pyschism/forcing/bctides/mod3d.py", line 22, in write
path = pathlib.Path(path)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 960, in __new__
self = cls._from_parts(args)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 594, in _from_parts
drv, root, parts = self._parse_args(args)
File "/home/Soroosh.Mani/env/lib/python3.10/pathlib.py", line 578, in _parse_args
a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not bool
Due to changes to the following:
https://github.com/schism-dev/pyschism/blob/9636a64ae8ae487ef5bcc44f884adfa870b82154/pyschism/forcing/bctides/bctides.py#L133-L136
A basic use case to generate tidal setup fails. These default values used to be
True
.The test case is:
and the error is