babylon.config.defines.external_data

External data source coordinates (ArcGIS + Services composed via ExternalData).

Spec 058: extracted from the historical babylon.config.defines monolith. Re-exported via babylon.config.defines.__init__; composed into GameDefines in babylon.config.defines._assembler.

Classes

ArcGISDefines(**data)

ArcGIS organization and host configuration for external data sources.

ExternalDataDefines(**data)

External data source configuration.

ServicesDefines(**data)

ArcGIS FeatureServer service names and layers.

class babylon.config.defines.external_data.ArcGISDefines(**data)[source]

Bases: BaseModel

ArcGIS organization and host configuration for external data sources.

Different federal agencies host HIFLD and infrastructure data on various ArcGIS organizations. This configuration centralizes the organization IDs and hosts to allow easy updates when services migrate.

Current organization mapping (as of 2024): - FEMA RAPT: Prison Boundaries, Law Enforcement (services.arcgis.com) - Esri US Federal: MIRTA Military Installations (services2.arcgis.com) - HIFLD Legacy: Some services still work (services1.arcgis.com)

Parameters:
  • fema_rapt_org (str)

  • fema_rapt_host (str)

  • esri_federal_org (str)

  • esri_federal_host (str)

  • hifld_legacy_org (str)

  • hifld_legacy_host (str)

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

fema_rapt_org: str
fema_rapt_host: str
esri_federal_org: str
esri_federal_host: str
hifld_legacy_org: str
hifld_legacy_host: str
class babylon.config.defines.external_data.ExternalDataDefines(**data)[source]

Bases: BaseModel

External data source configuration.

Centralizes ArcGIS organization IDs, hosts, and service names for HIFLD and related infrastructure data sources. This enables: 1. Easy updates when services migrate between organizations 2. Testing with alternative data sources 3. Clear documentation of data source provenance

Parameters:
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

arcgis: ArcGISDefines
services: ServicesDefines
build_service_url(host, org, service, layer=0)[source]

Build a complete ArcGIS FeatureServer URL.

Parameters:
  • host (str) – ArcGIS host domain (e.g., “services.arcgis.com”)

  • org (str) – Organization ID (e.g., “XG15cJAlne2vxtgt”)

  • service (str) – Service name (e.g., “Prison_Boundaries_RAPT”)

  • layer (int) – Layer number (default 0)

Return type:

str

Returns:

Complete FeatureServer URL

prison_boundaries_url()[source]

Get the Prison Boundaries FeatureServer URL.

Return type:

str

law_enforcement_url()[source]

Get the Law Enforcement Locations FeatureServer URL.

Return type:

str

mirta_url()[source]

Get the MIRTA Military Installations FeatureServer URL.

Return type:

str

electric_transmission_url()[source]

Get the Electric Transmission Lines FeatureServer URL.

Return type:

str

class babylon.config.defines.external_data.ServicesDefines(**data)[source]

Bases: BaseModel

ArcGIS FeatureServer service names and layers.

Service names can be overridden for testing or alternative data sources. Layer numbers are important as some services (like Prison_Boundaries) have data on non-default layers.

Parameters:
  • prison_boundaries (str)

  • prison_boundaries_layer (int)

  • law_enforcement (str)

  • law_enforcement_layer (int)

  • mirta_polygons (str)

  • mirta_layer (int)

  • electric_transmission (str)

  • electric_transmission_layer (int)

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

prison_boundaries: str
prison_boundaries_layer: int
law_enforcement: str
law_enforcement_layer: int
mirta_polygons: str
mirta_layer: int
electric_transmission: str
electric_transmission_layer: int