Exemplo n.º 1
0
class CurrentMoversBaseSchema(ProcessSchema):
    uncertain_duration = SchemaNode(Float())
    uncertain_time_delay = SchemaNode(Float())
    data_start = SchemaNode(LocalDateTime(), read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(), read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 2
0
class GridCurrentMoverSchema(CurrentMoversBaseSchema):
    filename = FilenameSchema(
        missing=drop, save=True, update=False, isdatafile=True, test_equal=False
    )
    topology_file = FilenameSchema(
        missing=drop, save=True, update=False, isdatafile=True, test_equal=False
    )
    current_scale = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    uncertain_along = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    uncertain_cross = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    extrapolate = SchemaNode(
        Bool(), missing=drop, save=True, update=True
    )
    time_offset = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    is_data_on_cells = SchemaNode(
        Bool(), missing=drop, read_only=True
    )
    data_start = SchemaNode(LocalDateTime(), read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(), read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 3
0
class WindSchema(base_schema.ObjTypeSchema):
    '''
    validate data after deserialize, before it is given back to pyGnome's
    from_dict to set _state of object
    '''
    name = SchemaNode(String(), test_equal=False)
    description = SchemaNode(String())
    filename = FilenameSchema(isdatafile=True, update=False,
                              test_equal=False)  #Thanks to CyTimeseries
    updated_at = SchemaNode(LocalDateTime())
    latitude = SchemaNode(Float())
    longitude = SchemaNode(Float())
    source_id = SchemaNode(String())
    source_type = SchemaNode(String(),
                             validator=OneOf(wind_datasources._attr),
                             default='undefined',
                             missing='undefined')
    units = SchemaNode(String(), default='m/s')
    speed_uncertainty_scale = SchemaNode(Float())
    timeseries = WindTimeSeriesSchema(
        test_equal=False
    )  #Because comparing datetimevalue2d arrays does not play nice
    extrapolation_is_allowed = SchemaNode(Boolean())
    data_start = SchemaNode(LocalDateTime(),
                            read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(),
                           read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 4
0
class PyCurrentMoverSchema(ObjTypeSchema):
    current = GeneralGnomeObjectSchema(
        acceptable_schemas=[VectorVariableSchema, GridCurrent._schema],
        save=True,
        update=True,
        save_reference=True)
    filename = FilenameSchema(missing=drop,
                              save=True,
                              update=False,
                              isdatafile=True)
    current_scale = SchemaNode(Float(), missing=drop, save=True, update=True)
    extrapolation_is_allowed = SchemaNode(Bool(),
                                          missing=drop,
                                          save=True,
                                          update=True)
    #    time_offset = SchemaNode(
    #        Float(), missing=drop, save=True, update=True
    #    )
    on = SchemaNode(Bool(), missing=drop, save=True, update=True)
    active_start = SchemaNode(LocalDateTime(),
                              missing=drop,
                              validator=convertible_to_seconds,
                              save=True,
                              update=True)
    active_stop = SchemaNode(LocalDateTime(),
                             missing=drop,
                             validator=convertible_to_seconds,
                             save=True,
                             update=True)
    data_start = SchemaNode(LocalDateTime(),
                            validator=convertible_to_seconds,
                            read_only=True)
    data_stop = SchemaNode(LocalDateTime(),
                           validator=convertible_to_seconds,
                           read_only=True)
Exemplo n.º 5
0
class CurrentCycleMoverSchema(GridCurrentMoverSchema):
    tide = TideSchema(
        missing=drop, save=True, update=True, save_reference=True
    )
    data_start = SchemaNode(LocalDateTime(), read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(), read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 6
0
class RandomMoverSchema(ProcessSchema):
    diffusion_coef = SchemaNode(Float(), save=True, update=True, missing=drop)
    uncertain_factor = SchemaNode(Float(),
                                  save=True,
                                  update=True,
                                  missing=drop)
    data_start = SchemaNode(LocalDateTime(),
                            validator=convertible_to_seconds,
                            read_only=True)
    data_stop = SchemaNode(LocalDateTime(),
                           validator=convertible_to_seconds,
                           read_only=True)
Exemplo n.º 7
0
class ProcessSchema(MappingSchema):
    '''
    base Process schema - attributes common to all movers/weatherers
    defined at one place
    '''
    on = SchemaNode(Bool(), missing=drop)
    active_start = SchemaNode(LocalDateTime(),
                              missing=drop,
                              validator=convertible_to_seconds)
    active_stop = SchemaNode(LocalDateTime(),
                             missing=drop,
                             validator=convertible_to_seconds)
Exemplo n.º 8
0
class TideSchema(base_schema.ObjTypeSchema):
    'Tide object schema'
    filename = FilenameSchema(
        save=True, update=False, isdatafile=True, test_equal=False
    )

    scale_factor = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    extrapolation_is_allowed = SchemaNode(Boolean(), missing=drop, read_only=True)
    data_start = SchemaNode(LocalDateTime(), read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(), read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 9
0
class VariableSchemaBase(base_schema.ObjTypeSchema):
    #filename
    #data?
    units = SchemaNode(String())
    time = TimeSchema(save_reference=True)
    grid = GridSchema(save_reference=True)
    data_file = FilenameSchema(isdatafile=True, test_equal=False, update=False)
    grid_file = FilenameSchema(isdatafile=True, test_equal=False, update=False)
    extrapolation_is_allowed = SchemaNode(Boolean())
    data_start = SchemaNode(LocalDateTime(),
                            read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(),
                           read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 10
0
class WindMoverSchema(WindMoversBaseSchema):
    """
    Contains properties required by UpdateWindMover and CreateWindMover
    """
    # 'wind' schema node added dynamically
    wind = GeneralGnomeObjectSchema(acceptable_schemas=[WindSchema],
                                    save=True,
                                    update=True,
                                    save_reference=True)
    data_start = SchemaNode(LocalDateTime(),
                            validator=convertible_to_seconds,
                            read_only=True)
    data_stop = SchemaNode(LocalDateTime(),
                           validator=convertible_to_seconds,
                           read_only=True)
Exemplo n.º 11
0
class BaseReleaseSchema(ObjTypeSchema):
    release_time = SchemaNode(
        LocalDateTime(),
        validator=convertible_to_seconds,
    )

    num_released = SchemaNode(Int(), read_only=True, test_equal=False)
Exemplo n.º 12
0
class BurnSchema(WeathererSchema):
    area = SchemaNode(Float(), save=True, update=True)
    thickness = SchemaNode(Float(), save=True, update=True)
    area_units = SchemaNode(String(), save=True, update=True)
    thickness_units = SchemaNode(String(), save=True, update=True)
    _oilwater_thickness = SchemaNode(Float(),
                                     missing=drop,
                                     save=True,
                                     update=True)
    _oilwater_thick_burnrate = SchemaNode(Float(),
                                          missing=drop,
                                          save=True,
                                          update=True)
    _oil_vol_burnrate = SchemaNode(Float(),
                                   missing=drop,
                                   save=True,
                                   update=True)
    efficiency = SchemaNode(Float(), missing=None, save=True, update=True)
    wind = GeneralGnomeObjectSchema(
        acceptable_schemas=[WindSchema, VectorVariableSchema],
        missing=drop,
        save=True,
        update=True,
        save_reference=True)
    water = WaterSchema(missing=drop,
                        save=True,
                        update=True,
                        save_reference=True)
    active_stop = SchemaNode(LocalDateTime(),
                             missing=drop,
                             validator=convertible_to_seconds,
                             save=False,
                             update=True)
Exemplo n.º 13
0
class ComponentMoverSchema(ProcessSchema):
    '''static schema for ComponentMover'''
    filename1 = SchemaNode(
        String(), missing=drop,
        save=True, update=True, isdatafile=True, test_equal=False
    )
    filename2 = SchemaNode(
        String(), missing=drop,
        save=True, update=True, isdatafile=True, test_equal=False
    )
    scale_refpoint = WorldPoint(
        missing=drop, save=True, update=True
    )
    pat1_angle = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    pat1_speed = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    pat1_speed_units = SchemaNode(
        Int(), missing=drop, save=True, update=True
    )
    pat1_scale_to_value = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    pat2_angle = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    pat2_speed = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    pat2_speed_units = SchemaNode(
        Int(), missing=drop, save=True, update=True
    )
    pat2_scale_to_value = SchemaNode(
        Float(), missing=drop, save=True, update=True
    )
    scale_by = SchemaNode(
        Int(), missing=drop, save=True, update=True
    )
    wind = WindSchema(
        missing=drop, save=True, update=True, save_reference=True
    )
    data_start = SchemaNode(LocalDateTime(), read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(), read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 14
0
class CurrentCycleMoverSchema(CurrentMoversBaseSchema):
    filename = FilenameSchema(missing=drop,
                              save=True,
                              isdatafile=True,
                              test_equal=False,
                              update=False)
    topology_file = FilenameSchema(missing=drop,
                                   save=True,
                                   isdatafile=True,
                                   test_equal=False,
                                   update=False)
    current_scale = SchemaNode(Float(),
                               default=1,
                               missing=drop,
                               save=True,
                               update=True)
    uncertain_duration = SchemaNode(Float(),
                                    default=24,
                                    missing=drop,
                                    save=True,
                                    update=True)
    uncertain_time_delay = SchemaNode(Float(),
                                      default=0,
                                      missing=drop,
                                      save=True,
                                      update=True)
    uncertain_along = SchemaNode(Float(),
                                 default=.5,
                                 missing=drop,
                                 save=True,
                                 update=True)
    uncertain_cross = SchemaNode(Float(),
                                 default=.25,
                                 missing=drop,
                                 save=True,
                                 update=True)
    tide = TideSchema(missing=drop,
                      save=True,
                      update=True,
                      save_reference=True)
    data_start = SchemaNode(LocalDateTime(),
                            read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(),
                           read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 15
0
class CatsMoverSchema(CurrentMoversBaseSchema):
    '''static schema for CatsMover'''
    filename = FilenameSchema(save=True,
                              isdatafile=True,
                              test_equal=False,
                              update=False)
    scale = SchemaNode(Bool(), missing=drop, save=True, update=True)
    scale_refpoint = WorldPoint(missing=drop, save=True, update=True)
    scale_value = SchemaNode(Float(), missing=drop, save=True, update=True)

    # the following six could be shared with grid_current
    # in a currents base class
    down_cur_uncertain = SchemaNode(Float(),
                                    missing=drop,
                                    save=True,
                                    update=True)
    up_cur_uncertain = SchemaNode(Float(),
                                  missing=drop,
                                  save=True,
                                  update=True)
    right_cur_uncertain = SchemaNode(Float(),
                                     missing=drop,
                                     save=True,
                                     update=True)
    left_cur_uncertain = SchemaNode(Float(),
                                    missing=drop,
                                    save=True,
                                    update=True)
    uncertain_eddy_diffusion = SchemaNode(Float(),
                                          missing=drop,
                                          save=True,
                                          update=True)
    uncertain_eddy_v0 = SchemaNode(Float(),
                                   missing=drop,
                                   save=True,
                                   update=True)
    tide = TideSchema(missing=drop,
                      save=True,
                      update=True,
                      save_reference=True)
    data_start = SchemaNode(LocalDateTime(),
                            read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(),
                           read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 16
0
class WindTupleSchema(DefaultTupleSchema):
    '''
    Schema for each tuple in WindTimeSeries list
    '''
    datetime = SchemaNode(LocalDateTime(default_tzinfo=None),
                          default=base_schema.now,
                          validator=validators.convertible_to_seconds)
    mag_dir = MagnitudeDirectionTuple()
Exemplo n.º 17
0
class TimeSeriesTuple(DefaultTupleSchema):
    'Tide object schema'
    '''
    Schema for each tuple in running average Time Series
    '''
    datetime = SchemaNode(LocalDateTime(default_tzinfo=None),
                          default=base_schema.now,
                          validator=validators.convertible_to_seconds)
    uv = UVTuple()
Exemplo n.º 18
0
class ContinuousReleaseSchema(ReleaseSchema):
    initial_elements = SchemaNode(Int(), missing=drop)
    start_position = WorldPoint()
    end_position = WorldPoint(missing=drop)
    _next_release_pos = WorldPointNumpy(missing=drop)
    end_release_time = SchemaNode(LocalDateTime(),
                                  missing=drop,
                                  validator=convertible_to_seconds)
    num_per_timestep = SchemaNode(Int(), missing=drop)
    description = 'ContinuousRelease object schema'
Exemplo n.º 19
0
class PyCurrentMoverSchema(ObjTypeSchema):
    current = GeneralGnomeObjectSchema(
        save=True,
        update=True,
        save_reference=True,
        acceptable_schemas=[VectorVariableSchema, GridCurrent._schema])
    filename = FilenameSchema(save=True,
                              update=False,
                              isdatafile=True,
                              missing=drop)
    scale_value = SchemaNode(Float(), save=True, update=True, missing=drop)
    on = SchemaNode(Bool(), missing=drop, save=True, update=True)
    active_range = TimeRangeSchema()
    data_start = SchemaNode(LocalDateTime(),
                            read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(),
                           read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 20
0
class BeachingTupleSchema(DefaultTupleSchema):
    '''
    Schema for each tuple in TimeSeries list
    '''
    datetime = SchemaNode(LocalDateTime(default_tzinfo=None),
                          default=base_schema.now,
                          validator=validators.convertible_to_seconds)
    amount = SchemaNode(Float(), default=0,
                        validator=Range(min=0,
                                        min_err='amount must be '
                                                'greater than or equal to 0'))
Exemplo n.º 21
0
class BaseReleaseSchema(ObjType):
    'Base Class for Release Schemas'
    release_time = SchemaNode(LocalDateTime(),
                              validator=convertible_to_seconds)
    name = 'release'
    start_time_invalid = SchemaNode(Bool(), missing=drop)

    def __init__(self, json_='webapi', **kwargs):
        if json_ == 'save':
            # used to create a new Release object if model is persisted mid-run
            self.add(SchemaNode(Int(), name='num_released'))

        super(BaseReleaseSchema, self).__init__(**kwargs)
Exemplo n.º 22
0
class ContinuousReleaseSchema(BaseReleaseSchema):
    initial_elements = SchemaNode(Int(), missing=drop, save=True, update=True)
    start_position = WorldPoint(save=True, update=True)
    end_position = WorldPoint(missing=drop, save=True, update=True)
    _next_release_pos = WorldPointNumpy(missing=drop,
                                        save=True,
                                        read_only=True)
    end_release_time = SchemaNode(LocalDateTime(),
                                  missing=drop,
                                  validator=convertible_to_seconds,
                                  save=True,
                                  update=True)
    num_elements = SchemaNode(Int())
    num_per_timestep = SchemaNode(Int(), missing=drop, save=True, update=True)
    description = 'ContinuousRelease object schema'
Exemplo n.º 23
0
class PyWindMoverSchema(ObjTypeSchema):
    wind = GeneralGnomeObjectSchema(
        save=True,
        update=True,
        save_reference=True,
        acceptable_schemas=[VectorVariableSchema, GridWind._schema])
    filename = FilenameSchema(save=True,
                              update=False,
                              isdatafile=True,
                              missing=drop)
    wind_scale = SchemaNode(Float(), save=True, update=True, missing=drop)
    extrapolation_is_allowed = SchemaNode(Bool(),
                                          save=True,
                                          update=True,
                                          missing=drop)
    time_offset = SchemaNode(Float(), save=True, update=True, missing=drop)
    on = SchemaNode(Bool(), save=True, update=True, missing=drop)
    active_range = TimeRangeSchema()
    data_start = SchemaNode(LocalDateTime(),
                            read_only=True,
                            validator=convertible_to_seconds)
    data_stop = SchemaNode(LocalDateTime(),
                           read_only=True,
                           validator=convertible_to_seconds)
Exemplo n.º 24
0
class PointLineReleaseSchema(ReleaseSchema):
    '''
    Contains properties required for persistence
    '''
    # start_position + end_position are only persisted as WorldPoint() instead
    # of WorldPointNumpy because setting the properties converts them to Numpy
    # _next_release_pos is set when loading from 'save' file and this does have
    # a setter that automatically converts it to Numpy array so use
    # WorldPointNumpy schema for it.
    start_position = WorldPoint()
    end_position = WorldPoint(missing=drop)
    _next_release_pos = WorldPointNumpy(missing=drop)
    end_release_time = SchemaNode(LocalDateTime(),
                                  missing=drop,
                                  validator=convertible_to_seconds)
    num_per_timestep = SchemaNode(Int(), missing=drop)
    description = 'PointLineRelease object schema'
Exemplo n.º 25
0
class ModelSchema(MappingSchema):
    id = SchemaNode(String(), missing=drop)
    start_time = SchemaNode(LocalDateTime(),
                            default=now,
                            validator=validators.convertible_to_seconds)
    duration_days = SchemaNode(Int(), default=1, validator=Range(min=0))
    duration_hours = SchemaNode(Int(), default=0, validator=Range(min=0))
    uncertain = SchemaNode(Bool(), default=False)
    time_step = SchemaNode(Float(), default=0.1)
    surface_release_spills = PointSourceReleasesSchema(default=[],
                                                       missing=drop)
    wind_movers = WindMoversSchema(default=[], missing=drop)
    random_movers = RandomMoversSchema(default=[], missing=drop)
    cats_movers = CatsMoversSchema(default=[], missing=drop)
    grid_current_movers = GridCurrentMoversSchema(default=[], missing=drop)
    winds = WindsSchema(default=[], missing=drop)
    map = MapSchema(missing=drop)
Exemplo n.º 26
0
class WindSchema(base_schema.ObjType):
    '''
    validate data after deserialize, before it is given back to pyGnome's
    from_dict to set _state of object
    '''
    description = SchemaNode(String(), missing=drop)
    filename = SchemaNode(String(), missing=drop)
    updated_at = SchemaNode(LocalDateTime(), missing=drop)

    latitude = SchemaNode(Float(), missing=drop)
    longitude = SchemaNode(Float(), missing=drop)
    source_id = SchemaNode(String(), missing=drop)
    source_type = SchemaNode(String(),
                             validator=OneOf(
                                 basic_types.wind_datasource._attr),
                             default='undefined',
                             missing='undefined')
    units = SchemaNode(String(), default='m/s')
    speed_uncertainty_scale = SchemaNode(Float(), missing=drop)

    timeseries = WindTimeSeriesSchema(missing=drop)
    name = 'wind'
Exemplo n.º 27
0
class TimeRangeSchema(TupleSchema):
    start = SchemaNode(LocalDateTime(), validator=convertible_to_seconds)
    stop = SchemaNode(LocalDateTime(), validator=convertible_to_seconds)
Exemplo n.º 28
0
class BaseReleaseSchema(ObjTypeSchema):
    release_time = SchemaNode(
        LocalDateTime(),
        validator=convertible_to_seconds,
    )