API reference

Subpackages

physrisk.container

class physrisk.container.DefaultHazardModelFactory(inventory: Inventory, source_paths: SourcePaths, store: MutableMapping | None = None, reader: ZarrReader | None = None, default_interpolation: str = 'floor', credentials: CredentialsProvider | None = None, third_party_apis: list[str] = [])

Bases: HazardModelFactory

hazard_model(interpolation: str | None = None, provider_max_requests: Dict[str, int] = {}, interpolate_years: bool = True)

Create a HazardModel instance based on a number of options.

Parameters:
  • interpolation (str) – Interpolation type to use for sub-pixel raster interpolation (where

  • models). (this is supported by hazard)

  • provider_max_requests (Dict[str, int]) – The maximum permitted number of permitted

  • providers. (requests to external)

  • interpolate_years (bool) – If True, apply linear interpolation for hazard requests where exact match is not present.

image_creator()
class physrisk.container.DictBasedVulnerabilityModelsFactory(*args, **kwargs)

Bases: VulnerabilityModelsFactory

vulnerability_models(hazard_scope: dict[type[Hazard], set[str] | None] | None = None) VulnerabilityModels

Create a VulnerabilityModels instance, that can based on a number of options.

Although no options used at present, implemented this way in order to add in future (e.g. to allow a request to specify preferred methodology).

Returns:

VulnerabilityModels

Return type:

Instance that provides vulnerability models for asset types.

class physrisk.container.DefaultVulnerabilityModelFactory

Bases: VulnerabilityModelsFactory

Default vulnerability approach. ‘default_vulnerability_models’ programmatic models are used, to which FEMA Hazus vulnerability-based models are added and finally configuration. FEMA Hazus vulnerability-based models excluded by default (until non-experimental).

class physrisk.container.Container(**overriding_providers)

Bases: DeclarativeContainer

asset_factory = <dependency_injector.providers.Factory(<class 'physrisk.vulnerability_models.configuration.asset_factory.DefaultAssetFactory'>)>
config = <dependency_injector.providers.Configuration('config')>
colormaps = <dependency_injector.providers.Singleton(<function Container.<lambda>>)>
inventory_reader = <dependency_injector.providers.Singleton(<class 'physrisk.data.inventory_reader.InventoryReader'>)>
inventory = <dependency_injector.providers.Singleton(<function _create_inventory>)>
json_encoder_cls = <dependency_injector.providers.Object(<class 'physrisk.utils.encoder.PhysriskDefaultEncoder'>)>
sig_figures = <dependency_injector.providers.Object(4)>
source_paths = <dependency_injector.providers.Factory(<function create_source_paths>)>
zarr_store = <dependency_injector.providers.Singleton(<bound method ZarrReader.create_s3_zarr_store of <class 'physrisk.data.zarr_reader.ZarrReader'>>)>
zarr_reader = <dependency_injector.providers.Singleton(<class 'physrisk.data.zarr_reader.ZarrReader'>)>
credentials = <dependency_injector.providers.Singleton(<class 'physrisk.hazard_models.credentials_provider.EnvCredentialsProvider'>)>
hazard_model_factory = <dependency_injector.providers.Factory(<class 'physrisk.container.DefaultHazardModelFactory'>)>
measures_factory = <dependency_injector.providers.Factory(<class 'physrisk.kernel.calculation.DefaultMeasuresFactory'>)>
vulnerability_models_factory = <dependency_injector.providers.Factory(<class 'physrisk.container.DefaultVulnerabilityModelFactory'>)>
requester = <dependency_injector.providers.Singleton(<class 'physrisk.requests.Requester'>)>
cls_providers = {'asset_factory': <dependency_injector.providers.Factory(<class 'physrisk.vulnerability_models.configuration.asset_factory.DefaultAssetFactory'>)>, 'colormaps': <dependency_injector.providers.Singleton(<function Container.<lambda>>)>, 'config': <dependency_injector.providers.Configuration('config')>, 'credentials': <dependency_injector.providers.Singleton(<class 'physrisk.hazard_models.credentials_provider.EnvCredentialsProvider'>)>, 'hazard_model_factory': <dependency_injector.providers.Factory(<class 'physrisk.container.DefaultHazardModelFactory'>)>, 'inventory': <dependency_injector.providers.Singleton(<function _create_inventory>)>, 'inventory_reader': <dependency_injector.providers.Singleton(<class 'physrisk.data.inventory_reader.InventoryReader'>)>, 'json_encoder_cls': <dependency_injector.providers.Object(<class 'physrisk.utils.encoder.PhysriskDefaultEncoder'>)>, 'measures_factory': <dependency_injector.providers.Factory(<class 'physrisk.kernel.calculation.DefaultMeasuresFactory'>)>, 'requester': <dependency_injector.providers.Singleton(<class 'physrisk.requests.Requester'>)>, 'sig_figures': <dependency_injector.providers.Object(4)>, 'source_paths': <dependency_injector.providers.Factory(<function create_source_paths>)>, 'vulnerability_models_factory': <dependency_injector.providers.Factory(<class 'physrisk.container.DefaultVulnerabilityModelFactory'>)>, 'zarr_reader': <dependency_injector.providers.Singleton(<class 'physrisk.data.zarr_reader.ZarrReader'>)>, 'zarr_store': <dependency_injector.providers.Singleton(<bound method ZarrReader.create_s3_zarr_store of <class 'physrisk.data.zarr_reader.ZarrReader'>>)>}
containers = {}
inherited_providers = {}
providers = {'asset_factory': <dependency_injector.providers.Factory(<class 'physrisk.vulnerability_models.configuration.asset_factory.DefaultAssetFactory'>)>, 'colormaps': <dependency_injector.providers.Singleton(<function Container.<lambda>>)>, 'config': <dependency_injector.providers.Configuration('config')>, 'credentials': <dependency_injector.providers.Singleton(<class 'physrisk.hazard_models.credentials_provider.EnvCredentialsProvider'>)>, 'hazard_model_factory': <dependency_injector.providers.Factory(<class 'physrisk.container.DefaultHazardModelFactory'>)>, 'inventory': <dependency_injector.providers.Singleton(<function _create_inventory>)>, 'inventory_reader': <dependency_injector.providers.Singleton(<class 'physrisk.data.inventory_reader.InventoryReader'>)>, 'json_encoder_cls': <dependency_injector.providers.Object(<class 'physrisk.utils.encoder.PhysriskDefaultEncoder'>)>, 'measures_factory': <dependency_injector.providers.Factory(<class 'physrisk.kernel.calculation.DefaultMeasuresFactory'>)>, 'requester': <dependency_injector.providers.Singleton(<class 'physrisk.requests.Requester'>)>, 'sig_figures': <dependency_injector.providers.Object(4)>, 'source_paths': <dependency_injector.providers.Factory(<function create_source_paths>)>, 'vulnerability_models_factory': <dependency_injector.providers.Factory(<class 'physrisk.container.DefaultVulnerabilityModelFactory'>)>, 'zarr_reader': <dependency_injector.providers.Singleton(<class 'physrisk.data.zarr_reader.ZarrReader'>)>, 'zarr_store': <dependency_injector.providers.Singleton(<bound method ZarrReader.create_s3_zarr_store of <class 'physrisk.data.zarr_reader.ZarrReader'>>)>}
wiring_config = <dependency_injector.containers.WiringConfiguration object>

physrisk.requests

class physrisk.requests.Requester(asset_factory: ~physrisk.vulnerability_models.configuration.asset_factory.AssetFactory, hazard_model_factory: ~physrisk.kernel.hazard_model.HazardModelFactory, vulnerability_models_factory: ~physrisk.kernel.vulnerability_model.VulnerabilityModelsFactory, inventory: ~physrisk.data.inventory.Inventory, source_paths: ~physrisk.hazard_models.core_hazards.InventorySourcePaths, inventory_reader: ~physrisk.data.inventory_reader.InventoryReader, reader: ~physrisk.data.zarr_reader.ZarrReader, colormaps: ~typing.Dict[str, ~typing.Any], measures_factory: ~physrisk.kernel.risk.RiskMeasuresFactory, json_encoder_cls: ~typing.Type[~json.encoder.JSONEncoder] = <class 'physrisk.utils.encoder.PhysriskDefaultEncoder'>, sig_figures: int = -1)

Bases: object

get(*, request_id, request_dict)
get_example_portfolios()
get_hazard_data(request: HazardDataRequest)
get_hazard_data_availability(request: HazardAvailabilityRequest)
get_hazard_data_description(request: HazardDescriptionRequest)
get_static_information()
get_asset_exposures(request: AssetExposureRequest)
get_available_sources(request: AvailabilitySourcesRequest) AvailabilitySourcesResponse
get_asset_impacts(request: AssetImpactRequest) AssetImpactResponse
get_image(request_or_dict: HazardImageRequest | Dict)
get_image_info(request: HazardImageInfoRequest)
dumps(dict)
round_sig_figures(x: ndarray | float)
physrisk.requests.create_source_paths(inventory: Inventory)
physrisk.requests.create_assets(api_assets: ~physrisk.api.v1.common.Assets, assets: ~typing.List[~physrisk.kernel.assets.Asset] | None = None, asset_factory: ~physrisk.vulnerability_models.configuration.asset_factory.AssetFactory = <physrisk.vulnerability_models.configuration.asset_factory.DefaultAssetFactory object>)

Create list of Asset objects from the Assets API object:

physrisk.requests.compile_asset_impacts(impacts: ~typing.Dict[~physrisk.kernel.impact.ImpactKey, ~typing.List[~physrisk.kernel.impact.AssetImpactResult]], assets: ~typing.List[~physrisk.kernel.assets.Asset], include_calc_details: bool, sig_figures: ~typing.Callable[[~numpy.ndarray | float], float | ~numpy.ndarray] = <function <lambda>>)

Convert (internal) list of AssetImpactResult objects to a list of AssetLevelImpact objects ready for serialization.

Parameters:
  • impacts (Dict[ImpactKey, List[AssetImpactResult]]) – Impact results.

  • assets (List[Asset]) – Assets: the list will be returned using this order.

  • include_calc_details (bool) – Include calculation details.

  • sig_figures – Function to round results.

Returns:

AssetImpactResult objects for serialization.

Return type:

List[AssetLevelImpact]

Module contents