Lightweight reader for raster files
Project description
georeader
Read data from rasters: very few dependencies, reads from cloud storage and lazy loading.
Install
# From pip
pip install georeader-spaceml
# From GitHub
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)
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:
- Reading Sentinel-2 images from the public Google bucket
- Explore metadata of Sentinel-2 object
- Query Sentinel-2 images over a location and time span, mosaic and plot them
Other:
- Tutorial to read overlapping tiles from a GeoTIFF and a Sentinel-2 image
- Example of reading a Proba-V image overlapping with Sentinel-2 forcing same resolution
- Work with EMIT images
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
Release history Release notifications | RSS feed
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.7.tar.gz
(128.9 kB
view details)
Built Distribution
File details
Details for the file georeader-spaceml-1.0.7.tar.gz
.
File metadata
- Download URL: georeader-spaceml-1.0.7.tar.gz
- Upload date:
- Size: 128.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70ea3e089404486c1628585a2f88329fd5c9d97e93291d75602165fc4c7bf4ef |
|
MD5 | 9cee519108aa3deb8da3fccdc0bec4ae |
|
BLAKE2b-256 | c9201b9aff0538a70526c0d6f95378570a2d3f6d4b09b419ec7c445672b157b7 |
Provenance
File details
Details for the file georeader_spaceml-1.0.7-py3-none-any.whl
.
File metadata
- Download URL: georeader_spaceml-1.0.7-py3-none-any.whl
- Upload date:
- Size: 133.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a21ac8580f2590469e34ea6f5338eca91c95434741e8500cbc56f378fccdd256 |
|
MD5 | 1cd199b49c6cc8803c687696be73d54c |
|
BLAKE2b-256 | 7b3b1bc5470e8964ff328dd4bbef757e14dbe6758b15c8acdaf3021db058277c |