Skip to content

Commit d2bb422

Browse files
committed
simplification of data copy
1 parent 61a8dff commit d2bb422

File tree

1 file changed

+5
-16
lines changed

1 file changed

+5
-16
lines changed

mikeio/generic.py

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,22 +1003,11 @@ def change_datatype(
10031003
dfs_out = _clone(infilename, outfilename, datatype=datatype)
10041004
dfs_in = DfsFileFactory.DfsGenericOpen(infilename)
10051005

1006-
item_numbers = _valid_item_numbers(dfs_in.ItemInfo)
1007-
n_items = len(item_numbers)
1008-
n_time_steps = dfs_in.FileInfo.TimeAxis.NumberOfTimeSteps
1009-
deletevalue = dfs_in.FileInfo.DeleteValueFloat
1010-
1011-
# Write data to outputfile with new datatype
1012-
for timestep in trange(n_time_steps, disable=True):
1013-
for item in range(n_items):
1014-
itemdata = dfs_in.ReadItemTimeStep(item_numbers[item] + 1, timestep)
1015-
time = itemdata.Time
1016-
d = itemdata.Data
1017-
d[d == deletevalue] = np.nan
1018-
outdata = d
1019-
outdata[np.isnan(outdata)] = deletevalue
1020-
darray = outdata.astype(np.float32)
1021-
dfs_out.WriteItemTimeStep(item_numbers[item] + 1, timestep, time, darray)
1006+
# Copy dynamic item data
1007+
sourceData = dfs_in.ReadItemTimeStepNext()
1008+
while sourceData:
1009+
dfs_out.WriteItemTimeStepNext(sourceData.Time, sourceData.Data)
1010+
sourceData = dfs_in.ReadItemTimeStepNext()
10221011

10231012
dfs_out.Close()
10241013
dfs_in.Close()

0 commit comments

Comments
 (0)