Cómo combiné el rascado web, la ciencia agrícola y la API de la NOAA para crear una herramienta que optimice los costes de la alimentación del ganado basado en datos ambientales Ranching es un negocio de margen de rasero delgado. Dos de las mayores variables que pueden hacer o romper un año son el coste de la alimentación de lejos el mayor gasto operativoy el clima. Como desarrollador con antecedentes en la agricultura, vi la oportunidad de conectar estos dos dominios.¿Y si pudiese construir una herramienta que no solo encuentre el alimento más rentable, sino que también comience a poner las bases para ajustar las recomendaciones basadas en datos ambientales del mundo real? Así que construí un prototipo. Es una colección de scripts de Python que funciona como un asistente basado en datos para un rancher. optimizar los costos de alimentación y de Para extraer datos meteorológicos críticos, aquí está cómo funciona. Economic Engine Environmental Monitor Módulo 1: El motor económico - rascado para ahorrar La primera tarea fue responder a una pregunta fundamental: "Dada la necesidad nutricional de mi rebaño, ¿cuál es la forma más barata de alimentarlos?" Esto requería dos partes: una calculadora científica y un rascador de web. Parte A: Traducción de la ciencia agrícola a Python Primero, necesitaba calcular la ingesta de materia seca (DMI) – una medida científica de cuánto alimento necesita una vaca. Esto no es un número simple; depende del peso de la vaca, la etapa de vida (lactancia, crecimiento, embarazo), la producción de leche, y más. encontré fórmulas revisadas por pares y las tradujo directamente a Python. cows_2.py - A Glimpse into the DMI Formulas # Formula for lactating cow DMI, based on scientific papers dmi_lac = ((3.7 + int(lac_par) * 5.7) + .305 * 624 + .022 * int(lac_weght) + \ (-.689 - 1.87 * int(lac_par)) * 3) * \ (1 - (2.12 + int(lac_par) * .136)**(-.053*int(lac_day))) # Total feed needed is the DMI multiplied by the number of cows and days all_feed_needed = (dmi_lac_needed + dmi_grow_needed + final_preg) * int(days_of_feed) Este script pide al usuario detalles sobre su rebaño y calcula las libras totales de alimento necesarias. A continuación, necesitaba el . demanda el suministro Parte B: El rascador web para precios en tiempo real El único modo de obtener los datos actuales es ir a la fuente.He escrito un rascador web usando solicitudes y BeautifulSoup para sacar nombres de productos y precios directamente de la página web de una tienda de alimentos local. cow_save_scrape.py - The Scraper Logic import requests from bs4 import BeautifulSoup as soup from urllib.request import Request, urlopen websiteurl = 'https://shop.berendbros.com/departments/calf-|70|P35|P351.html' req = Request(websiteurl, headers={"User-Agent": 'Mozilla/5.0'}) webpage = urlopen(req).read() soups = soup(webpage,'html.parser') calf_name = [] calf_price = [] for link in soups.find_all('div', class_='card-body'): for product in link.find_all('div', class_='product_link'): calf_name.append(product.text) for price in link.find_all('div', class_='product_price'): # Clean the price string (e.g., "$24.99\n" -> 24.99) price_text = price.text.strip().strip('$') calf_price.append(float(price_text)) El guión calcula el coste total para cumplir con el DMI del rebaño para cada producto de alimentación y luego ordena la lista para encontrar las opciones más baratas y más caras. Módulo 2: El Monitor Ambiental - Introducción a la API de la NOAA El coste de los piensos es sólo la mitad de la ecuación.El estrés ambiental, especialmente el calor, tiene un impacto masivo en el ganado.Una vaca que sufre de estrés térmico comerá menos, producirá menos leche y tendrá menor fertilidad. Volví a la Administración Nacional Oceánica y Atmosférica (NOAA), que ofrece una API fantástica y gratuita para los datos meteorológicos históricos y actuales de miles de estaciones. Mi script, weather_1.py, está diseñado para sacar puntos de datos clave para una lista de estaciones meteorológicas específicas en mi área de interés (College Station, TX). weather_1.py - Fetching Key Climate Data import requests import json token = 'YOUR_NOAA_API_TOKEN' # Get this from the NOAA website base_url = 'https://www.ncei.noaa.gov/cdo-web/api/v2/data' start_date = '2024-04-01' end_date = '2024-04-03' # List of data types we want to fetch data_types = [ 'TMAX', # Maximum Temperature 'TMIN', # Minimum Temperature 'RH_AVG', # Average Relative Humidity 'WIND_SPEED_AVG', ] for station_id in us1tx_codes: print(f"--- Processing station: {station_id} ---") params = { 'datasetid': 'USCRNS', # A specific, high-quality dataset 'stationid': f'USCRNS:{station_id}', 'startdate': start_date, 'enddate': end_date, 'limit': 1000, 'datatypeid': data_types } # ... make the requests.get() call ... El script consulta sistemáticamente la API para cada estación y guarda los resultados en archivos JSON, creando una base de datos local de las condiciones ambientales recientes. El siguiente paso: conectar los puntos En este momento, estos dos módulos están separados.Pero el poder está en conectarlos.La próxima evolución de este proyecto es utilizar los datos meteorológicos como una entrada dinámica para la calculadora DMI. Puedes calcular el a partir de los datos de la NOAA, una métrica estándar para medir la tensión térmica en el ganado. A medida que el THI aumenta por encima de un cierto umbral (alrededor de 72 para las vacas lácteas), el DMI comienza a bajar. Temperature-Humidity Index (THI) La siguiente versión de la fórmula de DMI parecería algo así: adjusted_dmi = calculado_dmi * get_heat_stress_factor(THI) Esto permitiría a la herramienta hacer recomendaciones más inteligentes y más realistas.Por ejemplo, podría aconsejar a un granjero que durante una ola de calor predicha, la ingesta de su rebaño probablemente disminuirá en un 10%, lo que les permitirá ajustar las compras de piensos y evitar el desperdicio. Lo que aprendí Las API públicas son Goldmines: las agencias gubernamentales como NOAA proporcionan una increíble cantidad de datos gratuitos de alta calidad. El rascado web es un superpoder: para los datos económicos que no están disponibles a través de una API, un simple script de Python puede convertir un sitio web en una fuente de datos estructurada. La magia está en la combinación: cualquiera de estos scripts es útil por sí solo.Pero al combinar los datos económicos (precios de los alimentos) con los datos ambientales (tiempo), se crea una herramienta que es mucho más poderosa y más cercana a cómo funciona el mundo real. Este proyecto es un punto de partida, pero demuestra el inmenso potencial para que los desarrolladores construyan herramientas que lleven la ciencia de los datos y la automatización a las industrias tradicionales, creando valor real y resolviendo problemas tangibles.