跳转到主要内容

Intake的ERDDAP插件

项目描述

源自 https://github.com/jmunroe/intake-erddap.

Intake-ERDDAP

版权所有 2022 Axiom Data Science

查看LICENSE文件

版权所有 2022 James Munroe

2022-10-19之前的所有贡献均为James Munroe版权所有,请参阅PREV-LICENSE。

Build Status Code Coverage License:BSD Code Style Status Python Package Index

Read The Docs

请访问我们的Read The Docs页面以获取更多文档

Intake是一组轻量级工具,用于在数据科学项目中加载数据和共享数据。Intake ERDDAP提供了一组ERDDAP的集成。

  • 快速识别特定地理区域内或包含特定变量的ERDDAP服务的所有数据集。
  • 为给定数据集或查询生成pandas DataFrame。
  • 为栅格数据集获取xarray Dataset。

主要特性包括

  • 为任何TableDAP数据集提供Pandas DataFrame。
  • 为任何GridDAP数据集提供xarray Dataset。
  • 通过任何或全部进行查询
    • 边界框
    • 时间
    • CF standard_name
    • 变量名
    • 纯文本搜索词
  • 将目录保存到本地以供将来使用。

用户安装

在不久的将来,我们将提供该项目在conda上的版本。目前该项目可在PyPI上找到,因此可以使用pip进行安装

  pip install intake-erddap

开发者安装

先决条件

以下是该项目的开发环境先决条件

  • conda
  • (可选但强烈推荐) mamba. 提示: conda install -c conda-forge mamba

注意:如果未安装mamba,请将以下说明中所有mamba实例替换为conda

  1. 使用以下命令创建项目环境

    mamba env update -f environment.yml
    
  2. 安装开发环境依赖项

    mamba env update -f dev-environment.yml
    
  3. 激活新的虚拟环境

    conda activate intake-erddap
    
  4. 将项目安装到虚拟环境中

    pip install -e .
    

请注意,您需要使用 pip install . 安装一次,以确保 entry_points 正确。

示例

要为 ERDDAP 的所有 TableDAP 提供的 TableDAP 创建一个 intake 目录,请使用

import intake_erddap
catalog = intake_erddap.ERDDAPCatalogReader(
    server="https://erddap.sensors.ioos.us/erddap"
).read()

目录对象的行为类似于字典,键代表数据集在 ERDDAP 中的唯一标识符,值是 TableDAPReader 对象。要访问 Reader 对象(对于单个数据集,在这种情况下为 dataset_id "aoos_204")

dataset = catalog["aoos_204"]

从 Reader 对象中,可以检索 pandas DataFrame

df = dataset.read()

使用以下方法查找其他可用的 dataset_ids

list(catalog)

考虑这样一个案例,您需要查找所有靠近佛罗里达的风数据

import intake_erddap
from datetime import datetime
bbox = (-87.84, 24.05, -77.11, 31.27)
catalog = intake_erddap.ERDDAPCatalogReader(
   server="https://erddap.sensors.ioos.us/erddap",
   bbox=bbox,
   intersection="union",
   start_time=datetime(2022, 1, 1),
   end_time=datetime(2023, 1, 1),
   standard_names=["wind_speed", "wind_from_direction"],
   variables=["wind_speed", "wind_from_direction"],
).read()

dataset_id = list(catalog)[0]
print(dataset_id)
df = catalog[dataset_id].read()

使用 standard_names 输入与 intersection="union" 搜索同时具有 "wind_speed" 和 "wind_from_direction" 的数据集。使用 variables 输入随后将数据集缩小到仅包含这些列,以及 "time","latitude","longitude" 和 "z"。

                 time (UTC)  latitude (degrees_north)  ...  wind_speed (m.s-1)  wind_from_direction (degrees)
0      2022-01-01T00:00:00Z                    28.508  ...                 3.6                          126.0
1      2022-01-01T00:10:00Z                    28.508  ...                 3.8                          126.0
2      2022-01-01T00:20:00Z                    28.508  ...                 3.6                          124.0
3      2022-01-01T00:30:00Z                    28.508  ...                 3.4                          125.0
4      2022-01-01T00:40:00Z                    28.508  ...                 3.5                          124.0
...                     ...                       ...  ...                 ...                            ...
52524  2022-12-31T23:20:00Z                    28.508  ...                 5.9                          176.0
52525  2022-12-31T23:30:00Z                    28.508  ...                 6.8                          177.0
52526  2022-12-31T23:40:00Z                    28.508  ...                 7.2                          175.0
52527  2022-12-31T23:50:00Z                    28.508  ...                 7.4                          169.0
52528  2023-01-01T00:00:00Z                    28.508  ...                 8.1                          171.0

[52529 rows x 6 columns]

项目详情


下载文件

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

源分布

intake_erddap-0.5.2.tar.gz (40.8 kB 查看哈希值)

上传时间

构建分布

intake_erddap-0.5.2-py3-none-any.whl (18.3 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面