Final Project

Methods 1 — Urban Ecologies

Author

Lynn Ayoub

Published

December 16, 2025

Code
library(terra)
library(tidyverse)
library(ggrepel)

zs <- readRDS("data/zs_final.rds")
tripoli_adm3_utm <- readRDS("data/tripoli_adm3_utm.rds")
tripoli_utm <- readRDS("data/tripoli_utm.rds")
landfills_utm <- readRDS("data/landfills_utm.rds")

1. Introduction & Research Question

This project analyzes neighborhood-scale variation in land surface temperature (LST) across Tripoli, Lebanon, using ADM3 administrative units. The analysis examines how mean LST relates to vegetation cover, built-up intensity, population density, and proximity to major urban features.

The research question is: How does mean LST vary across Tripoli neighborhoods, and which land cover and urban characteristics are most strongly associated with higher neighborhood-level heat?

The system under study is Tripoli’s coastal urban environment, where environmental conditions and urban form vary across neighborhoods. Understanding spatial patterns of heat at this scale is relevant for assessing environmental exposure and informing urban planning and environmental management.

Based on prior urban heat research, the analysis expects that higher vegetation is associated with lower LST, while higher built-up intensity, higher population density, greater distance from the coast, and closer proximity to major roads and landfill sites are associated with higher LST.

2. Data Sources & Acquisition

This analysis integrates multiple raster and vector datasets at the neighborhood (ADM3) scale for Tripoli, Lebanon.

-ADM3 Administrative Boundaries (Tripoli)

    Source: National administrative boundary dataset (processed locally)

    Format: Shapefile (.shp)

    Spatial resolution: Neighborhood-level polygons

    CRS: WGS 84 / UTM Zone 36N

-Land Surface Temperature (LST)

    Source: MODIS Terra (MOD11A2)

    Format: GeoTIFF (.tif)

    Spatial resolution: \~1 km

    Temporal resolution: 8-day composite (summer period)

    Accessed: December 1, 2025

-Normalized Difference Vegetation Index (NDVI)

    Source: MODIS (MOD13A2)

    Format: GeoTIFF (.tif)

    Spatial resolution: \~1 km

    Temporal resolution: 16-day composite (summer period)

    Accessed: December 1, 2025

-Built-up Surface Density

    Source: Global Human Settlement Layer (GHSL, 2030 projection)

    Format: GeoTIFF (.tif)

    Spatial resolution: 100 m

    Accessed: December 1, 2025

-Population Data

    Source: WorldPop (2020)

    Format: GeoTIFF (.tif)

    Spatial resolution: \~100 m

    Temporal reference: 2020

    Accessed: December 1, 2025

-Road Network and Coastline

    Source: OpenStreetMap via osmdata R package

    Format: API → vector lines

    Accessed: December 1, 2025

-Landfill Locations

    Source: Manually digitized point dataset (QGIS) using georeferencing

    Format: Shapefile (.shp)

    Spatial resolution: Point locations

Limitations:

Raster datasets vary in spatial resolution, and LST and NDVI represent surface conditions rather than ambient air temperature. OpenStreetMap data completeness may vary spatially, and landfill locations reflect available mapped sites rather than a comprehensive inventory.

3. Data Cleaning & Preparation

All datasets were cleaned and prepared in R using the terra, tidyverse, and sf packages to ensure spatial and analytical consistency.

Importing data

Raster and vector datasets (NDVI, LST, built-up surface, population, landfills, roads, and administrative boundaries) were imported from local directories using rast() and vect(). Tabular summaries were stored as data frames.

Coordinate reference systems

All spatial layers were reprojected to a common CRS (**WGS 84 / UTM Zone 36N**) to allow valid overlay, distance calculations, and zonal statistics.

Spatial subsetting

Raster datasets were cropped and masked to the Tripoli district boundary to limit analysis to the study area.

Zonal statistics

Mean, median, minimum, maximum, and standard deviation values for NDVI, LST, population, and built-up surface were extracted for each ADM3 neighborhood and stored in a single summary table.

Handling missing values

Missing raster values were excluded during extraction using na.rm = TRUE. Neighborhoods with incomplete data were retained only if all key variables were available.

Distance variables

Distances from each ADM3 neighborhood to the nearest landfill, road, and coastline were computed using projected vector layers.

Dataset integration

All derived variables were merged into a single neighborhood-level dataset (zs) used for correlation analysis, regression modeling, and mapping.

4. Exploratory Data Analysis (EDA)

Summary statistics

Neighborhood-level summary statistics reveal strong spatial heterogeneity across environmental, infrastructural, and demographic variables in Tripoli.

-Mean NDVI ranges from **0.12 to 0.34**, with the highest values in Qalamoun, Mina Jardin, and Trablous Jardins.

-Mean LST ranges from **34.1°C to 38.7°C**, with the hottest neighborhoods concentrated in central Tripoli.

-Built-up density (GHSL mean) ranges from approximately **1,085 to 5,105**, indicating large variation in surface impermeability.

-Population density varies widely, from **\~1,200 to \~180,000 persons/km²**.

-Distances to roads and the coastline differ substantially across neighborhoods, suggesting uneven exposure to infrastructure and environmental cooling.

Plot 1: NDVI vs. Land Surface Temperature

Code
library(ggplot2)
library(ggrepel)

p1 <- ggplot(zs, aes(x = NDVI_mean, y = LST_mean, label = ADM3_EN)) +
  geom_point(size = 3) +
  geom_smooth(method = "lm", se = TRUE) +
  geom_text_repel(size = 3) +
  labs(
    title = "NDVI vs Land Surface Temperature (Tripoli ADM3)",
    x = "Mean NDVI",
    y = "Mean LST (°C)"
  ) +
  theme_minimal()

p1

Title: Scatter plot showing the relationship between neighborhood-level vegetation (NDVI) and land surface temperature.

X-axis: Mean NDVI

Y-axis: Mean LST (°C)

Interpretation: A weak negative correlation is observed between NDVI and LST (**r = −0.21**), indicating that greener neighborhoods tend to be slightly cooler. Several neighborhoods deviate from this pattern, suggesting that vegetation alone does not explain temperature variation.

Plot 2: LST vs. Proximity to Roads and the Coast

Code
library(terra)
library(osmdata)

stopifnot(exists("tripoli_adm3_utm"))
stopifnot(exists("zs"))

# 1) Get coastline geometry (OSM, WGS84 lon/lat)
q_coast <- opq("Tripoli Lebanon") |>
  add_osm_feature(key = "natural", value = "coastline")

coast_osm <- osmdata_sf(q_coast)

if (is.null(coast_osm$osm_lines) || nrow(coast_osm$osm_lines) == 0L) {
  stop("OSM query returned no coastline lines for Tripoli.")
}

# 2) Convert to terra vector + project to Tripoli CRS (UTM 36N)
coast_v   <- vect(coast_osm$osm_lines)
coast_utm <- project(coast_v, crs(tripoli_adm3_utm))

# 3) Distance from each ADM3 polygon to coastline (min distance, meters)
dist_coast_mat <- distance(tripoli_adm3_utm, coast_utm)
dist_coast_vec <- apply(dist_coast_mat, 1, min, na.rm = TRUE)

# 4) Attach to zs (and polygons, useful for mapping)
zs$dist_coast <- dist_coast_vec
tripoli_adm3_utm$dist_coast <- dist_coast_vec

# 5) Confirm
names(zs)
 [1] "ADM3_EN"       "NDVI_mean"     "NDVI_median"   "NDVI_min"     
 [5] "NDVI_max"      "NDVI_sd"       "LST_mean"      "LST_median"   
 [9] "LST_min"       "LST_max"       "LST_sd"        "rank_NDVI"    
[13] "rank_LST"      "LST_predicted" "heat_mismatch" "typology"     
[17] "dist_coast"   
Code
library(ggplot2)
library(ggrepel)

p_coast_lst <- ggplot(
  zs,
  aes(x = dist_coast, y = LST_mean, label = ADM3_EN)
) +
  geom_point(size = 3, color = "firebrick") +
  geom_smooth(method = "lm", se = TRUE, color = "black") +
  geom_text_repel(size = 3) +
  labs(
    title = "Distance to Coast vs Land Surface Temperature (Tripoli ADM3)",
    x = "Distance to Coast (m)",
    y = "Mean Land Surface Temperature (°C)",
    caption = "Distance measured as the minimum distance from each ADM3 polygon to OSM coastline geometry."
  ) +
  theme_minimal()

p_coast_lst

Title: Scatter plots illustrating the relationship between land surface temperature and proximity to major roads and the coastline.

X-axis: Distance to nearest road / coast (meters)

Y-axis: Mean LST (°C)

Interpretation: LST is strongly negatively correlated with distance to roads (**r = −0.79**), indicating higher temperatures closer to major road infrastructure. LST is strongly positively correlated with distance from the coast (**r = 0.79**), reflecting the cooling influence of coastal proximity.

5. Spatial Analysis

This project includes spatial data at the ADM3 neighborhood level for Tripoli. I use the Tripoli ADM3 polygons as the analysis zones and map neighborhood-level summaries of greenness (NDVI), heat (LST), and key built-environment and accessibility variables. Spatial overlays are also used to integrate external layers (WorldPop, GHSL built-up, OpenStreetMap coastline/roads, and landfill points) into the neighborhood dataset.

5.1 Choropleth maps (ADM3)

Code
library(terra)

stopifnot(exists("tripoli_adm3_utm"))
stopifnot(exists("tripoli_utm"))
stopifnot(exists("zs"))

# attach analysis variables (zs) back onto the spatial polygons
tripoli_adm3_utm$NDVI_mean     <- zs$NDVI_mean
tripoli_adm3_utm$LST_mean      <- zs$LST_mean
tripoli_adm3_utm$built_mean    <- zs$built_mean
tripoli_adm3_utm$pop_density   <- zs$pop_density
tripoli_adm3_utm$dist_roads    <- zs$dist_roads
tripoli_adm3_utm$dist_landfill <- zs$dist_landfill

Figure 5.1a. Mean Land Surface Temperature (LST) by Neighborhood (ADM3)

Code
plot(tripoli_adm3_utm, "LST_mean",
     main = "Mean LST (°C) by Neighborhood (ADM3)",
     col  = rev(heat.colors(10)))
lines(tripoli_utm, lwd = 2)

Mean land surface temperature (LST) by Tripoli neighborhood (ADM3).

This choropleth map shows the spatial distribution of mean land surface temperature (LST) across Tripoli’s ADM3 neighborhoods. Higher surface temperatures are concentrated in central and inland neighborhoods, while lower temperatures are observed in coastal and peripheral areas. The pattern highlights clear intra-urban variation in thermal exposure and suggests the combined influence of urban form and geographic location.


Figure 5.1b. Mean NDVI by Neighborhood (ADM3)

Code
stopifnot(all(c("NDVI_mean") %in% names(tripoli_adm3_utm)))

plot(tripoli_adm3_utm, "NDVI_mean",
     main = "Mean NDVI by Neighborhood (ADM3)")
lines(tripoli_utm, lwd = 2)

Mean NDVI by neighborhood (ADM3), Tripoli.

This map displays the average normalized difference vegetation index (NDVI) for each ADM3 neighborhood in Tripoli. Neighborhoods with higher NDVI values—such as coastal and peripheral areas—exhibit greater vegetation cover, while central neighborhoods show lower NDVI levels. The spatial pattern illustrates uneven distribution of green cover across the city and provides a spatial counterpart to the NDVI–LST relationships observed in the EDA.


Figure 5.1c. Distance to Coast by Neighborhood (ADM3)

Code
### A3) Distance to coast choropleth
#| label: map-distcoast
#| fig-cap: "Minimum distance to the coast (meters) by neighborhood (ADM3), Tripoli."
#| message: false
#| warning: false

stopifnot(all(c("dist_coast") %in% names(tripoli_adm3_utm)))

plot(tripoli_adm3_utm, "dist_coast",
     main = "Distance to Coast (m) by Neighborhood (ADM3)")
lines(tripoli_utm, lwd = 2)

This choropleth map illustrates the minimum distance from each ADM3 neighborhood to the coastline. Coastal neighborhoods are clearly distinguished from inland areas, with distance increasing progressively toward the interior of the city. This spatial gradient provides a geographic context for observed temperature differences and highlights the potential cooling role of coastal proximity in Tripoli’s urban climate.


5.2 Spatial overlays and distance surfaces

To incorporate built environment and accessibility features, I compute minimum distances from each neighborhood polygon to relevant geometries: • Distance to roads: minimum distance from each ADM3 polygon to OpenStreetMap highway lines (meters). • Distance to coast: minimum distance from each ADM3 polygon to OpenStreetMap coastline lines (meters). • Distance to landfill: minimum distance from each ADM3 polygon to landfill point locations (meters).

Figure 5.2a. Landfill Locations Overlaid on Tripoli ADM3 Neighborhoods

Code
stopifnot(exists("landfills_utm"))

plot(tripoli_adm3_utm,
     col = "white", border = "black",
     main = "Landfills over Tripoli (ADM3)")
points(landfills_utm, pch = 20, cex = 1.2, col = "red")
lines(tripoli_utm, lwd = 2)

Landfill point locations overlaid on Tripoli ADM3 neighborhoods (UTM 36N).

This spatial overlay map shows the location of the landfill site relative to Tripoli’s ADM3 neighborhood boundaries. The landfill is situated in close proximity to several residential neighborhoods, highlighting a spatial concentration of environmental burden rather than a uniform distribution across the city. The overlay contextualizes the distance-to-landfill measures used in the analysis and illustrates how environmental risk is spatially embedded within neighborhood-scale urban organization.

6. Data Visualization & Results

This section presents the main results of the analysis using spatial visualizations and a summary table. The focus is on mapping neighborhood-level patterns of heat exposure and its relationship to urban form, population concentration, and geography across Tripoli. These visualizations synthesize the results of the exploratory and spatial analyses and highlight areas of heightened environmental risk.

Figure 6.1. Mean Land Surface Temperature by Neighborhood (ADM3)

Code
stopifnot(exists("tripoli_adm3_utm"))
stopifnot(exists("tripoli_utm"))
stopifnot(exists("zs"))

# Join LST onto polygons (safe + explicit)
idx <- match(tripoli_adm3_utm$ADM3_EN, zs$ADM3_EN)
stopifnot(!any(is.na(idx)))

tripoli_adm3_utm$LST_mean <- zs$LST_mean[idx]

plot(
  tripoli_adm3_utm, "LST_mean",
  main = "Mean LST (°C) by Neighborhood (ADM3)"
)
lines(tripoli_utm, lwd = 2)

Mean land surface temperature (LST) by Tripoli neighborhood (ADM3).

This map displays the spatial distribution of mean land surface temperature (LST) across Tripoli’s ADM3 neighborhoods.

Mean LST varies substantially across the city, ranging from approximately 34°C to nearly 39°C. The highest temperatures are concentrated in central and inland neighborhoods, while coastal areas and peripheral neighborhoods exhibit lower surface temperatures. This pattern suggests that both urban density and distance from the coast play a role in shaping thermal conditions.


Figure 6.2. Distance to Coast by Neighborhood

Code
library(terra)
library(osmdata)

stopifnot(exists("tripoli_adm3_utm"))
stopifnot(exists("tripoli_utm"))

# --- Coastline from OSM (WGS84 lon/lat) ---
q_coast <- opq("Tripoli Lebanon") |>
  add_osm_feature(key = "natural", value = "coastline")

coast_osm <- osmdata_sf(q_coast)

if (is.null(coast_osm$osm_lines) || nrow(coast_osm$osm_lines) == 0L) {
  stop("OSM query returned no coastline lines for Tripoli.")
}

coast_v   <- vect(coast_osm$osm_lines)          # lon/lat
coast_utm <- project(coast_v, crs(tripoli_adm3_utm))  # UTM 36N

# --- Distance: min distance from each ADM3 polygon to coast (meters) ---
dist_mat <- distance(tripoli_adm3_utm, coast_utm)
dist_vec <- apply(dist_mat, 1, min, na.rm = TRUE)

# Attach to polygons (for mapping)
tripoli_adm3_utm$dist_coast <- dist_vec

# Plot choropleth
plot(tripoli_adm3_utm, "dist_coast",
     main = "Distance to Coast by Neighborhood (ADM3)",
     col  = rev(terrain.colors(10)))
lines(tripoli_utm, lwd = 2)

Distance to coast (meters) by Tripoli neighborhood (ADM3), computed as the minimum distance from each ADM3 polygon to OpenStreetMap coastline geometry.

This map shows the minimum distance from each Tripoli neighborhood to the coastline, measured in meters. Coastal neighborhoods such as Mina Jardin and Qalamoun are located closest to the sea, while inland neighborhoods in central Tripoli are substantially farther from the coast.

Neighborhoods with greater distance from the coastline tend to exhibit higher mean land surface temperatures, consistent with the strong positive correlation observed between distance to coast and LST in the statistical analysis. The spatial pattern clearly illustrates the cooling influence of coastal proximity, likely driven by sea breezes and lower surface heat retention near the waterfront.


Figure 6.3. Heat Mismatch by Neighborhood

Code
# Safety check
stopifnot(all(c("ADM3_EN", "heat_mismatch") %in% names(zs)))

# Join heat mismatch to spatial polygons
idx <- match(tripoli_adm3_utm$ADM3_EN, zs$ADM3_EN)
tripoli_adm3_utm$heat_mismatch <- zs$heat_mismatch[idx]

# Plot
plot(
  tripoli_adm3_utm,
  "heat_mismatch",
  main = "Heat Mismatch by Neighborhood (ADM3)",
  col = rev(terrain.colors(11))
)
lines(tripoli_utm, lwd = 2)
Figure 1: Heat mismatch by neighborhood (ADM3). Positive values indicate neighborhoods hotter than expected based on vegetation levels; negative values indicate cooler-than-expected areas.

This map displays the spatial distribution of the heat mismatch index, which measures whether a neighborhood is hotter or cooler than expected given its vegetation level (NDVI). Positive values indicate neighborhoods that experience higher land surface temperatures than predicted based on their greenness, while negative values indicate cooler-than-expected neighborhoods.

Neighborhoods with positive heat mismatch values are concentrated in central and inland parts of Tripoli, where dense urban form and infrastructure appear to amplify heat beyond what vegetation levels alone would suggest. In contrast, several coastal neighborhoods, including areas near Mina Jardin and Qalamoun, exhibit negative heat mismatch values, meaning they remain cooler than expected given their NDVI levels. This pattern points to the moderating influence of coastal proximity and urban morphology.


Figure 6.4. Mean NDVI by Neighborhood (ADM3)

Code
# Safety check
stopifnot(all(c("ADM3_EN", "NDVI_mean") %in% names(zs)))

# Join NDVI to spatial polygons
idx <- match(tripoli_adm3_utm$ADM3_EN, zs$ADM3_EN)
tripoli_adm3_utm$NDVI_mean <- zs$NDVI_mean[idx]

# Plot
plot(
  tripoli_adm3_utm,
  "NDVI_mean",
  main = "Mean NDVI by Neighborhood (ADM3)",
  col  = rev(terrain.colors(10))
)
lines(tripoli_utm, lwd = 2)
Figure 2: Mean Normalized Difference Vegetation Index (NDVI) by neighborhood (ADM3) in Tripoli.

This map shows the spatial distribution of mean normalized difference vegetation index (NDVI) across Tripoli’s ADM3 neighborhoods. Higher NDVI values are concentrated in coastal neighborhoods such as Qalamoun and Mina Jardin, as well as in some peripheral areas, while central neighborhoods in Trablous exhibit noticeably lower vegetation levels.

This pattern highlights uneven access to green cover across the city and reflects differences in land use and urban form. Neighborhoods with lower NDVI generally correspond to more densely built and infrastructurally intensive areas, suggesting limited vegetation presence in the urban core.


Figure 6.5. Top Five Neighborhoods with the Highest Mean Land Surface Temperature in Tripoli (ADM3)

Although this table is not part of the spatial analysis, it is included to provide a concise, neighborhood-level summary of key characteristics associated with higher land surface temperatures, complementing the spatial patterns discussed above.

Neighborhood (ADM3) Mean LST Population Density Built up Density Distance to Coast
Trablous Ez-Zeitoun 38.73 1,246 1,459 694
Trablous El-Qobbe 38.45 145,268 3,773 1,193
Trablous et Tebbaneh 38.25 180,138 3,765 1,300
Trablous Es-Souayqa 38.05 92,001 3,137 2,022
Trablous El Hadid 38.04 110,521 3,297 2,025

Table 1 summarizes the five neighborhoods with the highest mean land surface temperatures, alongside key characteristics related to urban form, population density, and coastal proximity.

These neighborhoods are consistently characterized by high built-up density, substantial population concentration, and greater distance from the coast. The table reinforces the spatial patterns observed in the maps and demonstrates that heat exposure in Tripoli emerges from the interaction of multiple urban and geographic.

7. Statistical or Temporal Analysis

Statistical Analysis

To complement the spatial analysis, correlation tests and multivariate regression models were used to quantify the relationships between LST and key environmental and infrastructural variables at the neighborhood (ADM3) level.

Correlation Analysis

Pearson correlation coefficients were calculated to assess bivariate relationships between mean LST and vegetation (NDVI), built-up density, population density, and proximity to infrastructure and environmental features.

Results

Mean LST is weakly negatively correlated with NDVI (r ≈ −0.21), indicating a limited cooling effect of vegetation at the neighborhood scale. In contrast, LST shows a strong negative correlation with distance to roads (r ≈ −0.79) and a strong positive correlation with distance to the coast (r ≈ 0.79), suggesting that proximity to major infrastructure and coastal cooling plays a substantial role in shaping urban heat patterns. Built-up density and population density exhibit moderate positive correlations with LST.

Multivariate Regression Analysis

A multivariate linear regression model was estimated to assess the combined influence of vegetation, urban form, population density, and spatial proximity variables on neighborhood-level LST.

Results

The full model explains a large share of neighborhood-level temperature variation (adjusted R² ≈ 0.90). Distance to roads and distance to the coast emerge as the strongest and most statistically significant predictors of LST, even when controlling for vegetation, built-up density, and population density. Vegetation shows a marginally significant cooling effect, while built-up density and population density do not remain significant once spatial proximity variables are included.

8. Discussion & Interpretation

This analysis reveals clear spatial inequalities in urban heat exposure across Tripoli’s neighborhoods, driven primarily by infrastructure proximity and coastal access rather than vegetation alone. Neighborhoods with higher land surface temperatures tend to be those located farther from the coast and closer to major road networks, highlighting the dominant role of urban form and circulation infrastructure in shaping thermal conditions. Built-up density and population density contribute to heat exposure, but their effects weaken once spatial proximity variables are accounted for.

One unexpected result is the relatively weak relationship between vegetation (NDVI) and land surface temperature. While greener neighborhoods are, on average, slightly cooler, the effect is modest and inconsistent across space. This suggests that small or fragmented green areas may be insufficient to offset the thermal impacts of dense construction and transportation infrastructure. Coastal neighborhoods such as Qalamoun and Mina Jardin remain cooler despite varying built-up intensities, underscoring the importance of large-scale environmental factors such as sea breezes and proximity to open water.

Several data limitations should be acknowledged. Land surface temperature captures surface heat rather than experienced air temperature and reflects a specific temporal snapshot rather than seasonal variation. Population data are derived from gridded estimates and may not fully capture informal density patterns. Road and coastline data from OpenStreetMap may vary in spatial completeness and classification accuracy. Additionally, the analysis assumes uniform exposure within each ADM3 neighborhood, potentially masking intra-neighborhood variability.

Potential sources of bias include the modifiable areal unit problem (MAUP), which may influence results due to the choice of administrative boundaries, and spatial autocorrelation, which is not explicitly modeled. The relatively small number of neighborhoods also limits statistical power and the generalizability of regression results.

Despite these limitations, the findings carry important implications for urban policy and planning. Heat exposure in Tripoli appears closely tied to infrastructural and spatial inequalities rather than solely to environmental conditions. Interventions focused only on increasing vegetation may have limited impact unless combined with broader strategies addressing road density, urban design, and equitable access to coastal and cooling resources. These results point toward the need for integrated urban heat mitigation policies that account for infrastructure, land use, and spatial justice.

9. Conclusion

This project examined spatial patterns of urban heat in Tripoli by integrating remote sensing data, demographic information, and spatial proximity measures at the neighborhood level. By combining land surface temperature, vegetation indices, built-up density, population density, and distances to key infrastructural and environmental features, the analysis revealed substantial inequalities in heat exposure across the city. The results show that proximity to major roads and distance from the coastline are the strongest predictors of higher surface temperatures, while vegetation plays a more limited and uneven role.

These findings matter because they highlight how urban heat is not evenly distributed but instead reflects underlying spatial and infrastructural inequalities. Neighborhoods that are densely built, heavily trafficked, and spatially disconnected from cooling environmental assets face disproportionate thermal burdens. This has direct implications for public health, energy demand, and climate vulnerability in Tripoli, particularly as heat extremes intensify.

Future work could extend this analysis by incorporating temporal data to capture seasonal and diurnal variation in heat, integrating air temperature or humidity measures, and explicitly modeling spatial autocorrelation. Finer-scale data could also help identify intra-neighborhood disparities and support more targeted urban heat mitigation strategies.