visualisation
Data visualization module for spatial accessibility analysis.
This module provides functions for creating interactive maps and visualizations of facilities, population data, and isopolygons (service areas). It helps in visualizing spatial relationships between facilities and population, service coverage areas, and optimization scenarios.
The visualizations use Folium (based on Leaflet.js) to create interactive web maps that can be displayed in notebooks, web applications, or exported as HTML files.
Examples
Create interactive maps for facilities and population:
>>> from pisa.administrative_area import AdministrativeArea
>>> from pisa.facilities import Facilities
>>> from pisa.population import WorldpopPopulation
>>> from pisa.visualisation import plot_facilities, plot_population
>>>
>>> # Get administrative area and data
>>> admin_area = AdministrativeArea("Timor-Leste", admin_level=1)
>>> boundaries = admin_area.get_admin_area_boundaries("Baucau")
>>> country_code = admin_area.get_iso3_country_code()
>>>
>>> # Get facilities data
>>> facilities = Facilities(admin_area_boundaries=boundaries)
>>> existing_facilities = facilities.get_existing_facilities()
>>>
>>> # Get population data
>>> population = WorldpopPopulation(
>>> admin_area_boundaries=boundaries,
>>> iso3_country_code=country_code
>>> )
>>> population_gdf = population.get_population_gdf()
>>>
>>> # Create interactive maps
>>> facility_map = plot_facilities(existing_facilities, boundaries)
>>> population_map = plot_population(population_gdf, boundaries)
See also
facilitiesModule for facility data processing
populationModule for population data processing
isopolygonsModule for generating service area polygons
Functions
|
Plot facilities on an interactive map with administrative area boundaries. |
|
Create a heatmap visualization of population density. |
|
Plot population points on an interactive map. |
|
Plot isochrones/isopolygons for multiple facilities on an interactive map. |
|
Plot optimization results showing existing and proposed facility locations. |
Module Contents
- visualisation.plot_facilities(df_facilities: pandas.DataFrame, admin_area_boundaries: shapely.geometry.MultiPolygon | shapely.geometry.Polygon, df_potential_facilities: pandas.DataFrame | None = None, tiles='OpenStreetMap') folium.Map
Plot facilities on an interactive map with administrative area boundaries.
This function creates a Folium map showing existing facilities as blue circle markers, and optionally potential facilities as orange circle markers, within the context of administrative area boundaries.
- Parameters:
df_facilities (pandas.DataFrame) –
DataFrame containing information about existing facilities. Must have columns:
latitude: Latitude coordinate of the facilitylongitude: Longitude coordinate of the facility
admin_area_boundaries (MultiPolygon or Polygon) – Shapely geometry representing the boundaries of the administrative area
df_potential_facilities (pandas.DataFrame, optional) –
DataFrame containing information about potential facility locations. Must have columns:
latitude: Latitude coordinate of the potential facilitylongitude: Longitude coordinate of the potential facility
tiles (str, optional) – The tile provider for the base map. Any valid Folium tile provider name can be used. See folium.Map documentation for available options. (default:
OpenStreetMap)
- Returns:
Interactive Folium map with administrative boundaries and facility markers
- Return type:
folium.Map
- visualisation.plot_population_heatmap(df_population: pandas.DataFrame, admin_area_boundaries: shapely.geometry.MultiPolygon | shapely.geometry.Polygon, tiles='OpenStreetMap') folium.Map
Create a heatmap visualization of population density.
This function generates an interactive Folium map displaying population density as a heatmap within the specified administrative area boundaries.
- Parameters:
df_population (pandas.DataFrame) –
DataFrame containing population data. Must have columns:
latitude: Latitude coordinatelongitude: Longitude coordinatepopulation: Population value (intensity for the heatmap)
admin_area_boundaries (MultiPolygon or Polygon) – Shapely geometry representing the boundaries of the administrative area
tiles (str, optional) – The tile provider for the base map. Any valid Folium tile provider name can be used. See folium.Map documentation for available options. (default:
OpenStreetMap)
- Returns:
Interactive Folium map with population heatmap visualization
- Return type:
folium.Map
- visualisation.plot_population(df_population: pandas.DataFrame, admin_area_boundaries: shapely.geometry.MultiPolygon | shapely.geometry.Polygon, random_sample_n: int | None = None, tiles='OpenStreetMap') folium.Map
Plot population points on an interactive map.
This function creates a Folium map showing population points as circle markers, with size and opacity reflecting the relative population values.
- Parameters:
df_population (pandas.DataFrame) –
DataFrame containing population data. Must have columns:
latitude: Latitude coordinatelongitude: Longitude coordinatepopulation: Population value at that point
admin_area_boundaries (MultiPolygon or Polygon) – Shapely geometry representing the boundaries of the administrative area
random_sample_n (int, optional) – Number of population points to randomly sample and display. If None, all points will be displayed (can be performance-intensive for large datasets) (default:
None)tiles (str, optional) – The tile provider for the base map. Any valid Folium tile provider name can be used. See folium.Map documentation for available options. (default:
OpenStreetMap)
- Returns:
Interactive Folium map with population points displayed
- Return type:
folium.Map
- visualisation.plot_isochrones(df_isopolygons: pandas.DataFrame, admin_area_boundaries: shapely.geometry.MultiPolygon | shapely.geometry.Polygon, tiles: str = 'OpenStreetMap') folium.Map
Plot isochrones/isopolygons for multiple facilities on an interactive map.
This function creates a Folium map displaying isopolygons (areas reachable within specific travel times or distances) around facilities, with different colors for each facility and varying opacity for different time/distance thresholds.
- Parameters:
df_isopolygons (pandas.DataFrame) –
DataFrame containing isopolygon geometries. Should have:
Index representing unique facility identifiers
Columns named
ID_Xwhere X is the distance/time threshold (e.g.,ID_10for 10-minute isochrone)Each cell contains a Shapely
PolygonorMultiPolygon
admin_area_boundaries (MultiPolygon or Polygon) – Shapely geometry representing the boundaries of the administrative area
tiles (str, optional) – The tile provider for the base map. Any valid Folium tile provider name can be used. See folium.Map documentation for available options. (default:
OpenStreetMap)
- Returns:
Interactive Folium map with isopolygons visualized
- Return type:
folium.Map
- visualisation.plot_results(open_locations: list, current: pandas.DataFrame, total_fac: pandas.DataFrame, admin_area_boundaries: shapely.geometry.MultiPolygon | shapely.geometry.Polygon) folium.Map
Plot optimization results showing existing and proposed facility locations.
This function creates a Folium map displaying the results of a facility location optimization model, showing both existing facilities and proposed new facilities.
- Parameters:
open_locations (list) – List of facility identifiers (matching indices in total_fac) that are selected as part of the optimization solution (both existing and new)
current (pandas.DataFrame) – DataFrame containing information about existing facilities, with a column
Cluster_IDthat identifies each facilitytotal_fac (pandas.DataFrame) –
DataFrame containing information about all facility locations (both existing and potential). Must have:
Index matching the identifiers in open_locations
Columns
latitudeandlongitudefor facility coordinates
admin_area_boundaries (MultiPolygon or Polygon) – Shapely geometry representing the boundaries of the administrative area
- Returns:
Interactive Folium map showing optimization results with markers
- Return type:
folium.Map
Notes
Existing facilities are shown with blue hospital icons
Proposed new facilities are shown with purple question mark icons