hycom美国海军实验室海洋温度爬虫

4. 海水温度

HYCOM模式数据。起止时间:2014年1月1日至2024年9月4日。时间分辨率:3小时。空间分辨率:0.04度。覆盖范围:全球。

数据来源:美国海军实验室(Naval Research Laboratory: Ocean Dynamics and Prediction Branch)。https://www.hycom.org/dataserver/gofs-3pt1/analysis。

import requests

import warnings

import urllib3

from datetime import datetime, timedelta

import os

urllib3.disable_warnings()

warnings.filterwarnings('ignore')

base_url = 'https://data.hycom.org/datasets/GLBv0.08/expt_56.3/data/{year}/'

start_date = datetime(2014,7 , 1)

end_date = datetime(2016, 12, 31, 12)

def generate_dates():

    current_date = datetime(start_date.year, start_date.month, start_date.day, 12)

    while current_date <= end_date:

        yield current_date

        current_date += timedelta(days=1)

def format_date(date):

    return date.strftime('%Y%m%d%H')

def download_file(url, filename):

    try:

        session = requests.Session()

        session.verify = False

        session.mount('https://', requests.adapters.HTTPAdapter(max_retries=3))

        response = session.get(url, stream=True, verify=False, proxies={'http': None, 'https': None})

        response.raise_for_status()

        with open(filename, 'wb') as f:

            for chunk in response.iter_content(chunk_size=8192):

                f.write(chunk)

        print(f'成功下载: {filename}')

    except Exception as e:

        print(f'下载失败 {filename}: {e}')

for date in generate_dates():

    year = date.year

    date_str = format_date(date)

    filename = f'hycom_GLBv0.08_563_{date_str}_t000.nc'

    url = f'{base_url.format(year=year)}{filename}'

   

    os.makedirs(str(year), exist_ok=True)

    download_file(url, os.path.join(str(year), filename))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值