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 = {0.0.1},
  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.0.tar.gz (78.2 kB view details)

Uploaded Source

Built Distribution

georeader_spaceml-1.0.0-py3-none-any.whl (83.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: georeader-spaceml-1.0.0.tar.gz
  • Upload date:
  • Size: 78.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.0.tar.gz
Algorithm Hash digest
SHA256 c9556417bb0238b18144b0d52284e777169561de94e6760cd0ce26aca8c04649
MD5 0f787da871c4a1ba9d59af3bb86f3327
BLAKE2b-256 fd067a3d17f070dbebda4a27657c69078609344d2a67fac3ddbaf5265dcd79c4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for georeader_spaceml-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d1cd6f7d1129162a776a72f3676205711d7327c2c7f14f61aae157ae8a11989c
MD5 27adc34691e05666671e7c0e2ff86c59
BLAKE2b-256 820745179363bb24a4669d52c958673dd8d05c8a1339b23889ff4b2899e76667

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