首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过python下载特定位置的ERA5数据?

如何通过python下载特定位置的ERA5数据?
EN

Stack Overflow用户
提问于 2020-12-08 01:10:45
回答 2查看 260关注 0票数 0

我想下载特定位置的ERA5数据(例如:北: 34.15,西:-52.28)。我没有所有方向的坐标;北、东、西和南,只有北和西。我正在尝试通过python上的api下载数据。当我将area更改为两个值(仅北向和西向)时,会收到以下错误:区域必须有4个值-处理隐藏参数时出错-报告了一些错误

如何直接下载北: 34.15,西:-52.28地理位置的数据?

代码语言:javascript
复制
 import cdsapi
    
    c = cdsapi.Client()
    
    c.retrieve(
        'reanalysis-era5-single-levels',
        {
            'product_type': 'reanalysis',
            'variable': 'maximum_individual_wave_height',
            'year': '2019',
            'month': '12',
            'day': [
                '01', '02', '03',
                '04', '05', '06',
                '07', '08', '09',
                '10', '11', '12',
                '13', '14', '15',
                '16', '17', '18',
                '19', '20', '21',
                '22', '23', '24',
                '25', '26', '27',
                '28', '29', '30',
                '31',
            ],
            'time': [
                '00:00', '01:00', '02:00',
                '03:00', '04:00', '05:00',
                '06:00', '07:00', '08:00',
                '09:00', '10:00', '11:00',
                '12:00', '13:00', '14:00',
                '15:00', '16:00', '17:00',
                '18:00', '19:00', '20:00',
                '21:00', '22:00', '23:00',
            ],
            'area': [
                34.15, -52.28, 34.14,
                -52.27,
            ],
            'format': 'netcdf',
        },
        'download.nc')
EN

回答 2

Stack Overflow用户

发布于 2020-12-09 01:01:49

我似乎记得有一个技巧可以直接实现这一点,但我找不到它,可能一直在考虑CDS工具箱中的get_point函数。同时,您也许可以通过在您的位置周围检索一个小的N、W、S、E框来解决此问题,确保边至少是ERA5分辨率的两倍,然后使用在本地提取包含您的位置的格网像元

代码语言:javascript
复制
cdo remapnn,lon/lat download.nc my_location.nc 

如果在此期间我设法找到了“诀窍”,我会更新这个答案。

票数 0
EN

Stack Overflow用户

发布于 2021-08-29 00:34:08

只需提供一个具有后面值变量并将其复制(示例代码+用于从多个位置下载数据的循环):

代码语言:javascript
复制
import cdsapi
    
COORDS = {
        "Location_1":[-35.696,  -63.758], # randomly chosen lat lon 
        "Location_2":[-34.822, -58.536]   # randomly chosen lat lon
        }


c = cdsapi.Client()
    
for station in COORDS:
  station_point_coord = COORDS[station]*2 # duplicate it
  c.retrieve(
      'reanalysis-era5-single-levels',
      {
          'product_type': 'reanalysis',
          'variable': 'maximum_individual_wave_height',
          'year': '2019',
          'month': '12',
          'day': [
              '01', '02', '03',
              '04', '05', '06',
              '07', '08', '09',
              '10', '11', '12',
              '13', '14', '15',
              '16', '17', '18',
              '19', '20', '21',
              '22', '23', '24',
              '25', '26', '27',
              '28', '29', '30',
              '31',
          ],
          'time': [
              '00:00', '01:00', '02:00',
              '03:00', '04:00', '05:00',
              '06:00', '07:00', '08:00',
              '09:00', '10:00', '11:00',
              '12:00', '13:00', '14:00',
              '15:00', '16:00', '17:00',
              '18:00', '19:00', '20:00',
              '21:00', '22:00', '23:00',
          ],
          'area': station_point_coord,
          'format': 'netcdf',
      },
      f'download_{station}.nc')

查看此网站以了解有关cdsapi的更多信息:https://confluence.ecmwf.int/display/COPSRV/CDS+API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65186216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档