domingo, 26 de noviembre de 2023

Predicciones Climáticas

 

🚀 Proyecto de Predicción Climática y Precipitación Anual en Tokio School 🌦



¡Hola comunidad! Me complace compartir mi proyecto de predicción climática y precipitación anual, desarrollado como parte de mi curso de especialización en inteligencia artificial en Tokio School. 🌐

Contenido del Proyecto: Este proyecto aborda la predicción de condiciones climáticas y precipitación anual en diversas regiones. Utiliza datos climáticos de múltiples fuentes, incluyendo países nórdicos y datos históricos de España.

🌧 Funcionalidades Principales:

·         Predicción de Precipitación Anual.

·         Clasificación de Condiciones Climáticas.

Configuración del Entorno: Asegúrate de tener las siguientes bibliotecas de Python instaladas para ejecutar el proyecto:

·         pandas

·         numpy

·         scikit-learn

·         joblib

·         matplotlib

Instrucciones de Ejecución:

1.   Clona este repositorio o descarga los archivos necesarios.

2.   Instala las bibliotecas requeridas en tu entorno de Python.

3.   Ejecuta los scripts proporcionados para cargar datos, entrenar modelos y realizar predicciones.

4.   Ajusta umbrales y datos según tus necesidades.

5.   Explora los resultados y métricas generadas por el proyecto.

Resultados: Este proyecto ofrece predicciones anuales de lluvia y clasificación de condiciones climáticas para regiones específicas. Los resultados se basan en modelos de aprendizaje automático entrenados en datos históricos.

Autor: Javier Fiestas Botella

Datos de Referencia: Datos climáticos de Kaggle y Noruega (transformados para adaptarse al proyecto).

Licencia: Este proyecto se publica bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

¡Sigo aprendiendo y creciendo! Siéntete libre de explorar el proyecto en mi cuenta de GitHub: Javierfiestasbotella (Javi Fiestas) (github.com)

¡Agradezco cualquier comentario o sugerencia! 🚀 #AprendizajeAutomatico #ProyectoAI #Clima

🌐 **Proyecto de Predicción Climática y Precipitación Anual** 🌧

 

── 📂 **Datos**            # Carpeta de Datos

   ── 📄 climaticos_nordicos.csv    # Datos climáticos de países nórdicos

   ── 📄 climaticos_espana.csv      # Datos climáticos históricos de España

── 📂 **Scripts**          # Carpeta de Scripts

   ── 📄 cargar_datos.py   # Script para cargar datos desde múltiples fuentes

 

   ── 📄 entrenar_modelos.py  # Script para entrenar modelos de predicción

   ── 📄 realizar_predicciones.py   # Script para realizar predicciones

── 📄 **README.md**        # Documentación principal del proyecto

── 📄 **LICENSE**          # Archivo de licencia MIT

── 📄 **.gitignore**       # Archivo de configuración de gitignore

── 📄 **requirements.txt**  # Archivo de requisitos de Python

── 📄 **main.py**           # Archivo principal para ejecutar el proyecto

── 📄 **Informe_climatico.pdf**  # Informe final de resultados y análisis

── 📄 **.env**              # Archivo para configuración de entorno

└── 📄 **.gitignore**        # Archivo de configuración de gitignore con patrones específicos

 

lunes, 13 de noviembre de 2023

 



Código Python a la Velocidad de la Luz:

Automatización para Desarrolladores Exigentes

🚀 Automatizando el desarrollo con Python: Autocompletado de código

¡Saludos, comunidad de desarrolladores!

Hoy quiero compartir con ustedes una herramienta que he desarrollado para facilitar el trabajo en la creación de clases y métodos en Python. Este conjunto de funciones Python te permite generar automáticamente fragmentos de código relacionados con la conexión a bases de datos, la creación de clases, la verificación de usuarios y contraseñas, y la escritura en archivos.



pythonCopy code

[from pynput.keyboard import Key, Controller

import pyperclip as pc

import os

import io

from io import open

from datetime import datetime

from datetime import date

import datetime

 

 

#completa_conexion(n):TE AUTOCOMPLETA UNA CLASE CON LA CONEXXION A UNA BBDD PASANDO COMO ARGUMENTO NOMBRE DE LA CLASE

#completa_interfaz(n):AUTOCOMPLETA LOS MÉTODOS DE INTERFAZ DE LA VARIABLE PRIVADA QUE PASAS COMO ARGUMENTO

 

def autorelleno1(clave):

    return f'''

    @property

    def {clave}(self):

        return self._{clave}

    @{clave}.setter

    def {clave}(self,valor):

        self._{clave}=valor

    @{clave}.deleter

    def {clave}(self):

        del self._{clave}'''

 

 

 

def autorelleno2(clave):

    return f'''

    #SE REQUIERE IMPORTAR:

    #import mysql.connector

    #from mysql.connector import Error

    class {clave}():

 

        def __init__(self):

            try:

                self.conexion = mysql.connector.connect(

                    host=,

                    user=,

                    password=,

                    db=

                )

            except Error as ex:

                print("Error al intentar la conexión: {0}".format(ex))'''

 

def autorelleno3(n,m):#verifica nobre de usuario

    return f'''

#Devuelve True si el nombre usuario es aceptado y verificado

def usuario():

        usser=input("Introduce un usuario : ")

        if len(usser)<{n} or len(usser)>{m}:

            print("El usuario debe tener entre {n} y {m} caracteres")

            usuario()

        elif usser.isalnum()==False:

            print("Los valores del usurio deben ser únicamente letras o números")

            usuario()

        else:

            print(True)

        '''

def autorelleno4(n):

    return f'''

def contraseña():

  global passw

  passw=input("Introduce contraseña: ")

  if len(passw)<={n-1}:

    print("La contraseña debe tener al menos {n} caractéres")

    contraseña()

  elif passw.isalnum()==True:

    print ("La contraseña debe tener al menos un carácter no alfanumérico")

    contraseña()

  elif passw.lower() == passw:

    print("Debe haber por lo menos una mayúscula")

    contraseña()

  elif passw.upper()==passw:

    print("Debe haber por lo menos una minúscula")

    contraseña()

 

  for i in passw:

    if i==" ":

      print("La contraseña no debe tener espacios en blanco")

      contraseña()

  print(True)

   

   

    '''

def autorelleno5():

    return f'''

    #NO OLVIDES DARLE UNA EXTENSION AL NOMBRE DEL ARCHIVO DEL PRIMER ARGUMENTO

    #SUSTITUYE EN LA LLAMADA A LA FUNCION escribir(); EL ARCHIVO POR EL NOMBRE DEL ARCHIVO Y DOCUMENTACIÓN POR LO QUE QUIERAS DENTRO DEL ARCHIVO.

    def escribir(archivo,documentacion):

        fichero = open(archivo, 'a')

        fichero.write(documentacion)

        fichero.close()

    escribir(archivo,documentacion)

    '''

 

 

def completa_conexion(n):#TE AUTOCOMPLETA UNA CLASE CON LA CONEXXION A UNA BBDD PASANDO COMO ARGUMENTO NOMBRE DE LA CLASE

    prueba01=pc.copy(autorelleno2(n))

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')

   

 

def completa_interfaz(variables):

    autorelleno = ""

    for variable in variables:

        autorelleno += autorelleno1(variable) + "\n"

    pc.copy(autorelleno)

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')

 

def verifica_ususario(n,m):#AUTOCOMPLETA VERIFICACION DE USUARIO; SOLO PUEDEN SER NÚMEROS O LETRAS Y PASARLE POR ARGUMENTO EL MÍNIMO Y MÁXIMO DE CARACTERES QUE QUIERES QUE TENGA.

    prueba01=pc.copy(autorelleno3(n,m))

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')

 

def verifica_password(n):#AUTOCOMPLETA FUNCION DE VERIFICACION DE PASSWORD PASANDO COMO ARGUMENTO CANTIDAD MAX DE CARACTERES

    prueba01=pc.copy(autorelleno4(n))

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')

 

def guarda_en_archivo():#CREA EL ARCHIVO CON EL NOMBRE DEL PRIMER ARGUMENTO Y GUARDA LA INFORMACION QUE GUARDAS EN EL SEGUNDO ARGUMENTO QUE DEBES INTRODUCIR LUEGO.

    prueba01=pc.copy(autorelleno5())

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')]



¿Cómo funciona?

1.    Conexión a Base de Datos: completa_conexion('NombreClase') autocompleta la conexión a una base de datos, generando una clase con los parámetros necesarios.

2.    Métodos de Interfaz: completa_interfaz(['variable1', 'variable2']) facilita la creación de métodos de interfaz para una lista de variables.

3.    Verificación de Usuario: verifica_usuario(min_len, max_len) ayuda en la verificación de nombres de usuario, estableciendo reglas personalizadas.

4.    Verificación de Contraseña: verifica_password(max_len) simplifica la validación de contraseñas con reglas específicas.

5.    Guardado en Archivo: guarda_en_archivo() crea un archivo y almacena información relevante.

¿Cómo puede ser útil?

Imagina tener un código con múltiples clases y variables. En lugar de escribir manualmente los métodos de interfaz para cada variable, simplemente agrúpalas en una lista y utiliza el autocompletado proporcionado. ¡Es una forma eficiente y rápida de mejorar la productividad en el desarrollo!

Colaboración y Mejoras Continuas:

Este código es solo el comienzo. Planeo seguir mejorándolo y desarrollando nuevas funciones. Puedes encontrar el proyecto completo en mi cuenta de GitHub, y estoy abierto a sugerencias y colaboraciones. Juntos podemos hacer que el desarrollo sea más eficiente y divertido.

¡Espero que encuentren útil este conjunto de funciones! Estoy emocionado por el camino que se avecina en el mundo del desarrollo.

¡#Python #Desarrollo #AutomatizaciónDeCódigo! 🚀

Javierfiestasbotella (Javi Fiestas) (github.com)

 

  🛎 La revolución silenciosa de la hostelería: cómo la automatización está cambiando el juego en locales como La Chancla En pleno paseo ...