示例#1
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)
示例#2
0
class LongLat(MappingSchema):
    """
    A :class:`colander.MappingSchema`-based LongLat schema, as opposed to the
    TupleSchema-based class:`gnome.persist.base_schema.LongLat` version.
    """
    long = SchemaNode(Float())
    lat = SchemaNode(Float())
示例#3
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)
示例#4
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)
class SetpointInterpolationSchema(MappingSchema):
    name = SchemaNode(typ=String(),
                      title='Name')
    order = SchemaNode(typ=Int(),
                       title='Type (order)',
                       default=deferred_order_default,
                       widget=SelectWidget(values=[(0, 'Constant'),
                                                   (1, 'Linear'),
                                                   (2, 'Quadratic'),
                                                   (3, 'Cubic'),
                                                   (4, 'Spline')]))
    start_value = SchemaNode(typ=Float(),
                             title='Start Value',
                             default=deferred_start_value_default)
    end_time = SchemaNode(typ=Int(),
                          title='End Time',
                          default=deferred_end_time_default)
    end_value = SchemaNode(typ=Float(),
                           title='End Value',
                           default=deferred_end_value_default,
                           missing=None)
    description = SchemaNode(typ=String(),
                             title='Description',
                             default=deferred_description_default,
                             missing=None)
示例#6
0
class SpillSchema(ObjType):
    'Spill class schema'
    on = SchemaNode(Bool(), default=True, missing=True,
                    description='on/off status of spill')
    amount = SchemaNode(Float(), missing=drop)
    units = SchemaNode(String(), missing=drop)
    amount_uncertainty_scale = SchemaNode(Float(), missing=drop)
示例#7
0
class NormalDistributionSchema(ObjType):
    mean = SchemaNode(Float(), name='mean',
                      description='mean for normal distribution')
    sigma = SchemaNode(Float(), name='sigma',
                       description='standard deviation for normal distribution'
                       )
    name = 'normal'
示例#8
0
class IceMoverSchema(CurrentMoversBaseSchema):
    filename = SchemaNode(String(), missing=drop)
    topology_file = SchemaNode(String(), missing=drop)
    current_scale = SchemaNode(Float(), missing=drop)
    uncertain_along = SchemaNode(Float(), missing=drop)
    uncertain_cross = SchemaNode(Float(), missing=drop)
    extrapolate = SchemaNode(Bool(), missing=drop)
示例#9
0
class SpillSchema(ObjTypeSchema):
    'Spill class schema'
    on = SchemaNode(Bool(),
                    default=True,
                    missing=True,
                    description='on/off status of spill',
                    save=True,
                    update=True)
    release = GeneralGnomeObjectSchema(acceptable_schemas=[
        BaseReleaseSchema, PointLineReleaseSchema, ContinuousReleaseSchema,
        SpatialReleaseSchema
    ],
                                       save=True,
                                       update=True,
                                       save_reference=True)
    amount = SchemaNode(Float(), missing=drop, save=True, update=True)
    units = SchemaNode(String(), missing=drop, save=True, update=True)
    amount_uncertainty_scale = SchemaNode(Float(),
                                          missing=drop,
                                          save=True,
                                          update=True)
    #     frac_coverage = SchemaNode(
    #         Float(), missing=drop, save=True, update=True
    #     )
    element_type = ElementTypeSchema(save=True,
                                     update=True,
                                     save_reference=True)
    water = WaterSchema(missing=drop,
                        save=True,
                        update=True,
                        save_reference=True)
示例#10
0
class WeibullDistributionSchema(ObjTypeSchema):
    name = 'weibull'
    alpha = SchemaNode(Float(),
                       name='alpha',
                       description='shape parameter for weibull distribution',
                       save=True,
                       update=True)
    lambda_ = SchemaNode(
        Float(),
        name='lambda_',
        default=1.0,
        description='scale parameter for weibull distribution',
        save=True,
        update=True)
    min_ = SchemaNode(Float(),
                      name='min_',
                      description='lower bound? for weibull distribution',
                      missing=drop,
                      save=True,
                      update=True)
    max_ = SchemaNode(Float(),
                      name='max_',
                      description='upper bound? for weibull distribution',
                      missing=drop,
                      save=True,
                      update=True)
示例#11
0
class PyWindMoverSchema(base_schema.ObjType):
    filename = SchemaNode(typ=Sequence(accept_scalar=True),
                          children=[SchemaNode(String())],
                          missing=drop)
    current_scale = SchemaNode(Float(), missing=drop)
    extrapolate = SchemaNode(Bool(), missing=drop)
    time_offset = SchemaNode(Float(), missing=drop)
    wind = GridVectorPropSchema(missing=drop)
示例#12
0
class RandomVerticalMoverSchema(ObjType, ProcessSchema):
    vertical_diffusion_coef_above_ml = SchemaNode(Float(), missing=drop)
    vertical_diffusion_coef_below_ml = SchemaNode(Float(), missing=drop)

    mixed_layer_depth = SchemaNode(Float(), missing=drop)

    horizontal_diffusion_coef_above_ml = SchemaNode(Float(), missing=drop)
    horizontal_diffusion_coef_below_ml = SchemaNode(Float(), missing=drop)
示例#13
0
class WaterSchema(base_schema.ObjType):
    'Colander Schema for Conditions object'
    units = UnitsSchema()
    temperature = SchemaNode(Float())
    salinity = SchemaNode(Float())
    sediment = SchemaNode(Float(), missing=drop)
    wave_height = SchemaNode(Float(), missing=drop)
    fetch = SchemaNode(Float(), missing=drop)
示例#14
0
class WaterSchema(base_schema.ObjTypeSchema):
    'Colander Schema for Conditions object'
    units = UnitsSchema(save=True, update=True)
    temperature = SchemaNode(Float(), save=True, update=True)
    salinity = SchemaNode(Float(), save=True, update=True)
    sediment = SchemaNode(Float(), missing=drop, save=True, update=True)
    wave_height = SchemaNode(Float(), missing=drop, save=True, update=True)
    fetch = SchemaNode(Float(), missing=drop, save=True, update=True)
示例#15
0
class WorldPointNumpy(NumpyFixedLenSchema):
    '''
    Define same schema as WorldPoint; however, the base class
    NumpyFixedLenSchema serializes/deserializes it from/to a numpy array
    '''
    long = SchemaNode(Float())
    lat = SchemaNode(Float())
    z = SchemaNode(Float())
示例#16
0
class VectorFieldSchema(ObjType, ProcessSchema):
    uncertain_duration = SchemaNode(Float(), missing=drop)
    uncertain_time_delay = SchemaNode(Float(), missing=drop)
    filename = SchemaNode(String(), missing=drop)
    topology_file = SchemaNode(String(), missing=drop)
    current_scale = SchemaNode(Float(), missing=drop)
    uncertain_along = SchemaNode(Float(), missing=drop)
    uncertain_cross = SchemaNode(Float(), missing=drop)
示例#17
0
class SkimmerSchema(WeathererSchema):
    amount = SchemaNode(Float(), save=True, update=True)
    units = SchemaNode(String(), save=True, update=True)
    efficiency = SchemaNode(Float(), save=True, update=True)
    water = WaterSchema(missing=drop,
                        save=True,
                        update=True,
                        save_reference=True)
示例#18
0
class SimpleMoverVelocitySchema(NumpyFixedLenSchema):
    '''
    Currently this is only used by SimpleMover so it is here. If it becomes
    more general purpose then move it to gnome.persist.base_schema
    '''
    vel_x = SchemaNode(Float())
    vel_y = SchemaNode(Float())
    vel_z = SchemaNode(Float())
示例#19
0
class CurrentCycleMoverSchema(ObjType, ProcessSchema):
    filename = SchemaNode(String(), missing=drop)
    topology_file = SchemaNode(String(), missing=drop)
    current_scale = SchemaNode(Float(), default=1, missing=drop)
    uncertain_duration = SchemaNode(Float(), default=24, missing=drop)
    uncertain_time_delay = SchemaNode(Float(), default=0, missing=drop)
    uncertain_along = SchemaNode(Float(), default=.5, missing=drop)
    uncertain_cross = SchemaNode(Float(), default=.25, missing=drop)
示例#20
0
class ValidPositionSchema(FieldSchema, CopyingSchema):
    """A schema which validates the fields present in a position."""

    lat = SchemaNode(Float(),
                     missing=0.0,
                     validator=Range(constants.MIN_LAT, constants.MAX_LAT))
    lon = SchemaNode(Float(),
                     missing=0.0,
                     validator=Range(constants.MIN_LON, constants.MAX_LON))
示例#21
0
class TimeSeriesPropSchema(PropertySchema):
    time = TimeSchema(missing=drop)
    data = SequenceSchema(SchemaNode(Float()), missing=drop)
    timeseries = SequenceSchema(TupleSchema(children=[
        SchemaNode(DateTime(default_tzinfo=None), missing=drop),
        SchemaNode(Float(), missing=0)
    ],
                                            missing=drop),
                                missing=drop)
示例#22
0
class GridCurrentMoverSchema(CurrentMoversBaseSchema):
    filename = SchemaNode(String(), missing=drop)
    topology_file = SchemaNode(String(), missing=drop)
    current_scale = SchemaNode(Float(), missing=drop)
    uncertain_along = SchemaNode(Float(), missing=drop)
    uncertain_cross = SchemaNode(Float(), missing=drop)
    extrapolate = SchemaNode(Bool(), missing=drop)
    time_offset = SchemaNode(Float(), missing=drop)
    is_data_on_cells = SchemaNode(Bool(), missing=drop)
示例#23
0
class UniformDistributionSchema(ObjType):
    low = SchemaNode(Float(),
                     name='low',
                     default=0.0,
                     description='lower bound for uniform distribution')
    high = SchemaNode(Float(),
                      name='high',
                      default=0.1,
                      description='lower bound for uniform distribution')
    name = 'uniform'
示例#24
0
class UniformDistributionSchema(ObjTypeSchema):
    low = SchemaNode(
        Float(), default=0.0,
        description='lower bound for uniform distribution',
        save=True, update=True
    )
    high = SchemaNode(
        Float(), name='high', default=0.1,
        description='lower bound for uniform distribution',
        save=True, update=True
    )
示例#25
0
class VelocityTSSchema(PropertySchema):
    timeseries = SequenceSchema(
        TupleSchema(children=[
            SchemaNode(DateTime(default_tzinfo=None), missing=drop),
            TupleSchema(children=[
                SchemaNode(Float(), missing=0),
                SchemaNode(Float(), missing=0)
            ])
        ],
                    missing=drop))
    varnames = SequenceSchema(SchemaNode(String(), missing=drop))
示例#26
0
class NormalDistributionSchema(ObjTypeSchema):
    mean = SchemaNode(
        Float(),
        description='mean for normal distribution',
        save=True, update=True
    )
    sigma = SchemaNode(
        Float(),
        description='standard deviation for normal distribution',
        save=True, update=True
    )
示例#27
0
class StageConfigurationSchema(MappingSchema):
    parameter = SchemaNode(
        typ=Int(),
        title='Parameter',
        widget=SelectWidget(values=[(_id, name)
                                    for _id, name in DBSession.query(
                                        Parameter._id, Parameter.name)]))
    time = SchemaNode(typ=Time(), title='Time', default=time(0, 0))
    setpoint = SchemaNode(typ=Float(), title='Setpoint')
    upper_limit = SchemaNode(typ=Float(), title='Upper limit')
    lower_limit = SchemaNode(typ=Float(), title='Lower limit')
示例#28
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)
示例#29
0
class TSVectorPropSchema(VectorPropSchema):
    timeseries = SequenceSchema(TupleSchema(children=[
        SchemaNode(DateTime(default_tzinfo=None), missing=drop),
        TupleSchema(children=[
            SchemaNode(Float(), missing=0),
            SchemaNode(Float(), missing=0)
        ])
    ],
                                            missing=drop),
                                missing=drop)
    #     variables = SequenceSchema(TupleSchema(SchemaNode(Float())))
    varnames = SequenceSchema(SchemaNode(String(), missing=drop), missing=drop)
示例#30
0
class BaseReportSchema(MappingSchema):
    lat = SchemaNode(Float(), missing=None)
    lon = SchemaNode(Float(), missing=None)

    time = SchemaNode(String(), missing='')
    accuracy = SchemaNode(Integer(), missing=0)
    altitude = SchemaNode(Integer(), missing=0)
    altitude_accuracy = SchemaNode(Integer(), missing=0)
    radio = SchemaNode(String(), validator=OneOf(RADIO_STRINGS), missing=None)

    heading = SchemaNode(Float(), missing=-1.0)
    speed = SchemaNode(Float(), missing=-1.0)