lb_toolkits.download.downloadTANSAT 源代码

# -*- coding:utf-8 -*-
'''
@Project     : lb_toolkits

@File        : downloadTANSAT.py

@Modify Time :  2023/3/13 10:53   

@Author      : Lee    

@Version     : 1.0   

@Description :

'''
import os
import datetime


from lb_toolkits.utils import spiderdownload
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
[文档] class downloadTANSAT(): def __init__(self, outdir=None, startdate=None, enddate=None, obstype='ND', timeout=5 * 60, skip=False, cover=False): logger.warning('原下载地址暂停服务,将提供百度云下载方式') logger.info(r'百度云下载地址:https://pan.baidu.com/s/1vzWoD8IlMTC--T5o4qmVjA?pwd=1234') return if startdate is not None and enddate is not None : filelist = self.searchfile(startdate, enddate, obstype=obstype) for item in filelist : self.download(outdir, item, timeout=timeout, skip_download=skip, cover=cover)
[文档] def searchfile(self, startdate, enddate, obstype='ND'): logger.warning(r'百度云下载地址:https://pan.baidu.com/s/1vzWoD8IlMTC--T5o4qmVjA?pwd=1234') return [] downfilelist = [] nowdate = startdate while nowdate <= enddate : url = 'https://zheda.oss-cn-beijing.aliyuncs.com/casa_data/TanSat/L2_XCO2/{YYYY}{MM}/' \ 'TanSat_ACGS_SCI_{obstype}_L2_XCO2_lite_{YYYY}{MM}{DD}.nc'.format( YYYY=nowdate.strftime('%Y'), MM=nowdate.strftime('%m'), DD=nowdate.strftime('%d'), obstype=obstype) nowdate += datetime.timedelta(days=1) downfilelist.append(url) # res=requests.get(url, timeout=60) # if res.status_code == 200: # print(url) # downfilelist.append(url) # else: # pass # print('未匹配到文件', nowdate) return downfilelist
[文档] def download(self, outdir, url, timeout=5 * 60, skip=False, cover=False): ''' 根据输入url下载相应的文件 Parameters ---------- outdir: str 输出路径 url : str 下载链接 timeout : int 时间限制 skip : bool 是否不做数据下载,直接返回文件名。默认是FALSE,下载文件。 Returns ------- str 下载数据的文件名 ''' if not os.path.isdir(outdir) : os.makedirs(outdir, exist_ok=True) down = spiderdownload() filename = down.download(outdir, url, timeout=timeout, skip_download=skip, cover=cover) try: filesize = os.path.getsize(filename) if filesize < 500 : os.remove(filename) return filename except BaseException : pass