From f78c966a9c4c208cf0bac8a9f9b1978b7bf63869 Mon Sep 17 00:00:00 2001 From: zyj <1165600785@qq.com> Date: Sat, 26 Oct 2024 20:03:32 +0800 Subject: [PATCH 1/4] =?UTF-8?q?2024=2010=2026=20=2020=EF=BC=9A03?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/example_zyj_update.py | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 examples/example_zyj_update.py diff --git a/examples/example_zyj_update.py b/examples/example_zyj_update.py new file mode 100644 index 00000000..f74f89aa --- /dev/null +++ b/examples/example_zyj_update.py @@ -0,0 +1,67 @@ +from datetime import datetime, timedelta +from pathlib import Path +import shutil +import warnings + +from adcircpy import AdcircMesh, AdcircRun, Tides +from adcircpy.utilities import download_mesh + +DATA_DIRECTORY = Path(__file__).parent.absolute() / 'data' +INPUT_DIRECTORY = DATA_DIRECTORY / 'input' / 'shinnecock' +OUTPUT_DIRECTORY = DATA_DIRECTORY / 'output' / 'example_1' +from adcircpy.forcing.tides import TidalSource +MESH_DIRECTORY = INPUT_DIRECTORY / 'shinnecock' + +# download_mesh( +# url='https://www.dropbox.com/s/1wk91r67cacf132/NetCDF_shinnecock_inlet.tar.bz2?dl=1', +# directory=MESH_DIRECTORY, +# known_hash='99d764541983bfee60d4176af48ed803d427dea61243fa22d3f4003ebcec98f4', +# ) + +# open mesh file +# mesh = AdcircMesh.open(MESH_DIRECTORY / 'fort.14', crs=4326) +mesh = AdcircMesh.open('./jb20241024_home_mesh.14', crs=4326) +resource=r'E:\pythonProject1\adcircpy\examples\out_tpox_sum.nc' +# initialize tidal forcing and constituents +tidal_forcing = Tides(TidalSource.TPXO,resource=resource) +# tidal_forcing = Tides() +tidal_forcing.use_all() +# tidal_forcing.use_constituent('S1') +# tidal_forcing.use_constituent('S2') +# tidal_forcing.use_constituent('N2') +# tidal_forcing.use_constituent('S2') +# tidal_forcing.use_constituent('K1') +# tidal_forcing.use_constituent('O1') +mesh.add_forcing(tidal_forcing) + +# set simulation dates +duration = timedelta(days=30) +start_date = datetime(2024, 5, 1) +end_date = start_date + duration + +# instantiate driver object +driver = AdcircRun(mesh, start_date, end_date) + +# request outputs +driver.set_elevation_surface_output(sampling_rate=timedelta(minutes=60)) +driver.set_velocity_surface_output(sampling_rate=timedelta(minutes=60)) + +# override default options so the resulting `fort.15` matches the original Shinnecock test case options +driver.timestep = 6.0 +driver.DRAMP = 2.0 +driver.TOUTGE = 3.8 +driver.TOUTGV = 3.8 +driver.smagorinsky = False +driver.horizontal_mixing_coefficient = 5.0 +driver.gwce_solution_scheme = 'semi-implicit-legacy' + +if shutil.which('padcirc') is not None: + driver.run(OUTPUT_DIRECTORY, overwrite=True) +elif shutil.which('adcirc') is not None: + driver.run(OUTPUT_DIRECTORY, overwrite=True, nproc=1) +else: + warnings.warn( + 'ADCIRC binaries were not found in PATH. ' + 'ADCIRC will not run. Writing files to disk...' + ) + driver.write(OUTPUT_DIRECTORY, overwrite=True) From 7f70baadbde9eba8e9c100142338d9b3aa57f786 Mon Sep 17 00:00:00 2001 From: q1165600785 <56305883+q1165600785@users.noreply.github.com> Date: Sun, 27 Oct 2024 15:08:32 +0800 Subject: [PATCH 2/4] Delete examples/example_zyj_update.py --- examples/example_zyj_update.py | 67 ---------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 examples/example_zyj_update.py diff --git a/examples/example_zyj_update.py b/examples/example_zyj_update.py deleted file mode 100644 index f74f89aa..00000000 --- a/examples/example_zyj_update.py +++ /dev/null @@ -1,67 +0,0 @@ -from datetime import datetime, timedelta -from pathlib import Path -import shutil -import warnings - -from adcircpy import AdcircMesh, AdcircRun, Tides -from adcircpy.utilities import download_mesh - -DATA_DIRECTORY = Path(__file__).parent.absolute() / 'data' -INPUT_DIRECTORY = DATA_DIRECTORY / 'input' / 'shinnecock' -OUTPUT_DIRECTORY = DATA_DIRECTORY / 'output' / 'example_1' -from adcircpy.forcing.tides import TidalSource -MESH_DIRECTORY = INPUT_DIRECTORY / 'shinnecock' - -# download_mesh( -# url='https://www.dropbox.com/s/1wk91r67cacf132/NetCDF_shinnecock_inlet.tar.bz2?dl=1', -# directory=MESH_DIRECTORY, -# known_hash='99d764541983bfee60d4176af48ed803d427dea61243fa22d3f4003ebcec98f4', -# ) - -# open mesh file -# mesh = AdcircMesh.open(MESH_DIRECTORY / 'fort.14', crs=4326) -mesh = AdcircMesh.open('./jb20241024_home_mesh.14', crs=4326) -resource=r'E:\pythonProject1\adcircpy\examples\out_tpox_sum.nc' -# initialize tidal forcing and constituents -tidal_forcing = Tides(TidalSource.TPXO,resource=resource) -# tidal_forcing = Tides() -tidal_forcing.use_all() -# tidal_forcing.use_constituent('S1') -# tidal_forcing.use_constituent('S2') -# tidal_forcing.use_constituent('N2') -# tidal_forcing.use_constituent('S2') -# tidal_forcing.use_constituent('K1') -# tidal_forcing.use_constituent('O1') -mesh.add_forcing(tidal_forcing) - -# set simulation dates -duration = timedelta(days=30) -start_date = datetime(2024, 5, 1) -end_date = start_date + duration - -# instantiate driver object -driver = AdcircRun(mesh, start_date, end_date) - -# request outputs -driver.set_elevation_surface_output(sampling_rate=timedelta(minutes=60)) -driver.set_velocity_surface_output(sampling_rate=timedelta(minutes=60)) - -# override default options so the resulting `fort.15` matches the original Shinnecock test case options -driver.timestep = 6.0 -driver.DRAMP = 2.0 -driver.TOUTGE = 3.8 -driver.TOUTGV = 3.8 -driver.smagorinsky = False -driver.horizontal_mixing_coefficient = 5.0 -driver.gwce_solution_scheme = 'semi-implicit-legacy' - -if shutil.which('padcirc') is not None: - driver.run(OUTPUT_DIRECTORY, overwrite=True) -elif shutil.which('adcirc') is not None: - driver.run(OUTPUT_DIRECTORY, overwrite=True, nproc=1) -else: - warnings.warn( - 'ADCIRC binaries were not found in PATH. ' - 'ADCIRC will not run. Writing files to disk...' - ) - driver.write(OUTPUT_DIRECTORY, overwrite=True) From f7772cfa306cb80c97cabd6ec0ef88b4f483ea92 Mon Sep 17 00:00:00 2001 From: zyj <1165600785@qq.com> Date: Sun, 27 Oct 2024 15:52:41 +0800 Subject: [PATCH 3/4] add_nhage_setter --- adcircpy/fort15.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/adcircpy/fort15.py b/adcircpy/fort15.py index 21f6ec3d..0ba3d9a7 100644 --- a/adcircpy/fort15.py +++ b/adcircpy/fort15.py @@ -2374,6 +2374,11 @@ def NHAGE(self) -> int: except AttributeError: return self._get_harmonic_analysis_state(self.elevation_surface_output) + @NHAGE.setter + def NHAGE(self, NHAGE: int): + assert NHAGE in [0, 1] + self.__NHSTAR = NHAGE + @property def NHAGV(self) -> int: try: From cc10674a86c0007d51571c3f103d08c63cd32ca9 Mon Sep 17 00:00:00 2001 From: zyj <1165600785@qq.com> Date: Sun, 27 Oct 2024 16:41:08 +0800 Subject: [PATCH 4/4] add_nhage_setter --- adcircpy/fort15.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adcircpy/fort15.py b/adcircpy/fort15.py index 0ba3d9a7..e77e5534 100644 --- a/adcircpy/fort15.py +++ b/adcircpy/fort15.py @@ -2377,7 +2377,7 @@ def NHAGE(self) -> int: @NHAGE.setter def NHAGE(self, NHAGE: int): assert NHAGE in [0, 1] - self.__NHSTAR = NHAGE + self.__NHAGE = NHAGE @property def NHAGV(self) -> int: