首页 > 解决方案 > 从 2011 年开始读取 Dfs0 文件

问题描述

我在一家公司工作,2011 年在 DHI 完成了一些工作。我们选择进一步分析一些数据,但我们只有 Dfs0 格式。我已经安装了 mikeio 包,并写道:

import mikeio
ds = mikeio.Dfs0("0019log1.dfs0")

但我得到一个属性错误: AttributeError: 'DfsEqTimeAxis' object has no attribute 'StartDateTime'

我不知道这是因为文件是很久以前制作的,还是制作文件的人犯了错误。我以前没有使用过 Dfs0 文件。

标签: mikeio

解决方案


具有相对时间轴的文件不是很常见,直到最近才可以使用 mikeio 读取。

现在应该没问题,只要您认为时间是相对于 1970-01-01 00:00 定义的。

Python 3.8.3(默认,2020 年 5 月 19 日,06:50:17)[MSC v.1916 64 位(AMD64)] :: Anaconda, Inc. on win32
输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。
>>> 从 mikeio 导入 Dfs0
>>> dfs0 = Dfs0("eq_relative.dfs0")
>>> dfs0
dfs0
时间轴:TimeAxisType.EquidistantRelative
项目:
  0:第 1 项(未定义)
  1:第 2 项(未定义)
  2:第 3 项(未定义)
  3:第 4 项(未定义)
  4:第 5 项(未定义)
>>> ds = dfs0.read()
>>> ds

尺寸:(504,)
时间:1970-01-01 00:00:00 - 1970-01-01 00:00:56.236909
项目:
  0:第 1 项(未定义)
  1:第 2 项(未定义)
  2:第 3 项(未定义)
  3:第 4 项(未定义)
  4:第 5 项(未定义)
>>> ds["项目 1"][0:10
... ]
数组([-0.0068621,-0.01174611,-0.0068621,-0.0019781,0.00290591,
        0.00290591、0.00290591、0.00290591、-0.0019781、-0.0068621])
>>> ds.time[0:10]
DatetimeIndex([ '1970-01-01 00:00:00', '1970-01-01 00:00:00.111803',
               '1970-01-01 00:00:00.223606', '1970-01-01 00:00:00.335409',
               '1970-01-01 00:00:00.447212', '1970-01-01 00:00:00.559015',
               '1970-01-01 00:00:00.670818', '1970-01-01 00:00:00.782621',
               '1970-01-01 00:00:00.894424', '1970-01-01 00:00:01.006227'],
              dtype='datetime64[ns]',频率='111803U')

推荐阅读