Source code for pyiem.nws.nwsli
"""National Weather Service Location Idenitifiers (NWSLI)
A class to store metadata associated with a NWSLI entry.
"""
from shapely.geometry import Point
[docs]
class NWSLI:
"""National Weather Service Location Idenitifiers (NWSLI)"""
def __init__(self, identifier, name=None, wfos=None, lon=0, lat=0):
"""Constructor
Args:
identifier(str): The string identifier for this NWSLI
name(str, optional): The free-form text name of this location
wfo(list, optional): The wfo(s) associated with this NWSLI
lon(float, optional): The longitude in decimal degrees
lat(float, optional): The latitude in decimal degress
"""
self.id = identifier
self.name = name
self.wfos = wfos if wfos is not None else []
self.geometry = Point([lon, lat])
[docs]
def get_name(self):
"""Return the name of this NWSLI, uses `self.id` if name is unset
Returns:
str: the name of this site
"""
if self.name is None:
return f"(({self.id}))"
return self.name
[docs]
def __getitem__(self, key):
"""Overload __getitem__ to return the value of the attribute"""
if key == "lat":
return self.geometry.y
if key == "lon":
return self.geometry.x
return getattr(self, key)