EP Ingeniería Geográfica
Un curso de Python orientado a los estudiantes de la escuela de Ingeniería Geográfica de la UNMSM, investigadores y profesionales que trabajen o desean trabajar con las ciencias de la Tierra.
Docente | Ing. Roy Yali S. |
En las últimas décadas la computación se ha convertido en un pilar de la ingeniería y el desarrollo científico-tecnológico. En la mayoría de las áreas, el trabajo computacional es un complemento fundamental de la experimentación tradicional y de la teoría, ya que cada vez más se involucra simulaciones numéricas y modelado computacional. Frecuentemente, la tarea de los profesionales involucra el uso de aplicaciones específicas que requieren un gran trabajo de procesamiento de los datos de entrada y un post-procesamiento de los resultados utilizando otras herramientas.
Este curso brinda una introducción sólida al poderoso lenguaje de programación Python (http://python.org) y a las herramientas fundamentales del "ecosistema científico" (Jupyter, Numpy, Matplotlib, Scipy, entre otras) que conforman un entorno de programación interactivo de vanguardia, simple, libre, gratuito y multiplataforma.
Roy Yali Samaniego (25) es ingeniero geógrafo de la Universidad Nacional Mayor de San Marcos; tiene experiencia en el sector público y privado en las disciplinas de geomática y ciencias atmosféricas. En la actualidad se desempeña como desarrollador GIS en el Instituto Geológico, Minero Metalúrgico de Perú - INGEMMET. Anteriormente ha laborado en importantes proyectos como parte del Servicio Nacional de Meteorología e Hidrología - SENAMHI, el Instituto Nacional de Estadística e Informática - INEI y la Autoridad Nacional del Agua - ANA. Programador desde hace algunos años, y cree ser especialista en Desarrollo GIS y ciencia de datos tanto para proyectos como para investigación geocientífica.
Más información en su blog
ARQUITECTURA DE LA COMPUTADORA
● La unidad central de proceso y memoria
● Funcionamiento de la computadora e internet (hardware y software)
INTRODUCCIÓN A LA PROGRAMACIÓN
● Lenguajes de programación
● Programación orientada al desarrollo web y desktop
● Programación orientada al análisis de datos
TÉCNICAS DE PROGRAMACIÓN
● Programación modular
● Programación estructurada
● Programación orientada a objetos
● Diagramas de flujo y Pseudocódigo
CONCEPTOS FUNDAMENTALES
● Tipos de datos
● Identificadores, constantes y variables.
SINTAXIS Y ESTRUCTURAS DE DATOS
● Expresiones Aritméticas y Lógicas
● Programas secuenciales
● Estructura general del lenguaje Python
● Tuplas, Listas, Diccionarios
● Operaciones: Actualización, inserción, eliminación, modificación
ESTRUCTURAS DE CONTROL SELECTIVAS
● La estructura simple (SI-ENTONCES)
● La sentencia if, elif
● Estructuras Anidadas
● Estructuras múltiples (SI-MÚLTIPLE)
ESTRUCTURAS DE CONTROL REPETITIVAS
● Bucles y loops
● Sentencia WHILE
● Sentencia FOR
● Contadores y acumuladores
● Instrucciones BREAK, PASS, CONTINUE
FUNCIONES
● Parámetros y argumentos
● Funciones predefinidas
● Funciones definidas por el usuario
● Importación de paquetes
ARCHIVOS
● Lectura de archivos
● Sentencia WITH, AS
● Modificación y creación de archivos
● Ejemplos
PRIMER EXAMEN PARCIAL
ANÁLISIS DE DATOS
● Introducción a Numpy.
● Subsetting Numpy Arrays
● Estadísticas básicas en numpy
● Introducción a Pandas.
● Matrices y Data Frames
TRATAMIENTO DE DATOS
● Creación de data.frames
● Reshaping data
● Resumen de datos.
● Manejo de valores vacíos.
● Agrupamiento de datos
REPRESENTACIÓN GRÁFICA
● Introducción a Matplotlib
● Manipulación de datos
● Indexación avanzada
● Agrupación y filtrado
● Gráficos básicos
ÁLGEBRA LINEAL EN PYTHON
● Placeholders.
● Creación de arrays.
● Ordenamientos de arrays.
● Subsetting, slicing, indexing
● manipulación de arrays.
GEOPANDAS - MANEJO DE DATOS VECTORIALES EN PYTHON
● WKT
● GeoJSON
● Operaciones geoespaciales.
● Placeholder (shapely)
GOOGLE EARTH ENGINE
● Programación cliente-servidor
● Estructuras de datos en GEE.
● ee.Image vs ee.ImageCollection
● ee.Feature vs ee.FeatureCollection.
INTRODUCCIÓN A MACHINE LEARNING
● Análisis de Componentes principales
● Clasificación supervisada
● Clasificación no supervisada
EXAMEN FINAL
Parte de este material ha sido inspirado y/o adaptado de múltiples fuentes
Scipy Lectures <http://scipy-lectures.github.io/>
Scientific Python Lectures <https://github.com/jrjohansson/scientific-python-lectures>
de J.R. JohanssonEl tutorial de Python <http://docs.python.org.ar/tutorial/2/contenido.html>
traducción al castellano por la comunidadPython Argentina <http://python.org.ar/>
Matplotlib tutorial <http://webloria.loria.fr/~rougier/teaching/matplotlib/>
por Nicolas P. RougierNumba vs Python, take 2 <http://nbviewer.ipython.org/url/jakevdp.github.io/downloads/notebooks/NumbaCython.ipynb>
de Jake Vanderplasf
*En desarrollo