geeViz.outputLib.reports

Generate reports from Earth Engine data with LLM-powered narratives.

geeViz.outputLib.reports provides a Report class that combines chartingLib.summarize_and_chart() results, thumbLib thumbnails, and Gemini-generated narratives into styled HTML or Markdown reports.

All Earth Engine data requests (charts, tables, thumbnails, GIFs) and LLM narratives for every section are executed in parallel using concurrent.futures. Only the executive summary waits for all sections to finish before it is generated.

Layouts

  • "report" (default) — traditional multi-page portrait layout, sections flow vertically.

  • "poster" — landscape multi-column layout, designed for large-format printing or screen display. Sections tile into a responsive grid.

Themes

Two built-in themes match the geeView color palette:

  • "dark" (default) — deep brown/black background with warm gray text

  • "light" — white background with deep brown text

Example:

import geeViz.geeView as gv
from geeViz.outputLib import reports as rl

ee = gv.ee
report = rl.Report(
    title="Wasatch Front Assessment",
    theme="dark",
    layout="poster",       # landscape multi-column
)
report.header_text = "An analysis of land cover and fire trends."

report.add_section(
    ee_obj=lcms.select(['Land_Cover']),
    geometry=counties,
    title="LCMS Land Cover",
    stacked=True,
    scale=60,
)

# PDF with static chart images
report.generate(format="pdf", output_path="report.pdf")

# HTML (interactive charts)
report.generate(format="html", output_path="report.html")

Classes

Report([title, model, api_key, prompt, ...])

Build and generate reports from Earth Engine data.