🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

tile-mate

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tile-mate

Create rasters from global tiles

0.0.13
PyPI
Maintainers
1

tile-mate

PyPI license PyPI pyversions PyPI version Conda version Conda platforms

This library provides a tool to create continuous rasters of publicly available, global tile sets (in lat/lon) such as Pekel Occurence and ESA 10 m land cover. This is a simpler cousin of dem-stitcher without the need for basic post-processing (e.g. fractional pixel translation and vertical datum transformations).

The API can be summarized as

from tile_mate import get_raster_from_tiles

bounds = [-120.55, 34.85, -120.25, 35.15]
X, p = get_raster_from_tiles(bounds, tile_shortname='esa_world_cover_2021')

# X is an c x m x n numpy array, where c is the number of channels specified by rasterio `count` metadata
# p is a dictionary (or a rasterio profile) including relevant GIS metadata; CRS is assumed to be epsg:4326

The rasters are returned in the global lat/lon projection epsg:4326 and the API assumes that bounds are supplied in this format.

import rasterio

with rasterio.open('esa_world_cover_2021_subset.tif', 'w', **p) as ds:
   ds.write(X)

Installation

In order to easily manage dependencies, we recommend using dedicated project environments via Anaconda/Miniconda or Python virtual environments.

You can install the package with conda/mamba using:

mamba install tile_mate

or

pip install tile-mate

Alternatively, you can clone the repository and manage the environment using the environment.yml file provided.

  • mamba env update -f environment.yml
  • Activate the environment conda activate tile-mate
  • Install the library with pip via pip install tile-mate.

For development, use pip with -e (editable) mode:

python -m pip install -e .

Python 3.9+ is supported.

Notebooks

We have notebooks to demonstrate common usage:

Datasets Supported

There are numerous tile sets. There are keyword arguments for many of the tiles. For example, for hansen_annual_mosaic the years 2013-2022 can be specified. The easiest way to see what is possible is to look at the Basic Demo. The datasets supported are:

In [1]: from tile_mate.stitcher import DATASET_SHORTNAMES

In [2]: DATASET_SHORTNAMES
Out[2]: 'pekel_water_occ_2021',
 'esa_world_cover_2020',
 'esa_world_cover_2021',
 'hansen_annual_mosaic',
 'hansen_lossyear',
 'hansen_gain',
 'hansen_treecover_2000',
 's1_coherence_2020',
 'cop_100_lulc_discrete',
 'radd_deforestation_alerts_2022',
 'hand',
 'glad_landcover',
 'glad_change'

More information about these datasets can be found below

See these notebooks to see how these tiles are generated and organized. Feel free to open a issue ticket or PR if there are modifications or new tilesets you would like to see.

Dateline support

None curently.

Contributing

We welcome contributions to this open-source package. To do so:

  • Create an GitHub issue ticket desrcribing what changes you need (e.g. issue-1)
  • Fork this repo
  • Make your modifications in your own fork
  • Make a pull-request (PR) in this repo with the code in your fork and tag the repo owner or a relevant contributor.

We use flake8 and associated linting packages to ensure some basic code quality (see the environment.yml). These will be checked for each commit in a PR. Try to write tests wherever possible.

Support

  • Create an GitHub issue ticket desrcribing what changes you would like to see or to report a bug.
  • We will work on solving this issue (hopefully with you).

Acknowledgements

This tool was developed to support OPERA.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts