En este repositorio se realiza un compilado de librerías open-source, utilidades y material de Python gratuito con un enfoque en la geología.
NumPy permite el trabajo con matrices y vectores de manera rápida y eficiente. Es una parte clave de numerosas librerías dentro del ecosistema de Python, por ejemplo, encontrándose en el núcleo de la librería pandas.import numpy as np
a = np.arange(15).reshape(3, 5)
print(a)
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
Pandas permite la carga, análisis y transformación de información tabular. Con pandas es posible cargar información en forma de CSV, Excel, JSON, GeoJSON entre muchas otros, la que puede ser posteriormente filtrada, clasificada y/o agregada.
Ejemplo de carga de archivo csv
import pandas as pd
datos = pd.read_csv('data/terremotos.csv') # Lectura del archivo
datos.head(3) # Mostrar solo las primeras 3 entradas
time | latitude | longitude | depth | mag | magType | nst | gap | dmin | rms | net | id | updated | place | type | horizontalError | depthError | magError | magNst | status | locationSource | magSource | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2019-05-26T07:41:15.073Z | -5.8119 | -75.2697 | 122.57 | 8.0 | mww | NaN | 17 | 3.180 | 0.84 | us | us60003sc0 | 2021-03-05T19:13:06.497Z | 78km SE of Lagunas, Peru | earthquake | 7.0 | 4.0 | 0.036 | 75.0 | reviewed | us | us |
1 | 2019-03-01T08:50:42.591Z | -14.7131 | -70.1546 | 267.00 | 7.0 | mww | NaN | 42 | 2.501 | 1.13 | us | us1000j96d | 2021-04-07T02:19:45.001Z | 23km NNE of Azangaro, Peru | earthquake | 7.6 | 1.9 | 0.033 | 87.0 | reviewed | us | us |
2 | 2019-02-22T10:17:23.770Z | -2.1862 | -77.0505 | 145.00 | 7.5 | mww | NaN | 15 | 2.045 | 1.12 | us | us2000jlfv | 2020-07-07T22:52:36.277Z | 111km ESE of Palora, Ecuador | earthquake | 6.2 | 1.8 | 0.026 | 144.0 | reviewed | us | us |
Librería con numerosas funciones y herramientas aplicadas a la geoestadística.
Python posee numerosas librerías para la visualización de datos. Algunas de las más populares son:
Matplotlib permite la creación de visualizaciones estáticas (y también interactivas). Se descataca por una extensa variedad de gráficos disponibles (dispersión, barra, histogramas, entre otros) y una gran capacidad de personalización.
import matplolib.pyplot as plt
# Datos
x_silice = [50.2, 54.3, 60.1, 64.9, 66.2, 71.5]
y_magnesio = [7.4, 3.7, 2.8, 1.7, 0.9, 0.5]
# Creación del gráfico
plt.plot(x_silice, y_magnesio, color='orange', linewidth=2)
# Personalización
plt.xlabel('% $SiO_{2}$')
plt.ylabel('% $MgO$')
plt.grid(alpha=0.4)
plt.tight_layout()
plt.show()
Seaborn se enfoca en la visualización estadística, permitiendo establecer fácilmente relaciones entre parámetros. Es posible crear con ella gráficos de alta calidad sin necesidad de personalización adicional.
import seaborn as sns
# Estilo del gráfico
sns.set_theme(style="darkgrid")
# Datos
tips = sns.load_dataset("tips")
# Gráfico
g = sns.jointplot(x="total_bill", y="tip", data=tips,
kind="reg", truncate=False,
xlim=(0, 60), ylim=(0, 12),
color="m", height=7)
Plotly es una libreria de gráficos interactivos que se destaca por su extensa variedad de gráficos (más de 40), la calidad nativa de sus visualizaciones, y la compatibilidad con el navedor.
Otra alternativa para la creación de gráficos interactivos en Python.
Extiende la funcionalidad de pandas para permitir la manipulación de datos geoespaciales. Permite la carga de formatos GIS comunes (.shp, .geojson, .gpk, entre otros) y el trabajo y reproyección de sistemas de referencia.
Diseñada para el procesamiento de información geoespacial, la creación de mapas y otros análisis.
Basada en la librería de javascript leaflet.js
utilizada en la creación de mapas livianos e interactivos totalmente compatibles con el navegador. Folium posee numerosos mapas base disponibles como OpenStreetMap, Mapbox, and Stamen entre otros y tienen el potencial de crear mapas con series de tiempo e incluso mapas geológicos.
Gempy permite la modelación 3D de estructuras geologicas complejas (capas, pliegues, fallas, etc.) pudiendo implementar además modelamiento probabilístico.
Flopy permite la creación, ejecución y post-proceso de modelos basados en MODFLOW.
- Nube minera | Introducción a Data Analytics en Geociencias con Python (DAP) Curso gratuito e introductorio donde se enseña a realizar un análisis exploratorio de datos provenientes de muestras de sondajes a través de Python.
📚 Libros gratuitos generales de Python
- Hatari Labs Página y canal de youtube con blogs y videotutoriales respecto a SIG, modelamiento y otros. Especial enfoque en la hidrogeologia.
- cartografo.cl Noticias y videos asociadas a SIG.