geeViz.fsInsights.lcms_ee¶
Earth Engine access to the LCMS products.
The LCMS API serves 3,643 precomputed summary areas and nothing else —
bbox, geojson and geometry are rejected, and POST returns
403. So an arbitrary polygon has to be computed rather than requested,
and the same products are published as Earth Engine assets.
This module is the bridge. It is imported lazily by
geeViz.fsInsights.lcms.lcms_summary(), so the API-only path keeps
working on a machine with no Earth Engine credentials — which is the
normal case for the MCP tool and for anyone who just wants a county
summary.
Convenient alignment worth knowing: the EE band names are the same
strings as the API product names (Change, Land_Cover,
Land_Use), and the asset version tracks the API release (2025-11
on both). So a product name is portable across both backends without a
translation table.
For display, prefer geeViz’s built-in thematic handling:
Map.addLayer(lcms_ee_collection("Land_Cover").mosaic(),
{"autoViz": True}, "LCMS Land Cover")
The assets carry <Product>_class_names / _class_values /
_class_palette properties, which autoViz reads directly.
geeViz.fsInsights.lcms.lcms_vis_params() exists for the cases
autoViz cannot cover — charting API results, or building a legend
outside geeViz.
Module Attributes
Study areas per release, for the coverage question above. |
|
Thematic bands carried by the LCMS product releases. |
Functions
|
Asset id for a release. |
|
Class names, values, and palette straight off the asset. |
|
An |
- geeViz.fsInsights.lcms_ee.RELEASE_STUDY_AREAS = {'2022-8': ('CONUS', 'SEAK', 'PRUSVI'), '2023-9': ('CONUS', 'SEAK', 'HAWAII', 'PRUSVI'), '2024-10': ('CONUS', 'AK', 'HAWAII', 'PRUSVI'), '2025-11': ('CONUS', 'AK'), '2025-6': ('CONUS', 'AK')}¶
Study areas per release, for the coverage question above. Only the releases whose coverage differs from the current one are listed.
- geeViz.fsInsights.lcms_ee.PRODUCTS = ('Change', 'Land_Cover', 'Land_Use')¶
Thematic bands carried by the LCMS product releases. Everything else in those assets is a per-class raw probability or the QA bitmask, none of which belong in a class-area summary.
Note this is NOT every product the LCMS API publishes. Release
2025-6is a tree-canopy release carrying onlyNLCD_Percent_Tree_Canopy_Cover, which is continuous rather than thematic and lives in a different Earth Engine collection — it is served by the API path, not by this module.
- geeViz.fsInsights.lcms_ee.lcms_asset_id(release: str = '') str[source]¶
Asset id for a release. Defaults to the current one.
- geeViz.fsInsights.lcms_ee.lcms_ee_collection(product: str, release: str = '', study_area: str | None = None)[source]¶
An
ee.ImageCollectionof one LCMS product, one image per year.- Parameters:
product –
"Change","Land_Cover"or"Land_Use".release – Release version; defaults to current.
study_area – Restrict to one study area (e.g.
"CONUS","AK","PRUSVI"). Leave unset to keep all of them — they do not overlap, so a geometry naturally selects the right one and a reduction over the union is correct.
- Returns:
ee.ImageCollectionwhere each image has a single band named after the product and ayearproperty.
- geeViz.fsInsights.lcms_ee.lcms_class_properties(product: str, release: str = '') dict[source]¶
Class names, values, and palette straight off the asset.
A second source of truth for the class table, independent of the API. Useful when Earth Engine is reachable but the API is not, and as a cross-check that the two backends agree about what the pixel values mean — if they ever disagree, that is worth knowing loudly rather than discovering through a mislabeled map.