Skip to main content

Lightweight reader for raster files

Project description

georeader

Read data from rasters: very few dependencies, reads from cloud storage and lazy loading.

Install

# Install with minimal requirements (only rasterio, numpy as shapely)
pip install git+https://github.com/spaceml-org/georeader#egg=georeader

# Install with Google dependencies (to read objects from Google Cloud Storage or Google Earth Engine)
pip install git+https://github.com/spaceml-org/georeader#egg=georeader[google]

# Install with Planetary Computer requirements
pip install git+https://github.com/spaceml-org/georeader#egg=georeader[microsoftplanetary]

Getting started

# This snippet requires:
# pip install fsspec gcsfs google-cloud-storage
import os
os.environ["GS_NO_SIGN_REQUEST"] = "YES"

from georeader.readers import S2_SAFE_reader
from georeader import read

cords_read = (-104.394, 32.026) # long, lat
crs_cords = "EPSG:4326"
s2_safe_path = S2_SAFE_reader.s2_public_bucket_path("S2B_MSIL1C_20191008T173219_N0208_R055_T13SER_20191008T204555.SAFE")
s2obj = S2_SAFE_reader.s2loader(s2_safe_path, 
                                out_res=10, bands=["B04","B03","B02"])

# copy to local avoids http errors specially when not using a Google project.
# This will only copy the bands set up above B04, B03 and B02
s2obj = s2obj.cache_product_to_local_dir(".")

# See also read.read_from_bounds, read.read_from_polygon for different ways of croping an image
data = read.read_from_center_coords(s2obj,cords_read, shape=(2040, 4040),
                                    crs_center_coords=crs_cords)

data_memory = data.load() # this loads the data to memory

data_memory # GeoTensor object
>>  Transform: | 10.00, 0.00, 537020.00|
| 0.00,-10.00, 3553680.00|
| 0.00, 0.00, 1.00|
         Shape: (3, 2040, 4040)
         Resolution: (10.0, 10.0)
         Bounds: (537020.0, 3533280.0, 577420.0, 3553680.0)
         CRS: EPSG:32613
         fill_value_default: 0

In the .values attribute we have the plain numpy array that we can plot with show:

from rasterio.plot import show
show(data_memory.values/3500, transform=data_memory.transform)
awesome georeader

Saving the GeoTensor as a COG GeoTIFF:

from georeader.save import save_cog

# Supports writing in bucket location (e.g. gs://bucket-name/s2_crop.tif)
save_cog(data_memory, "s2_crop.tif", descriptions=s2obj.bands)

Tutorials

Sentinel-2:

Other:

Citation

If you find this code useful please cite:

@software{georeader,
  author = {Mateo-García, Gonzalo},
  month = {11},
  title = {{georeader}},
  url = {https://github.com/spaceml-org/georeader},
  version = {1.0.2},
  year = {2022}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

georeader-spaceml-1.0.5.tar.gz (127.2 kB view details)

Uploaded Source

Built Distribution

georeader_spaceml-1.0.5-py3-none-any.whl (131.2 kB view details)

Uploaded Python 3

File details

Details for the file georeader-spaceml-1.0.5.tar.gz.

File metadata

  • Download URL: georeader-spaceml-1.0.5.tar.gz
  • Upload date:
  • Size: 127.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for georeader-spaceml-1.0.5.tar.gz
Algorithm Hash digest
SHA256 011797d5d3af1ed41134c00693bfcbca765b62b4fe71eddf9a410643ad94a288
MD5 fd67b74303530f5098a2a0e0042cede0
BLAKE2b-256 7f3272eb60ca2d3421e24edd0f797a7bd7190fd36a6e967d84877d127d2c3094

See more details on using hashes here.

Provenance

File details

Details for the file georeader_spaceml-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for georeader_spaceml-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 95b8ab564066a7910c57353bb9b19d88a0f89fb8e0855fff7527f8ae56d88df1
MD5 ef707bcf0ae532ff5e7d0ad933632835
BLAKE2b-256 ad5581539f26334ed16cddf66e5954ed9c8b854a2487e254547461aad8175819

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page