GeoTessera
A foundation model that can process time-series satellite imagery for applications such as land classification and canopy height prediction.
https://github.com/ucam-eo/geotessera
Category: Natural Resources
Sub Category: Soil and Land
Keywords
geospatial-data python-package
Keywords from Contributors
standards
Last synced: about 10 hours ago
JSON representation
Repository metadata
Python library for the Tessera embeddings
- Host: GitHub
- URL: https://github.com/ucam-eo/geotessera
- Owner: ucam-eo
- License: mit
- Created: 2025-07-02T10:24:37.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-04-05T11:10:41.000Z (13 days ago)
- Last Synced: 2026-04-05T13:24:22.085Z (13 days ago)
- Topics: geospatial-data, python-package
- Language: Python
- Size: 67.4 MB
- Stars: 283
- Watchers: 4
- Forks: 28
- Open Issues: 22
- Releases: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE.md
README.md
GeoTessera
Python library for accessing and working with Tessera geospatial foundation model embeddings.
Overview
GeoTessera provides access to geospatial embeddings from the Tessera
foundation model, which processes
Sentinel-1 and Sentinel-2 satellite imagery to generate 128-channel
representation maps at 10m resolution. These embeddings compress a full year of
temporal-spectral features into dense representations optimized for downstream
geospatial analysis tasks. Read more details about the model.

Request missing embeddings
This repo provides precomputed embeddings for multiple years and regions.
Embeddings are generated by randomly sampling tiles within each region to ensure broad spatial coverage.
If some years (2017โ2025) / areas are still missing for your use case, please submit an Embedding Request:
- ๐ Open an Embedding Request
- Please include: your organization, intended use, ROI as a bounding box with four points (lon,lat, 4 decimals), and the year(s).
After you submit the request, we will prioritize your ROI and notify you via a comment in the issue once the embeddings are ready.
Important Notice โ ๏ธ
On 20th August 2025, we updated the data processing pipeline of GeoTessera to resolve the issue of tiling artifacts, as shown below. We have retained the embeddings generated before August 20, as they remain effective for use in small-scale areas. After the 2024 embedding generation is completed, we will reprocess the tiles affected by tiling artifacts. If you observe such artifacts during use and they significantly impact performance, please raise the issue here, and we will prioritize reprocessing your request.

Please note that if the artifacts you observe are slanted, this is not a bug in the pipeline but rather a result of the Sentinel-1/2 satellite trajectories. Currently, Tessera cannot completely eliminate such artifacts, as they reflect the inherent characteristics of the raw data. However, we have observed that they have minimal impact on downstream tasks.
Table of Contents
- Installation
- Architecture
- Quick Start
- Python API
- Cloud-Native Zarr Access
- CLI Reference
- Complete Workflows
- Registry System
- Data Organization
- Contributing
Installation
Requires Python 3.12 or later.
pip install geotessera
For development:
git clone https://github.com/ucam-eo/geotessera
cd geotessera
pip install -e .
Architecture
Core Concepts
GeoTessera is built around a simple two-step workflow:
- Retrieve embeddings: Fetch raw numpy arrays for a geographic bounding box
- Export to desired format: Save as raw numpy arrays or convert to georeferenced GeoTIFF files
Coordinate System and Tile Grid
The Tessera embeddings use a 0.1-degree grid system:
- Tile size: Each tile covers 0.1ยฐ ร 0.1ยฐ (approximately 11km ร 11km at the equator)
- Tile naming: Tiles are named by their center coordinates (e.g.,
grid_0.15_52.05) - Tile bounds: A tile at center (lon, lat) covers:
- Longitude: [lon - 0.05ยฐ, lon + 0.05ยฐ]
- Latitude: [lat - 0.05ยฐ, lat + 0.05ยฐ]
- Resolution: 10m per pixel (variable number of pixels per tile depending on latitude)
File Structure and Downloads
When you request embeddings, GeoTessera downloads files directly via HTTP to temporary locations:
Embedding Files (via fetch_embedding)
-
Quantized embeddings (
grid_X.XX_Y.YY.npy):- Shape:
(height, width, 128) - Data type: int8 (quantized for storage efficiency)
- Contains the compressed embedding values
- Shape:
-
Scale files (
grid_X.XX_Y.YY_scales.npy):- Shape:
(height, width)or(height, width, 128) - Data type: float32
- Contains scale factors for dequantization
- Shape:
-
Dequantization:
final_embedding = quantized_embedding * scales -
Temporary Storage: Files are downloaded to temp locations and automatically cleaned up after processing
Landmask Files (for GeoTIFF export)
When exporting to GeoTIFF, additional landmask files are fetched:
- Landmask tiles (
grid_X.XX_Y.YY.tiff):- Provide UTM projection information
- Define precise geospatial transforms
- Contain land/water masks
- Also downloaded to temp locations and cleaned up after use
Data Flow
User Request (lat/lon bbox)
โ
Parquet Registry Lookup (find available tiles from registry.parquet)
โ
Direct HTTP Downloads to Temp Files
โโโ embedding.npy (quantized) โ temp file
โโโ embedding_scales.npy โ temp file
โ
Dequantization (multiply arrays)
โ
Automatic Cleanup (delete temp files)
โ
Output Format
โโโ NumPy arrays โ Direct analysis
โโโ GeoTIFF โ GIS integration
Storage Note: Only the Parquet registry (~few MB) is cached locally. All embedding data is downloaded on-demand to temporary files and immediately cleaned up, resulting in zero persistent storage overhead for tile data.
Quick Start
Check Available Data
Before downloading, check what data is available:
# Generate a coverage map showing all available tiles
geotessera coverage --output coverage_map.png
# Generate a coverage map for the UK
geotessera coverage --country uk
# View coverage for a specific year
geotessera coverage --year 2024 --output coverage_2024.png
# Customize the visualization
geotessera coverage --year 2024 --tile-color blue --tile-alpha 0.3
Download Embeddings
Download embeddings as either numpy arrays or GeoTIFF files:
# Download as GeoTIFF (default, with georeferencing)
geotessera download \
--bbox "-0.2,51.4,0.1,51.6" \
--year 2024 \
--output ./london_tiffs
# Download as raw numpy arrays (with metadata JSON)
geotessera download \
--bbox "-0.2,51.4,0.1,51.6" \
--format npy \
--year 2024 \
--output ./london_arrays
# Download using a GeoJSON/Shapefile region
geotessera download \
--region-file cambridge.geojson \
--format tiff \
--year 2024 \
--output ./cambridge_tiles
# Download specific bands only
geotessera download \
--bbox "-0.2,51.4,0.1,51.6" \
--bands "0,1,2" \
--year 2024 \
--output ./london_rgb
Create Visualizations
Generate PCA visualizations and web maps from downloaded GeoTIFFs:
# Create a PCA mosaic from downloaded tiles
geotessera visualize ./london_tiffs pca_mosaic.tif
# Use histogram equalization for maximum contrast
geotessera visualize ./london_tiffs pca_balanced.tif --balance histogram
# Create web tiles and serve interactively
geotessera webmap pca_mosaic.tif --serve
# Serve existing web visualizations locally
geotessera serve ./london_web --open
Python API
Core Methods
The library provides two main methods for retrieving embeddings:
from geotessera import GeoTessera
# Initialize the client
gt = GeoTessera()
# Method 1: Fetch a single tile
embedding, crs, transform = gt.fetch_embedding(lon=0.15, lat=52.05, year=2024)
print(f"Shape: {embedding.shape}") # e.g., (1200, 1200, 128)
print(f"CRS: {crs}") # Coordinate reference system from landmask
# Method 2: Fetch all tiles in a bounding box
bbox = (-0.2, 51.4, 0.1, 51.6) # (min_lon, min_lat, max_lon, max_lat)
tiles_to_fetch = gt.registry.load_blocks_for_region(bounds=bbox, year=2024)
embeddings = gt.fetch_embeddings(tiles_to_fetch)
for year, tile_lon, tile_lat, embedding_array, crs, transform in embeddings:
print(f"Tile ({tile_lat}, {tile_lon}): {embedding_array.shape}")
Export Formats
Export as GeoTIFF
# Export embeddings for a region as individual GeoTIFF files
# Step 1: Get the tiles for the region
bbox = (-0.2, 51.4, 0.1, 51.6)
tiles_to_fetch = gt.registry.load_blocks_for_region(bounds=bbox, year=2024)
# Step 2: Export those tiles as GeoTIFFs
files = gt.export_embedding_geotiffs(
tiles_to_fetch=tiles_to_fetch,
output_dir="./output",
bands=None, # Export all 128 bands (default)
compress="lzw" # Compression method
)
print(f"Created {len(files)} GeoTIFF files")
# Export specific bands only (e.g., first 3 for RGB visualization)
files = gt.export_embedding_geotiffs(
tiles_to_fetch=tiles_to_fetch,
output_dir="./rgb_output",
bands=[0, 1, 2] # Only export first 3 bands
)
Work with NumPy Arrays
# Fetch and process embeddings directly
tiles_to_fetch = gt.registry.load_blocks_for_region(bounds=bbox, year=2024)
embeddings = gt.fetch_embeddings(tiles_to_fetch)
for year, tile_lon, tile_lat, embedding, crs, transform in embeddings:
# Compute statistics
mean_values = np.mean(embedding, axis=(0, 1)) # Mean per channel
std_values = np.std(embedding, axis=(0, 1)) # Std per channel
# Extract specific pixels
center_pixel = embedding[embedding.shape[0]//2, embedding.shape[1]//2, :]
# Apply custom processing
processed = your_analysis_function(embedding)
Visualization Functions
from geotessera.visualization import (
create_rgb_mosaic,
visualize_global_coverage
)
from geotessera.web import (
create_coverage_summary_map,
geotiff_to_web_tiles
)
# Create an RGB mosaic from multiple GeoTIFF files
create_rgb_mosaic(
geotiff_paths=["tile1.tif", "tile2.tif"],
output_path="mosaic.tif",
bands=(0, 1, 2) # RGB bands
)
# Generate web tiles for interactive maps
geotiff_to_web_tiles(
geotiff_path="mosaic.tif",
output_dir="./web_tiles",
zoom_levels=(8, 15)
)
# Create a global coverage visualization
visualize_global_coverage(
tessera_client=gt,
output_path="global_coverage.png",
year=2024, # Or None for all years
width_pixels=2000,
tile_color="red",
tile_alpha=0.6
)
Cloud-Native Zarr Access
For interactive or large-scale analysis without downloading files, use the Zarr store.
This streams data directly from the cloud:
from geotessera.store import GeoTesseraZarr
gt = GeoTesseraZarr()
print(gt.years) # [2017, 2018, ..., 2025]
# Sample embeddings at specific points (no download needed)
X = gt.sample_points([(-2.97, 53.44), (0.15, 52.05)], year=2025)
print(f"Shape: {X.shape}") # (2, 128)
# Read a full region as a mosaic
mosaic, transform, crs = gt.read_region(
(-3.0, 53.4, -2.9, 53.5), year=2025,
)
print(f"Mosaic shape: {mosaic.shape}")
# Work with individual UTM zones via xarray
ds = gt.open_zone(lon=0.15)
print(ds)
The Zarr store implements the geoemb: convention for geospatial embedding data
and automatically routes queries to the correct UTM zone.
CLI Reference
download
Download embeddings for a region in your preferred format:
geotessera download [OPTIONS]
Options:
-o, --output PATH Output directory [required]
--bbox TEXT Bounding box: 'lon,lat' (single tile) or 'min_lon,min_lat,max_lon,max_lat'
--tile TEXT Single tile by any point within it: 'lon,lat'
--region-file PATH GeoJSON/Shapefile to define region
--country TEXT Country name (e.g., 'United Kingdom', 'UK', 'GB')
-f, --format TEXT Output format: 'tiff' or 'npy' (default: tiff)
--year INT Year of embeddings (default: 2024)
--bands TEXT Comma-separated band indices (default: all 128)
--compress TEXT Compression for TIFF format (default: lzw)
--dry-run Calculate total download size without downloading
--skip-hash Skip SHA256 hash verification of downloaded files
--list-files List all created files with details
-v, --verbose Verbose output
Resume behaviour: Both TIFF and NPY downloads automatically skip files that already exist on disk, so interrupted downloads can be resumed by re-running the same command.
Single tile examples:
# Download a single tile containing a specific point
geotessera download --tile "0.17,52.23" --year 2024 -o ./single_tile
# Same result using --bbox with 2 coordinates
geotessera download --bbox "0.17,52.23" --year 2024 -o ./single_tile
Output formats:
- tiff: Georeferenced GeoTIFF files with UTM projection
- npy: Raw numpy arrays with metadata.json file
visualize
Create PCA visualization from multiband GeoTIFF or NPY format embeddings:
geotessera visualize INPUT_PATH OUTPUT_FILE [OPTIONS]
Options:
--n-components INT Number of PCA components (default: 3)
--crs TEXT Target CRS for reprojection (default: EPSG:3857)
--balance TEXT RGB balance method: histogram, percentile, or adaptive
--percentile-low FLOAT Lower percentile for percentile balance (default: 2.0)
--percentile-high FLOAT Upper percentile for percentile balance (default: 98.0)
webmap
Create web tiles and interactive viewer from a PCA mosaic:
geotessera webmap RGB_MOSAIC [OPTIONS]
Options:
-o, --output PATH Output directory
--min-zoom INT Min zoom for web tiles (default: 8)
--max-zoom INT Max zoom for web tiles (default: 15)
--serve/--no-serve Start web server immediately
-p, --port INT Port for web server (default: 8000)
--region-file PATH GeoJSON/Shapefile boundary to overlay
--force/--no-force Force regeneration of tiles
coverage
Generate a world map showing data availability:
geotessera coverage [OPTIONS]
Options:
-o, --output PATH Output PNG file (default: tessera_coverage.png)
--year INT Specific year to visualize
--bbox TEXT Bounding box: 'lon,lat' (single tile) or 'min_lon,min_lat,max_lon,max_lat'
--tile TEXT Single tile by any point within it: 'lon,lat'
--region-file PATH GeoJSON/Shapefile to focus on specific region
--country TEXT Country name to focus on (e.g., 'United Kingdom')
--tile-color TEXT Color for tiles (default: red)
--tile-alpha FLOAT Transparency 0-1 (default: 0.6)
--tile-size FLOAT Size multiplier (default: 1.0)
--width INT Output image width in pixels (default: 2000)
--no-countries Don't show country boundaries
serve
Serve web visualizations locally:
geotessera serve DIRECTORY [OPTIONS]
Options:
-p, --port INT Port number (default: 8000)
--open/--no-open Auto-open browser (default: open)
--html TEXT Specific HTML file to serve
info
Display information about GeoTIFF files or the library:
geotessera info [OPTIONS]
Options:
--tiles PATH Analyze tile files/directory (GeoTIFF or NPY format)
--dataset-version TEXT Tessera dataset version
-v, --verbose Verbose output
Registry System
Overview
GeoTessera uses a Parquet-based registry system to efficiently manage and access the large Tessera dataset:
- Single Parquet file: All tile metadata stored in one efficient
registry.parquetfile - Fast queries: Uses pandas DataFrames for efficient spatial and temporal filtering
- Block-based organization: Internal 5ร5 degree geographic blocks for efficient queries
- Minimal storage: Registry file is ~few MB and cached locally
- Integrity checking: SHA256 checksums ensure data integrity during downloads
- Embedding files verified using
hashcolumn - Scales files verified using
scales_hashcolumn - Landmask files verified using landmasks registry
hashcolumn - Enabled by default for data integrity and security
- Can be disabled with
verify_hashes=False,--skip-hashCLI flag, orGEOTESSERA_SKIP_HASH=1environment variable
- Embedding files verified using
Registry Sources
The registry can be loaded from multiple sources (in priority order):
- Local file (via
--registry-pathorregistry_pathparameter) - Local directory (via
--registry-dirorregistry_dirparameter, looks forregistry.parquet) - Remote URL (via
--registry-urlorregistry_urlparameter) - Default remote (from
https://dl2.geotessera.org/{version}/registry.parquet)
# Use local registry file
gt = GeoTessera(registry_path="/path/to/registry.parquet")
# Use local registry directory
gt = GeoTessera(registry_dir="/path/to/registry-dir")
# Use custom remote registry
gt = GeoTessera(registry_url="https://example.com/registry.parquet")
# Use default remote registry (downloads and caches automatically)
gt = GeoTessera() # Default behavior
Registry Structure
The Parquet registry contains columns for:
- Coordinates:
lon,lat(tile center coordinates) - Year:
year(data year, 2017-2025) - Hash:
hash(SHA256 file integrity checksum),scales_hash(for scale files) - Size:
file_size(file size in bytes for download planning)
# Example registry query
import pandas as pd
registry = pd.read_parquet("registry.parquet")
print(registry.head())
# lon lat year hash ...
# 0.15 52.05 2024 abc123...
How Registry Loading Works
- Load Parquet registry โ Download and cache registry file (if not local)
- Request tiles for bbox โ Query DataFrame for tiles in region
- Filter by year โ Select tiles matching requested year
- Find available tiles โ Return list of matching tiles
- Direct HTTP download โ Fetch tiles on-demand to temp files with hash verification
- Automatic cleanup โ Delete temp files after processing
Data Organization
Tessera Data Structure
Remote Server (https://dl2.geotessera.org)
โโโ v1/ # Dataset version
โ โโโ registry.parquet # Parquet registry with all metadata
โ โโโ 2024/ # Year
โ โ โโโ grid_0.15_52.05/ # Tile (named by center coords)
โ โ โ โโโ grid_0.15_52.05.npy # Quantized embeddings
โ โ โ โโโ grid_0.15_52.05_scales.npy # Scale factors
โ โ โโโ ...
โ โโโ landmasks/
โ โโโ grid_0.15_52.05.tiff # Landmask with projection info
โ โโโ ...
Local Cache Structure
~/.cache/geotessera/ # Default cache location
โโโ registry.parquet # Cached Parquet registry (~few MB)
# Note: Embedding and landmask tiles are NOT cached persistently.
# They are downloaded to temporary files and immediately cleaned up after use.
Coordinate Reference Systems
- Embeddings: Stored in simple arrays, referenced by center coordinates
- GeoTIFF exports: Use UTM projection from corresponding landmask tiles
- Web visualizations: Reprojected to Web Mercator (EPSG:3857)
Cache Configuration
GeoTessera caches only the Parquet registry file (~few MB). Embedding and landmask tiles are downloaded to temporary files and immediately cleaned up after use.
Python API
from geotessera import GeoTessera
# Use custom cache directory for registry
gt = GeoTessera(cache_dir="/path/to/cache")
# Use default cache location (recommended)
gt = GeoTessera()
CLI
# Specify custom cache directory
geotessera download --cache-dir /path/to/cache ...
# Use default cache location
geotessera download ...
Default Cache Locations
When cache_dir is not specified, the registry is cached in platform-appropriate locations:
- Linux/macOS:
$XDG_CACHE_HOME/geotesseraor~/.cache/geotessera - Windows:
%LOCALAPPDATA%/geotessera
Hash Verification
GeoTessera verifies SHA256 checksums for all downloaded files (embeddings, scales, and landmasks) by default to ensure data integrity. You can disable this verification if needed:
Python API
from geotessera import GeoTessera
# Disable hash verification via parameter
gt = GeoTessera(verify_hashes=False)
# Or use environment variable
import os
os.environ['GEOTESSERA_SKIP_HASH'] = '1'
gt = GeoTessera()
CLI
# Disable hash verification with flag
geotessera download --bbox "0,52,0.2,52.2" --year 2024 -o ./data --skip-hash
# Or use environment variable
GEOTESSERA_SKIP_HASH=1 geotessera download --bbox "0,52,0.2,52.2" --year 2024 -o ./data
Note: Hash verification is enabled by default for security. Only disable it in trusted environments or for testing purposes.
Contributing
Contributions are welcome! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
Citation
If you use Tessera in your research, please cite the arXiv paper:
@misc{feng2025tesseratemporalembeddingssurface,
title={TESSERA: Temporal Embeddings of Surface Spectra for Earth Representation and Analysis},
author={Zhengpeng Feng and Clement Atzberger and Sadiq Jaffer and Jovana Knezevic and Silja Sormunen and Robin Young and Madeline C Lisaius and Markus Immitzer and David A. Coomes and Anil Madhavapeddy and Andrew Blake and Srinivasan Keshav},
year={2025},
eprint={2506.20380},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2506.20380},
}
Links
- Tessera Foundation Model
- Tessera Interactive Notebook
- Tessera Examples
- Documentation
- PyPI Package
- Issue Tracker
Star History
Owner metadata
- Name: Cambridge Centre for Earth Observation
- Login: ucam-eo
- Email:
- Kind: organization
- Description: Cambridge University and partner organisations are conducting research on the remote sensing of environmental change
- Website: https://eo.conservation.cam.ac.uk
- Location: United Kingdom
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/217043827?v=4
- Repositories: 1
- Last ynced at: 2025-06-27T11:47:06.801Z
- Profile URL: https://github.com/ucam-eo
GitHub Events
Total
- Member event: 1
- Pull request event: 18
- Fork event: 12
- Issues event: 104
- Watch event: 96
- Issue comment event: 128
- Push event: 113
- Pull request review event: 4
- Pull request review comment event: 5
- Create event: 10
Last Year
- Member event: 1
- Pull request event: 18
- Fork event: 12
- Issues event: 104
- Watch event: 96
- Issue comment event: 128
- Push event: 113
- Pull request review event: 4
- Pull request review comment event: 5
- Create event: 10
Committers metadata
Last synced: 13 days ago
Total Commits: 312
Total Committers: 14
Avg Commits per committer: 22.286
Development Distribution Score (DDS): 0.208
Commits in past year: 312
Committers in past year: 14
Avg Commits per committer in past year: 22.286
Development Distribution Score (DDS) in past year: 0.208
| Name | Commits | |
|---|---|---|
| Anil Madhavapeddy | a****l@r****g | 247 |
| copilot-swe-agent[bot] | 1****t | 15 |
| frankfeng | f****g@d****e | 14 |
| Frank Feng | 6****3 | 9 |
| Robin Young | 5****g | 7 |
| Janne Mรคyrรค | 2****o | 4 |
| maawoo | m****a@u****e | 3 |
| Sadiq Jaffer | s****q@t****m | 3 |
| Srinivasan Keshav | 6****8 | 2 |
| Olli Niemitalo (HAMK) | O****o@h****i | 2 |
| E-Ping Rau | e****s@g****m | 2 |
| Nicolas Karasiak | n****k@e****m | 2 |
| GitHub Actions Bot | a****s@g****m | 1 |
| David Allsopp | d****p@m****m | 1 |
Committer domains:
- metastack.com: 1
- github.com: 1
- earthdaily.com: 1
- hamk.fi: 1
- toao.com: 1
- uni-jena.de: 1
- recoil.org: 1
Issue and Pull Request metadata
Last synced: 2 months ago
Total issues: 51
Total pull requests: 9
Average time to close issues: 5 days
Average time to close pull requests: 4 days
Total issue authors: 45
Total pull request authors: 6
Average comments per issue: 1.69
Average comments per pull request: 0.67
Merged pull request: 5
Bot issues: 0
Bot pull requests: 0
Past year issues: 51
Past year pull requests: 9
Past year average time to close issues: 5 days
Past year average time to close pull requests: 4 days
Past year issue authors: 45
Past year pull request authors: 6
Past year average comments per issue: 1.69
Past year average comments per pull request: 0.67
Past year merged pull request: 5
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- epingchris (3)
- JohnKilbride (2)
- barbarametzler (2)
- ratsakatika (2)
- kt-sa7716 (2)
- rbnyng (1)
- rymanmaps (1)
- DalelanW (1)
- sampathyetiraj-cpu (1)
- CBonannella (1)
- Dhahi-AL-Shammari (1)
- JBehanRio (1)
- jfprieur (1)
- RossDF (1)
- Rudigithub12345 (1)
Top Pull Request Authors
- avsm (4)
- sadiqj (1)
- epingchris (1)
- nkarasiak (1)
- olli4 (1)
- rbnyng (1)
Top Issue Labels
- embedding-request (37)
- enhancement (2)
- question (1)
- bug (1)
Top Pull Request Labels
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 2,177 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 15
- Total maintainers: 2
pypi.org: geotessera
Python library interface to the Tessera geofoundation model embeddings
- Homepage: https://github.com/ucam-eo/geotessera
- Documentation: https://geotessera.readthedocs.io
- Licenses: MIT License Copyright 2025-2026 Anil Madhavapeddy <anil@recoil.org> Copyright 2025-2026 Frank Feng Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Latest release: 0.8.0 (published 13 days ago)
- Last Synced: 2026-04-05T13:01:43.365Z (13 days ago)
- Versions: 15
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 2,177 Last month
-
Rankings:
- Dependent packages count: 8.836%
- Average: 29.312%
- Dependent repos count: 49.788%
- Maintainers (2)
Dependencies
- matplotlib *
- numpy *
- pooch *
- tqdm >=4.67.1
- actions/checkout v4 composite
- astral-sh/setup-uv v5 composite
- stefanzweifel/git-auto-commit-action v5 composite
- affine 2.4.0
- alabaster 1.0.0
- attrs 25.3.0
- babel 2.17.0
- certifi 2025.6.15
- charset-normalizer 3.4.2
- click 8.2.1
- click-plugins 1.1.1.2
- cligj 0.7.2
- colorama 0.4.6
- contourpy 1.3.2
- cycler 0.12.1
- docutils 0.21.2
- fonttools 4.58.5
- geopandas 1.1.1
- geotessera 0.2.0
- idna 3.10
- imagesize 1.4.1
- jinja2 3.1.6
- kiwisolver 1.4.8
- markdown-it-py 3.0.0
- markupsafe 3.0.2
- matplotlib 3.10.3
- mdurl 0.1.2
- numpy 2.3.1
- packaging 25.0
- pandas 2.3.0
- pillow 11.3.0
- platformdirs 4.3.8
- pooch 1.8.2
- pygments 2.19.2
- pyogrio 0.11.0
- pyparsing 3.2.3
- pyproj 3.7.1
- python-dateutil 2.9.0.post0
- pytz 2025.2
- rasterio 1.4.3
- requests 2.32.4
- rich 14.0.0
- roman-numerals-py 3.1.0
- shapely 2.1.1
- six 1.17.0
- snowballstemmer 3.0.1
- sphinx 8.2.3
- sphinxcontrib-applehelp 2.0.0
- sphinxcontrib-devhelp 2.0.0
- sphinxcontrib-htmlhelp 2.1.0
- sphinxcontrib-jsmath 1.0.1
- sphinxcontrib-qthelp 2.0.0
- sphinxcontrib-serializinghtml 2.0.0
- tqdm 4.67.1
- tzdata 2025.2
- urllib3 2.5.0
Score: 16.04599044116729