Skip to main content

获取 WaveWatch3 数据。

项目描述

WAVEWATCH III 数据的 Python 接口

Python 中的 WAVEWATCH III 数据

测试状态 https://github.com/csdms/bmi-wavewatch3/workflows/Flake8/badge.svg https://github.com/csdms/bmi-wavewatch3/workflows/Black/badge.svg

关于

bmi_wavewatch3 Python包提供命令行界面和编程界面,用于下载和处理WAVEWATCH III数据。

bmi_wavewatch3提供对以下栅格数据源的访问,

所有数据源都提供全球和区域网格。

安装

bmi_wavewatch3可以通过运行pip install bmi-wavewatch3安装。它需要 Python >= 3.8 才能运行。

如果你实在等不及最新版本,可以 直接从 GitHub安装bmi_wavewatch3 ,

$ pip install git+https://github.com/csdms/bmi-wavewatch3

bmi_wavewatch3也可通过conda、 conda install bmi-wavewatch3 -c conda - forge 获得。

用法

首先,您可以使用ww3命令按日期下载WAVEWATCH III数据(使用ww3 –help打印简短消息),

$ ww3 fetch "2010-05-22"

你也可以通过 Python 做到这一点,

>>> from bmi_wavewatch3 import WaveWatch3
>>> WaveWatch3.fetch("2010-05-22")

bmi_wavewatch3包提供WaveWatch3类,用于下载数据并将呈现为xarray Dataset

>>> from bmi_wavewatch3 import WaveWatch3
>>> ww3 = WaveWatch3("2010-05-22")
>>> ww3.data
<xarray.Dataset>
...

使用inc方法逐月推进时间,

>>> ww3.date
'2010-05-22'
>>> ww3.inc()
'2010-06-22'
>>> ww3.data.time
<xarray.DataArray 'time' ()>
array('2010-06-01T00:00:00.000000000', dtype='datetime64[ns]')
...

这将根据需要下载新数据集并将新数据加载到数据属性中。

例子

从命令行绘制数据

从命令行运行以下命令将绘制 来自 WAVEWATCH III at_4m网格的可变有效波高。请注意,一天中的时间(在本例中为 15:00)用T与日期分开(即时间可以给出为YYYY-MM-DDTHH

$ ww3 plot --grid=at_4m --data-var=swh "2010-09-15T15"
飓风朱莉娅

从 Python 绘制数据

此示例与前面的示例类似,但使用bmi_wavewatch3 Python 接口。

>>> from bmi_wavewatch3 import WaveWatch3
>>> ww3 = WaveWatch3("2009-11-08")

可以通过data属性将数据作为xarray 数据集进行访问。

>>> ww3.data
<xarray.Dataset>
Dimensions:     (step: 241, latitude: 311, longitude: 720)
Coordinates:
    time        datetime64[ns] 2009-11-01
  * step        (step) timedelta64[ns] 0 days 00:00:00 ... 30 days 00:00:00
    surface     float64 1.0
  * latitude    (latitude) float64 77.5 77.0 76.5 76.0 ... -76.5 -77.0 -77.5
  * longitude   (longitude) float64 0.0 0.5 1.0 1.5 ... 358.0 358.5 359.0 359.5
    valid_time  (step) datetime64[ns] dask.array<chunksize=(241,), meta=np.ndarray>
Data variables:
    dirpw       (step, latitude, longitude) float32 dask.array<chunksize=(241, 311, 720), meta=np.ndarray>
    perpw       (step, latitude, longitude) float32 dask.array<chunksize=(241, 311, 720), meta=np.ndarray>
    swh         (step, latitude, longitude) float32 dask.array<chunksize=(241, 311, 720), meta=np.ndarray>
    u           (step, latitude, longitude) float32 dask.array<chunksize=(241, 311, 720), meta=np.ndarray>
    v           (step, latitude, longitude) float32 dask.array<chunksize=(241, 311, 720), meta=np.ndarray>
Attributes:
    GRIB_edition:            2
    GRIB_centre:             kwbc
    GRIB_centreDescription:  US National Weather Service - NCEP
    GRIB_subCentre:          0
    Conventions:             CF-1.7
    institution:             US National Weather Service - NCEP
    history:                 2022-06-08T16:08 GRIB to CDM+CF via cfgrib-0.9.1...

step属性指向数据中的当前时间片(即自月初以来的三个小时增量),

>>> ww3.step
56
>>> ww3.data.swh[ww3.step, :, :].plot()
有效波高

学分

开发主管

  • 埃里克·赫顿 (@mcflugen)

贡献者

还没有。为什么不成为第一?

发行说明

0.2.0 (2022-06-17)

新的功能

  • ww3命令行程序 添加了一个新的子命令plot 。ww3 plot with download(如果数据文件尚未缓存)并创建请求数据的图。(#13

Bug修复

  • 修复了由无效数据时间字符串导致的错误报告中的错误。(#13

0.1.1 (2022-06-10)

其他更改和添加

  • 设置 GitHub Action 以创建源分发并将其推送到 TestPyPI。此操作仅在版本标记是预发布版本时运行(即版本字符串以[ab][0-9]+结尾)。(#10

  • 设置 GitHub Action 以创建源分发并将其推送到 PyPI。此操作仅在版本标记是发布版本时运行(即版本字符串不以[ab][0-9]+结尾)。(#11

0.1.1b1 (2022-06-09)

新的功能

  • 添加了ww3命令行界面,可按日期、地区和数量(显着波高、风速等)下载 WaveWatch III 数据。(#1

  • 添加了 WaveWatch3类,这是该软件包用户的主要访问点。此类下载 WaveWatch III 数据文件(如果尚未缓存)并以 xarray 数据集的形式提供数据视图。然后,用户可以逐月浏览数据,并根据需要下载其他数据。( #3 )

  • 添加了删除缓存数据文件的ww3 clean子命令。( #4 )

  • 添加了 BMIWaveWatch3类,为 wavewatch3包提供基本模型接口。(#5

  • 添加了额外的 WaveWatch III 数据源,用户可以从中获取数据。( #6 )

  • 为 WaveWatch3添加了fetch方法以模仿命令行程序 ww3 fetch。( #7 )

  • 添加了从中检索数据的其他数据源。现在可用的数据源包括:Phase 1、Phase 2、Multigrid、Multigrid-extended 和 Multigrid-thredds。( #7 )

  • 添加了ww3 info命令以打印有关数据源的信息(例如可用的网格、数量等)。( #7 )

  • 为WaveWatch3添加了一个step属性来跟踪数据立方体的当前时间片。此属性也是可设置的,以便用户可以使用它来推进数据(根据需要在后台下载其他数据)。( #8 )

  • 现在可以将日期指定为 iso 格式的日期/时间字符串。例如,“1944-06-06T06:30”。( #8 )

  • 将包重命名为bmi_wavewatch3。这遵循其他 CSDMS 数据组件使用的约定。( #9 )

文档增强

  • 在文档中添加了包描述、安装、使用和示例。( #8 )

其他更改和添加

  • 使用 GitHub 操作设置持续集成。这包括测试以确保代码根据black进行样式设置,没有 lint,并通过所有单元测试。(#2

  • 添加了更多单元测试,特别是对于数据源。( #7 )

  • 作为持续集成的一部分,添加了一个 GitHub 操作来构建基于 sphinx 的文档。( #8 )

  • 在检索数据和输入验证时,为 HTTP 错误的命令行界面提供更好的错误报告。( #8 )

  • 设置 GitHub Action 以创建源分发并将其推送到 TestPyPI。此操作仅在版本标记是预发布版本时运行(即版本字符串以[ab][0-9]+结尾)。(#10

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

bmi-wavewatch3-0.2.0.tar.gz (24.3 kB 查看哈希

已上传 source