Demand Model Templates
Defines object schemas for demand model templates.
Crew Consumables Demand Model
- pydantic model spacenet.schemas.CrewConsumablesDemandModel[source]
Mission demand model that generates demands for crew consumables.
Show JSON schema
{ "title": "CrewConsumablesDemandModel", "description": "Mission demand model that generates demands for crew consumables.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "type": "string" }, "type": { "title": "Type", "description": "Demand model type", "default": "Crew Consumables", "enum": [ "Crew Consumables" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "reservesDuration": { "title": "Reserves Duration", "description": "Duration (days) of reserve resources", "default": 0, "minimum": 0, "type": "number" }, "waterRecoveryRate": { "title": "Water Recovery Rate", "description": "Rate (between 0 and 1) of water recovery", "default": 0.42, "minimum": 0, "maximum": 1, "type": "number" }, "clothingLifetime": { "title": "Clothing Lifetime", "description": "Duration (days) of clothing lifetime", "default": 4, "minimum": 0, "type": "number" }, "transitDemandsOmitted": { "title": "Transit Demand Omitted", "description": "True, if transit demands shall be omitted", "default": false, "type": "boolean" }, "waterRate": { "title": "Water Rate", "description": "Rate (kg/person/day) of water (generic COS 201) demands", "default": 3.6, "type": "number" }, "evaWaterRate": { "title": "EVA Water Rate", "description": "Rate (kg/person/hour) of water (generic COS 201) demands during extra-vehicular activity", "default": 0.6875, "type": "number" }, "foodSupportRate": { "title": "Food Support Rate", "description": "Rate (kg/person/day) of food support equipment (generic COS 202) demands", "default": 0.05556, "type": "number" }, "ambientFoodRate": { "title": "Ambient Food Rate", "description": "Rate (kg/person/day) of ambient food (generic COS 202) demands", "default": 0.76389, "type": "number" }, "rfFoodRate": { "title": "Rf Food Rate", "description": "Rate (kg/person/day) of RF food (generic COS 202) demands", "default": 1.61667, "type": "number" }, "oxygenRate": { "title": "Oxygen Rate", "description": "Rate (kg/person/day) of oxygen (generic COS 203) demands", "default": 3.85714, "type": "number" }, "evaOxygenRate": { "title": "EVA Oxygen Rate", "description": "Rate (kg/person/hour) of oxygen (generic COS 203) demands during extra-vehicular activity", "default": 0.07875, "type": "number" }, "nitrogenRate": { "title": "Nitrogen Rate", "description": "Rate (kg/person/day) of nitrogen (generic COS 203) demands", "default": 2.21429, "type": "number" }, "hygieneRate": { "title": "Hygiene Rate", "description": "Rate (kg/person/day) of hygeine (generic COS 204) demands", "default": 0.27778, "type": "number" }, "hygieneKit": { "title": "Hygiene Kit", "description": "Amount (kg/person) of hygeine kit (generic COS 204) demands", "default": 1.8, "type": "number" }, "clothingRate": { "title": "Clothing Rate", "description": "Rate (kg/person/day) of clothing (generic COS 205) demands", "default": 2.3, "type": "number" }, "personalItems": { "title": "Personal Items", "description": "Amount (kg/person) of personal item (generic COS 206) demands", "default": 10, "type": "number" }, "officeEquipment": { "title": "Office Equipment", "description": "Amount (kg/person) of office equipment (generic COS 301) demands", "default": 5, "type": "number" }, "evaSuit": { "title": "EVA Suit", "description": "Amount (kg/person) of extra-vehicular activity suit (generic COS 302) demands", "default": 107, "type": "number" }, "evaLithiumHydroxide": { "title": "EVA Lithium Hydroxide", "description": "Rate (kg/person/hour) of lithium hydroxide (generic COS 302) demands", "default": 0.3625, "type": "number" }, "healthEquipment": { "title": "Health Equipment", "description": "Amount (kg) of health equipment (generic COS 303) demands", "default": 20, "type": "number" }, "healthConsumables": { "title": "Health Consumables", "description": "Amount (kg/person) of health consumables (generic COS 303) demands", "default": 0.1, "type": "number" }, "safetyEquipment": { "title": "Safety Equipment", "description": "Amount (kg) of safety equipment (generic COS 304) demands", "default": 25, "type": "number" }, "commEquipment": { "title": "Comm Equipment", "description": "Amount (kg) of communication equipment (generic COS 305) demands", "default": 20, "type": "number" }, "computerEquipment": { "title": "Computer Equipment", "description": "Amount (kg/person) of computer equipment (generic COS 306) demands", "default": 5, "type": "number" }, "trashBagRate": { "title": "Trash Bag Rate", "description": "Rate (kg/person/day) of trash bag (generic COS 701) demands", "default": 0.05, "type": "number" }, "wasteContainmentRate": { "title": "Waste Containment Rate", "description": "Rate (kg/person/day) of waste containment (generic COS 702) demands", "default": 0.05, "type": "number" } }, "required": [ "name" ] }
- field ambient_food_rate: float = 0.76389 (alias 'ambientFoodRate')
Rate (kg/person/day) of ambient food (generic COS 202) demands
- field clothing_lifetime: float = 4 (alias 'clothingLifetime')
Duration (days) of clothing lifetime
- Constraints
minimum = 0
- field clothing_rate: float = 2.3 (alias 'clothingRate')
Rate (kg/person/day) of clothing (generic COS 205) demands
- field comm_equipment: float = 20 (alias 'commEquipment')
Amount (kg) of communication equipment (generic COS 305) demands
- field computer_equipment: float = 5 (alias 'computerEquipment')
Amount (kg/person) of computer equipment (generic COS 306) demands
- field eva_lithium_hydroxide: float = 0.3625 (alias 'evaLithiumHydroxide')
Rate (kg/person/hour) of lithium hydroxide (generic COS 302) demands
- field eva_oxygen_rate: float = 0.07875 (alias 'evaOxygenRate')
Rate (kg/person/hour) of oxygen (generic COS 203) demands during extra-vehicular activity
- field eva_suit: float = 107 (alias 'evaSuit')
Amount (kg/person) of extra-vehicular activity suit (generic COS 302) demands
- field eva_water_rate: float = 0.6875 (alias 'evaWaterRate')
Rate (kg/person/hour) of water (generic COS 201) demands during extra-vehicular activity
- field food_support_rate: float = 0.05556 (alias 'foodSupportRate')
Rate (kg/person/day) of food support equipment (generic COS 202) demands
- field health_consumables: float = 0.1 (alias 'healthConsumables')
Amount (kg/person) of health consumables (generic COS 303) demands
- field health_equipment: float = 20 (alias 'healthEquipment')
Amount (kg) of health equipment (generic COS 303) demands
- field hygiene_kit: float = 1.8 (alias 'hygieneKit')
Amount (kg/person) of hygeine kit (generic COS 204) demands
- field hygiene_rate: float = 0.27778 (alias 'hygieneRate')
Rate (kg/person/day) of hygeine (generic COS 204) demands
- field nitrogen_rate: float = 2.21429 (alias 'nitrogenRate')
Rate (kg/person/day) of nitrogen (generic COS 203) demands
- field office_equipment: float = 5 (alias 'officeEquipment')
Amount (kg/person) of office equipment (generic COS 301) demands
- field oxygen_rate: float = 3.85714 (alias 'oxygenRate')
Rate (kg/person/day) of oxygen (generic COS 203) demands
- field personal_items: float = 10 (alias 'personalItems')
Amount (kg/person) of personal item (generic COS 206) demands
- field reserves_duration: float = 0 (alias 'reservesDuration')
Duration (days) of reserve resources
- Constraints
minimum = 0
- field rf_food_rate: float = 1.61667 (alias 'rfFoodRate')
Rate (kg/person/day) of RF food (generic COS 202) demands
- field safety_equipment: float = 25 (alias 'safetyEquipment')
Amount (kg) of safety equipment (generic COS 304) demands
- field transit_demands_omitted: bool = False (alias 'transitDemandsOmitted')
True, if transit demands shall be omitted
- field trash_bag_rate: float = 0.05 (alias 'trashBagRate')
Rate (kg/person/day) of trash bag (generic COS 701) demands
- field type: typing_extensions.Literal[Crew Consumables] = DemandModelType.CREW_CONSUMABLES
Demand model type
- field waste_containment_rate: float = 0.05 (alias 'wasteContainmentRate')
Rate (kg/person/day) of waste containment (generic COS 702) demands
Timed Impulse Demand Model
- pydantic model spacenet.schemas.TimedImpulseDemandModel[source]
Demand model that generates an impulsive demand for resources.
Show JSON schema
{ "title": "TimedImpulseDemandModel", "description": "Demand model that generates an impulsive demand for resources.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "type": "string" }, "type": { "title": "Type", "description": "Demand model type", "default": "Timed Impulse", "enum": [ "Timed Impulse" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "demands": { "title": "Demands", "description": "List of resource amounts to be demanded", "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/ResourceAmount" }, { "$ref": "#/definitions/GenericResourceAmount" } ] } } }, "required": [ "name", "demands" ], "definitions": { "ResourceAmount": { "title": "ResourceAmount", "description": "A specified amount of a resource.", "type": "object", "properties": { "resource": { "title": "Resource UUID", "description": "Resource unique identifier", "type": "string", "format": "uuid" }, "amount": { "title": "Amount", "description": "Fixed amount of resource (units)", "type": "number" } }, "required": [ "resource", "amount" ] }, "ClassOfSupply": { "title": "ClassOfSupply", "description": "Enumeration of the ten top-level classes of supply and sub-classes of supply.", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 101, 102, 103, 104, 105, 106, 201, 202, 203, 204, 205, 206, 301, 302, 303, 304, 305, 306, 401, 402, 403, 404, 405, 501, 502, 601, 602, 603, 701, 702, 703, 801, 802, 803, 804, 805, 806, 901, 902, 4011, 4012, 8041, 8042, 9021, 9022, 9023, 9024 ], "type": "integer" }, "Environment": { "title": "Environment", "description": "Enumeration of stowage environments.", "enum": [ "Pressurized", "Unpressurized" ], "type": "string" }, "GenericResourceAmount": { "title": "GenericResourceAmount", "description": "A specified amount of a generic resource.", "type": "object", "properties": { "classOfSupply": { "title": "Class of Suppoly", "description": "Class of supply", "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "amount": { "title": "Amount", "description": "Fixed amount of resource (kg)", "type": "number" } }, "required": [ "classOfSupply", "environment", "amount" ] } } }
- field demands: List[Union[ResourceAmount, GenericResourceAmount]] [Required]
List of resource amounts to be demanded
- field type: typing_extensions.Literal[Timed Impulse] = DemandModelType.TIMED_IMPULSE
Demand model type
Rated Demand Model
- pydantic model spacenet.schemas.RatedDemandModel[source]
Demand model that generates a constant time rate demand for resources.
Show JSON schema
{ "title": "RatedDemandModel", "description": "Demand model that generates a constant time rate demand for resources.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "type": "string" }, "type": { "title": "Type", "description": "Demand model type", "default": "Rated", "enum": [ "Rated" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "demands": { "title": "Demands", "description": "List of resource amount rates to be demanded", "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/ResourceAmountRate" }, { "$ref": "#/definitions/GenericResourceAmountRate" } ] } } }, "required": [ "name", "demands" ], "definitions": { "ResourceAmountRate": { "title": "ResourceAmountRate", "description": "A specified amount of a resource type.", "type": "object", "properties": { "resource": { "title": "Resource UUID", "description": "Resource unique identifier", "type": "string", "format": "uuid" }, "rate": { "title": "Rate", "description": "Time-rate of resource (units/day)", "type": "number" } }, "required": [ "resource", "rate" ] }, "ClassOfSupply": { "title": "ClassOfSupply", "description": "Enumeration of the ten top-level classes of supply and sub-classes of supply.", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 101, 102, 103, 104, 105, 106, 201, 202, 203, 204, 205, 206, 301, 302, 303, 304, 305, 306, 401, 402, 403, 404, 405, 501, 502, 601, 602, 603, 701, 702, 703, 801, 802, 803, 804, 805, 806, 901, 902, 4011, 4012, 8041, 8042, 9021, 9022, 9023, 9024 ], "type": "integer" }, "Environment": { "title": "Environment", "description": "Enumeration of stowage environments.", "enum": [ "Pressurized", "Unpressurized" ], "type": "string" }, "GenericResourceAmountRate": { "title": "GenericResourceAmountRate", "description": "A specified amount of a generic resource.", "type": "object", "properties": { "classOfSupply": { "title": "Class of Suppoly", "description": "Class of supply", "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "rate": { "title": "Rate", "description": "Time-rate of resource (kg/day)", "type": "number" } }, "required": [ "classOfSupply", "environment", "rate" ] } } }
- field demands: List[Union[ResourceAmountRate, GenericResourceAmountRate]] [Required]
List of resource amount rates to be demanded
- field type: typing_extensions.Literal[Rated] = DemandModelType.RATED
Demand model type
Sparing By Mass Demand Model
- pydantic model spacenet.schemas.SparingByMassDemandModel[source]
Element demand model that generates demands for spares based on mass fraction.
Show JSON schema
{ "title": "SparingByMassDemandModel", "description": "Element demand model that generates demands for spares based on mass fraction.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "type": "string" }, "type": { "title": "Type", "description": "Demand model type", "default": "Sparing By Mass", "enum": [ "Sparing By Mass" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "unpressurizedSparesRate": { "title": "Unpressurized Spares Rate", "description": "fraction of an element mass demanded per year as unpressurized spares (generic COS 4)", "minimum": 0, "maximum": 1, "type": "number" }, "pressurizedSparesRate": { "title": "Pressurized Spares Rate", "description": "fraction of an element mass demanded per year as pressurized spares (generic COS 4)", "minimum": 0, "maximum": 1, "type": "number" }, "partsListEnabled": { "title": "Parts List Enabled", "description": "True, if the element part list identifies specific (non-generic) demands", "type": "boolean" } }, "required": [ "name", "unpressurizedSparesRate", "pressurizedSparesRate", "partsListEnabled" ] }
- field parts_list_enabled: bool [Required] (alias 'partsListEnabled')
True, if the element part list identifies specific (non-generic) demands
- field pressurized_spares_rate: float [Required] (alias 'pressurizedSparesRate')
fraction of an element mass demanded per year as pressurized spares (generic COS 4)
- Constraints
minimum = 0
maximum = 1
- field type: typing_extensions.Literal[Sparing By Mass] = DemandModelType.SPARING_BY_MASS
Demand model type