一个用于收集气象/海洋观测的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 pyoosPyoos 需要以下 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 |