Reglas de negocio¶
Las reglas que ningún cálculo, comando ni petición puede romper. La mayoría son reglas científicas: si se violan, el mapa sigue viéndose bien y está mal.
RN-01¶
Una corrida, una sola madurez de datos
Una corrida usa productos de una sola madurez (provisional o validado). La
guía de usuario de NISAR advierte que las diferencias entre madurezas pueden
deberse al cambio de procesamiento y no a cambios en el terreno. Mezclarlas
puede fabricar un punto de cambio CUSUM en la fecha en que cambió la madurez:
una pérdida de copa que no existe.
- Mecanismo:
Corrida.madurezy trigger que rechaza agregar aCorridaFechauna adquisición de otra madurez - Origen:
RF-M-03,RF-O-10
RN-02¶
El reproceso reemplaza, no duplica
Una misma pasada (track, frame, órbita, instante de inicio al minuto) puede publicarse varias veces con distinto CRID. Gana la de CRID más reciente. La versión anterior no se borra: queda marcada como reemplazada y la nueva apunta a ella, para que las corridas viejas sigan siendo reproducibles.
- Mecanismo:
Adquisicion.reemplaza_ae índice único parcial sobre la pasada donde la adquisición no fue reemplazada - Origen:
RF-M-05
RN-03¶
La grilla de una región es inmutable
Una región tiene una proyección UTM, un origen, un tamaño de celda y unas dimensiones fijas desde que se crea. Cambiar cualquiera de ellos es crear otra región. Las celdas, los resultados y los enlaces compartidos dependen de esa grilla.
- Mecanismo: trigger de solo lectura sobre
epsg,celda_m,x0,y0,anchoyaltodeRegion - Origen:
RF-O-02
RN-04¶
El identificador de una celda sale de sus coordenadas
El identificador de una celda es c_<E>_<N>, con las coordenadas UTM de su
centro en metros. No es su posición en un arreglo. Así sobrevive a cambios de
tamaño del polígono y se puede calcular desde cualquier punto sin consultar la
base de datos.
- Mecanismo:
Celda.codigocomo columna generada a partir deRegiony de fila y columna - Origen:
RF-C-07,RF-C-08
RN-05¶
Se promedia en potencia lineal
La retrodispersión se promedia en escala lineal (γ⁰) y solo después se pasa a decibeles. Promediar decibeles subestima el brillo de las celdas mixtas, que son justamente las del borde del manglar.
- Mecanismo: función de agregación del motor, cubierta por pruebas con valores conocidos
- Origen:
RF-M-06
RN-06¶
Las comparaciones en el tiempo se hacen dentro del mismo track
La retrodispersión depende del ángulo de incidencia, y cada track ve la región con un ángulo distinto. El promedio multitemporal, la calibración relativa, el detector de cambios y el coeficiente de variación se calculan por track. CUSUM recorre la serie de anomalías de cada celda respecto a la media de su propio track. Los umbrales absolutos de clase se aplican a los valores calibrados.
- Mecanismo:
Adquisicion.tracky cálculo agrupado por track en el motor - Origen:
RF-M-10,RF-M-15,RF-M-16
RN-07¶
Cinco clases por fecha
Cada celda recibe en cada fecha una de cinco clases: IV vegetación inundada,
OW agua abierta, NI no inundado, NC no clasificado y ND sin dato. ND
aparece cuando la celda no tuvo muestras válidas en esa pasada; nunca se rellena
con la fecha vecina.
- Mecanismo:
ResultadoCelda.clasescomo arreglo de códigos conCHECKde valores admitidos - Origen:
RF-M-11
RN-08¶
Nivel de marea por adquisición
Cada fecha se etiqueta alta, media, baja o desconocida según la altura
de marea en el instante de la pasada y los umbrales del perfil. desconocida
significa que no hay estimación de marea, y una fecha sin marea nunca cuenta
como marea alta.
- Mecanismo:
CorridaFecha.marea_nivel, derivado al crear la fila y congelado - Origen:
RF-M-07
RN-09¶
La lluvia separa la marea del aguacero
Una fecha con lluvia acumulada en los tres días previos igual o mayor al umbral del perfil no cuenta para la frecuencia de inundación en marea alta. Así, el agua de lluvia no se confunde con agua de marea.
RN-10¶
Pocas fechas de marea alta no alcanzan para afirmar nada
Si una celda tiene menos fechas de marea alta válidas que el mínimo del perfil,
su if_alta es nulo y queda marcada con datos insuficientes. No se la declara
conectada ni desconectada.
- Mecanismo:
CHECKque exigeif_altanulo cuandodatos_suficienteses falso - Origen:
RF-M-13
RN-11¶
Definición de manglar desconectado
Una celda está desconectada si cumple todo lo siguiente: está dentro de la
máscara de manglar, tiene datos suficientes, su if_alta está bajo el umbral
del perfil y, si hay modelo de elevación y el perfil lo pide, su cota indica que
debería inundarse en marea alta. Después se aplica un voto de mayoría 3 × 3 para
quitar celdas sueltas por ruido.
- Mecanismo:
CHECKde coherencia entredesconectada,en_mascaraydatos_suficientes - Origen:
RF-M-14
RN-12¶
Fuera de la máscara no hay métricas
Una celda fuera de la máscara de manglar conserva su serie de retrodispersión
y sus clases, pero no tiene if, if_alta, desconexión, probabilidad de error
ni punto de cambio.
RN-13¶
Un cambio se reporta solo si es significativo
Un punto de cambio en HV se publica solo si su confianza de bootstrap alcanza el umbral del perfil y la caída de HV supera la mínima. Si no, el cambio es nulo. Un cambio débil publicado como hallazgo es peor que no publicarlo.
- Mecanismo:
CHECKque exige fecha, confianza y delta juntos o los tres nulos - Origen:
RF-M-15
RN-14¶
Una corrida publicada no cambia
Los resultados de una corrida no se editan. Para corregir algo se crea otra corrida. Una corrida publicada solo puede pasar a retirada, y una retirada no vuelve a publicarse.
- Mecanismo: resultados de solo inserción y trigger de transiciones de
Corrida.estado - Origen:
RF-O-12,RF-O-13
RN-15¶
Versión semántica de los datos
Cada corrida tiene una versión MAYOR.MENOR.PARCHE, única por región. Sube el
mayor cuando cambia la forma del contrato, el menor cuando entran adquisiciones
o insumos nuevos, y el parche cuando solo cambian los umbrales. Los enlaces
compartidos incluyen la versión, así que siguen mostrando lo mismo aunque se
publique otra.
- Mecanismo:
unq_corrida_region_versionyCHECKde formato - Origen:
RF-C-03
RN-16¶
Los hallazgos son hipótesis
Un manglar desconectado es un punto a verificar en campo, no una acusación. La API no asocia estanques, bordas ni caminos con propietarios ni concesionarios, y todo valor publicado viaja con su incertidumbre.
- Mecanismo: ausencia de datos de titularidad en el modelo;
p_erroryconfianzaobligatorios - Origen:
RF-C-07,RNF-12
RN-17¶
Las brechas de datos se declaran
Los períodos sin adquisiciones del instrumento, como el de NISAR entre el 27 de julio y el 10 de agosto de 2026, se registran y se publican en el manifiesto. Nunca se interpolan.
- Mecanismo:
Brechacon rango temporal y restricción de exclusión contra solapamientos - Origen:
RF-C-02
RN-18¶
Instantes en UTC, fechas en hora local de la región
Todo instante se guarda en UTC. Cuando hace falta una fecha de calendario, como para sumar la lluvia de tres días, se resuelve en la zona horaria de la región. Una pasada a las 00:16 UTC ocurre la tarde anterior en Nicaragua. El identificador de fecha del contrato usa la fecha UTC.