in analysis/webservice/algorithms_spark/MatchupDoms.py [0:0]
def from_edge_point(edge_point):
point = DomsPoint()
try:
x, y = wkt.loads(edge_point['point']).coords[0]
except WKTReadingError:
try:
x, y = Point(*[float(c) for c in edge_point['point'].split(' ')]).coords[0]
except ValueError:
y, x = Point(*[float(c) for c in edge_point['point'].split(',')]).coords[0]
point.longitude = x
point.latitude = y
point.time = edge_point['time']
point.source = edge_point.get('source')
point.platform = edge_point.get('platform')
point.device = edge_point.get('device')
point.file_url = edge_point.get('fileurl')
data_fields = [
'eastward_wind',
'northward_wind',
'wind_direction',
'wind_speed',
'sea_water_temperature',
'sea_water_temperature_depth',
'sea_water_salinity',
'sea_water_salinity_depth',
]
data = []
# This is for in-situ secondary points
for name in data_fields:
val = edge_point.get(name)
if val:
data.append(DataPoint(
variable_name=name,
variable_value=val
))
# This is for satellite secondary points
if 'variables' in edge_point:
data.extend([DataPoint(
variable_name=variable.variable_name,
variable_value=var_value,
cf_variable_name=variable.standard_name
) for var_value, variable in zip(
edge_point['var_values'],
edge_point['variables']
) if var_value])
point.data = data
try:
point.data_id = str(edge_point['id'])
except KeyError:
point.data_id = "%s:%s:%s" % (point.time, point.longitude, point.latitude)
return point