Skip to main content

Managed Sentinel-2 and Landsat8 tile

Project description

🛰️ EOTile

Version Python

EOTile is a tile grid management tool that provide quick and easy methods to grab tile ids or information about its footprint. There are four grid systems currently supported :

  • The one used by Landsat 8
  • The one used by Sentinel 2
  • The standard for DEM tiles
  • The specific one used by many SRTM providers gathering 5x5 tiles

⏬ Installation

Install the package using pip:

pip install eotile

🔲 Usage

📟 Through the CLI

eotile [input] [output]

You can input these elements : a file, a tile id, a location, a wkt polygon, a bbox

To options (Optional):

  • -to_file FILE_PATH Write tiles to a geography file
  • -to_wkt Output the geometry of matching tiles with wkt format on standard output
  • -to_bbox Output the bounding box of matching tiles on standard output
  • -to_tile_id Output the id(s) of matching tiles on standard output
  • -to_location Output the location of the centroid of matching tiles on standard output

Tiles selection :

  • -no_l8 output S2 tiles and not the L8 ones
  • -no_s2 output L8 tiles and not the S2 ones
  • -s2_overlap Use S2 tiles with overlap
  • -dem Use elevation tiles as well
  • -srtm5x5 Use specific 5x5 SRTM tiles as well
Other options :
  • -epsg Specify the epsg of the input if not WGS84

  • -logger_file LOGGER_FILE_PATH Redirect information from standard output to a file

  • -location_type {city, county, state, country} If needed, specify the location type that is requested

  • -threshold THRESHOLD For large polygons at high resolution, you might want to simplify them using a threshold (0 to 1)

  • -min_overlap MIN_OVERLAP Minimum percentage of overlap to consider a tile (0 to 1)

🐍 Through the python module

Getting Started :

# Import the module
from eotile import eotile_module 

# Create tile lists
[S2_Tiles, L8_Tiles, DEM_Tiles, SRTM5x5_Tiles] = eotile_module.main("Spain", no_s2=True) 
# Replace Spain with whatever string you might need (a file, a tile id, a location, a wkt polygon, a bbox)

# Returned elements are GeoPandas Dataframes :
print(S2_Tiles.id)

# Iter over the Dataframe :
for tile in L8_Tiles.iterrows():
    print(tile[1].geometry.wkt)

You can also use the advanced quicksearch

# Import the module
from eotile.eotile_module import quick_search 

# Create the GeoPandas DataFrame of L8 Tiles corresponding to this S2 Tile id 
gdf = quick_search("31TCJ", "tile_id", "L8")
>>     id                                           geometry
0  198029  POLYGON ((0.84682 44.02364, 0.84638 44.02370, ...
1  199029  POLYGON ((-0.69823 44.02364, -0.69866 44.02370...
2  199030  POLYGON ((-0.86579 42.55300, -1.13296 42.59191...
3  198030  POLYGON ((0.67927 42.55300, 0.41210 42.59191, ...

Note: quick_search uses OGR for a quicker result. This requires a proper installation of GDAL components

🔖 Examples

  • Using a location
eotile "Metropolitan France" -threshold 1 -to_tile_id
  • Using a BBOX
eotile "0.49593622377, 43.326246335, 1.7661878622, 44.246370915" -no_l8 -logger_file test.log

(This line will produce an output under the test.log file)

  • Using a wkt
eotile 'POLYGON ((0.8468214953196805 44.02363566574142, 0.84638 44.0237, 0.8590044453705752 44.06127355906579, 0.8712896362539795 44.09783741052559, 1.325549447552162 45.44983010010615, 1.338016257992888 45.48693449754356, 1.35047 45.524, 1.350948946138455 45.52393017672913, 3.65866 45.1875, 3.644501621308357 45.14977803391441, 3.111537654412643 43.72980975068511, 3.09866 43.6955, 0.8468214953196805 44.02363566574142))' -to_location -no_s2
  • Using S2 tile ids
eotile "31TCJ, 31TCE" -to_file data/TLS_tiles.shp
  • Using a file
eotile tests/test_data/illinois.shp -no_l8 -vvv

👁️‍🗨️ Data sources & Licenses

  • SRTM 5x5
Vector grid of Specific SRTM 5x5 degree tiles
See issue #39 to download 
  • DEM

See DEM_Union_source

🆘 Help and Troubleshoot

See https://www.gaia-gis.it/fossil/libspatialite/tktview/760ef1affb822806191393ac3f208fc9d8647758

  • Note that the number of Tiles of S2 without overlap and with overlap is not the same. The difference apparently lies in the Geodesic line break north and south corners.
    • S2 without overlap: 56686 Tiles
    • S2 with ouverlap: 56984 Tiles

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

eotile-0.2.8.tar.gz (15.9 MB view details)

Uploaded Source

Built Distribution

eotile-0.2.8-py3-none-any.whl (16.0 MB view details)

Uploaded Python 3

File details

Details for the file eotile-0.2.8.tar.gz.

File metadata

  • Download URL: eotile-0.2.8.tar.gz
  • Upload date:
  • Size: 15.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for eotile-0.2.8.tar.gz
Algorithm Hash digest
SHA256 a34721bda769c042974932252bbc65891979dcda8f1ff69dd06a806d0024f074
MD5 ecd13c1b6585a57384cd588e4bfe649a
BLAKE2b-256 20ddc1f20f6873ad4752164dd5a6a3966b93f030d5969c6937ffde8f81f38a76

See more details on using hashes here.

File details

Details for the file eotile-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: eotile-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 16.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for eotile-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1e14b886e1149cbe4589871db61693aa7b580f767ac95fbe9d820a099525226a
MD5 7d18ee3071c9002ee52e7e599c4a31a3
BLAKE2b-256 913db1c250436b665ef1286355e7dfcc40cfec77c476b30961e2e0f2af4865c1

See more details on using hashes here.

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