站点数据

站点数据#

retrieve_obs_station 函数用于获取地面站点观测数据。

>>> import pandas as pd
>>> from nuwe_cmadaas.obs import retrieve_obs_station
>>> table = retrieve_obs_station(
...     "SURF_CHN_MUL_HOR",
...     time=[
...         pd.to_datetime("2021-01-01 00:00:00"),
...         pd.to_datetime("2021-01-02 00:00:00")
...     ],
...     config_file="cedarkit.yaml"
... )
>>> table
       Station_Id_d      Lat       Lon    Alti  ... PRE_1h  PRE_6h PRE_24h     PRS
0               631  37.9167  102.6667  1531.5  ...      0       0       0   850.4
1               631  37.9167  102.6667  1531.5  ...      0       0       0   851.7
2              7129    44.85      84.7     455  ...      0  999999  999999  999999
3              7129    44.85      84.7     455  ...      0  999999  999999  999999
4              9168  46.8472   84.1847     891  ...      0  999999  999999  999999
             ...      ...       ...     ...  ...    ...     ...     ...     ...
126047       999999  24.6462  121.0829     718  ...      0       0       0  999998
126048       999999  23.0817  120.5825     298  ...      0       0       0   986.3
126049       999999  22.8596  120.5086      44  ...      0       0       0  999998
126050       999999  24.2965  120.6431     130  ...      0       0       0  999999
126051       999999  23.0739  120.5289     274  ...      0       0       0  999998
[126052 rows x 17 columns]

API#

nuwe_cmadaas.obs.retrieve_obs_station(data_code: str = 'SURF_CHN_MUL_HOR', elements: str | None = None, time: Interval | Timestamp | List | Timedelta | None = None, station: str | List | Tuple | None = None, region: Dict | None = None, station_level: str | List[str] | None = None, order: str = 'Station_ID_d:asc', count: int | None = None, config: CMADaasConfig | str | Path | None = None, client: CMADaaSClient | None = None, **kwargs) DataFrame | MusicError#

检索地面站点观测数据资料。 对应 CMADaaS 中以 getSurfEle 开头的一系列地面资料接口。

区域筛选条件

  • 经纬度范围

{
    "type": "rect",
    "start_longitude": 115.7,
    "end_longitude": 117.4,
    "start_latitude": 41.6,
    "end_latitude": 39.4,
}
  • 流域

{
    "type": "basin",
    "basin_codes": "CJLY"
}
  • 地区

{
    "type": "region",
    "admin_codes": "110000"
}
参数:
  • data_code -- 数据种类,即 CMADaaS 中的资料代码

  • elements -- 要素字段代码,以逗号分隔。如果为 None,会自动从数据集配置文件 (默认为 nuwe_cmadaas/datasets/station.yaml) 中查找对应资料的 elements 配置项。

  • time --

    时间筛选条件,支持单个时间,时间列表,时间段和时间间隔

    • 时间对象:pd.Timestamp 类型,单个时间点,对应接口的 times 参数

    • 时间列表:typing.List[pd.Timestamp] 类型,多个时间列表,对应接口的 times 参数

    • 时间段:pd.Interval 类型,起止时间,定义区间端点是否闭合,对应接口的 timeRange 参数

    • 时间间隔:pd.Timedelta 类型,用于获取地面资料最新时次 (getSurfLatestTime),忽略其余筛选条件

  • station --

    站点筛选条件,支持字符串,列表和元组

    • 字符串:单个站点

    • 列表:多个站点

    • 元组:站点范围,二元组,第一个元素是起止站号 (minStaId),第二个元素是终止站号 (maxStaId)

  • region --

    区域筛选条件:
    • 经纬度范围 (rect)

    • 流域 (basin)

    • 地区 (region)

  • station_level --

    台站级别:
    • 011: 国家基准气候站

    • 012: 基本气象站

    • 013: 一般气象站

  • order -- 排序字段

  • count -- 最大返回记录数,对应接口的 limitCnt 参数

  • config -- 配置。配置文件路径或配置对象

  • client -- 客户端对象。默认新建,如果设置则直接使用,忽略 config 参数

  • kwargs --

    其他需要传递给 MUSIC 接口的参数,例如:
    • eleValueRanges: 要素值范围

    • hourSeparate: 小时取整条件

    • minSeparate: 分钟取整条件

返回:

站点观测资料表格数据,列名为 elements 中的值

返回类型:

pd.DataFrame