Exemple #1
0
def dload_grib_files(grib_files, tropo_model='ERA5', snwe=None):
    """Download weather re-analysis grib files using PyAPS
    Parameters: grib_files : list of string of grib files
    Returns:    grib_files : list of string
    """
    print(
        '\n------------------------------------------------------------------------------'
    )
    print('downloading weather model data using PyAPS ...')

    # Get date list to download (skip already downloaded files)
    grib_files_exist = check_exist_grib_file(grib_files, print_msg=True)
    grib_files2dload = sorted(list(set(grib_files) - set(grib_files_exist)))
    date_list2dload = [
        str(re.findall('\d{8}', i)[0]) for i in grib_files2dload
    ]
    print('number of grib files to download: %d' % len(date_list2dload))
    print(
        '------------------------------------------------------------------------------\n'
    )

    # Download grib file using PyAPS
    if len(date_list2dload) > 0:
        hour = re.findall('\d{8}[-_]\d{2}',
                          grib_files2dload[0])[0].replace('-',
                                                          '_').split('_')[1]
        grib_dir = os.path.dirname(grib_files2dload[0])

        # try 3 times to download, then use whatever downloaded to calculate delay
        i = 0
        while i < 3:
            i += 1
            try:
                if tropo_model in ['ERA5', 'ERAINT']:
                    pa.ECMWFdload(date_list2dload,
                                  hour,
                                  grib_dir,
                                  model=tropo_model,
                                  snwe=snwe,
                                  flist=grib_files2dload)

                elif tropo_model == 'MERRA':
                    pa.MERRAdload(date_list2dload, hour, grib_dir)

                elif tropo_model == 'NARR':
                    pa.NARRdload(date_list2dload, hour, grib_dir)
            except:
                pass

    # check potentially corrupted files
    grib_files = check_exist_grib_file(grib_files, print_msg=False)
    return grib_files
Exemple #2
0
def dload_grib_files(grib_files, tropo_model='ERA5', snwe=None):
    """Download weather re-analysis grib files using PyAPS
    Parameters: grib_files : list of string of grib files
    Returns:    grib_files : list of string
    """
    print('\n------------------------------------------------------------------------------')
    print('downloading weather model data using PyAPS ...')

    # Get date list to download (skip already downloaded files)
    grib_files_exist = check_exist_grib_file(grib_files, print_msg=True)
    grib_files2dload = sorted(list(set(grib_files) - set(grib_files_exist)))
    date_list2dload = [str(re.findall('\d{8}', os.path.basename(i))[0]) for i in grib_files2dload]
    print('number of grib files to download: %d' % len(date_list2dload))
    print('------------------------------------------------------------------------------\n')

    # Download grib file using PyAPS
    if len(date_list2dload) > 0:
        hour = re.findall('\d{8}[-_]\d{2}', os.path.basename(grib_files2dload[0]))[0].replace('-', '_').split('_')[1]
        grib_dir = os.path.dirname(grib_files2dload[0])

        # Check for non-empty account info in PyAPS config file
        check_pyaps_account_config(tropo_model)

        # try 3 times to download, then use whatever downloaded to calculate delay
        i = 0
        while i < 3:
            i += 1
            try:
                if tropo_model in ['ERA5', 'ERAINT']:
                    pa.ECMWFdload(date_list2dload, hour, grib_dir,
                                  model=tropo_model,
                                  snwe=snwe,
                                  flist=grib_files2dload)

                elif tropo_model == 'MERRA':
                    pa.MERRAdload(date_list2dload, hour, grib_dir)

                elif tropo_model == 'NARR':
                    pa.NARRdload(date_list2dload, hour, grib_dir)
            except:
                if i < 3:
                    print('WARNING: the {} attampt to download failed, retry it.\n'.format(i))
                else:
                    print('\n\n'+'*'*50)
                    print('WARNING: downloading failed for 3 times, stop trying and continue.')
                    print('*'*50+'\n\n')
                pass

    # check potentially corrupted files
    grib_files = check_exist_grib_file(grib_files, print_msg=False)
    return grib_files
Exemple #3
0
import pyaps3 as pa
import numpy as np
import matplotlib.pyplot as plt
import sys

print('------------------------------------------------')
print('You are using PyAPS from %s' % pa.__file__)
print('------------------------------------------------')

print('Testing Download Methods')
print('Testing ECMWF Downloads')
pa.ECMWFdload(['20150503'], '00', './ECMWF', 'interim', 'fc')

print 'Testing NARR Downloads'
pa.NARRdload(['20040526', '20030426'], '12', './NARR/')

print 'Testing ERA@UCAR Downloads'
pa.ERAdload(['20050708', '20041201'], '12', './ERA/')

print('Downloads OK')
print('------------------------------------------------')
print('------------------------------------------------')

print('Testing ECMWF in Radar geometry, with a RMG dem')
aps1 = pa.PyAPS_rdr(
    'ECMWF/ERA-Int_20150503_12.grb',
    '/data/angel/TestISCE/stack/INTERFEROGRAMS/hgt.9alks_27rlks.full.rdr',
    grib='ECMWF',
    verb=True)
aps2 = pa.PyAPS_rdr('ECMWF/ERA-Int_20040526_12.grb',
                    'dem_16rlks.hgt',
Exemple #4
0
#!/usr/bin/env python
# Author: Zhang Yunjun, Nov 15, 2021

import os
import pyaps3 as pa

print('------------------------------------------------')
print('import pyaps3 from {}'.format(pa.__file__))
print('------------------------------------------------')
print('test ERA5 data download')
print(
    'NOTE: Account setup is required on the Copernicus Climate Data Store (CDS).'
)
print(
    '      More detailed info can be found on: https://retostauffer.org/code/Download-ERA5/'
)
print('      Add your account info to ~/.cdsapirc file.')
filedir = os.path.join(os.path.dirname(__file__), 'data', 'ERA5')
pa.ECMWFdload(['20200601', '20200901'],
              hr='14',
              filedir=filedir,
              model='ERA5',
              snwe=(30, 40, 120, 140))

print('------------------------------------------------')
print('Downloads OK')
print('------------------------------------------------')