Newer
Older
def __init__(self, shortname, fullname, coordinates=None):
self._shortname = shortname
self._fullname = fullname
if coordinates:
self._coordinates = coordinates
else:
self._coordinates = [0, 0, 0, 0]
@property
def shortname(self):
return self._shortname
@property
def fullname(self):
return self._fullname
@property
def min_lon(self):
return self._coordinates[0]
@property
def max_lon(self):
return self._coordinates[1]
@property
def min_lat(self):
return self._coordinates[2]
@property
def max_lat(self):
return self._coordinates[3]
@property
def lon(self):
return self._coordinates[0:2]
@property
def lat(self):
return self._coordinates[2:]
Global = Basin('glob', 'Global_Ocean')
Atlantic = Basin('Atl', 'Atlantic_Ocean')
NorthAtlantic = Basin('NAtl', 'North_Atlantic_Ocean')
TropicalAtlantic = Basin('TAtl', 'Tropical_Atlantic_Ocean')
Pacific = Basin('Pac', 'Pacific_Ocean')
NorthPacific = Basin('NPac', 'North_Pacific_Ocean')
TropicalPacific = Basin('TPac', 'Tropical_Pacific_Ocean')
IndoPacific = Basin('IndPac', 'Indo_Pacific_Ocean')
Indian = Basin('Ind', 'Indian_Ocean')
TropicalIndian = Basin('TInd', 'Tropical_Indian_Ocean')
Antarctic = Basin('Anta', 'Antarctic_Ocean')
Arctic = Basin('Arct', 'Arctic_Ocean')
Javier Vegas-Regidor
committed
@classmethod
def parse(cls, basin):
if isinstance(basin, Basin):
return basin
Javier Vegas-Regidor
committed
for name in cls.__dict__.keys():
if name.startswith('_'):
continue
# noinspection PyCallByClass
value = cls.__getattribute__(cls, name)
if isinstance(value, Basin):
if basin.lower() in [value.shortname.lower(), value.fullname.lower()]:
return value
return None