一个简单的Python库,用于查找EPIC代码的CF标准名称等效项。
项目描述
# epic2cf
#### 一个简单的Python库,用于查找EPIC代码的CF标准名称等效项。
[EPIC代码](http://www.epic.noaa.gov/epic/document/epickey.htm)
[CF标准名称](http://cfconventions.org/Data/cf-standard-names/28/build/cf-standard-name-table.html)
## 安装
##### 稳定版
pip安装epic2cf
##### 开发版
pip install git+https://github.com/axiom-data-science/epic2cf.git
## 使用
##### 返回内容
从`get`调用返回一个类似`dict`的对象,包含以下内容
```python
{
'cell_methods': None, # 如果此变量有与它关联的cell_methods
'cf_units': None, # CF标准名称的单位
'convert': None, # 从EPIC到CF转换值的功能
'long_name': None, # 变量的描述
'standard_name': None, # CF标准名称
'units': None # EPIC单位
}
```
##### 从EPIC代码获取CF映射
```python
from epic2cf import mapping
mapping.get(18)
{
'cell_methods': None,
'cf_units': 'm',
'convert': <function epic2cf.data.<lambda>>,
'long_name': '海面高度',
'standard_name': 'sea_surface_height',
'units': 'm'
}
mapping.get(26)
{
'cell_methods': 'time: minimum',
'cf_units': 'K',
'convert': <function epic2cf.data.<lambda>>,
'long_name': '水温',
'standard_name': 'sea_water_temperature',
'units': 'degree_Celsius'
}
```
##### 将现有的EPIC值转换为CF值
###### 将numpy数组传递给convert函数
```python
import numpy as np
from epic2cf import mapping
epic = mapping.get(9)
print epic
{
'cell_methods': None,
'cf_units': 'dbar',
'convert': <function epic2cf.data.<lambda>>,
'long_name': '海水压力',
'standard_name': 'sea_water_pressure',
'units': 'mbar'
}
values = np.random.random(6)
打印 values # EPIC 值,单位为 'mbar'
array([ 0.57136167, 0.98046873, 0.64963954, 0.39981203, 0.72433581, 0.16820297])
cf_values = epic.convert(values)
打印 cf_values # CF 值,单位为 'dbar'
array([ 0.00571362, 0.00980469, 0.0064964 , 0.00399812, 0.00724336, 0.00168203])
```
## 贡献
并非所有 EPIC 代码都已映射到 CF 标准。如果您需要
尚未进行的映射,您可以执行以下操作之一
1. 创建一个关于您希望映射的 EPIC 代码编号的问题,并尽可能多的
关于变量的信息(如何使用,单位等)。
这些信息可能需要一段时间才能包含在 `epic2cf` 中,尤其是如果我们
无法验证到 CF 的正确映射。
2. 分叉仓库并将映射添加到 `epic2cf/data.py` 中。
我会很快接受更新映射的拉取请求。
#### 一个简单的Python库,用于查找EPIC代码的CF标准名称等效项。
[EPIC代码](http://www.epic.noaa.gov/epic/document/epickey.htm)
[CF标准名称](http://cfconventions.org/Data/cf-standard-names/28/build/cf-standard-name-table.html)
## 安装
##### 稳定版
pip安装epic2cf
##### 开发版
pip install git+https://github.com/axiom-data-science/epic2cf.git
## 使用
##### 返回内容
从`get`调用返回一个类似`dict`的对象,包含以下内容
```python
{
'cell_methods': None, # 如果此变量有与它关联的cell_methods
'cf_units': None, # CF标准名称的单位
'convert': None, # 从EPIC到CF转换值的功能
'long_name': None, # 变量的描述
'standard_name': None, # CF标准名称
'units': None # EPIC单位
}
```
##### 从EPIC代码获取CF映射
```python
from epic2cf import mapping
mapping.get(18)
{
'cell_methods': None,
'cf_units': 'm',
'convert': <function epic2cf.data.<lambda>>,
'long_name': '海面高度',
'standard_name': 'sea_surface_height',
'units': 'm'
}
mapping.get(26)
{
'cell_methods': 'time: minimum',
'cf_units': 'K',
'convert': <function epic2cf.data.<lambda>>,
'long_name': '水温',
'standard_name': 'sea_water_temperature',
'units': 'degree_Celsius'
}
```
##### 将现有的EPIC值转换为CF值
###### 将numpy数组传递给convert函数
```python
import numpy as np
from epic2cf import mapping
epic = mapping.get(9)
print epic
{
'cell_methods': None,
'cf_units': 'dbar',
'convert': <function epic2cf.data.<lambda>>,
'long_name': '海水压力',
'standard_name': 'sea_water_pressure',
'units': 'mbar'
}
values = np.random.random(6)
打印 values # EPIC 值,单位为 'mbar'
array([ 0.57136167, 0.98046873, 0.64963954, 0.39981203, 0.72433581, 0.16820297])
cf_values = epic.convert(values)
打印 cf_values # CF 值,单位为 'dbar'
array([ 0.00571362, 0.00980469, 0.0064964 , 0.00399812, 0.00724336, 0.00168203])
```
## 贡献
并非所有 EPIC 代码都已映射到 CF 标准。如果您需要
尚未进行的映射,您可以执行以下操作之一
1. 创建一个关于您希望映射的 EPIC 代码编号的问题,并尽可能多的
关于变量的信息(如何使用,单位等)。
这些信息可能需要一段时间才能包含在 `epic2cf` 中,尤其是如果我们
无法验证到 CF 的正确映射。
2. 分叉仓库并将映射添加到 `epic2cf/data.py` 中。
我会很快接受更新映射的拉取请求。
项目详情
关闭
epic2cf-0.0.4.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8c1c023f05eb67e9fef5cb4edc1e4974ece19897aed3a58911e5c07f1db8b7b5 |
|
MD5 | f57f118b217f4aece9b6fdbe78784b45 |
|
BLAKE2b-256 | d04cf2ca1eefc41ec2a24f3c9e6fa64c0ecf52cd233c630dafcb82d90c4a5b30 |