示例#1
0
    def test_set_time_series(self):

        reference_time = pd.to_datetime("2020-04-15")
        time_index = pd.to_timedelta(np.arange(10) * 10,
                                     unit="min") + reference_time
        data1 = pd.Series(np.ones(10) * 100, index=time_index)
        data2 = pd.Series(np.ones(10) * 200, index=time_index)

        relative_time = pd.to_timedelta(np.arange(10) * 10, unit="min")
        relative_time = [time.total_seconds() / 60 for time in relative_time]
        test_table = pd.DataFrame(
            {
                'time': relative_time,
                '1': np.ones(10) * 100,
                '2': np.ones(10) * 200
            },
            index=time_index)

        bct_data = delft3d.TimeSeriesFile("bct_test.bct")
        bct_data.set_time_series(0, "2020-04-15", data1, data2)

        self.assertTrue(
            np.array((bct_data.data[0].time_series.index == time_index)).all())
        self.assertTrue(
            (bct_data.data[0].time_series.values == test_table.values).all())
        self.assertEqual(bct_data.data[0].header['records-in-table'].value,
                         str(len(time_index)))
        self.assertEqual(bct_data.data[0].header['reference-time'].value,
                         reference_time.strftime("%Y%m%d"))
示例#2
0
    def test_set_header(self):
        bct_data = delft3d.TimeSeriesFile("bct_test.bct")
        bct_data.set_header(0, {'location': '(1,1)..(1,1)'})
        bct_data.set_header(0, {'reference-time': '20200120'})
        bct_data.set_header(0, {'parameter': {'time': 'relative time'}})
        bct_data.set_header(0, {'parameter': {'time': 'hour'}}, unit=True)
        self.assertEqual(bct_data.data[0].header['location'].value,
                         '(1,1)..(1,1)')
        self.assertEqual(bct_data.data[0].header['reference-time'].value,
                         '20200120')
        self.assertEqual(bct_data.data[0].header['parameter']['time'].value,
                         'relative time')
        self.assertEqual(bct_data.data[0].header['parameter']['time'].unit,
                         'hour')

        self.assertEqual(bct_data.data[0].header['location'].export(),
                         "'(1,1)..(1,1)        '")
        self.assertEqual(bct_data.data[0].header['reference-time'].export(),
                         "20200120")
        self.assertEqual(
            bct_data.data[0].header['parameter']['time'].export(),
            "'relative time       '                    unit '[hour]'")
示例#3
0
import os
import delft3d
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime as dt

#%%

# supply the path of compiled Delft3D source code to create simulation runner
sim = delft3d.Simulation('C:/Program Files/Deltares/Delft3D 4.04.01/x64')

os.chdir(r'D:\Delft3D\op')

bct = delft3d.TimeSeriesFile('bound_cond.bct')
data = bct.data

ts0 = bct.data[0].time_series
ts1 = bct.data[1].time_series

fsa = pd.read_csv(
    r'C:\Users\bydd1\OneDrive\Documents\Research\Code for Babes\Delft3D-Toolbox\doc\example\flow_series_A.csv',
    index_col=0)
fsa.index = pd.to_datetime(fsa.index)

#%%
timesteps = 300
mu = 0
sigma = np.sqrt(5)
xv = np.linspace(-3 * sigma**2, 3 * sigma**2, timesteps)
示例#4
0
 def test_bct_export(self):
     with open("bct_test.bct", 'r') as f:
         bct_test = f.readlines()
     bct_data = delft3d.TimeSeriesFile("bct_test.bct")
     self.assertListEqual(bct_test, bct_data.export())
示例#5
0
 def test_dis_export(self):
     with open("dis_test.dis", 'r') as f:
         dis_test = f.readlines()
     dis_data = delft3d.TimeSeriesFile("dis_test.dis")
     self.assertListEqual(dis_test, dis_data.export())