一个用于收集气象/海洋观测的Python库
项目描述
注意:Pyoos是一个非常正在进行中的项目,在1.0版本发布之前应被视为实验性的!
Pyoos旨在满足为通过许多不同网站和web服务公开提供的气象/海洋数据创建高级数据收集库的需求。
Pyoos将收集并解析以下数据服务到Paegan离散几何CDM
IOOS SWE SOS 1.0 服务
示例: IOOS 52N 实例: ioossos.axiomalaska.com/52n-sos-ioos-stable
NERRS 观测 - SOAP
NDBC 观测 - SOS
CO-OPS 观测 - SOS
STORET 水质 - WqxOutbound 通过 REST (waterqualitydata.us)
USGS NWIS 水质 - WqxOutbound 通过 REST (waterqualitydata.us)
USGS 瞬时值 - WaterML 通过 REST
NWS AWC 观测 - XML 通过 REST (http://www.aviationweather.gov)
HADS (http://www.nws.noaa.gov/oh/hads/ - 数据限制为 7 天滚动窗口)
通用接口
数据过滤
地理
按经纬度范围过滤
# (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,对吗?
创建名为“pyoos-dev”的虚拟环境:mkvirtualenv -p your_python_binary pyoos-dev
开始使用您的新虚拟环境: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
贡献者
Kyle Wilcox kyle@axiomdatascience.com
Sean Cowan scowan@asascience.com
Alex Crosby acrosby@asascience.com
Dave Foster dave@axiomdatascience.com
Filipe Pires Alvarenga Fernandes ocefpaf@gmail.com
版权和许可
版权(C)2012-2016 RPS ASA
此文件是Pyoos的一部分。
Pyoos是免费软件:您可以在自由软件基金会的GNU较小通用公共许可证的条款下重新分发和/或修改它,许可证版本为3,或者(根据您的选择)许可证的任何后续版本。
Pyoos的发布旨在使其有用,但没有任何保证;甚至没有关于其商业性或适用于特定目的的暗示保证。有关详细信息,请参阅GNU较小通用公共许可证。
您应已收到随Pyoos一起提供的GNU较小通用公共许可证副本。如果没有,请参阅https://gnu.ac.cn/licenses/。
项目详情
pyoos-0.8.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c808f31b0a58232e8e20c2e47c9d83112a98fc9e3f8d521639b1f3b6e0f2f28a |
|
MD5 | 0bda9327ee90e835e8ebc54ad4d02a0c |
|
BLAKE2b-256 | 06ab92a8b4763e4274c942aa669cbca5602f0d125ecca29479cbcca45a69bfae |