diff --git a/bin/xmet-nexrad-archive b/bin/xmet-nexrad-archive index 3f1b777..46f3db3 100755 --- a/bin/xmet-nexrad-archive +++ b/bin/xmet-nexrad-archive @@ -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.archive import Archive +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 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 = Archive(getattr(args, 'archive-dir'), bucket) +archive = NEXRADArchive(getattr(args, 'archive-dir'), bucket) exclude = None types = None diff --git a/lib/xmet/archive.py b/lib/xmet/nexrad.py similarity index 88% rename from lib/xmet/archive.py rename to lib/xmet/nexrad.py index 340e1c6..2090457 100644 --- a/lib/xmet/archive.py +++ b/lib/xmet/nexrad.py @@ -7,7 +7,7 @@ from xmet.db import Database from xmet.s3 import S3Bucket, S3_KEY_RE from xmet.radar import RADAR_RANGE -class ArchiveDateError(Exception): +class NEXRADArchiveDateError(Exception): def __init__(self, supplied: str, missing: str): self.supplied = supplied self.missing = missing @@ -15,15 +15,15 @@ class ArchiveDateError(Exception): def __str__(self): return "Archive {self.supplied} was supplied, but required {self.missing} is missing" -class ArchiveProductType(enum.Enum): +class NEXRADArchiveProductType(enum.Enum): DEFAULT = 1 V03 = 3 V04 = 4 -class ArchiveProduct(): +class NEXRADArchiveProduct(): __slots__ = 'typeof', 'radar', 'timestamp', - typeof: ArchiveProductType + typeof: NEXRADArchiveProductType radar: str timestamp: datetime.datetime @@ -43,9 +43,9 @@ class ArchiveProduct(): def __str__(self): ret = '/'.join(self.__parts__()) - if self.typeof == ArchiveProductType.V03: + if self.typeof == NEXRADArchiveProductType.V03: ret += "_V03" - elif self.typeof == ArchiveProductType.V04: + elif self.typeof == NEXRADArchiveProductType.V04: ret += "_V04" ret += ".gz" @@ -56,9 +56,9 @@ class ArchiveProduct(): parts = self.__parts__() ret = os.path.join(*parts) - if self.typeof == ArchiveProductType.V03: + if self.typeof == NEXRADArchiveProductType.V03: ret += "_V03" - elif self.typeof == ArchiveProductType.V04: + elif self.typeof == NEXRADArchiveProductType.V04: ret += "_V04" ret += ".gz" @@ -70,7 +70,7 @@ class ArchiveProduct(): @staticmethod def from_s3_key(key: str): - product = ArchiveProduct() + product = NEXRADArchiveProduct() match = S3_KEY_RE.match(key) product.timestamp = datetime.datetime( @@ -84,8 +84,8 @@ class ArchiveProduct(): ) product.radar = match[4] - product.typeof = ArchiveProductType.V03 \ - if key[-7:] == '_V03.gz' else ArchiveProductType.DEFAULT + product.typeof = NEXRADArchiveProductType.V03 \ + if key[-7:] == '_V03.gz' else NEXRADArchiveProductType.DEFAULT return product @@ -116,7 +116,7 @@ class ArchiveProduct(): return result['num'] == 1 -class Archive(): +class NEXRADArchive(): path: str bucket: S3Bucket @@ -148,10 +148,10 @@ class Archive(): parts = [self.path] if day is not None and month is None: - raise ArchiveDateError('day', 'month') + raise NEXRADArchiveDateError('day', 'month') if month is not None and year is None: - raise ArchiveDateError('month', 'year') + raise NEXRADArchiveDateError('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 Archive(): month: int=None, day: int=None): for key in self.each_downloaded_key(year, month, day): - yield ArchiveProduct.from_s3_key(key) + yield NEXRADArchiveProduct.from_s3_key(key)