跳转到主要内容

一个用于收集气象/海洋观测的Python库

项目描述

Build_Status

注意:Pyoos是一个非常正在进行中的项目,在1.0版本发布之前应被视为实验性的!

Pyoos旨在满足为通过许多不同网站和web服务公开提供的气象/海洋数据创建高级数据收集库的需求。

Pyoos将收集并解析以下数据服务到Paegan离散几何CDM

通用接口

数据过滤

地理

按经纬度范围过滤

# (minx, miny, maxx, maxy)
collector.filter(bbox=(-74, 30, -70, 38))

时间

从日期时间过滤('start' 参数)

from dateime import dateime, timedelta
collector.filter(start=datetime.utcnow() - timedelta(hours=1))

直到日期时间过滤('end' 参数)

from dateime import dateime
collector.filter(end=datetime.utcnow())

日期时间范围过滤('start' 和 'end' 参数)

from dateime import dateime, timedelta
collector.filter(start=datetime.utcnow - timedelta(hours=24), end=datetime.utcnow())

要素

如何识别独特的要素/站点/对象,这高度依赖于数据提供者。Pyoos 尽力确定您传递的内容。例如,您可以将 WMO ID 传递给 NDBC 收集器,Pyoos 将请求 NDBC SOS 的正确完整 URN。

检索可过滤的唯一要素列表

collector.list_features()

按唯一要素过滤

# Any iterable of strings
collector.filter(features=["21KY-BSW004"])

变量

Pyoos 尽力将任何字符串格式化为实际请求的正确格式。例如,您可以将来自 CF-1.6 的典型标准名称字符串传递给 NDBC 收集器,Pyoos 将将其转换为完整的 MMI URI。

检索可过滤的唯一变量列表

collector.list_variables()

按变量名称过滤

# Any iterable of strings
collector.filter(variables=["sea_water_temperature"])

清除活动过滤器

collector.clear()

过滤链

您可以一起串联多个 filter 调用(它返回一个收集器对象)

collection.filter(bbox=(-74, 30, -70, 38)).filter(end=datetime.utcnow())

您还可以将多个过滤类型组合成一个 filter 调用

collection.filter(bbox=(-74, 30, -70, 38), end=datetime.utcnow())

获取数据

作为 Paegan CDM 对象

collector.collect()

作为提供者的原始响应

collector.raw()

特定功能

每个收集器都可以实现一组特定于该集合的函数。请参阅 Wiki 了解此类功能的说明。

设置

您正在使用 virtualenv,对吗?

  1. 安装 virtualenv-burrito

  2. 创建名为“pyoos-dev”的虚拟环境:mkvirtualenv -p your_python_binary pyoos-dev

  3. 开始使用您的新虚拟环境:workon pyoos-dev

安装

Pyoos 需要 python 2.7.x 并且可在 PyPI 上使用。

安装 Pyoos 的最佳方式是通过 pip

pip install pyoos

Pyoos 需要以下 Python 库,这些库将通过 pip 下载和安装:

  • Paegan>=0.9.9

  • numpy>=1.7.0

  • scipy

  • netCDF4>=1.0.2

  • Shapely>=1.2.15

  • pytz

  • python-dateutil>=1.5

  • OWSLib(通过 pip 从 git 安装 pip install git+http://github.com/geopython/OWSLib.git

  • requests

  • Fiona==0.16.1

  • beautifulsoup4==4.2.1

  • lxml>=3.2.0

如果您的 NetCDF4 和 HDF5 库位于非常规位置,您需要将这些位置传递给 pip 命令

NETCDF4_DIR=path HDF5_DIR=path pip install pyoos

通过 pip 依赖链安装 numpy 似乎存在问题,因此您可能需要在执行上述操作之前安装 numpy

pip install numpy==1.7.0

路线图

  • 开发标准元数据概念,可能通过 SensorML 和/或 ISO 19115-2 实现

用例

提交您的用例 PR!

故障排除

Pyoos有一个谷歌群组邮件列表:https://groups.google.com/forum/#!forum/pyoos

如果您在使用Pyoos的任何功能时遇到问题,请尝试运行测试

git clone git@github.com:asascience-open/pyoos.git
cd pyoos
python setup.py test

贡献者

由以下组织支持

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