La cobertura terrestre a lo largo del tiempo#
¿Cómo han cambiado el uso del suelo y la cobertura terrestre con el paso del tiempo?
import folium
import ee
import geemap
import geopandas as gpd
ee.Authenticate()
# Escribe aquí el ID de tu proyecto, entre comillas
ee.Initialize(project="emerge-lessons")
def add_ee_layer(self, ee_image_object, vis_params, name):
"""
Agrega a un mapa de Folium una capa de teselas
procedente de una imagen de Earth Engine.
"""
map_id_dict = ee.Image(
ee_image_object
).getMapId(vis_params)
folium.raster_layers.TileLayer(
tiles=map_id_dict["tile_fetcher"].url_format,
attr=(
'Map Data © '
'<a href="https://earthengine.google.com/">'
"Google Earth Engine</a>"
),
name=name,
overlay=True,
control=True
).add_to(self)
folium.Map.add_ee_layer = add_ee_layer
map = folium.Map(
location=[28.263363, -83.497652],
tiles="Cartodb dark_matter",
zoom_start=7
)
Utilizaremos datos de cobertura terrestre y uso del suelo del conjunto USFS Landscape Change Monitoring System v2024.10 (CONUS and OCONUS), disponible en Google Earth Engine.
landcover_1985 = (
ee.ImageCollection(
"USFS/GTAC/LCMS/v2024-10"
)
.filterDate("1985", "1986")
.filter('study_area == "CONUS"')
.first()
)
palette = [
"fbff97",
"e6558b",
"004e2b",
"9dbac5",
"a6976a",
"1b1716"
]
visual = {
"min": 1,
"max": 6,
"palette": palette
}
map.add_ee_layer(
landcover_1985.select("Land_Use"),
visual,
"Uso del suelo en 1985"
)
display(map)
landcover_2024 = (
ee.ImageCollection(
"USFS/GTAC/LCMS/v2024-10"
)
.filterDate("2024", "2025")
.filter('study_area == "CONUS"')
.first()
)
map.add_ee_layer(
landcover_2024.select("Land_Use"),
visual,
"Uso del suelo en 2024"
)
folium.LayerControl(
collapsed=False
).add_to(map)
display(map)
En la esquina superior derecha, haz clic en la casilla junto a Uso del suelo en 2024 para mostrar u ocultar esa capa y comparar los cambios ocurridos entre 1985 y 2024.
Significado de los colores, según el catálogo de datos:
\[\color{#fbff97}Agricultura\]
\[\color{#e6558b}Zona\space desarrollada\]
\[\color{#004e2b}Bosque\]
\[\color{#9dbac5}Otra\space categoría\]
\[\color{#a6976a}Pastizal\space o\space zona\space de\space pastoreo\]
Ahora mostraremos la cobertura terrestre, en lugar del uso del suelo.
# Crear un mapa nuevo
map = folium.Map(
location=[28.263363, -83.497652],
tiles="Cartodb dark_matter",
zoom_start=7
)
palette = [
"004e2b",
"009344",
"61bb46",
"acbb67",
"8b8560",
"cafd4b",
"f89a1c",
"8fa55f",
"bebb8e",
"e5e98a",
"ddb925",
"893f54",
"e4f5fd",
"00b6f0",
"1b1716"
]
visual = {
"min": 1,
"max": 15,
"palette": palette
}
# Agregar la cobertura terrestre de 1985 y 2024
map.add_ee_layer(
landcover_1985.select("Land_Cover"),
visual,
"Cobertura terrestre en 1985"
)
map.add_ee_layer(
landcover_2024.select("Land_Cover"),
visual,
"Cobertura terrestre en 2024"
)
folium.LayerControl(
collapsed=False
).add_to(map)
display(map)
\[\color{#004e2b}Árboles\]
\[\color{#61bb46}Mezcla\space de\space arbustos\space y\space árboles\]
\[\color{#acbb67}Mezcla\space de\space pasto,\space herbáceas\space y\space árboles\]
\[\color{#8b8560}Mezcla\space de\space terreno\space descubierto\space y\space árboles\]
\[\color{#f89a1c}Arbustos\]
\[\color{#8fa55f}Mezcla\space de\space pasto,\space herbáceas\space y\space arbustos\]
\[\color{#bebb8e}Mezcla\space de\space terreno\space descubierto\space y\space arbustos\]
\[\color{#e5e98a}Pasto,\space plantas\space herbáceas\space o\space hierbas\]
\[\color{#ddb925}Mezcla\space de\space terreno\space descubierto,\space pasto\space y\space herbáceas\]
\[\color{#893f54}Terreno\space descubierto\space o\space superficie\space impermeable\]
\[\color{#e4f5fd}Nieve\space o\space hielo\]
Crear una animación temporal#
landcover = (
ee.ImageCollection(
"USFS/GTAC/LCMS/v2024-10"
)
.filter('study_area == "CONUS"')
.select("Land_Use")
)
point = ee.Geometry.Point(
-81.660044,
28.473813
)
region = point.buffer(
distance=100000
)
images = geemap.create_timeseries(
landcover,
"1985",
"2024",
region,
frequency="year",
reducer="first"
)
images
Map = geemap.Map()
# Incluir una etiqueta para cada año, desde 1985 hasta 2024
labels = [
str(year)
for year in range(1985, 2025)
]
Map.addLayer(
images,
visual,
"Uso del suelo"
)
Map.add_time_slider(
images,
visual,
time_interval=2,
labels=labels
)
Map.setCenter(
-81.660044,
28.473813,
zoom=8
)
Map
En Google Colab, haz clic en la flecha > para ver una animación de los cambios en el uso del suelo a lo largo de los años. La animación puede tardar algunos segundos en cargarse.
fl = gpd.read_file(
"https://github.com/geo-di-lab/emerge-lessons/raw/"
"refs/heads/main/docs/data/florida_boundary.geojson"
)[["geometry"]]
region = geemap.geopandas_to_ee(fl)
timelapse = geemap.modis_ndvi_timelapse(
region,
out_gif="ndvi.gif",
data="Terra",
band="NDVI",
start_date="2000-01-01",
end_date="2024-12-31",
frames_per_second=3,
title="Animación temporal del NDVI de MODIS"
)
geemap.show_image(timelapse)
