美国海洋大气管理局国家数据浮标中心包装器
项目描述
Buoyant
Buoyant是一个Python包装器,用于从国家浮标数据中心获取浮标数据。它解析来自SDF端点的CSV文件和来自BuoyCam服务的图像。
浮力示例
> from buoyant import Buoy
> buoy = Buoy(13010)
使用站点ID构建Buoy对象。它是一个字母数字代码。如果是数字,整数就足够了。
更多示例
> from buoyant import Buoy
> buoy = Buoy('0Y2W3')
> buoy.air_pressure_at_sea_level
Observation(1014.1, 'hPa')
```
Get buoy location.
```python
> buoy.coords
(44.794, -87.313)
```
Get the time the measurements were made. This can be some time ago!
```python
> buoy.air_pressure_at_sea_level.datetime
datetime.datetime(2015, 8, 18, 11, 40, tzinfo=<UTC>)
```
Not all stations report all data at all times. Be prepared to handle empty attributes.
```python
> buoy.wave_height
None
```
Clear the buoy object's data dictionary. This isn't very useful, since the buoys update only every hour or so.
```
> buoy.refresh()
Observation
对象是一个数字值(一个float
),具有两个额外的属性,unit
和value
。通常,unit
是公制单位或单位的组合的缩写。您可以使用Observation
对象就像使用数字对象一样,并在格式化时使用value
或unit
字段。
> pressure = buoy.air_pressure_at_sea_level
Observation(1014.1, 'hPa')
> min(pressure, 1020)
Observation(1014.1, 'hPa')
> '{0.value} [{0.unit}]'.format(pressure)
'1014.1 [hPa]'
图像
一些浮标有摄像头!如果浮标没有活动摄像头,将返回NBDC提供的占位符图像。
> station = Buoy(41009)
> station.image_url
'http://www.ndbc.noaa.gov/images/buoycam/Z14C_2014_11_01_2200.jpg'
将图像保存为文件'out.jpg'
> station.write_image('out.jpg')
获取原始图像作为BytesIO
对象
> station.image
<_io.BytesIO object>
> station.url
'http://www.ndbc.noaa.gov/station_page.php?station=41009'
无数据
浮标可能缺少某些数据字段有两种方式。要么没有最近的观测数据,要么该浮标没有观测该数据。
> buoy = Buoy('0Y2W3')
> buoy.winds
# None, because while this is usually recorded, it hasn't been lately.
> sturgeon.waves
None
包含的测量
- 海平面气压
- 空气温度
- 流速
- 海面以下海底深度
- 海水电导率
- 海水盐度
- 海水温度
- 波浪
- 风速
流速、波浪和风
波浪和风数据有多个数据点,以dict
的形式返回。
电流数据以不同时间/深度的信息作为list
的dict
返回。在NBDC网站上没有很好地记录,所以祝你好运!
兼容性
Buoyant兼容Python 3.5及以上版本。
许可证
Buoyant遵循GPL许可。