Compare commits
No commits in common. "6d1b47ebee166ca3fbdbdbb3311e838fbb804528" and "540555e4b53431ef1a649ec6688ce9a96601a505" have entirely different histories.
6d1b47ebee
...
540555e4b5
3 changed files with 22 additions and 22 deletions
|
@ -2,11 +2,11 @@
|
|||
|
||||
import argparse
|
||||
|
||||
from xmet.config import Config
|
||||
from xmet.db import Database
|
||||
from xmet.s3 import S3Bucket
|
||||
from xmet.storm import StormEvent
|
||||
from xmet.nexrad import NEXRADArchive
|
||||
from xmet.config import Config
|
||||
from xmet.db import Database
|
||||
from xmet.s3 import S3Bucket
|
||||
from xmet.storm import StormEvent
|
||||
from xmet.archive import Archive
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description = 'Archive NEXRAD Level II data from Amazon S3'
|
||||
|
@ -27,7 +27,7 @@ args = parser.parse_args()
|
|||
config = Config.load()
|
||||
db = Database.from_config(config)
|
||||
bucket = S3Bucket()
|
||||
archive = NEXRADArchive(getattr(args, 'archive-dir'), bucket)
|
||||
archive = Archive(getattr(args, 'archive-dir'), bucket)
|
||||
exclude = None
|
||||
types = None
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ args = argparser.parse_args()
|
|||
config = Config.load()
|
||||
db = Database.from_config(config)
|
||||
|
||||
conus = SPCOutlookMap(dark=args.dark)
|
||||
conus = SPCOutlookMap(args.dark)
|
||||
|
||||
if args.file is None:
|
||||
if args.valid is None or args.day is None:
|
||||
|
|
|
@ -7,7 +7,7 @@ from xmet.db import Database
|
|||
from xmet.s3 import S3Bucket, S3_KEY_RE
|
||||
from xmet.radar import RADAR_RANGE
|
||||
|
||||
class NEXRADArchiveDateError(Exception):
|
||||
class ArchiveDateError(Exception):
|
||||
def __init__(self, supplied: str, missing: str):
|
||||
self.supplied = supplied
|
||||
self.missing = missing
|
||||
|
@ -15,15 +15,15 @@ class NEXRADArchiveDateError(Exception):
|
|||
def __str__(self):
|
||||
return "Archive {self.supplied} was supplied, but required {self.missing} is missing"
|
||||
|
||||
class NEXRADArchiveProductType(enum.Enum):
|
||||
class ArchiveProductType(enum.Enum):
|
||||
DEFAULT = 1
|
||||
V03 = 3
|
||||
V04 = 4
|
||||
|
||||
class NEXRADArchiveProduct():
|
||||
class ArchiveProduct():
|
||||
__slots__ = 'typeof', 'radar', 'timestamp',
|
||||
|
||||
typeof: NEXRADArchiveProductType
|
||||
typeof: ArchiveProductType
|
||||
radar: str
|
||||
timestamp: datetime.datetime
|
||||
|
||||
|
@ -43,9 +43,9 @@ class NEXRADArchiveProduct():
|
|||
def __str__(self):
|
||||
ret = '/'.join(self.__parts__())
|
||||
|
||||
if self.typeof == NEXRADArchiveProductType.V03:
|
||||
if self.typeof == ArchiveProductType.V03:
|
||||
ret += "_V03"
|
||||
elif self.typeof == NEXRADArchiveProductType.V04:
|
||||
elif self.typeof == ArchiveProductType.V04:
|
||||
ret += "_V04"
|
||||
|
||||
ret += ".gz"
|
||||
|
@ -56,9 +56,9 @@ class NEXRADArchiveProduct():
|
|||
parts = self.__parts__()
|
||||
ret = os.path.join(*parts)
|
||||
|
||||
if self.typeof == NEXRADArchiveProductType.V03:
|
||||
if self.typeof == ArchiveProductType.V03:
|
||||
ret += "_V03"
|
||||
elif self.typeof == NEXRADArchiveProductType.V04:
|
||||
elif self.typeof == ArchiveProductType.V04:
|
||||
ret += "_V04"
|
||||
|
||||
ret += ".gz"
|
||||
|
@ -70,7 +70,7 @@ class NEXRADArchiveProduct():
|
|||
|
||||
@staticmethod
|
||||
def from_s3_key(key: str):
|
||||
product = NEXRADArchiveProduct()
|
||||
product = ArchiveProduct()
|
||||
match = S3_KEY_RE.match(key)
|
||||
|
||||
product.timestamp = datetime.datetime(
|
||||
|
@ -84,8 +84,8 @@ class NEXRADArchiveProduct():
|
|||
)
|
||||
|
||||
product.radar = match[4]
|
||||
product.typeof = NEXRADArchiveProductType.V03 \
|
||||
if key[-7:] == '_V03.gz' else NEXRADArchiveProductType.DEFAULT
|
||||
product.typeof = ArchiveProductType.V03 \
|
||||
if key[-7:] == '_V03.gz' else ArchiveProductType.DEFAULT
|
||||
|
||||
return product
|
||||
|
||||
|
@ -116,7 +116,7 @@ class NEXRADArchiveProduct():
|
|||
|
||||
return result['num'] == 1
|
||||
|
||||
class NEXRADArchive():
|
||||
class Archive():
|
||||
path: str
|
||||
bucket: S3Bucket
|
||||
|
||||
|
@ -148,10 +148,10 @@ class NEXRADArchive():
|
|||
parts = [self.path]
|
||||
|
||||
if day is not None and month is None:
|
||||
raise NEXRADArchiveDateError('day', 'month')
|
||||
raise ArchiveDateError('day', 'month')
|
||||
|
||||
if month is not None and year is None:
|
||||
raise NEXRADArchiveDateError('month', 'year')
|
||||
raise ArchiveDateError('month', 'year')
|
||||
|
||||
for cur_year in os.scandir(os.path.join(*parts)):
|
||||
if not (cur_year.is_dir() and self.RE_YEAR.match(cur_year.name)):
|
||||
|
@ -205,4 +205,4 @@ class NEXRADArchive():
|
|||
month: int=None,
|
||||
day: int=None):
|
||||
for key in self.each_downloaded_key(year, month, day):
|
||||
yield NEXRADArchiveProduct.from_s3_key(key)
|
||||
yield ArchiveProduct.from_s3_key(key)
|
Loading…
Add table
Reference in a new issue