IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python批量下载OSTIA数据 -> 正文阅读

[Python知识库]python批量下载OSTIA数据

前言

由于OSTIA数据单次下载有数据上限,当下载多时次数据时,若一次次重新选择时次十分不方便,因此选择利用python对数据批量下载。

数据的选择

首先打开OSTIA数据网站,选择自己所需要的数据产品。(OSTIA
此处以Diurnal skin SST analyses数据为例。
在这里插入图片描述

数据产品信息选择

进入选定产品后可以看到产品的详细信息。
在这里插入图片描述
点击Data access后设置下载区域,变量,时次等信息。
在这里插入图片描述
选定结束后可以点击Download options可以看到提示下载数据上限1G.
在这里插入图片描述
点击view script,可以看到可以利用脚本下载数据说明
在这里插入图片描述
下面的命令行就是运行终端需要输入的命令,但是官方所给库有bug出现,直接输入似乎会出错,于是在官方示例上优化得到可以使用的脚本。

python脚本介绍

首先安装官方所给下载库

pip install motuclient

导入相关库

import motuclient
from motu_utils import motu_api
from datetime import datetime
from datetime import timedelta
import os

定义解构函数,将字符串解构成字典

def motu_option_parser(script_template, usr, pwd, output_filename):
    dictionary = dict(
        [e.strip().partition(" ")[::2] for e in script_template.split('--')])
    dictionary['variable'] = [value for (var, value) in [e.strip().partition(" ")[::2] for e in script_template.split('--')] if var == 'variable']  # pylint: disable=line-too-long
    for k, v in list(dictionary.items()):
        if v == '<OUTPUT_DIRECTORY>':
            dictionary[k] = '.'
        if v == '<OUTPUT_FILENAME>':
            dictionary[k] = output_filename
        if v == '<USERNAME>':
            dictionary[k] = usr
        if v == '<PASSWORD>':
            dictionary[k] = pwd
        if k in ['longitude-min', 'longitude-max', 'latitude-min', 
                 'latitude-max', 'depth-min', 'depth-max']:
            dictionary[k] = float(v)
        if k in ['date-min', 'date-max']:
            dictionary[k] = v[1:-1]
        dictionary[k.replace('-','_')] = dictionary.pop(k)
    dictionary.pop('python')
    dictionary['auth_mode'] = 'cas'
    return dictionary

定义类选项

class MotuOptions:
    def __init__(self, attrs: dict):
        super(MotuOptions, self).__setattr__("attrs", attrs)

    def __setattr__(self, k, v):
        self.attrs[k] = v

    def __getattr__(self, k):
        try:
            return self.attrs[k]
        except KeyError:
            return None

主函数部分

USERNAME = "######"
PASSWORD = "######"
script_template = 'python -m motuclient --motu https://nrt.cmems-du.eu/motu-web/Motu --service-id SST_GLO_SST_L4_NRT_OBSERVATIONS_010_001-TDS --product-id METOFFICE-GLO-SST-L4-NRT-OBS-SST-V2 --longitude-min -179.975 --longitude-max 179.975 --latitude-min 0 --latitude-max 70 --date-min "2007-01-01 12:00:00" --date-max "2022-07-18 12:00:00" --variable analysed_sst --out-dir <OUTPUT_DIRECTORY> --out-name <OUTPUT_FILENAME> --user <USERNAME> --pwd <PASSWORD>'

date_start = datetime(2007, 1, 1,)
for number in range(192):
    date_end = date_start + timedelta(days=30)
    OUTPUT_FILENAME = './OSTIA_data/' + date_start.strftime("%Y_%m_%d") + "_OSTIA_sst.nc"
    data_request_options_dict_automated = motu_option_parser(script_template, USERNAME, PASSWORD, OUTPUT_FILENAME)

    data_request_options_dict_automated["date_min"] = date_start

    data_request_options_dict_automated["date_max"] = date_end
    #date_min & date_max must change format
    motu_api.execute_request(MotuOptions(data_request_options_dict_automated))
    date_start = date_end + timedelta(days=1)
    #for loop to download multiple time

此处USERNAME,PASSWORD为账号和密码,OUTPUT_FILENAME为输出路径很文件名称,script_template为上文终端字符串,可以看到字符串中包含了产品的一些基本信息。对于其他该机构下的产品,依葫芦画瓢依旧可以完成批量下载。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:10:10  更:2022-09-13 11:10:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 13:43:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计