- 积分
- 38122
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-5-13
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 一大碗年糕 于 2025-4-29 11:50 编辑
SODA2.2.4的时间覆盖较长(1871-2010,NOAA-20CRv2驱动的好像是),所以有时候相较SODA3还是要用这个版本
目前IRI/LDEO Climate Data Library上的SODA2.2.4已经没有了:http://iridl.ldeo.columbia.edu/SOURCES/.CARTON-GIESE/.SODA/.v2p0p2-4/
上显示Error 404: Page Not Found
需要从http://apdrc.soest.hawaii.edu/datadoc/soda_2.2.4.php上下载,但是网站上LAS等选取界面很乱,这里采用python+OPeNDAP批量下载:- import xarray as xr
- import time
- import numpy as np
- from dask.diagnostics import ProgressBar
- from joblib import Parallel, delayed
- # 数据地址
- url = "http://apdrc.soest.hawaii.edu:80/dods/public_data/SODA/soda_pop2.2.4"
- ds = xr.open_dataset(url)
- print(ds)
复制代码
<xarray.Dataset> Size: 324GB
Dimensions: (time: 1680, lev: 40, lat: 330, lon: 720)
Coordinates:
* time (time) datetime64[ns] 13kB 1871-01-15 1871-02-15 ... 2010-12-15
* lev (lev) float64 320B 5.01 15.07 25.28 ... 5.125e+03 5.375e+03
* lat (lat) float64 3kB -75.25 -74.75 -74.25 -73.75 ... 88.25 88.75 89.25
* lon (lon) float64 6kB 0.25 0.75 1.25 1.75 ... 358.2 358.8 359.2 359.8
Data variables:
temp (time, lev, lat, lon) float32 64GB ...
salt (time, lev, lat, lon) float32 64GB ...
u (time, lev, lat, lon) float32 64GB ...
v (time, lev, lat, lon) float32 64GB ...
w (time, lev, lat, lon) float32 64GB ...
taux (time, lat, lon) float32 2GB ...
tauy (time, lat, lon) float32 2GB ...
ssh (time, lat, lon) float32 2GB ...
Attributes:
title: SODA v2.2.4 monthly means
Conventions: COARDS\nGrADS
dataType: Grid
documentation: http://apdrc.soest.hawaii.edu/datadoc/soda_2.2.4.php
history: Wed Apr 23 10:40:58 HST 2025 : imported by GrADS Data Ser...
根据自己所需变量定义下载函数,并行下载
- var = 'u'
- season = ['MAM','JJA','SON','DJF']
- S = 1
- def download_SODA(year):
- subset = ds[var].sel(time=slice(f'{year}-01-01', f'{year}-12-31')).groupby("time.season")[f'{season[S]}'].sel(lev=slice(5,1000)).sel(lat=slice(-40,40)).sel(lon=slice(30,300))
- start_time = time.time() # 开始计时
- output_file = f"SODA2.2.4_{var}_{year}_{season[S]}.nc"
- output_dir = "/data/usb0/DATA_obs/OCEAN/SODA2.2.4/"
- subset.to_netcdf(output_dir + output_file)
- elapsed = time.time() - start_time
- print(f"下载完成!用时:{elapsed:.2f} 秒")
- Parallel(n_jobs=4)(delayed(download_SODA)(year) for year in range(1900, 2011))
复制代码
|
|