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(), save=True, update=True, read_only=True, missing=drop) _oilwater_thick_burnrate = SchemaNode(Float(), save=True, update=True, read_only=True, missing=drop) _oil_vol_burnrate = SchemaNode(Float(), save=True, update=True, read_only=True, missing=drop) efficiency = SchemaNode(Float(), missing=None, save=True, update=True) wind = GeneralGnomeObjectSchema( acceptable_schemas=[WindSchema, VectorVariableSchema], save=True, update=True, save_reference=True, missing=drop) water = WaterSchema(save=True, update=True, save_reference=True, missing=drop)
class DissolutionSchema(WeathererSchema): waves = WavesSchema(save=True, update=True, save_reference=True) wind = GeneralGnomeObjectSchema( acceptable_schemas=[WindSchema, VectorVariableSchema], save=True, update=True, save_reference=True)
class LangmuirSchema(WeathererSchema): wind = GeneralGnomeObjectSchema( acceptable_schemas=[WindSchema, VectorVariableSchema], save=True, update=True, save_reference=True) water = WaterSchema(save=True, update=True, save_reference=True)
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)
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)
class IceImageSchema(BaseOutputterSchema): ice_movers = SequenceSchema( GeneralGnomeObjectSchema(acceptable_schemas=[IceMoverSchema]), save=True, update=True, save_reference=True) '''
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)
class DistributionBaseSchema(base_schema.ObjTypeSchema): 'Add schema to base class since all derived classes use same schema' distribution = GeneralGnomeObjectSchema(acceptable_schemas=[ UniformDistributionSchema, NormalDistributionSchema, WeibullDistributionSchema, LogNormalDistributionSchema ], save=True, update=True)
class SubstanceSchema(ObjTypeSchema): initializers = SequenceSchema( GeneralGnomeObjectSchema( acceptable_schemas=[InitWindagesSchema, DistributionBaseSchema ] ), save=True, update=True, save_reference=True ) is_weatherable = SchemaNode(Boolean(), read_only=True)
class CurrentJsonSchema(BaseOutputterSchema): current_movers = SequenceSchema( GeneralGnomeObjectSchema(acceptable_schemas=[ CatsMoverSchema, ComponentMoverSchema, GridCurrentMoverSchema, CurrentCycleMoverSchema, WindMoverSchema ]), save=True, update=True, save_reference=True) '''
class VectorVariableSchema(VariableSchemaBase): varnames = SequenceSchema( SchemaNode(String()), read_only=True ) variables = SequenceSchema( GeneralGnomeObjectSchema( acceptable_schemas=[VariableSchema, base_schema.ObjTypeSchema] ), save_reference=True )
class ElementTypeSchema(base_schema.ObjTypeSchema): def __init__(self, unknown='preserve', *args, **kwargs): super(ElementTypeSchema, self).__init__(*args, **kwargs) self.typ = base_schema.ObjType('preserve') initializers = SequenceSchema(GeneralGnomeObjectSchema( acceptable_schemas=[InitWindagesSchema, DistributionBaseSchema]), save=True, update=True, save_reference=True) standard_density = SchemaNode(Float(), read_only=True)
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)
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)
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)