Skip to main content

Out-of-the-box methods for satellite imagery processing

Project description

Sky Kit

Easy to use out-of-the-box satellite imagery package for Python aficionado.

Adding fun to satellites coolness 😎

Warning: This is still a work in progress. Please do not use in production, yet.

Seriously, what is it? 🧐

Sky kit is an ensemble of methods to ease satellite imagery processing, from and to developers and data scientists. Working with any satellite imagery provider, should be as easy as:

from skykit.providers import <ProviderName>

Install 🚀

As with any python package, pip is your friend:

pip install skykit

Usage 🎡

Quick Start

The following shows details of a tile from Sentinel-2, that includes Paris (France), from 01/03/2019 to 08/03/2019:

from datetime import date
from skykit.providers import Sentinel2

sat = Sentinel2(username="xxx", password="yyy")

tiles = sat.query(
    coordinates=(2.349014, 48.864716),     # Paris (FR) coordinates
    dates=(date(2019,3,1), date(2019,3,8)) # From march 1, 2019 to march 8, 2019
    )

len(tiles) # returns 6

tile = tiles[0]         # Pick any tile you want, or filter more
print(tile['summary'])  # returns 'Date: 2019-03-02T10:50:29.024Z, Instrument: MSI, Mode: , Satellite: Sentinel-2, Size: 730.27 MB'

In the previous example, the tiles variable will include meta information of every tile returned from Sentinel-2 query.

Features

Connecting to satellite images providers

Actually, Sky kit support the following ticked providers (others coming):

  • <input type="checkbox" disabled="" /> Sentinel 1
  • <input type="checkbox" checked="" disabled="" /> Sentinel 2
  • <input type="checkbox" disabled="" /> Landsat 7
  • <input type="checkbox" disabled="" /> Landsat 8
  • <input type="checkbox" disabled="" /> Modis
  • <input type="checkbox" disabled="" /> Cbers-4
  • <input type="checkbox" disabled="" /> Aqua

All image providers are grouped into skykit.providers module. Invoking a provider (like Sentinel-2) can be done like this:

from skykit.providers import Sentinel2

We then need to initialize the connection with the provider. eg with Sentinel-2:

sat = Sentinel2(username="xxx", password="yyy")

Nota: Sentinel 1 & 2 require having credentials to connect to Copernicus Open Access Hub. Once created, insert your credentials in the code above.

Todo 🔭

  • <input type="checkbox" disabled="" /> Write a better documentation. Look for readthedocs.io
  • <input type="checkbox" disabled="" /> Add providers
  • <input type="checkbox" disabled="" /> Create a reusable abstraction of Tile, to create a uniform use of tiles, no matter which provider
  • <input type="checkbox" disabled="" /> Ease working with tiles meta data (usually about the scene and satellite)
  • <input type="checkbox" checked="" disabled="" /> Allow querying using a polygon
  • <input type="checkbox" disabled="" /> Allow querying using an address
  • <input type="checkbox" disabled="" /> Use friendly dates (like text: "26/03/2019"), of use from="..." and to="..." instead of date=(...)
  • <input type="checkbox" disabled="" /> Allow working on specific bands. Something like:
image = tile.get('b04') # or tile.b04() ???
  • <input type="checkbox" disabled="" /> More tests <-- ⚠ URGENT
  • <input type="checkbox" disabled="" /> Create a CI/CD pipeline to publish tags into PyPi

This list is not exhaustive.

Contribution 💪

Please suggest contributions using Github's Pull Requests.

License 🤮

Read the LICENSE.txt file.

Thanks 🙏

Project details


Download files

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

Files for skykit, version 0.1.3
Filename, size File type Python version Upload date Hashes
Filename, size skykit-0.1.3-py3-none-any.whl (5.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size skykit-0.1.3.tar.gz (4.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page