Este es un pronóstico térmico experimental de maíz para 2024, evaluado fuera de muestra; no es asesoramiento agronómico. El panel pregunta cuándo las etapas estatales superarían el 50% si el desarrollo siguiera la temperatura acumulada en una celda de CFS.
El panel usa CFS FLXF de NOAA, cuyas salidas cada seis horas se extienden hasta aproximadamente 215 días, con un modelo modificado de Growing Degree Days (GDD) calibrado y evaluado con los informes de progreso de cultivos de USDA. Esto permite crear un pronóstico térmico para toda la temporada con supuestos y umbrales inspeccionables.
El caso está congelado al 1 de julio de 2024 a las 00 UTC. Une historia CFS con plazo exacto de seis horas antes de esa fecha y un único ciclo archivado después. La historia sigue siendo guía de modelo, no observaciones, y no se agregan ciclos posteriores.
Como CFS es grueso, cada serie usa una coordenada nativa de la grilla gaussiana, no una ciudad ni un promedio estatal:
| Estado | Latitud | Longitud |
|---|---|---|
| Iowa | 42.047066 | -93.750371 |
| Nebraska | 41.102190 | -99.375363 |
| Kansas | 38.267561 | -100.312862 |
| Indiana | 40.157314 | -86.250381 |
| Missouri | 39.212437 | -92.812872 |
| Ohio | 40.157314 | -82.500386 |
| North Dakota | 46.771444 | -98.437864 |
En cada intervalo se convierten TMAX y TMIN a Fahrenheit, se limitan al rango 50–86 °F, se promedian, se resta la base de 50 °F y se multiplica por un cuarto de día:
Tmax_F = (TMAX_K - 273.15) × 9 / 5 + 32
Tmin_F = (TMIN_K - 273.15) × 9 / 5 + 32
GDD50_6h = (
(clamp(Tmax_F, 50, 86) + clamp(Tmin_F, 50, 86)) / 2 - 50
) × 6 / 24
La base de 50 °F y el techo de 86 °F siguen el método modificado de Iowa State University Extension. Aplicarlo a cada intervalo no equivale exactamente a calcular primero máximos y mínimos diarios; por eso los umbrales se calibraron en esta misma métrica de seis horas.
Los objetivos proceden de USDA NASS Crop Progress and Condition. Interpolamos linealmente el momento en que el porcentaje semanal estatal cruza el 50%. El 50% sembrado inicia la acumulación; emergencia, floración femenina, grano pastoso, dentado y madurez son los objetivos.
Para cada estado, año y etapa, el umbral implícito es el GDD acumulado entre ambas fechas. Para evitar usar 2024 en su propia calibración, las constantes del panel son la mediana de 2020–2023. Es una calibración histórica pequeña, no entrenamiento de aprendizaje automático:
| Estado | Emergencia | Floración femenina | Grano pastoso | Dentado | Madurez |
|---|---|---|---|---|---|
| Iowa | 113.475 | 1332.409 | 1739.139 | 2163.247 | 2563.627 |
| Nebraska | 142.086 | 1388.037 | 1898.494 | 2357.720 | 2892.070 |
| Kansas | 166.002 | 1557.522 | 2111.445 | 2664.386 | 3290.921 |
| Indiana | 115.466 | 1275.090 | 1766.812 | 2228.159 | 2632.039 |
| Missouri | 72.729 | 1389.516 | 1874.276 | 2365.314 | 2910.735 |
| Ohio | 127.756 | 1277.139 | 1677.836 | 2173.649 | 2538.914 |
| North Dakota | 177.123 | 1116.568 | 1623.371 | 1963.759 | 2248.754 |
Las diferencias entre estados son intencionales: una única madurez nacional funcionó mal. Las constantes absorben mezcla de cultivos, madurez relativa, patrones de siembra y el desajuste entre una celda y un estado.
Repetimos el ajuste con validación leave-one-year-out para 2020–2024. Para la misma división historia-pronóstico del 1 de julio, los resultados fuera de muestra fueron:
| Etapa | Previstos / elegibles | Cobertura | Sesgo | Error absoluto medio | Mediana del error absoluto |
|---|---|---|---|---|---|
| Floración femenina | 35 / 35 | 100% | -0.9 días | 2.5 días | 1.7 días |
| Grano pastoso | 35 / 35 | 100% | -0.9 días | 3.3 días | 1.9 días |
| Dentado | 34 / 35 | 97% | +0.8 días | 4.7 días | 3.6 días |
| Madurez | 32 / 35 | 91% | +2.9 días | 6.5 días | 4.2 días |
La cobertura es la fracción de temporadas elegibles que alcanzó la etapa antes de terminar el pronóstico. El sesgo es fecha prevista menos fecha USDA. Los resultados hacen plausible una estimación de madurez de aproximadamente una semana en julio como demo, no para un lote particular ni como garantía futura.
El panel agrupa siete coordenadas; estas dos solicitudes mínimas para Iowa muestran el cálculo completo. Grafana concatena las contribuciones, descuenta el GDD anterior a la siembra y calcula la suma acumulada.
curl -X POST 'https://gribstream.com/api/v2/cfsflxf/timeseries' \
-H "Content-Type: application/json" \
-H "Accept: text/csv" \
-H "Authorization: Bearer [API_TOKEN]" \
-d '{
"fromTime": "2024-04-15T06:00:00Z",
"untilTime": "2024-07-01T06:00:00Z",
"asOf": "2024-11-02T00:00:00Z",
"minLeadTime": "6h",
"maxLeadTime": "6h",
"coordinates": [
{"name": "Iowa", "lat": 42.047066, "lon": -93.750371}
],
"variables": [
{"name": "TMAX", "level": "2 m above ground", "info": "", "alias": "temperature_max_k", "hidden": true},
{"name": "TMIN", "level": "2 m above ground", "info": "", "alias": "temperature_min_k", "hidden": true}
],
"expressions": [
{"expression": "(temperature_max_k - 273.15) * 9 / 5 + 32", "alias": "temperature_max_f"},
{"expression": "(temperature_min_k - 273.15) * 9 / 5 + 32", "alias": "temperature_min_f"},
{"expression": "((func.Min(86.0, func.Max(50.0, temperature_max_f)) + func.Min(86.0, func.Max(50.0, temperature_min_f))) / 2 - 50.0) * 0.25", "alias": "gdd50_f_degree_days_6h"}
]
}'
curl -X POST 'https://gribstream.com/api/v2/cfsflxf/runs' \
-H "Content-Type: application/json" \
-H "Accept: text/csv" \
-H "Authorization: Bearer [API_TOKEN]" \
-d '{
"forecastedFrom": "2024-07-01T00:00:00Z",
"forecastedUntil": "2024-07-01T00:00:00Z",
"minLeadTime": "6h",
"maxLeadTime": "2952h",
"coordinates": [
{"name": "Iowa", "lat": 42.047066, "lon": -93.750371}
],
"variables": [
{"name": "TMAX", "level": "2 m above ground", "info": "", "alias": "temperature_max_k", "hidden": true},
{"name": "TMIN", "level": "2 m above ground", "info": "", "alias": "temperature_min_k", "hidden": true}
],
"expressions": [
{"expression": "(temperature_max_k - 273.15) * 9 / 5 + 32", "alias": "temperature_max_f"},
{"expression": "(temperature_min_k - 273.15) * 9 / 5 + 32", "alias": "temperature_min_f"},
{"expression": "((func.Min(86.0, func.Max(50.0, temperature_max_f)) + func.Min(86.0, func.Max(50.0, temperature_min_f))) / 2 - 50.0) * 0.25", "alias": "gdd50_f_degree_days_6h"}
]
}'
Filas de ejemplo en la unión entre historia y pronóstico:
forecasted_at,forecasted_time,lat,lon,name,member,gdd50_f_degree_days_6h,temperature_max_f,temperature_min_f
2024-06-30T18:00:00Z,2024-07-01T00:00:00Z,42.0471,-93.7504,Iowa,0,4.7475,70.2500,67.7300
2024-07-01T00:00:00Z,2024-07-01T06:00:00Z,42.0471,-93.7504,Iowa,0,3.3300,69.5300,57.1100
Fuentes primarias: documentación NOAA CFSv2 · modelo e inventario CFS FLXF · metodología USDA NASS · archivo oficial Crop Progress · método GDD de Iowa State.