爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 20194|回复: 4

[源代码] python下载mdfs数据源文件

[复制链接]

新浪微博达人勋

发表于 2020-4-3 13:23:42 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
  • # -*- coding:utf-8 -*-
  • # @Author: DFY
  • # @Time: 2020/4/3 11:06
  • # @Email: 920745413@qq.com
  • # @Desc: download data from mdfs
  • import os
  • import requests
  • import datetime
  • def download_diamond(start_time, source_path, out_path):
  •     """
  •     下载micaps格式数据,保存文件为二进制格式
  •     :param start_time:  起报时间
  •     :param source_path: mdfs数据路径
  •     :param out_path: 文件输出路径
  •     :return: None
  •     """
  •     start_time_str = start_time.strftime("%Y%m%d%H")
  •     if not os.path.exists(out_path): os.makedirs(out_path)
  •     intervals = [i for i in range(0,73, 3)] + [i for i in range(78,241,6)]
  •     for interval in intervals:
  •         filename = f"{start_time_str[2:]}.{str(interval).zfill(3)}"
  •         out_filename = out_path + filename
  •        #10.xx.xx.146为mdfs数据源地址,需修改
  •         url = f"http://10.xx.xx.146:8080/DataService?requestType=getData&directory={source_path}&fileName={filename}"
  •         print(out_filename)
  •         re = requests.get(url)
  •         content = re.content
  •         for i in range(20):
  •             if content[i:i+4] == b"mdfs":
  •                 content = content[i:]
  •                 with open(out_filename, "wb") as fw:
  •                     fw.write(content)
  •                 break
  • if __name__ == '__main__':
  •     start_time = datetime.datetime(2020, 4 , 2, 20)
  •     # source_path = "ECMWF_HR/TMP_2M" #EC地面两米温度
  •     source_path = "ECMWF_HR/WIND/850"
  •     out_path = f"../data/{start_time.strftime('%Y%m%d%H')}/{source_path}/"
  •     download_diamond(start_time, source_path, out_path)

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-9-23 17:31:45 | 显示全部楼层
mark一下,
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-10-10 10:49:01 | 显示全部楼层
做个标记。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-1-18 20:17:49 | 显示全部楼层
8080不是封了吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-1-19 08:26:51 | 显示全部楼层
留个记号先,谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表