# Industrial Map · Hermosillo

Revisión del 25 de octubre de 2026. **Preselección territorial, no estudio de factibilidad ni oferta de terrenos.** Es una experiencia independiente del Energy Map residencial. No utiliza sus kWh domésticos, su índice de renovación de AC ni su tarifa CFE 1F para evaluar industrias.

## Fuentes, trazabilidad y cobertura

- **INEGI Censo 2020**, conteos `POBTOT` y `TVIVPARHAB` integrados en `public/data/inegi/hermosillo-2020.json`, unidos por CVEGEO exacto con la cartografía urbana EcoTrack del repositorio. Fuente: https://www.inegi.org.mx/programas/ccpv/2020/. Cartografía con las limitaciones de versionado documentadas en `public/data/ecotrack/SOURCE.md`. No reconstruimos celdas reservadas.
- **OpenStreetMap contributors**, instantánea descargada mediante Overpass. Fuente y licencia: https://www.openstreetmap.org/copyright (ODbL). Endpoint de extracción utilizado: `https://maps.mail.ru/osm/tools/overpass/api/interpreter`. Consulta exacta en `scripts/industrial/overpass.ql`, respuesta en `data/industrial/osm-source.json`, fecha de base OSM, SHA-256 y conteos en [manifest.json](manifest.json). La fecha OSM es la de la base; no la de verificación de cada activo. Documentación de consulta: https://wiki.openstreetmap.org/wiki/Overpass_API.
- La consulta cubre el rectángulo oeste −111.45, sur 28.65, este −110.45, norte 29.50. Se incluyen `power=substation`, líneas `line/minor_line`, carreteras `motorway/trunk/primary/secondary`, áreas `landuse=industrial/residential`, agua superficial y cauces. Las vías dibujadas no incluyen todas las calles ni certifican acceso de vehículos pesados. Polígonos se conservan únicamente si los ways están cerrados. Las relaciones sin geometría reconstruida se omiten y cuentan en `skippedOsm`.
- El catálogo CFE 2021 del repositorio tiene capacidades nominales históricas, sin conexión territorial y disponibilidad actual verificadas. **No se le asignan coordenadas por nombre ni se presenta capacidad nominal como MW libres.**

OSM es un inventario colaborativo incompleto. Un activo ausente no prueba que no exista. Distancias y usos representan cartografía, no certificaciones CFE/municipales. El listado de fuentes tiene usos distintos: INEGI sustenta conteos 2020; OSM sustenta presencia cartografiada; ninguna sustenta suministro de agua al predio ni terrenos libres. CFE añade cuotas industriales publicadas para una referencia presupuestaria; CONAGUA añade balances de acuíferos históricos, sin convertirlos en suministro contractual. Se preservan faltantes como nulos.

## Unidades de búsqueda y encaje

El flujo actual evalúa **107 contornos industriales cartografiados**, conservados en `territories.json`. Se obtienen de la instantánea OSM y de los parques con geometría capturada; sus distancias y buffers censales se recalculan. Pueden contener instalaciones existentes. No son límites catastrales ni terrenos disponibles. El archivo base conserva 484 celdas históricas para compatibilidad; la interfaz no las usa como candidatas.

El usuario introduce superficie o dibuja polígonos/rectángulos. Puede crear partes, moverlas, cambiar tamaño, editar vértices y eliminarlas. Turf calcula área geodésica en m²; hectáreas = m²/10,000. La unión geométrica cuenta solapes una sola vez. Se rechazan figuras auto-intersectadas o degeneradas. El traslado conserva separaciones relativas en aproximación métrica local; no ajusta catastralmente límites.

La plantilla conserva orientación y partes relativas. Sin dibujo se usa un cuadrado con el área indicada. La envolvente rectangular se amplía para cubrir expansión y, cuando están declarados, lote mínimo y COS. Se busca encaje en el punto interior de referencia y hasta 81 posiciones adicionales. La intersección geométrica exige contener toda la envolvente, incluyendo concavidades y huecos. No se optimiza rotación ni se demuestra imposibilidad cuando no se encuentra posición. Se rechazan cruces con agua superficial cartografiada. La separación residencial conservadora descuenta radio de envolvente y desplazamiento desde el punto territorial; población y distancias de referencia conservan su punto original. No se afirma que el suelo restante esté vacío, plano, libre de servidumbres o riesgos.

## Población inmediata y workforce

Para radios de 1, 5, 10, 20 y 30 km alrededor del **centro de cada candidata**, se intersecta un círculo geodésico (48 segmentos) con cada polígono censal disponible:

`P_radio = Σ P_AGEB × área(intersección) / área(AGEB)`

Las viviendas a 1 km se estiman igual. Se supone distribución uniforme dentro de cada polígono. El resultado es **modelled**, no conteo observado en ese círculo. Se guarda cobertura de valores censales dentro de la superficie cartografiada (`censusCoverage`) y fracción del círculo cubierta por cartografía urbana (`mappedAreaCoverage`). Fuera de esa cobertura no se imputa cero: el total sólo representa población de polígonos con dato. Si no hay ninguna intersección con población conocida, el resultado es nulo. Rural dispersa, cambios desde 2020 y habitantes fuera de los polígonos no están capturados.

Workforce utiliza la población parcial del radio elegido, con un objetivo editable. **No identifica trabajadores disponibles, competencias, población económicamente activa ni tiempos de traslado.** Las distancias son en línea recta, no recorridos por carretera.

La población inmediata se penaliza independientemente del workforce. La referencia residencial espacial combina áreas residenciales OSM y polígonos censales con viviendas conocidas >0. La distancia a esos polígonos no es distancia a un domicilio individual. Para una separación conservadora se resta a la distancia del centro el radio de la envolvente expandida: `max(0, distancia_residencial − diagonal_envolvente/2)`. Esto puede descartar falsamente implantaciones largas/irregulares; nunca verifica ausencia de viviendas que no están cartografiadas.

## Restricciones y faltantes

Se evalúan antes del ranking: encaje geométrico, cruce de agua superficial, separación residencial mínima, distancia máxima a carretera y a subestación. Las distancias de infraestructura se miden desde el centro de la candidata con aproximación local equirectangular; son metros geométricos, no longitud de obra de conexión. No incorporan servidumbres ni barreras físicas.

Las condiciones conocidas incumplidas dan `excluded`. Cuando se exige capacidad eléctrica, dotación de agua, terreno/uso autorizado o revisión integral de riesgos, la ausencia de confirmación da `unverified`. **Ninguna de esas cuatro confirmaciones contractuales está disponible en la versión 2**, por lo que exigirla evita que las zonas aparezcan como elegibles. Si no se exigen, el resultado sigue siendo `preliminary`, nunca factibilidad confirmada.

Demanda MW y consumo mensual MWh alimentan también el presupuesto GDMTH. Agua m³/día se conserva como requisito declarado para diligencia; no se convierten en oferta del sitio ni alteran artificialmente un score de capacidad inexistente. Se rechaza consumo mensual mayor que demanda máxima × 24 × 31. No se estima tarifa industrial con la residencial 1F, no se considera agua de un río como derecho de extracción ni se asigna costo ficticio por zona.

## Score explicable

Los pesos del usuario se normalizan a suma 100. Presets Manufacturing, Energy Intensive y Data Center son preferencias iniciales, no modelos validados ni recomendaciones sectoriales universales.

| Factor                           | Puntuación 0–100                                                                             | Interpretación y límite                                                           |
| -------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| Energía                          | `100 × max(0, 1 − distancia_subestación/10000)`                                              | Cercanía, no capacidad libre ni conexión garantizada                              |
| Infraestructura                  | `100 × max(0, 1 − distancia_línea/5000)`                                                     | Cercanía a línea, no tensión compatible, redundancia o confiabilidad              |
| Logística                        | `100 × max(0, 1 − distancia_carretera/5000)`                                                 | Cercanía geométrica, no ruta o permiso de acceso                                  |
| Workforce                        | `min(100, 100 × población_radio/objetivo)`                                                   | Población censal parcial interpolada; no empleo disponible                        |
| Residencial                      | Media de `min(100, 100 × separación/preferencia)` y `100 × max(0, 1 − población_1km/límite)` | Premia separación y baja población inmediata; objetivos editables                 |
| Contexto industrial (Land)       | `100 × max(0, 1 − distancia_suelo_industrial_OSM/5000)`                                      | Contexto cartografiado, no superficie de terreno disponible ni uso autorizado     |
| Balance hídrico regional         | `100 × clamp(DMA/(R−DNC), 0, 1)`; mínimo entre acuíferos intersectados                       | Fracción proporcional del balance regional; no suministro al predio               |
| Margen del presupuesto eléctrico | `100 × max(0, 1−costo_superior/presupuesto_usuario)`                                         | Holgura respecto a presupuesto; referencia común, no costo geográfico de conexión |

Los 5/10 km son reglas iniciales explícitas de preselección, **no estándares ingenieriles ni umbrales aprendidos**. Se versionan en `lib/industrial/scoring.ts`. Los criterios eléctricos de cercanía están correlacionados; el usuario puede reducir uno para evitar dar doble importancia a la red.

`Score_inferior = Σ(peso_normalizado × score_disponible / 100)`

`Cobertura = Σ pesos_normalizados de criterios disponibles`

`Score_superior = Score_inferior + (100 − Cobertura)`

Los pesos de criterios sin dato **no se redistribuyen** y no se afirma que su valor real sea cero. El score inferior representa sólo contribuciones sustentadas; el intervalo inferior–superior acota las contribuciones no evaluadas, **no es confianza estadística**. Sin ningún criterio disponible el score es nulo. La cobertura de criterios no mide calidad ni completitud espacial de OSM/INEGI: ambas limitaciones se muestran aparte. El orden usa score inferior descendente y código estable para empates; incertidumbre y sensibilidad a pesos pueden cambiarlo. 100 no significa sitio aprobado.

## Experiencia y artefactos

Rutas `/industrial-map/` y `/en/industrial-map/`, consentimiento reutilizado de IRVEN. Cuatro pasos: instalación, necesidades, prioridades, resultados. Capas independientes, selección mapa/lista, detalle con desglose, comparación de hasta cuatro zonas y exportación JSON de requisitos, dibujo y resultados. Cambiar entradas marca resultados como desactualizados y oculta las capas/comparación hasta recalcular. Lista inicial de doce resultados con carga progresiva; la exportación conserva todos. En móvil se incluye un acceso directo a la comparación. El mapa usa rango fijo 0–100; filtros, zoom y pan no cambian puntuaciones.

No hay capa de “riesgo bajo” por ausencia de evidencia. Agua y cauces muestran cartografía superficial, **no inundación**. Los análisis permanecen en el navegador; exportar descarga un archivo, no publica ni envía un mensaje.

## Reproducción y verificación

```sh
npm run data:industrial:refresh
# O recalcular desde la descarga archivada, sin red:
node --experimental-strip-types scripts/industrial/build.mjs data/industrial/osm-source.json
node scripts/industrial/enrich.mjs
npm run lint
npm run typecheck
npm test
npm run build -- --webpack
BROWSER_CHANNEL=chrome npm run test:browser
```

El colector sólo sustituye el origen tras recibir JSON completo; la construcción rechaza fuentes sin carreteras/subestaciones o cruces censales vacíos. Las pruebas cubren unión y traslado de figuras, restricciones, nulos, prioridades residenciales/workforce, pesos y selección/comparación en navegador. **No validan factibilidad de los sitios contra visitas, contratos o dictámenes.** Antes de una decisión de inversión: obtener factibilidad eléctrica CFE, agua, catastro/tenencia, uso de suelo oficial, atlas de riesgos y evaluación de acceso/logística. Incorporar esos datos mediante campos con fuente/fecha y unidades compatibles, manteniendo las comprobaciones obligatorias.

## Costo eléctrico industrial: cuotas reales y presupuesto modelado

Cuotas **publicadas** por [CFE GDMTH](https://app.cfe.mx/Aplicaciones/CCFE/Tarifas/TarifasCRENegocio/Tarifas/GranDemandaMTH.aspx), consultadas en Chrome el 01-10-2026: año 2026, octubre, Sonora, Hermosillo, división Noroeste. Selecciones y cifras en `data/industrial/cfe-gdmth.json`. Fijo **197.77 MXN/mes**, energía base **0.9408**, intermedia **1.5035**, punta **1.6658 MXN/kWh**; distribución **90.85** y capacidad **377.17 MXN/kW-mes**. Son cargos finales integrados: no se vuelven a añadir transmisión/CENACE/conexos.

La metodología vigente es [CNE CT/11.SE/8-2025, ejercicio 2026](https://dof.gob.mx/nota_detalle_popup.php?codigo=5783862), tabla 2, numerales 5.1–5.4 y tabla 51. La página CFE conserva una referencia textual al acuerdo 2025 sustituido; se verificó el acuerdo 2026, que conserva FC regulatorio GDMTH **0.57**. Este FC es un coeficiente de facturación, **no el factor de carga medido de la planta**. Las imágenes originales de fórmulas se enlazan en ese documento.

`Q = MWh_mes × 1000` y `D = MW_máxima × 1000`:

- `D_ref = Q / (24 × días_mes × 0.57)`.
- `Distribución = min(ceil(D_mensual), D_ref) × 90.85`.
- `Capacidad = min(ceil(D_punta), D_ref) × 377.17`.
- `Energía = Q_base × 0.9408 + Q_intermedia × 1.5035 + Q_punta × 1.6658`.
- `Total = 197.77 + Energía + Distribución + Capacidad`.

El usuario puede declarar porcentajes base/punta (intermedia = 100−base−punta) y demanda máxima coincidente punta. Son entradas prospectivas, no mediciones de una instalación inexistente. Sin ellas **no se imputa un perfil**: se calcula un intervalo conservador de cargos, no un valor central inventado ni un intervalo de confianza.

La referencia octubre 2026 tiene **243 horas base, 445 intermedias y 56 punta**. Se aplica el horario Noroeste publicado por CFE, pasando a temporada de invierno el domingo 25 de octubre. No hay descansos obligatorios ordinarios de LFT en ese mes; no se incorporan decretos festivos adicionales no verificados. Son horas locales de tarifa, no una suposición de horas de trabajo. El modelo limita `Q_periodo ≤ demanda_máxima × horas_periodo`; si existe D_punta se utiliza para el límite punta. El costo mínimo asigna el Q desconocido primero a las horas más baratas disponibles y el máximo primero a las más caras. No genera un cronograma de operación. La capacidad desconocida se acota por consumo punta mínimo compatible / horas punta y D_mensual, aplicando el mínimo regulatorio; los límites de componentes pueden no ser simultáneamente alcanzables y constituyen una envolvente conservadora. Un reparto/demanda físicamente incompatible produce No disponible.

Sin D mensual sólo se calcula el componente de energía; el total queda nulo. Q=0 conserva el cargo fijo y no produce MXN/kWh por división entre cero. Demanda <100 kW, alta tensión (DIST/DIT), suministro calificado u otros contratos quedan fuera de esta referencia y requieren su tarifa correspondiente. El selector permite marcar contrato/tarifa por confirmar. **No se usa 1F residencial.**

Se excluyen IVA, DAP, recargos/bonificaciones por factor de potencia, garantías, estudios, obras y derechos de conexión. No se aplican cuotas de octubre a otros meses ni se presentan como tarifa futura. La referencia requiere una actualización verificada del JSON y pruebas de calendario al incorporar otro periodo. Para contrastar una factura real se necesitan tarifa, periodo, tres kWh horarios y demandas mensual/punta compatibles; la prueba automatizada valida fórmulas y valores fuente, **no una factura independiente de Hermosillo**.

El costo del mismo proyecto y contrato es igual en las celdas del mapa. Cambiarlo por distancia a una línea inventaría un precio de obra. Sólo se puntúa holgura presupuestaria si el usuario declara presupuesto positivo y existe total superior calculable: 0 significa presupuesto agotado/superado, 100 supondría costo nulo, no mejor calidad eléctrica. No tener presupuesto no equivale a costo cero: el score permanece nulo. El criterio común no discrimina geográficamente ni acredita factibilidad.

## Agua: balances publicados y correspondencia territorial

Se descargaron ocho poligonales regionales WGS84 de [SEMARNAT, servicio CONAGUA_INEGI, capa 0](https://geomatica.semarnat.gob.mx/arcgis/rest/services/APLICACIONES/CONAGUA_INEGI/MapServer/0), consulta por la envolvente del estudio. Respuesta archivada en `data/industrial/sources/semarnat-aquifers.json`; el [manifiesto de evidencia](evidence-manifest.json) conserva SHA-256 y cobertura. La capa contiene atributos viejos 2009–2011 (`DEF_VIEJA`, `CONDICION2`): **se ignoran para el balance**. La geometría carece de fecha de revisión plenamente verificada, se usa como contexto regional y no delimita derechos parcelarios.

R/DNC/VEAS/DMA se obtuvieron del [catálogo oficial Sonora de CONAGUA](https://sigagis.conagua.gob.mx/gas1/sections/Edos/sonora/sonora.html), asociado a disponibilidad publicada DOF 09-11-2023 y estudios técnicos CONAGUA 2024. Los ocho registros están en `data/industrial/conagua-balances.json`; cada polígono enlaza al estudio `DR_codigo.pdf`. Se verificaron los estudios Costa de Hermosillo, Mesa del Seri-La Victoria y Río San Miguel. **No son balances medidos en 2026**. Costa de Hermosillo usa corte REPDA 30-12-2019; Mesa del Seri y Río San Miguel usan 30-12-2022. VEAS incorpora concesiones y registros administrativos y no equivale a bombeo efectivamente medido.

`DMA = Recarga − Descarga natural comprometida − Volumen de extracción de aguas subterráneas`, en **hm³/año**. Se conserva DMA negativa; no se convierte a cero en detalle. Las 484 celdas tienen un único acuífero en su centro: **254 Costa de Hermosillo, 167 Mesa del Seri-La Victoria, 41 La Poza y 22 Río Zanjón**. Para la implantación se intersecta la envolvente expandida; si cruza varios, se muestran todos y se usa el score de balance más restrictivo. No se suman disponibilidades de acuíferos ni se reparten como agua asignable a las celdas.

El score regional normaliza DMA entre R−DNC: representa la fracción no comprometida del balance publicado. 0 identifica balance agotado o deficitario; 100 correspondería a ninguna extracción comprometida en el balance, **no agua garantizada ni presión/calidad de suministro**. La fuente física del agua de una planta puede ser otro acuífero, red municipal, acueducto o reúso. El filtro “Evitar acuíferos con déficit publicado” es una preferencia conservadora explícita sobre terreno, no una prohibición legal inferida. Exigir dotación confirmada sigue dando no verificable, incluso donde DMA>0.

Inventarios SEMARNAT de plantas potabilizadoras (3) y tratamiento (7) también se descargaron (`sources/semarnat-water-1.json`, `-2.json`). Las 3 potabilizadoras comparten una sola coordenada; las 7 plantas de tratamiento tienen 6 coordenadas distintas, una compartida con aquellas. Esta anomalía indica precisión local insuficiente para esas filas. No se publican distancias a ellas ni supuesta capacidad/suministro de reúso; se conserva evidencia para revisión. No se sustituyen ubicaciones por nombres.

## Datos que no admiten relleno automático

- **MW disponibles:** el [manual CFE de planeación de distribución 2024](https://app.cfe.mx/normateca/VerDocumento.ashx?id=36556) describe demanda/energía y estado operativo requeridos. La capacidad nominal histórica del catálogo local no permite deducir capacidad libre, capacidad firme o aceptación de una conexión sin carga actual, configuración y dictamen.
- **Tenencia y suelo autorizado:** [licencia municipal de uso de suelo](https://hmodigital.hermosillo.gob.mx/soporte_hermosillo_7e887937/licencia_de_uso_de_suelo_b60f120d-a8c6-4516-bf6b-015549032ac4), [consulta IMPLAN](https://implanhermosillo.gob.mx/consulta/). OSM industrial es contexto, no licencia, precio o terreno en venta. La consulta cartográfica 2022 no basta para certificar permiso vigente de un predio.
- **Agua al predio:** la [autorización de desarrollos municipal](https://hmodigital.hermosillo.gob.mx/soporte_hermosillo_7e887937/autorizacion_de_desarrollos_inmobiliarios_2f0921ff-8448-452c-aacd-c145a24a41d6) requiere oficio de factibilidad de Agua de Hermosillo. El balance regional no sustituye ese oficio.
- **Riesgos:** [Atlas de Hermosillo 2013](https://rmgir.proyectomesoamerica.org/AtlasMunPDF/2013/26030_HERMOSILLO_2013.PDF) y [estudios de drenaje IMPLAN](https://implanhermosillo.gob.mx/estudios/) son referencias para diligencia, no una capa actual georreferenciada validada integrada. Cauces OSM no implican probabilidad de inundación ni área segura.

Estos campos siguen explícitamente no verificados; calcular una cifra a partir de cercanía o ausencia de mapa no resolvería el faltante. La nueva versión sí añade presupuesto industrial, unidades monetarias, balance físico hídrico, cruce espacial, filtro de déficit, capa de acuíferos, desglose y exportación con procedencia.

## Parques, planeación y oferta comercial

Se integraron un catálogo de seis parques, cinco referencias comerciales, los dos planos oficiales de zonificación del PMDUH 2023 y reglas explícitas de lote mínimo/COS. La clasificación del predio se declara como escenario; no se deduce del giro. Los anuncios no confirman disponibilidad. Detalles, conflictos de fuentes, alcance espacial y reproducción: [PLANNING_METHOD.md](PLANNING_METHOD.md).

## Revisión territorial y de adquisición, octubre de 2026

La interfaz usa 107 contornos industriales capturados de OSM en `territories.json`, con métricas recalculadas por punto territorial. Las 484 celdas del archivo base quedan como insumo histórico y de compatibilidad; no son las candidatas del flujo actual. Los contornos pueden estar ocupados. No son un catastro ni inventario libre. Capas permite consultar y ocultar cada contorno antes de analizar.

Se incorporaron dos anuncios individuales y revisión de procedencia/estado de las referencias previas. El catálogo contiene cinco referencias; disponibilidad directamente confirmada con propietario: ninguna. La superficie total determina precio y coeficientes de construcción; la superficie útil se evalúa por separado. No se crea un polígono a partir del área anunciada. La revisión declarativa PMDUH/NMX detecta inconsistencias y faltantes, sin certificar permisos ni conformidad. Fuentes, correcciones y alcance: `docs/INDUSTRIAL_REVIEW_2026-10.md` en el repositorio.

## Consumo por equipos y entrega de decisión

La captura por equipos usa potencia **eléctrica de entrada**, cantidad, horas/día, días del mes y carga media: `E = cantidad × kW × horas × días × carga/100`. La potencia instalada se muestra por separado; no se sustituye por demanda máxima medida. Auxiliares, climatización y cargas fuera de producción deben incluirse en filas distintas cuando correspondan.

Una potencia alternativa sólo genera comparación si se confirma servicio equivalente y se aporta sustento. Las filas sin alternativa permanecen iguales. La comparación tarifaria mantiene demanda y reparto horario declarados y utiliza el periodo de la referencia CFE publicada. Los límites de ahorro monetario cruzan límites: mínimo = costo actual inferior menos costo alternativo superior; máximo = actual superior menos alternativo inferior. Un intervalo que incluye cero no garantiza ahorro.

La exportación de proyecto conserva equipos, croquis y expedientes. La recuperación valida el archivo y descarta los resultados históricos: debe analizarse otra vez con las fuentes cargadas. La ficha TXT resume zonas sin restricciones del filtro, requerimientos, contexto eléctrico, fuentes y verificaciones siguientes; no elige por sí sola un predio disponible ni certifica suministro.

## Proceso, etapas y comparación documentada — 31 octubre 2026

Necesidades incorpora proceso/producto, fuente, inicio, horario, continuidad, enfriamiento y hasta 20 etapas futuras. Demanda MW y dotación m³/día de cada etapa son **totales**, no incrementos acumulables. El tipo de proceso no genera consumos, ahorros ni pesos automáticamente. Los horarios describen operación; no reconstruyen un perfil eléctrico horario ni cambian la tarifa de referencia.

En el detalle territorial, «Suministro para este proyecto y sus etapas» identifica un predio declarado y registra, por servicio, capacidad explícita, punto, folio/condiciones, responsable, fecha, disponibilidad y vigencia. No toma kVA nominales del inventario, capacidad GD, distancias ni disponibilidad regional de acuíferos. Cada etapa calcula `margen = suministro documentado − necesidad total` conservando el signo. La operación inicial utiliza las necesidades principales del proyecto.

Una comparación necesita todos los campos, fechas reales y compatibles y valores no negativos. Documento futuro, vencido o sin vigencia para la etapa, cantidad desconocida o predio sin identificar dejan el resultado pendiente. Disponibilidad posterior a la etapa y margen negativo se señalan por separado. Cero explícito se conserva. Proceso, fuente, horario y etapas incompletos impiden presentar la revisión global como completa. Los campos son declaraciones del usuario, **no documentos autenticados ni dictamen**; no reservan capacidad, no acreditan las condiciones anotadas y no asignan suministro a todo el contorno. Los filtros y pendientes cartográficos originales siguen vigentes, incluso si el suministro de un predio se documenta.

La comparación de candidatos muestra la posición bajo pesos base y variaciones de ±20% **relativo de un solo peso positivo por escenario**, normalizando el total. Se incluyen todos los territorios con índice y sin exclusión del filtro, no sólo los cuatro seleccionados. Los faltantes conservan su peso y no aportan puntos; no se redistribuyen. El rango incluye empates; no es intervalo estadístico, probabilidad, análisis simultáneo de todos los pesos ni incertidumbre de las fuentes. Una posición robusta no establece factibilidad. Los escenarios con datos parciales deben interpretarse junto con cobertura y restricciones.

JSON conserva perfiles y evidencia, con compatibilidad para archivos anteriores. Al recuperar se descartan evaluaciones guardadas y se recalculan tras el análisis. TXT incluye perfil, etapas, revisión por suministro y sensibilidad. Próximos estudios sugeridos según continuidad/enfriamiento: calidad y respaldo, agua de enfriamiento/descarga, sombra/envolvente y posibles intercambios de agua/calor. **No se publica una capa térmica ni ahorro derivado del arbolado:** faltan imágenes actuales procesadas, geometría, mediciones y validación local.

El inventario ambiental opcional del predio registra área, unión de copas, temperatura superficial, fuente/método/hora, fecha y origen observado/derivado/modelado. `Cobertura = 100 × unión de copas recortada / área del predio`. Exige predio identificado, fuente, fecha no futura, origen explícito y confirmación de recorte sin doble conteo. Área nula, no positiva o cobertura superior al predio deja el resultado no disponible, sin recortar a 100%. Cero de cobertura explícito se conserva. La temperatura se guarda como contexto de la fecha capturada (no se declara actual); no representa temperatura del aire, confort ni energía. Estas cifras no alteran el índice territorial ni autentican el estudio, y se conservan en JSON/TXT. La comparación muestra cobertura y procedencia de los predios registrados, sin rellenar territorios sin estudio ni imponer una meta universal de vegetación.

Referencias adaptadas (no coeficientes trasplantados):

- [Navarro Navarro y López Torrero, 2026](https://www.scielo.org.mx/pdf/fn/v38/2594-0260-fn-v38-e2432.pdf): trazabilidad institucional, documentos y responsables; caso de parques urbanos, no prueba de consumo industrial.
- [Ortega Rosas et al., 2022](https://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1870-39252022000100120): inventario vegetal. No se importan sus porcentajes ni se convierten en ahorro eléctrico.
- [López González et al., 2021](https://www.scielo.org.mx/pdf/fn/v33/0187-7372-fn-v33-e2088.pdf): cobertura y temperatura superficial en Hermosillo; datos históricos, sin sustituir temperatura del aire ni demanda eléctrica.
- [UNIDO / World Bank / GIZ, 2021, Eco-Industrial Parks 2.0](https://www.unido.org/sites/default/files/files/2021-04/An%20international%20framework%20for%20eco-industrial%20parks%20v2.0.pdf): separación instalación/parque, gestión energética e hídrica y oportunidades de simbiosis.
- [Nuhu et al., 2021](https://www.cetjournal.it/cet/21/89/058.pdf): filtros, comparación multicriterio y sensibilidad. Se conserva el índice de IRVEN; no se implementa F-AHP ni se copian pesos o umbrales de Malasia.
- [Growth Lab, 2024, Powershoring en Hermosillo](https://growthlab.hks.harvard.edu/sites/projects.iq.harvard.edu/files/2024-10-glwp-243-green-growth-opportunities-for-hermosillo-powershoring.pdf): necesidades por proceso, continuidad y agua; no acredita disponibilidad de suministro actual.

Pruebas: `tests/industrial-operation.test.mjs` contrasta totales por etapa, margen negativo, fechas, documentos incompletos, ceros, importación, reversión del ranking, empates y faltantes. Son comprobaciones del método y software, no validación operacional ni jurídica.
