Data Science¶
Datos Geospeciales, representacion informacion de objetvos ubicacos en la superficiente terrestre.
- Raster son pixeles
- Vectoriales usa el raster para dibujar con funciones la imagen de la posicion
Se usan los datos por capas, encima de los poligonos, raster, etc , podemos prender apagar, agregar , etc en base de lo que queramos.
Georeferenciacion¶
Es ponerle coordenadas a cada pixel, o lo que mires osea definir en la superficie de la tierra.
FUENTE DE DATOS¶
Fuente de Datos Raster¶
Tomar la imagen haciendo uso de drones o aviones que toman imagenes de la tierra, luego se hace una georeferencia del punto que se hace referencia
Tipos de Resoluciones¶
Espacial¶
Cantidad de metros que tiene 1 pixel, cuando lo pongo en una resolucion de 1 metro. Si pongo cada pixel represetado por 2 m x 2m mi resolucion es de 8 x 8
Resolución Temporal¶
Definición: Frecuencia con la que un sensor captura datos del mismo lugar.
Ejemplo: Un satélite con resolución temporal de 1 día toma imágenes del mismo lugar cada día.
Importancia: Útil para monitorear cambios (agricultura, deforestación, inundaciones, etc.).
Resolución Espectral¶
Definición: Número y ancho de las bandas del espectro electromagnético que un sensor puede captar.
Ejemplo: Una cámara RGB tiene 3 bandas (rojo, verde, azul), mientras que un sensor multiespectral puede tener 5, 10 o más.
Alta resolución espectral: Captura información detallada de diferentes longitudes de onda, incluso fuera del espectro visible (como el infrarrojo).
Resolución Radiométrica¶
Definición: Capacidad de un sensor para distinguir diferencias en intensidad (niveles de brillo).
Ejemplo: Una imagen de 8 bits puede representar 256 niveles de intensidad; una de 16 bits puede representar 65,536 niveles.
Importancia: Afecta el contraste y la capacidad para detectar pequeñas variaciones en energía reflejada.
¡Claro! Aquí tienes una explicación clara y concisa de los principales tipos de índices utilizados en imágenes satelitales y sensores remotos, especialmente en aplicaciones como agricultura, monitoreo ambiental, agua, vegetación, etc.
Índices en Teledetección¶
Los índices combinan valores de diferentes bandas espectrales para resaltar ciertas características en la superficie terrestre (vegetación, agua, suelo, etc.). Se calculan mediante fórmulas aplicadas a los valores espectrales de cada píxel.
1. NDVI (Índice de Vegetación de Diferencia Normalizada)¶
Fórmula:
$$ NDVI = \frac{NIR - Red}{NIR + Red} $$
Bandas usadas: Infrarrojo cercano (NIR) y Rojo.
Valores: Entre -1 y 1.
- Cerca de 1 → Vegetación sana
- Cerca de 0 → Suelo desnudo
- Negativos → Agua, nubes o nieve
Usos: Agricultura, detección de vegetación, salud de cultivos.
2. NDWI (Índice de Humedad de Diferencia Normalizada)¶
Fórmula:
$$ NDWI = \frac{Green - NIR}{Green + NIR} $$
Bandas usadas: Verde y NIR.
Valores altos: Indican presencia de agua.
Usos: Detección de cuerpos de agua, monitoreo de inundaciones.
3. NDBI (Índice de Construcción de Diferencia Normalizada)¶
Fórmula:
$$ NDBI = \frac{SWIR - NIR}{SWIR + NIR} $$
Bandas usadas: Infrarrojo de onda corta (SWIR) y NIR.
Usos: Detectar zonas urbanas o construidas.
4. SAVI (Índice de Vegetación Ajustado al Suelo)¶
Fórmula:
$$ SAVI = \frac{(NIR - Red)(1 + L)}{NIR + Red + L} $$
Donde L es un factor de corrección (comúnmente 0.5).
Usos: Similar a NDVI, pero mejor para suelos descubiertos o con poca vegetación.
5. EVI (Índice Mejorado de Vegetación)¶
Fórmula:
$$ EVI = G \cdot \frac{NIR - Red}{NIR + C_1 \cdot Red - C_2 \cdot Blue + L} $$
Donde $G = 2.5, C_1 = 6, C_2 = 7.5, L = 1$
Usos: Mejora el NDVI en zonas densamente vegetadas o contaminadas con aerosoles.
6. BAI (Índice de Área Quemada)¶
Fórmula:
$$ BAI = \frac{1}{(Red - 0.05)^2 + (NIR - 0.2)^2} $$
Usos: Detección de áreas quemadas después de incendios forestales.
7. GNDVI (NDVI usando banda verde)¶
Fórmula:
$$ GNDVI = \frac{NIR - Green}{NIR + Green} $$
Usos: Salud de cultivos, especialmente clorofila.
Clase 1108¶
Sistema de coordenadas definen la posicion relacionado a la posicion de la tierra para determinar un punto en la superifcio de la tierra, y estos parametros se asociando a codigo ESPG, es un sistema de coordenadas que utiliza una superficie esferica tridimensional con serie de puntos sobre la superficie terrestre con 3 puntos, polos norte y sur y el centro (ecuador) en base a esto se construyen latitud y longitud:
lineas paralelas de ecuadaor son medias y del winwitch son los de la longitud, esto se usa para esto:
al designar coordenadas primero va latirud y luego longitud y esto esta con formato segagesimal:
grados minutos y segundos´, pero puede colocarse en formato decimal, esto hace que las regiones esten en 2 cuadrantes para guatemala.
es complejo encontrar lugares por ubicaciones especiales, entonces se obtuvo el wgs84 es una serie de coordenadas graficas para hacer cualquier proyeccion cilindrica equisidstante sencilla
guatemala esta representada en 2 mosaicos, un geojson permite hacer todo esto obteniendo todas las coordenadas
la tierra es una figura geometrica elipsoide y cuando se proyecta en un plano hay deformaciones que afecta direcciones, etc entonces se debe de realizar para hacer mapas, con 2 direcciones para wgs84 pero al proyectarlo en UTML el punto se mueve, la latitud y longitud en wgs84 y metricas en el plano.
existen 3 formas de proyecciones, es hacer un cilindro, cono o superficie plana, estos planos generan una familia de proyeccion cartografica, todo el mundo usa UTM pero en guatemala es GTM (es decir que se quiere pegar mapas de carretera entonces la vectoriales no casan y esta es universal, transverlas de mercator)
en proyeccion utm groenlandia se mira mas grande que estados unidos, entonces la proyeccion utm se separa en zonas, esto se expresa en metros y en coordenadas cilindricas cambia de tamaño, al alejar del ecuador afecta a las areas exagerando su tamaño, entonces cual es la diferencia entre georaficas y proyectaadas
es que para que sea igual debe ser por cilindrica en un plano, porque es importante? al mezclar datos en sistemas hay error en analisis entonces con GIS:
geopandas hacemos que peguen con los vectoriales y saber cuando hacerlo:
se saca de rsg wsg84 se busca la zona 16 norte , de 290 a 291 la que longitudes tenemos longitud en norte y sur pero ya que en guatemala aprox estamos en zona 15 o 16 entonces.
satunal hace la conversion utm a gtm.
y esto es menos complicado
Clase 22092025¶
BIG DATA¶
En el big data necesitamos
- velocidad
- fiabilidad
- variedad formas tipos y fuentes de donde salen los datos.
- veracidad.
- viabilidad. si valen la pena almacenarlos y procesarlos.
- visualizacion . Manera de que forma tienen los datos.
- valor si los datos tienen sentido. Y si en temas empresariales de gobierno o politicas tienen sentido.
- volatilidad transacciones rapidas y las tengo que integrar.
Pero para poder hacer todo esto necesitmoas gobernacion de datos haciendo uso de
Hadoop¶
YARN¶
Tiene un master node que tiene un source manageer. Eeste tiene Y tiene un job historico. Tiene 2 managers esclavos y a partir de ahi le pide a cada esclavos al HDFS le pide la info y empieza a funcionar.
- El RM le dice al nodo que inicie la aplicacion y el contenedor
- El maesro de aplicaciones recien creado contacton con el Node manager y se solicita que cree un contenedor que lo maneja NodeManager.
- El administrador de aplicacciones supervisa el proceso y reinicia en cada fallo y si falla despues de varios intentos lo interrumpe.
Map reduce¶
es un algoritmo que procesa los datos disperos de cluster de hadoop.
Los datos de entrada semapean se barjan y luego se reducen la salida del trabajo se manda al HDFS
' Almacena en bloques de datos de hdfs. Segun la clave
Redistribucion¶
Tengo los pedazos que quiero obtener, lo reduzco a un tipo de datos manejable. Esto se ejecuta en paralello.
Las tareas de reduccion se ejecutan de esta manera
MAp task node. el output de cada map, la funcion de reduccion, escribe los resultados en HDFS
SPARK¶
Esta en varios niveles y que optimizo hadoop es mas rapido que hadoop . Es mas rapido dle map reduce que usa haddop. Trabaja en memoria, sopota varios lenguajes.
La arquitectura es asi
- El driver program ejecuta el context que maneja losesclavos
- cluster manager se encarga de asignar los recuros. Y ademas podemos ponerle yarn , apache mesos etc. Tiene procesos de trabajos responsables en aplicaciones spark
Componentes de sparck¶
- Spark SQL dataframes
Consultas sql interactivas. Procesamiento de datos estructurados. Analistica potente. Y actua como un motor de consulta SQL distribuido.
- MLlib
Se pueden hacern pipleines de mlps . Y es 100 veces mas rapido. Tiene flexibilidad de uso , pueden usar numpy , R , haddoop. etc.
Spark streaming Tiene funciones de hadoop. En 3 discos duros diferentes que pasa con sark es que trabaja con la ram en un cluster.
graphX
Es la database de grafos de spark
DATABRICK¶
Es una plataforma que se construye en sparck ahora vamos a ver un tutoraal de databricks
Una vez iniciado sesion
RESUMEN¶
Big data: conjuntos extremadamente grandes y diversos de datos estructurados, sin estructurar y semiestructurados que crecen exponencialmente a lo largo del tiempo.
Las 10 V’s del Big data:
Volumen
Velocidad: la rapidez con los que los datos son creados, almacenados y leídos en tiempo real.
Variedad: formas, tipos y fuentes en las que se registran lo datos (texto, correos, imágenes, videos, etc).
Veracidad: incertidumbre de los datos, es decir, al grado de fiabilidad de la información recibida.
Viabilidad: capacidad que tienen las compañías de hacer un uso eficaz del volumen de datos que manejan.
Visualización: modo en que los datos son presentados para encontrar patrones y claves ocultas en los datos a investigar.
Valor: fatos que se transforman en información, esta a su vez se convierte en conocimiento y esto provoca acciones y decisiones.
Volatilidad: responsable de transacciones rápidas e inesperadas (ejemplo: mediciones de un smartwatch).
Validez: es la precisión y exactitud de los datos con respecto al uso previsto (que sea válida).
Vulnerabilidad: se relaciona con las medidas de seguridad necesarias para que los datos recopilados se procesen de acuerdo con la legislación y deseos del cliente.
Variabilidad: similar a variedad, pero se utiliza lo largo del tiempo para calcular la precisión de los datos entrantes.
Desafíos:
· Volumen de datos
o ¿Dónde almaceno los datos?
o ¿Cómo los proceso?
o ¿Cómo los analizo?
· Velocidad de generación
o ¿Cómo los proceso, analizo y obtengo insights válidos para tomar decisiones?
Tipos de big data
Operacional: donde guardo los datos que llegan y como los recupero después (datos cotidianos normales que se generan). Ejemplo: reservas de billetes de aerolíneas o trenes . Compras en línea a través de Amazon, Wallmart, etc. Datos de redes sociales como Facebook, Instagram, etc.
Analítica: Toma de decisiones comerciales cruciales en tiempo real mediante el análisis del Big data operativo. Ejemplo: comercialización de acciones. Llevar a cabo misiones espaciales.
Principales tecnologías de Big Data:
· Frameworks:
o Hadoop
o Spark
o Yarn
o CDRP
· Query/Data Flow
o Spark
o SQL
o Google Cloud DataFlow
· Data Access
o Casandra
o Mongo
Apache Hadoop:
· HDFS (Hadoop data file system): tipo de almacenamiento de archivos distribuidos. Cada nodo de un clúster Hadoop tiene su propio espacio de disco, memoria, acho de banda y procesamiento. Los datos entrates se dividen en bloques. Cada cluster tiene su propio sistema operativo y un archivo lo divido y
lo guardo en varios clusters (por ejemplo un video lo puedo guardar en 4 clústeres).
· Yarn: maneja los recursos de los clusters (varias máquinas). Necesito que la forma en la que el archivo se divide para guardarlo en los diferentes clusters sea eficaz y confiable, de eso se encarga YARN.
· Processing framwork layer: frameworks que analizan y procesan los conjuntos de datos que entran al cluster.
· Capa de aplicación: aplicaciones que trabajan sobre estos datos.
En resumen, los datos se dividen en partes más pequeñas y se almacenan en diferentes clusters (computadoras con diferente memoria, diferente sistema operativo, etc).
Apache Spark: puede interactuar con postgres, mongo, hadoop, etc. Funciona sobre hadoop. Spark es 100 veces más rápido que Hadoop en procesamiento de datos de gran escala. Es fácil de usar y tiene un motor unificado que incluye soporte pra consultas SQL, machine learning, procesamiento de grafos, etc. Permite trabajar con grandes volumenes de datos distribuidos en muchos servidores. Es más rápido que Hadoop porque usa procesamiento en memoria en lugar de escribir todo al disco.
Clase 29092025¶
SPARCK SQL
Esta montado sobre sql apache.Una ventaja es que utiliza cache osea es mas rapido que sql. Optimiza por si solala forma mas rapida de hacer las consultasporque los joins se hacen con ram.
Esta integrados los dataframes y otras estructuras de datos.
Compatible con python y pyspark .
El dataframe en sparck es distribuido.
Esta construido de RDD que son inmutables. Como no los puedo cambiar cada vez que hago una transformacion en RDD no los puedo cambiar.
Es facil de ver y es compatible con multiples fuentes de datos
Lo prmero que haciamos es importar pyspark y crear una sesion
COmo se crea un datframe en spark , tengo que leer en una fuente y convertilo a un dataframe.
Lo primero que se hace es
spark sesion
sql querys.
Spark sql procesa los datos estructurados. Me da informacion de la estructura y coo las transformaciones. Internamente usa RDDs con algunas funciones utilizadas
Dataset Dataframes es una interfaz que me permite usar spark sql . Lo que yo puedo usar para estas transformaciones de mi tabla
Los comandos aqui estan
🔹 Spark SQL (usando spark.sql
)¶
# Seleccionar todo con límite
spark.sql("SELECT * FROM personas LIMIT 5").show()
# Seleccionar columnas específicas
spark.sql("SELECT id, nombre FROM personas LIMIT 3").show()
# Contar filas
spark.sql("SELECT COUNT(*) AS total FROM personas").show()
# Distintos valores
spark.sql("SELECT DISTINCT edad FROM personas").show()
# Renombrar columna
spark.sql("SELECT nombre AS persona, edad FROM personas").show()
# Orden descendente con límite
spark.sql("SELECT * FROM personas ORDER BY edad DESC LIMIT 2").show()
🔹 API de DataFrames¶
# Mostrar primeras filas (equivalente a LIMIT)
df.show(5)
# Seleccionar columnas
df.select("id", "nombre").show()
# Filtro con condición
df.filter(df.edad > 25).show()
# Distintos valores
df.select("edad").distinct().show()
# Contar filas
print(df.count())
# Orden descendente con límite
df.orderBy(df.edad.desc()).limit(2).show()
# Renombrar columna
df.withColumnRenamed("nombre", "persona").show()
🔹 Otras utilidades de DataFrame¶
# Ver esquema de la tabla
df.printSchema()
# Ver tipos y metadata
df.dtypes
# Describir estadísticas básicas
df.describe().show()
# Tomar las primeras filas como objetos Row
df.head(3)
# Recoger todo en una lista (¡cuidado con data grande!)
df.collect()
Y en sql dataframes y datasets
// Seleccionar columnas
ds.select("nombre", "edad").show()
// Filtro
ds.filter($"edad" > 25).show()
// Orden
ds.orderBy($"edad".desc).show()
// Limit
ds.limit(3).show()
// Distinct
ds.select("edad").distinct().show()
// Agregaciones
ds.groupBy("edad").count().show()
Clase 06102025¶
MLLIB¶
- MLLIB es la libreria de spark para machine learning
- Puede manejar datasets que no caben en memoria
- Skitlearn tiene paralello con el CPU , pero mllib maneja sobre clusters entonces es paralello a ese nivel
SI fueron concebidos para 3 mundos diferentes
- Lo que hay que entender es que pythorch es paralelizable mas que spark, pero no se usa en la industria sino spark.
- Spark trabaja con vectores.
Pipelines los vimos en skitlearn
Lo que hacemos los pipelienes es preparar lo que vamos a hacer con los datos y luego al hacerle fit al pipeline crea todo el flujo.
El chiste es poner en pasos tranformadores y preparaciones de los datos a hacer
Mira este ejemplo de pipleine
Mira este ejemplo tenemos 3 transformadores.
Ahora este es otro pipeline
No tenemias estimadores este si tiene, Ahora los pasos seran estos
La primera indexa, la segunda indexa, la tercera hace un one hot encoder. Y la cuarda un vector para mi modelo. Y la ultima es el modelo como tal
Aqui esta el codigo para que veas
El flujo de trabajo es el siguiente
- Cargar datos
- preprocesar datos
- limpiarlos
- dividir
- construir pipiline
- entrenar
- evaluar
- predecir
Aqui vamos a hacer un ejercicio
Caso 1
Caso 2
Un ejemplo