Skip to main content

wfi2mask

Detecção automática de água em imagens WFI (CBERS-4, CBERS-4A e Amazonia-1)

Automated water detection from WFI images of the Brazilian satellites CBERS-4, CBERS-4A and Amazonia-1.

O wfi2mask busca imagens no catálogo do INPE, converte para reflectância TOA e gera máscaras d'água vetoriais (shapefile) com 4 níveis de confiança, seguindo o algoritmo de Matiz (Hue) de Namikawa et al. (2016) aprimorado com filtros NDWI, HAND (MERIT Hydro) e brilho NIR.

Status: protótipo em desenvolvimento (v0.1.0), já testável.

Instalação Teste

pip install git+https://github.com/SEU_USUARIO/wfi2mask.git

Requisito: conta (e-mail) cadastrada no catálogo do INPE para o download das imagens.

Uso rápido

import wfi2mask

# 1) Buscar, baixar e converter para TOA
wfi2mask.get_toa(
    date="2025-07-01, 2025-09-30",          # data única ou intervalo
    bbox=[-46.65, -23.85, -46.45, -23.65],  # [lon_min, lat_min, lon_max, lat_max]
    product="amazonia1",                    # 'amazonia1' | 'cbers4a' | 'cbers4' | 'all'
    max_cloud=-1,                           # -1 desativa o filtro de nuvem
    user="seu_email@cadastrado_no_inpe.br",
    outdir="./wfi2mask_data",
)

# 2) Gerar a máscara d'água (shapefiles + plot de demonstração)
resultado = wfi2mask.get_water_mask(
    path="./wfi2mask_data/toa",
    bbox=[-46.65, -23.85, -46.45, -23.65],
    coarse=100,   # resolução de análise (m), compatível com o HAND (~90 m)
    hand=15,      # HAND máximo (m)
    ndwi=0.0,     # limiar NDWI
    nir=0.35,     # NIR TOA máximo (escala de reflectância [0, ~1])
)

Saídas de get_water_mask:

  • water_<cena>.shp — máscara por cena com as 4 classes de confiança (WATER, WATER95, WATER90, WATER80);
  • water_composite_majority.shp — composição temporal pela regra da maioria (>50 %), quando há 2+ cenas;
  • water_mask_overlay.png — plot de demonstração (cor verdadeira + máscara).

Dados HAND

O filtro topográfico usa tiles HAND de 5°×5° do MERIT Hydro (Yamazaki et al., 2019). Os tiles necessários para o bbox são baixados sob demanda e mantidos em cache local (~/.wfi2mask/hand). Veja docs/hand.md para hospedar/atualizar os tiles.

Algoritmo

Água = (Hue ∈ [16°, 35°) OU NDWI > 0) E (HAND ≤ 15 m) E (NIR < 0,35) E pixel válido

Validado em 16 áreas no Brasil com Sentinel-2 (F1 médio ≈ 0,95 fora de áreas úmidas rasas). Limitações conhecidas: Pantanal (F1 0,42) e água muito escura (compensada pelo NDWI). Detalhes na documentação.

Documentação

https://wfi2mask.readthedocs.io (pt-BR)

Referências

  • Namikawa, L.M.; Korting, T.; Castejon, E.F. (2016). Water Body Extraction From RapidEye Images. RBC 68:1097-1111.
  • Yamazaki, D. et al. (2019). MERIT Hydro: A high-resolution global hydrography map. Water Resources Research 55:5053-5073.
  • Pinto, C.T. et al. (2016). First in-flight radiometric calibration of MUX and WFI on-board CBERS-4. Remote Sensing 8(5):405.

Licença

MIT

Metadata

Release files for wfi2mask 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wfi2mask 0.1.0
File Size Uploaded
wfi2mask-0.1.0.tar.gz 28.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wfi2mask 0.1.0
File Interpreter ABI Platform
wfi2mask-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.6 kB

Release files / wfi2mask-0.1.0.tar.gz

Download URL wfi2mask-0.1.0.tar.gz
Size 28.7 kB
Tags Source
SHA-256 checksum
How to use checksums
966163aa7ee2e802beac0a4bba597da89ee69cf749d3d55d32d6aff4aa21cd38
BLAKE2b-256 checksum
How to use checksums
56e8aea8aebb377fe4e7e4f2b4016a18ff3b4309a4a24c7ac63252e9734b3677
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / wfi2mask-0.1.0-py3-none-any.whl

Download URL wfi2mask-0.1.0-py3-none-any.whl
Size 25.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
04117bee9421824cd614cc996e1d7f993ce733d1b8e0fd4c8e96d79392f04ace
BLAKE2b-256 checksum
How to use checksums
5678ed21e405e7ca5f04ec531e9571703c1bb0bd5212f6fe3bee02f1b464806f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release history Release notifications | RSS feed

0.3.0

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page