Esempio n. 1
0
def test_time():

    cfg = load_sys_cfg()

    g = NAM218(cfg)

    cycle_start_esmf = "2005-01-05_00:00:00"
    cycle_start = esmf_to_utc(cycle_start_esmf)
    from_utc = esmf_to_utc("2005-01-05_00:00:00")
    to_utc = esmf_to_utc("2005-01-06_22:00:0")

    print(cycle_start.year, cycle_start.month, cycle_start.day,
          cycle_start.hour)

    fc_hours = int((to_utc - cycle_start).total_seconds()) / 3600

    delta = from_utc - cycle_start
    print(str(delta))
    print(delta.days, delta.seconds, delta.total_seconds())
    print((to_utc - cycle_start).total_seconds())
    print(timedelta_hours(to_utc - cycle_start))
    print(timedelta_hours(to_utc - cycle_start, False))

    fc_start, fc_hours = g.forecast_times(cycle_start, from_utc, to_utc)
    print('fc_start = ', fc_start)
    print('fc_hours = ', fc_hours)
    fc_list, colmet_list_utc = g.file_times(cycle_start, fc_start, fc_hours)
    grib_files, colmet_prefix, colmet_files = g.file_names(
        cycle_start, fc_list, colmet_list_utc)
    print('fc_list = ', fc_list)
    print('colmet_list_utc = ')
    for x in colmet_list_utc:
        print(x)
    print('grib_files = ')
    for x in grib_files:
        print(x)
    print('colmet_files = ')
    for x in colmet_files:
        print(colmet_prefix + '/' + x)
Esempio n. 2
0
            return False


    @staticmethod
    def _parse_header_timestamp(ts):
        """
        Parse a timestamp in the header, example 'Tue, 12 Apr 2016 18:51:18 GMT'.

        :param ts: the timestamp
        :return: a datetime object in UTC timezone
        """
        return datetime.strptime(ts, '%a, %d %b %Y %H:%M:%S GMT').replace(tzinfo=pytz.UTC)


if __name__ == '__main__':
    import sys

    # configure the basic logger
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

    if len(sys.argv) != 2:
        print('usage: %s <esmf_time>' % sys.argv[0])
        sys.exit(1)

    # initialize the RTMA object with standard variables
    rtma = RTMA('ingest', ['utd', 'utemp', 'precipa'])

    # try to download them
    rtma.retrieve_rtma(esmf_to_utc(sys.argv[1]))

Esempio n. 3
0
            return False


    @staticmethod
    def _parse_header_timestamp(ts):
        """
        Parse a timestamp in the header, example 'Tue, 12 Apr 2016 18:51:18 GMT'.

        :param ts: the timestamp
        :return: a datetime object in UTC timezone
        """
        return datetime.strptime(ts, '%a, %d %b %Y %H:%M:%S GMT').replace(tzinfo=pytz.UTC)


if __name__ == '__main__':
    import sys

    # configure the basic logger
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

    if len(sys.argv) != 2:
        print(('usage: %s <esmf_time>' % sys.argv[0]))
        sys.exit(1)

    # initialize the RTMA object with standard variables
    rtma = RTMA('ingest', ['utd', 'utemp', 'precipa'])

    # try to download them
    rtma.retrieve_rtma(esmf_to_utc(sys.argv[1]))

Esempio n. 4
0
        )
        sys.exit(-1)

    # configure basic logger
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s - %(levelname)s - %(message)s')

    sat_name = sys.argv[1]
    if sat_name not in vw.get_sat_wisdom_variables():
        print 'Invalid instrument/satellite name!'
        print 'supported instrument/satellite pairs:'
        for sat in vw.get_sat_wisdom_variables():
            print sat
        sys.exit(-1)

    from_utc = esmf_to_utc(sys.argv[2])
    from_utc = from_utc.replace(tzinfo=None)
    to_utc = esmf_to_utc(sys.argv[3])
    to_utc = to_utc.replace(tzinfo=None)

    ingest_dir = osp.abspath(osp.expanduser(sys.argv[4]))

    lonlat = []
    if len(sys.argv) == 9:
        lonlat = [
            float(sys.argv[5]),
            float(sys.argv[6]),
            float(sys.argv[7]),
            float(sys.argv[8])
        ]
Esempio n. 5
0
import logging
import sys
import os.path as osp

## Standalone script that can be used to simply download files
if __name__ == '__main__':
    if len(sys.argv) != 5:
        print('Usage: %s <grib_source_name> <esmf_from_utc> <esmf_to_utc> <target_directory>' % sys.argv[0])
        print('       supported GRIB sources: HRRR, NAM, NARR')
        sys.exit(-1)

    # configure the basic logger
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

    grib_src_name = sys.argv[1]
    from_utc = esmf_to_utc(sys.argv[2])
    to_utc = esmf_to_utc(sys.argv[3])
    ingest_dir = sys.argv[4]

    grib_src = None
    if grib_src_name == 'HRRR':
        grib_src = HRRR(ingest_dir)
    elif grib_src_name == 'NAM':
        grib_src = NAM218(ingest_dir)
    elif grib_src_name == 'NAM227':
        grib_src = NAM227(ingest_dir)
    elif grib_src_name == 'NARR':
        grib_src = NARR(ingest_dir)
    else:
        raise ValueError('Invalid GRIB source %s' % grib_src_name)
Esempio n. 6
0
	if len(sys.argv) == 2:
		# load input JSON
		try:
			js_input = Dict(json.load(open(sys.argv[1])))
		except IOError:
			import sys
			logging.critical('Cannot find input json file.')
			sys.exit(2)

		# inputs
		sat_sources = list(js_input["satellite_source"])
		domain = WPSDomainConf(js_input["domains"]).domains[-1]
		latloni = domain.ij_to_latlon(0,0)
		latlonf = domain.ij_to_latlon(domain.domain_size[0],domain.domain_size[1])
		bounds = (latloni[1],latlonf[1],latloni[0],latlonf[0])
		from_utc = esmf_to_utc(js_input["start_utc"])
		to_utc = esmf_to_utc(js_input["end_utc"])
	elif len(sys.argv) == 4:
		bounds = tuple([float(c) for c in sys.argv[1].split(',')])
		st = dt.datetime.strptime(sys.argv[2],'%Y%m%d%H%M%S')
		et = dt.datetime.strptime(sys.argv[3],'%Y%m%d%H%M%S')
		st_esmf = '%d-%02d-%02d_%02d:%02d:%02d' % (st.year,st.month,st.day,st.hour,st.minute,st.second)
		et_esmf = '%d-%02d-%02d_%02d:%02d:%02d' % (st.year,st.month,st.day,st.hour,st.minute,st.second)
		from_utc = esmf_to_utc(st_esmf)
		to_utc = esmf_to_utc(et_esmf)
		sat_sources = ['Terra', 'Aqua', 'SNPP']
	else:
		print('Usage: ./retrieve_sat.sh input.json')
		print('   or: ./retrieve_sat.sh coord start_time end_time')
		print('	  notes:')
		print('	  	*) coord - min_lon,max_lon,min_lat,max_lat')