Source code for dnppy.download.fetch_MPE

__author__ = 'jwely'

from download_url import download_url

from datetime import timedelta, datetime
import os

__all__ = ["fetch_MPE"]


[docs]def fetch_MPE(start_dto, end_dto, outdir, area = None): """ Fetches Multisensor Precipitation Estimates data from weather/noaa server at [http://water.weather.gov/precip/p_download_new/] :param start_dto: datetime object for start date of desired range :param end_dto: datetime object for end date of desired range :param outdir: output directory where files should be saved (str) :param area: area of interest, either "conus", "ak" or "pr" for continental us, alaska, or Puerto Rico respectively :return output_files: list of output files fetched by this function """ # set defaults if area is None: area = "conus" server = "http://water.weather.gov" # use start and end datetimes to build list of dates dates = [] output_files = [] date_delta = end_dto - start_dto for i in range(date_delta.days +1): dates.append(start_dto + timedelta(days = i)) # try to download all files for dates for date in dates: workdir = "/".join([server, "precip","p_download_new", str(date.year), str(date.month).zfill(2), str(date.day).zfill(2)]) filename = "nws_precip_{0}_{1}{2}{3}.nc".format(area, str(date.year), str(date.month).zfill(2), str(date.day).zfill(2)) try: full_url = "/".join([workdir, filename]) outname = os.path.join(outdir, filename) download_url(full_url, outname) output_files.append(outname) print("Downloaded '{0}'".format(filename)) except: print("Could not find MPE data for '{0}' on {0}".format(area, date)) return output_files
if __name__ == "__main__": startdto = datetime(2015,1,1) enddto = datetime(2015,12,31) fetch_MPE(startdto, enddto, r"C:\Users\jwely\Desktop\troubleshooting\MPE")