fuente14 filas
Quién dio el dato: primaria (quien opera el instrumento) o redistribuidor. Esa distinción resuelve sola las discrepancias.
idintegerPKnombretexttipotextaportatexturltextaccesotextconsultada_entext
El modelo de datos · 13 tablas · 3 vistas · PPM_DB3 + homog_v5 + chirps_v2 + era5_land
Un valor de precipitación nunca viaja solo: lleva de qué estación y de qué fuente salió, qué versión del cálculo lo produjo, si es medición o estimación y si alguien sospechó de él. Este es el esquema que lo garantiza, dibujado directamente desde la base que se descarga.
Desliza el diagrama hacia los lados para recorrerlo; debajo está la misma información como lista.
Las flechas van de la columna que referencia (FK) a la clave que identifica (PK). Pasa el cursor o toca una tabla para ver solo sus relaciones; un clic lleva a su ficha.
fuente14 filasQuién dio el dato: primaria (quien opera el instrumento) o redistribuidor. Esa distinción resuelve sola las discrepancias.
idintegerPKnombretexttipotextaportatexturltextaccesotextconsultada_entextposicion_estacion790 filasUna fila por posición conocida, con la fuente que la declara. Una estación trasladada agrega fila; la discrepancia entre fuentes se guarda en vez de perderse.
idintegerPKestaciontext→ estacionlatreallonrealaltitud_mrealdem_mrealfuente_idinteger→ fuentees_vigenteintegerdist_a_vigente_kmrealinstitucion12 filasDGA, DMC, CEAZA, INIA, SENAMHI y las demás redes.
idintegerPKnombretextpaistextestacion530 filasIdentidad de cada serie: código, nombre, institución. Sin coordenadas, que cambian y tienen su propia procedencia. Incluye los píxeles de ERA5-Land que climatol usó como referencia, marcados con es_referencia.
codigotextPKnombretextinstitucion_idinteger→ institucionpaistextnombre_climatoltextorigentextes_referenciaintegernotatextaccion_limpieza36 filasCada decisión de limpieza con su motivo y cuántas celdas tocó.
idintegerPKversion_idinteger→ version_datasetetapatextoperaciontextdetalletextestaciones_afectadasintegerceldas_afectadasintegermarca_calidad157 filasSospechas y exclusiones, separadas del valor. Un JOIN la trae y un WHERE la excluye, pero el dato medido no se borra.
idintegerPKestaciontext→ estacionmestexttipotextmotivotextevidenciatextversion_idinteger→ version_datasetproducto4 filasObservado, homogeneizado, CHIRPS y ERA5, cada uno con su escala: cuántas unidades enteras hay en 1 mm.
idintegerPKcodigotextnombretextunidadtextescalaintegeres_medicionintegerconteo_estacion1.089 filasCuántos meses tiene cada estación en cada producto, con sus ceros y su periodo. Se calcula al construir la base; la API lo lee en vez de recorrer observacion.
estaciontextPKproducto_idintegerPKversion_idintegerPKfilasintegercerosintegerdesdetexthastatextobservacion294.271 filasLa tabla de hechos: estación × mes × producto × versión → valor y bandera. Formato largo. El valor es un entero; un mes sin medición no tiene fila y un mes medido en 0 mm sí la tiene.
estaciontextPKmestextPKproducto_idintegerPKversion_idintegerPKvalorintegerbanderaintegerversion_dataset5 filasCada reconstrucción, con su padre: la obsolescencia se propaga sola y se consulta con WITH RECURSIVE.
idintegerPKetiquetatextproducto_idinteger→ productopadre_idinteger→ version_datasetgenerada_entextgenerada_portextdescripciontextes_vigenteintegersegmento_regimen316 filasQué estación fue a qué régimen, si lo estimó ella misma o lo heredó de una vecina fiable, y las que quedaron fuera por cortas.
estaciontextPKversion_idintegerPKregimentextf_veranorealmm_anorealn_mesesintegermin_obs_mesintegerfiableintegerregimen_origentextvecina_origentext→ estaciondist_vecina_kmrealregimen_v4textcorrida_climatol8 filasUna fila por régimen y escala, con los parámetros tal como climatol registró haberlos usado, inht incluido.
idintegerPKversion_idinteger→ version_datasetregimentextescalatextanyiintegeranyfintegern_seriesintegern_referenciaintegerparametrostextinhttextmetadintegerversion_climatoltextscripttextejecutada_entextsalto_climatol8 filasLos quiebres detectados, con su mes y su SNHT.
idintegerPKcorrida_idinteger→ corrida_climatolestaciontext→ estacioncodigo_climatoltextmestextsnhtrealv_estacion_vigenteCada estación con su posición vigente y su régimen.
v_medicion_limpiaSolo medición vigente, sin relleno, sin corrección y sin celdas marcadas. La que sostiene cualquier tendencia.
v_observacionEl valor ya en milímetros (valor_mm = valor / escala), con el nombre del producto y de la versión. La consulta por defecto.
La columna observacion.valor guarda milímetros multiplicados
por la escala de su producto, y la vista v_observacion los devuelve ya
divididos. Así el cero medido —el 65 % de la medición— compara exacto siempre, ocupa
cero bytes y las sumas no acumulan error.
| producto | escala | 1 mm se guarda como |
|---|---|---|
observado | 100 | 100 |
homogeneizado | 100 | 100 |
chirps | 10.000 | 10.000 |
era5 | 10.000 | 10.000 |
-- la medición de una estación, en mm, sin relleno ni celdas marcadas
SELECT mes, valor_mm
FROM v_medicion_limpia
WHERE estacion = '3450004'
ORDER BY mes;
La base completa se abre con R, Python o DB Browser for SQLite sin instalar nada más. La misma base responde en línea por la API.