示例#1
0
文件: run.py 项目: daf/larva-service
            else:
                try:
                    setattr(self, key, value)
                except Exception:
                    app.logger.exception("Unknown run config key: %s.  Ignoring." % key)

        if self.behavior:
            try:
                b = urllib2.urlopen(self.behavior)
                self.cached_behavior = json.loads(b.read())
            except:
                pass


db.register([Run])


from tables import *


# Pytables representation of a model run
class ModelResultsTable(IsDescription):
    particle    = UInt8Col()
    time        = Time32Col()
    latitude    = Float32Col()
    longitude   = Float32Col()
    depth       = Float32Col()
    u_vector    = Float32Col()
    v_vector    = Float32Col()
    w_vector    = Float32Col()
            geo = loads(self.bbox)
        else:
            return marker_positions

        THRESHOLD=100000

        # Google maps is y,x not x,y
        if isinstance(geo, Point):
            marker_positions.append((geo.coords[0][1], geo.coords[0][0]))
        elif isinstance(geo, list):
            total = 0
            for g in geo:
                if isinstance(g, Polygon):
                    total += len(g.exterior.coords)
                    if total > THRESHOLD:
                        return None
                    marker_positions.append([(pt[1], pt[0]) for pt in g.exterior.coords])
                elif isinstance(g, MultiPolygon):
                    for subg in g:
                        total += len(subg.exterior.coords)
                        if total > THRESHOLD:
                            return None
                        marker_positions.append([(pt[1], pt[0]) for pt in subg.exterior.coords])
        else:
            for pt in geo.exterior.coords:
                marker_positions.append((pt[1], pt[0]))

        return marker_positions

db.register([Shoreline])
示例#3
0
            for k, v in variables.items():
                # Strip out numpy arrays into BSON encodable things.
                cleaned_var = { key : clean(value) for key, value in v.items() }
                cleaned_info[k] = cleaned_var

            self.variables = cleaned_info

        except:
            app.logger.warning("Could not calculate bounds for this dataset")
            raise

    def google_maps_coordinates(self):
        marker_positions = []
        if self.geometry:
            geo = loads(self.geometry)
        elif self.bbox:
            geo = loads(self.bbox)
        else:
            return marker_positions

        if isinstance(geo, Point):
            marker_positions.append((geo.coords[0][1], geo.coords[0][0]))
        else:
            for pt in geo.exterior.coords:
                # Google maps is y,x not x,y
                marker_positions.append((pt[1], pt[0]))

        return marker_positions

db.register([Dataset])