OECD/SWAC Africapolis with urban green space indicators
**Keywords**: :index:`data used; Africapolis`, :index:`datasets; Africapolis_2015` :index:`datasets; Africapolis_2020`Aperçu
Africapolis <https://africapolis.org/fr> est un ensemble de données conçu par le Club du Sahel et de l’Afrique de l’Ouest <https://www.oecd.org/swac/> pour fournir une base de données standardisée et géospatiale indispensable sur la dynamique de l’urbanisation en Afrique, dans le but de rendre les données urbaines africaines comparables entre les pays et dans le temps. La première version d’Africapolis (vers 2015) a permis pour la première fois de disposer de données pour les 54 pays actuellement couverts pour la même année de base. De plus, Africapolis comble une lacune majeure en matière de données en intégrant les petites villes et les villes intermédiaires entre 10 000 et 300 000 habitants. La deuxième version est une mise à jour pour l’année de référence 2020.
Les données d’Africapolis s’appuient sur un vaste inventaire de recensements de l’habitat et de la population, de registres électoraux et d’autres sources officielles de données démographiques, remontant parfois au début du XXe siècle. Bien qu’essentielles à la constitution de toute base de données, la régularité, le niveau de détail et la fiabilité de ces sources varient d’un pays à l’autre et d’une période à l’autre. Les données de recensement ou les registres officiels de population datent souvent de plus de dix ans et, dans certains cas, de trente ans ou plus. Compte tenu du rythme des changements démographiques et urbains, ces périodes sont significatives.
Les images satellites et aériennes permettent de combler les lacunes et les incohérences des registres officiels, en capturant les données physiques sur le terrain, à savoir la zone bâtie et la localisation précise des habitations. D’autres ressources cartographiques officielles, telles que les limites administratives, sont également utilisées pour relier les données démographiques aux informations observées sur les zones bâties.
Les équipes travaillant sur Africapolis, chez e-Geopolis et au Club du Sahel et de l’Afrique de l’Ouest de l’OCDE, ont travaillé pendant des années pour construire la base de données Africapolis, en apprenant au cours du processus, en ajoutant de nouvelles sources et en améliorant les outils et la méthodologie utilisés pour rendre les données aussi précises que possible.
Africapolis restera un projet continu, fournissant des données et des preuves pour aider les villes et les gouvernements à rendre les zones urbaines plus inclusives, productives et durables. Ces ensembles de données (« Africapolis_2015 » et « Africapolis_2020 ») sont partagés avec des indicateurs d’espaces verts urbains, c’est-à-dire le pourcentage de la zone d’agglomération urbaine dotée d’une couverture végétale (arbres, arbustes et herbe), ainsi que le pourcentage de couverture arborée. Les espaces verts fournissent des services écosystémiques qui renforcent la résilience des villes au changement climatique et renforcent leur durabilité. Ils peuvent atténuer les impacts des phénomènes météorologiques extrêmes tels que les vagues de chaleur, les fortes pluies, les tempêtes et les inondations, ainsi que les risques à évolution lente comme la sécheresse, l’érosion des sols et les glissements de terrain. Les indicateurs d’espaces verts urbains ont été estimés à l’aide des informations sur la couverture terrestre des ensembles de données ESA World Cover v100 (2020) et ESA World Cover v200 (2021).
Les indicateurs joints aux ensembles de données Africapolis fournissent aux décideurs politiques et aux autorités municipales une base de référence pour suivre les progrès vers des zones urbaines plus résilientes.
Des informations sur les espaces verts et les indicateurs de forme urbaine sont également disponibles sur la plateforme Mapping Territorial Transformations in Africa (MAPTA) : www.mapping-africa-transformations.org/climate Pour des informations démographiques relatives aux agglomérations urbaines, veuillez visiter Africapolis.org
Citations suggérées :
Description
Ce notebook explique comment charger et visualiser les agglomérations Africapolis du CSAO de l’OCDE. Il couvre :
Obtenir une liste des polygones disponibles dans une zone donnée
Sélectionner et tracer un seul polygone et ses indicateurs d’espaces verts urbains
Commencer
Pour exécuter cette analyse, exécutez toutes les cellules du bloc-notes, en commençant par la cellule « Charger les packages ».
Charger des paquets
Importez les packages Python utilisés pour l’analyse.
[1]:
import datacube
import numpy as np
import geopandas as gpd
import matplotlib.pyplot as plt
from matplotlib.patches import Patch
from shapely.geometry import box
from odc.geo.geom import Geometry
from deafrica_tools.spatial import xr_rasterize
from deafrica_tools.plotting import display_map, plot_lulc
from deafrica_tools.areaofinterest import define_area
from deafrica_tools.load_africapolis import get_africapolis
Se connecter au datacube
[2]:
dc = datacube.Datacube(app="Africapolis")
Paramètres d’analyse
Sélectionnez l’emplacement
Pour définir la zone d’intérêt, deux méthodes sont disponibles :
En spécifiant la latitude, la longitude et la zone tampon. Cette méthode nécessite que vous saisissiez la latitude centrale, la longitude centrale et la valeur de la zone tampon en degrés carrés autour du point central que vous souhaitez analyser. Par exemple, « lat = 10,338 », « lon = -1,055 » et « buffer = 0,1 » sélectionneront une zone avec un rayon de 0,1 degré carré autour du point avec les coordonnées (10,338, -1,055).
Vous pouvez également fournir des valeurs de tampon distinctes pour la latitude et la longitude d’une zone rectangulaire. Par exemple, « lat = 10.338 », « lon = -1.055 » et « lat_buffer = 0.1 » et « lon_buffer = 0.08 » sélectionneront une zone rectangulaire s’étendant sur 0,1 degré au nord et au sud et 0,08 degré à l’est et à l’ouest à partir du point « (10.338, -1.055) ».
Pour des temps de chargement raisonnables, définissez la mémoire tampon sur « 0,1 » ou moins.
By uploading a polygon as a
GeoJSON or Esri Shapefile. If you choose this option, you will need to upload the geojson or ESRI shapefile into the Sandbox using Upload Files button
in the top left corner of the Jupyter Notebook interface. ESRI shapefiles must be uploaded with all the related files (.cpg, .dbf, .shp, .shx). Once uploaded, you can use the shapefile or geojson to define the area of interest. Remember to update the code to call the file you have uploaded.
Pour utiliser l’une de ces méthodes, vous pouvez décommenter la ligne de code concernée et commenter l’autre. Pour commenter une ligne, ajoutez le symbole "#" avant le code que vous souhaitez commenter. Par défaut, la première option qui définit l’emplacement à l’aide de la latitude, de la longitude et du tampon est utilisée.
Si vous exécutez le notebook pour la première fois, conservez les paramètres par défaut ci-dessous. Cela illustrera le fonctionnement de l’analyse et fournira des résultats significatifs. L’exemple couvre une zone autour de Kumasi, dans le sud du Ghana.
[3]:
# Method 1: Specify the latitude, longitude, and buffer
aoi = define_area(lat=6.6975, lon=-1.6286, buffer=0.2)
# Method 2: Use a polygon as a GeoJSON or Esri Shapefile.
# aoi = define_area(vector_path='aoi.shp')
#Create a geopolygon and geodataframe of the area of interest
geopolygon = Geometry(aoi["features"][0]["geometry"], crs="epsg:4326")
geopolygon_gdf = gpd.GeoDataFrame(geometry=[geopolygon], crs=geopolygon.crs)
# Get the latitude and longitude range of the geopolygon
lat_range = (geopolygon_gdf.total_bounds[1], geopolygon_gdf.total_bounds[3])
lon_range = (geopolygon_gdf.total_bounds[0], geopolygon_gdf.total_bounds[2])
display_map(x=lon_range, y=lat_range)
[3]:
Chargement de l’agglomération urbaine depuis Africapolis
Le module « load_africapolis » permet de selectionner les agglomérations urbaines Africapolis de l’OCDE, du CSAO et du Geoserver. Deux couches sont disponibles : « Africapolis_2015 » et « Africapolis_2020 », qui représentent les données d’agglomération urbaine pour ces années.
En utilisant la fonction « get_africapolis », vous pouvez récupérer une liste de polygones d’agglomération urbaine (qui incluent des indicateurs pour les espaces verts urbains et la couverture arborée) dans une zone de délimitation définie par la zone d’intérêt (qui est définie dans la cellule précédente).
Par exemple, le code suivant chargera les agglomérations urbaines pour 2020 à partir de la couche «Africapolis_2020» dans la zone de délimitation définie :
[4]:
# Create a bounding box from study area coordinates
bbox = (lon_range[0], lat_range[0], lon_range[1], lat_range[1])
# Load Africapolis data.
agglomerations = get_africapolis(bbox=bbox, layer='Africapolis_2020')
# Print list of urban agglomerations and their green urban green space indicators
agglomerations.head()
[4]:
| id | agglosID | agglosName | ISO3 | Pop2020 | p_Urban_green_space_WC2020 | p_Tree_cover_WC2020 | p_Urban_green_space_WC2021 | p_Tree_cover_WC2021 | Longitude | Latitude | color_HEX | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Africapolis_2020.5112 | 5112 | Kumasi | GHA | 2436114 | 40.1 | 18.5 | 42.3 | 20.7 | -1.624333 | 6.670937 | #f1b78c | MULTIPOLYGON (((-1.8533 6.658, -1.8533 6.658, ... |
| 1 | Africapolis_2020.6975 | 6975 | Offinso | GHA | 59753 | 54.3 | 24.5 | 58.2 | 25.9 | -1.681305 | 6.949271 | #a02f3f | MULTIPOLYGON (((-1.6485 6.8994, -1.6483 6.8997... |
| 2 | Africapolis_2020.11073 | 11073 | Ankaase | GHA | 13557 | 60.3 | 40.4 | 66.8 | 39.9 | -1.558112 | 6.845862 | #602317 | MULTIPOLYGON (((-1.5721 6.8498, -1.5721 6.8497... |
| 3 | Africapolis_2020.11947 | 11947 | Barekese | GHA | 10700 | 60.2 | 32.7 | 61.3 | 38.7 | -1.731679 | 6.850784 | #602317 | MULTIPOLYGON (((-1.756 6.8637, -1.756 6.8637, ... |
| 4 | Africapolis_2020.12047 | 12047 | Foase kokoben | GHA | 10525 | 66.4 | 34.3 | 68.0 | 46.0 | -1.748245 | 6.632355 | #602317 | MULTIPOLYGON (((-1.7611 6.6359, -1.7611 6.6359... |
Affichage des polygones d’agglomération de ruban
Une fois les polygones d’agglomération chargés en mémoire, vous pouvez les visualiser à l’aide de tracés statiques ou les explorer de manière interactive dans une visionneuse de carte pour un examen plus détaillé. La palette de couleurs est attribuée en fonction de la taille de la population de l’agglomération.
[5]:
# Predefined labels and colors
legend_labels = [
('Above 3 Million', '#f8dca0'),
('1-3 Million', '#f1b78c'),
('300 000 - 1 Million', '#e38479'),
('100 000 - 300 000', '#cb5260'),
('30 000 - 100 000', '#a02f3f'),
('10 000 - 30 000', '#602317')
]
# Filter agglomerations by available colors
unique_colors = agglomerations['color_HEX'].unique()
# Generate legend elements for only the available colors
legend_elements = []
for label, color in legend_labels:
if color in unique_colors:
legend_elements.append(Patch(facecolor=color, label=label))
# Plot your agglomerations
agglomerations.plot(color=agglomerations['color_HEX'])
# Add a custom legend
plt.legend(handles=legend_elements, title="Population size", loc="center left", bbox_to_anchor=(1.05, 0.5))
plt.show()
[6]:
# Explore the urban agglomeration polygons located within the bounding box
agglomerations.explore(tiles="https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}",
color=agglomerations['color_HEX'],
attr='http://mt0.google.com/vt/lyrs=y&hl=en&x={x}&y={y}&z={z}')
[6]:
Indicateurs d’espaces verts urbains pour une seule agglomération urbaine
Visualisez les indicateurs d’espaces verts urbains pour une agglomération, en montrant sa carte avec la population et un graphique à barres comparant le pourcentage d’espaces verts urbains et de couverture arborée pour 2020 et 2021.
Ces indicateurs ont été estimés à l’aide des informations sur la couverture terrestre provenant des ensembles de données ESA World Cover v100 (2020) <%22https://worldcover2020.esa.int/%22>`__**et ESA World Cover v200 (2021) <https://worldcover2021.esa.int/>`__**.
[7]:
# Edit the name below to select the area of interest
region_name = "Kumasi"
selected_agglomeration = agglomerations[agglomerations["agglosName"] == region_name]
selected_agglomeration
[7]:
| id | agglosID | agglosName | ISO3 | Pop2020 | p_Urban_green_space_WC2020 | p_Tree_cover_WC2020 | p_Urban_green_space_WC2021 | p_Tree_cover_WC2021 | Longitude | Latitude | color_HEX | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Africapolis_2020.5112 | 5112 | Kumasi | GHA | 2436114 | 40.1 | 18.5 | 42.3 | 20.7 | -1.624333 | 6.670937 | #f1b78c | MULTIPOLYGON (((-1.8533 6.658, -1.8533 6.658, ... |
Ensuite, créez une figure avec deux sous-parcelles : l’une montrant la carte de Kumasi et l’autre montrant le graphique à barres comparant l’espace vert urbain et la couverture arborée pour 2020 et 2021. De plus, incluez les ensembles de données ESA WorldCover 2020 et 2021, mettant en évidence la répartition spatiale de l’espace vert urbain, de la couverture arborée et d’autres catégories de couverture terrestre au sein de l’agglomération sélectionnée.
[8]:
# Load ESA Worldcover 2020 and 2021
query = {
'y': (selected_agglomeration.total_bounds[1], selected_agglomeration.total_bounds[3]),
'x': (selected_agglomeration.total_bounds[0], selected_agglomeration.total_bounds[2]),
'resolution':(10,-10),
'output_crs': 'epsg:6933',
'measurements':'classification'
}
#load the data
esa_wc = dc.load(product=['esa_worldcover_2020', 'esa_worldcover_2021'], **query).squeeze()
#Rasterise the area of interest polygon
aoi_raster = xr_rasterize(gdf=selected_agglomeration,
da=esa_wc,
crs=esa_wc.crs)
#Mask the dataset to the rasterised area of interest
esa_wc = esa_wc.where(aoi_raster == 1)
# Create a figure with a grid layout for customized positioning
fig = plt.figure(figsize=(20, 10))
# Add subplots to the grid
ax_map = plt.subplot2grid((2, 3), (0, 0), rowspan=2) # Map spans 2 rows
ax_wc2020 = plt.subplot2grid((2, 3), (0, 1)) # WorldCover 2020 in the middle
ax_wc2021 = plt.subplot2grid((2, 3), (1, 1)) # WorldCover 2021 below the 2020
ax_bar = plt.subplot2grid((2, 3), (0, 2), rowspan=2) # Bar chart spans 2 rows on the right
# Plot the selected agglomeration polygon on the map axis
selected_agglomeration.plot(ax=ax_map, color=selected_agglomeration['color_HEX'], edgecolor='black')
ax_map.set_title(f"{selected_agglomeration['agglosName'].iloc[0]}")
ax_map.set_xlabel("Longitude")
ax_map.set_ylabel("Latitude")
# Get the top-left corner of the bounding box
bbox = selected_agglomeration.total_bounds
top_left_x, top_left_y = bbox[0], bbox[3]
# Automatically detect the population column based on the column name starting with "Pop"
pop_column = [col for col in selected_agglomeration.columns if col.startswith('Pop')][0]
pop_label = selected_agglomeration[pop_column].iloc[0]
# Add population label to the map
ax_map.text(
top_left_x, top_left_y, f"Population: {pop_label:,}",
fontsize=12,
fontweight='bold',
ha='left', va='top',
color='black',
bbox=dict(facecolor='white', edgecolor='none', alpha=0.7))
# Data for the bar chart
labels = ['Urban green space', 'Tree cover']
wc2020 = [
selected_agglomeration['p_Urban_green_space_WC2020'].iloc[0],
selected_agglomeration['p_Tree_cover_WC2020'].iloc[0]
]
wc2021 = [
selected_agglomeration['p_Urban_green_space_WC2021'].iloc[0],
selected_agglomeration['p_Tree_cover_WC2021'].iloc[0]
]
# Bar chart width and position
bar_width = 0.35
index = np.arange(len(labels)) # Position of the bars on the x-axis
# Plotting the grouped bar chart
ax_bar.bar(index - bar_width/2, wc2020, bar_width, label='2020', color='lightgreen')
ax_bar.bar(index + bar_width/2, wc2021, bar_width, label='2021', color='lightcoral')
ax_bar.set_xlabel('Green space types')
ax_bar.set_ylabel('Percentage (%)')
ax_bar.set_title(f"Green space comparison for {selected_agglomeration['agglosName'].iloc[0]}")
ax_bar.set_xticks(index)
ax_bar.set_xticklabels(labels)
ax_bar.legend()
# Plot ESA WorldCover 2020
lulc_2020 = esa_wc.sel(time="2020").squeeze()['classification']
plot_lulc(lulc_2020, product="ESA", legend=True, ax=ax_wc2020)
ax_wc2020.set_title("ESA WorldCover 2020")
# Plot ESA WorldCover 2021
lulc_2021 = esa_wc.sel(time="2021").squeeze()['classification']
plot_lulc(lulc_2021, product="ESA", legend=True, ax=ax_wc2021)
ax_wc2021.set_title("ESA WorldCover 2021")
# Automatically determine the year based on the loaded data (e.g., 2020 or 2015)
year = pop_column[-4:] # Get the last 4 characters of the population column name
# Add a title for the entire figure
fig.suptitle(f"Urban Green Space and Tree Cover Comparison for {selected_agglomeration['agglosName'].iloc[0]} ({year})", fontsize=18, fontweight='bold')
plt.tight_layout()
plt.show()
Indicateurs d’espaces verts urbains pour plusieurs agglomérations urbaines
Si vous souhaitez comparer les indicateurs d’espaces verts urbains pour plusieurs agglomérations, le code ci-dessous montre comment afficher leurs cartes et graphiques à barres pour les pourcentages d’espaces verts urbains et de couverture arborée en 2020 et 2021.
Ces indicateurs ont été estimés à l’aide des informations sur la couverture terrestre provenant des ensembles de données ESA World Cover v100 (2020) <%22https://worldcover2020.esa.int/%22>`__**et ESA World Cover v200 (2021) <https://worldcover2021.esa.int/>`__**.
[9]:
# Select multiple agglomerations by name
select_regions = ["Kumasi", "Offinso"]
selected_agglomerations = agglomerations[agglomerations["agglosName"].isin(select_regions)]
selected_agglomerations
[9]:
| id | agglosID | agglosName | ISO3 | Pop2020 | p_Urban_green_space_WC2020 | p_Tree_cover_WC2020 | p_Urban_green_space_WC2021 | p_Tree_cover_WC2021 | Longitude | Latitude | color_HEX | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Africapolis_2020.5112 | 5112 | Kumasi | GHA | 2436114 | 40.1 | 18.5 | 42.3 | 20.7 | -1.624333 | 6.670937 | #f1b78c | MULTIPOLYGON (((-1.8533 6.658, -1.8533 6.658, ... |
| 1 | Africapolis_2020.6975 | 6975 | Offinso | GHA | 59753 | 54.3 | 24.5 | 58.2 | 25.9 | -1.681305 | 6.949271 | #a02f3f | MULTIPOLYGON (((-1.6485 6.8994, -1.6483 6.8997... |
[10]:
# Create a figure with dynamic subplots (3 columns: map, stacked WC, and bar)
num_agglomerations = len(selected_agglomerations)
fig = plt.figure(figsize=(20, 10 * num_agglomerations)) # Set figure size
# Iterate over selected agglomerations and their corresponding subplot axes
for i, (index, agglomeration) in enumerate(selected_agglomerations.iterrows()):
# Subplot layout (3 columns: map, stacked WC, and bar)
# Map subplot (spans 2 rows)
ax_map = plt.subplot2grid((num_agglomerations * 2, 3), (i * 2, 0), rowspan=2)
# ESA WorldCover 2020 (top half of the second column)
ax_wc_2020 = plt.subplot2grid((num_agglomerations * 2, 3), (i * 2, 1))
# ESA WorldCover 2021 (bottom half of the second column)
ax_wc_2021 = plt.subplot2grid((num_agglomerations * 2, 3), (i * 2 + 1, 1))
# Bar chart subplot (spans 2 rows)
ax_bar = plt.subplot2grid((num_agglomerations * 2, 3), (i * 2, 2), rowspan=2)
# Extract the agglomeration as a GeoDataFrame
agglomeration_gdf = selected_agglomerations.iloc[i:i+1]
# Plot the agglomeration polygon on the map axis
ax_map.set_title(f"{agglomeration['agglosName']}")
agglomeration_gdf.plot(ax=ax_map, color=agglomeration['color_HEX'], edgecolor='black')
ax_map.set_xlabel("Longitude")
ax_map.set_ylabel("Latitude")
# Get the top-left corner of the bounding box
bbox = agglomeration_gdf.total_bounds
top_left_x, top_left_y = bbox[0], bbox[3]
# Automatically detect the population column (based on 'Pop' prefix)
pop_column = [col for col in agglomeration_gdf.columns if col.startswith('Pop')][0]
pop_label = agglomeration[pop_column] # Get population dynamically
# Add population label
ax_map.text(
top_left_x, top_left_y, f"Population: {pop_label:,}",
fontsize=12,
fontweight='bold',
ha='left', va='top',
color='black',
bbox=dict(facecolor='white', edgecolor='none', alpha=0.7)
)
# Prepare data for the bar chart
labels = ['Urban green space', 'Tree cover']
wc2020 = [
agglomeration['p_Urban_green_space_WC2020'],
agglomeration['p_Tree_cover_WC2020']
]
wc2021 = [
agglomeration['p_Urban_green_space_WC2021'],
agglomeration['p_Tree_cover_WC2021']
]
# Plot grouped bar chart
bar_width = 0.35
index = np.arange(len(labels)) # Position of the bars on the x-axis
ax_bar.bar(index - bar_width/2, wc2020, bar_width, label='2020', color='lightgreen')
ax_bar.bar(index + bar_width/2, wc2021, bar_width, label='2021', color='lightcoral')
# Add labels and title to the bar chart
ax_bar.set_xlabel('Green space types')
ax_bar.set_ylabel('Percentage (%)')
ax_bar.set_title(f"Green space comparison for {agglomeration['agglosName']}")
ax_bar.set_xticks(index)
ax_bar.set_xticklabels(labels)
ax_bar.legend()
# Load ESA WorldCover Data for each agglomeration
query = {
'y': (agglomeration_gdf.total_bounds[1], agglomeration_gdf.total_bounds[3]),
'x': (agglomeration_gdf.total_bounds[0], agglomeration_gdf.total_bounds[2]),
'resolution': (10, -10),
'output_crs': 'epsg:6933',
'measurements': 'classification'
}
# Load ESA WorldCover data for both 2020 and 2021
esa_wc = dc.load(product=['esa_worldcover_2020', 'esa_worldcover_2021'], **query).squeeze()
# Rasterize the area of interest polygon for masking ESA WorldCover data
aoi_raster = xr_rasterize(gdf=agglomeration_gdf, da=esa_wc, crs=esa_wc.crs)
# Mask ESA WorldCover data based on the agglomeration boundary
esa_wc_2020_masked = esa_wc.sel(time="2020").squeeze()['classification'].where(aoi_raster == 1)
esa_wc_2021_masked = esa_wc.sel(time="2021").squeeze()['classification'].where(aoi_raster == 1)
# Plot ESA WorldCover 2020 (top part of the stack)
plot_lulc(esa_wc_2020_masked, product="ESA", legend=True, ax=ax_wc_2020)
ax_wc_2020.set_title("ESA WorldCover 2020")
# Plot ESA WorldCover 2021 (bottom part of the stack)
plot_lulc(esa_wc_2021_masked, product="ESA", legend=True, ax=ax_wc_2021)
ax_wc_2021.set_title("ESA WorldCover 2021")
# Automatically determine the year based on the loaded data (e.g., "2020")
year = pop_column[-4:] # Extract the year from the population column (e.g., "2015", "2020")
# Add a title for the entire figure
fig.suptitle(f"Urban Green Space and Tree Cover Comparison for {', '.join(selected_agglomerations['agglosName'].unique())} ({year})", fontsize=18, fontweight='bold')
# Adjust layout and show the plot
plt.tight_layout()
plt.subplots_adjust(top=0.93)
plt.show()
Interprétation du graphique final
La figure générée fournit une analyse comparative des espaces verts urbains et du couvert arboré au sein des agglomérations sélectionnées. Voici comment interpréter chaque composante :
Vue cartographique (première colonne)
Affiche la limite de l’agglomération pour fournir un contexte spatial.
Aide à identifier l’étendue des zones urbaines analysées pour les espaces verts et la couverture arborée.
Couverture terrestre ESA WorldCover (deuxième colonne)
Deux graphiques empilés montrent la classification de la couverture terrestre pour 2020 et 2021.
Tout changement notable dans l’espace vert ou la couverture arborée au fil du temps peut être inspecté visuellement.
Comparaison du graphique à barres (troisième colonne)
Affiche le pourcentage d’espaces verts urbains et de couverture arborée en 2020 et 2021.
Observations clés :
Ces augmentations indiquent des améliorations de la végétation et des efforts potentiels de reboisement.
Les diminutions peuvent suggérer une expansion urbaine, une déforestation ou des changements d’utilisation des terres.
Des valeurs cohérentes peuvent indiquer une couverture végétale stable.
Conclusions et recommandations
Ce notebook explique comment charger et visualiser les agglomérations Africapolis du CSAO de l’OCDE. Pour les agglomérations non incluses dans le jeu de données Africapolis, vous pouvez utiliser le bloc-notes « Urban_green_space <../Real_world_examples/Urban_green_space.ipynb> » pour reproduire l’analyse et obtenir les indicateurs nécessaires. Pour des données plus récentes et plus précises sur le couvert arboré, pensez à utiliser le notebook « Urban_tree_extent <Urban_tree_extent.ipynb> », qui utilise le géo-plan annuel Sentinel-2 de DE Africa pour analyser l’évolution annuelle du couvert arboré, fournissant ainsi des informations plus récentes que les jeux de données WorldCover de l’ESA de 2020 et 2021.
Informations Complémentaires
Licence Le code de ce notebook est sous licence Apache, version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>`__.
Les données de Digital Earth Africa sont sous licence Creative Commons Attribution 4.0 <https://creativecommons.org/licenses/by/4.0/>.
Contact Si vous avez besoin d’aide, veuillez poster une question sur le canal Slack DE Africa <https://digitalearthafrica.slack.com/> ou sur le GIS Stack Exchange <https://gis.stackexchange.com/questions/ask?tags=open-data-cube> en utilisant la balise open-data-cube (vous pouvez consulter les questions posées précédemment `ici <https://gis.stackexchange.com/questions/tagged/open-data-
Si vous souhaitez signaler un problème avec ce notebook, vous pouvez en déposer un sur Github.
Version de Datacube compatible
[11]:
print(datacube.__version__)
1.8.20
Dernier test :
[12]:
from datetime import datetime
datetime.today().strftime('%Y-%m-%d')
[12]:
'2025-01-31'