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 description: Optional[str] = None

Short description (optional)

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 id: UUID [Optional]

Unique identifier

field name: str [Required]
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

field water_rate: float = 3.6 (alias 'waterRate')

Rate (kg/person/day) of water (generic COS 201) demands

field water_recovery_rate: float = 0.42 (alias 'waterRecoveryRate')

Rate (between 0 and 1) of water recovery

Constraints
  • minimum = 0

  • maximum = 1

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 description: Optional[str] = None

Short description (optional)

field id: UUID [Optional]

Unique identifier

field name: str [Required]
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 description: Optional[str] = None

Short description (optional)

field id: UUID [Optional]

Unique identifier

field name: str [Required]
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 description: Optional[str] = None

Short description (optional)

field id: UUID [Optional]

Unique identifier

field name: str [Required]
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

field unpressurized_spares_rate: float [Required] (alias 'unpressurizedSparesRate')

fraction of an element mass demanded per year as unpressurized spares (generic COS 4)

Constraints
  • minimum = 0

  • maximum = 1