Skip to content

Accelerating public health analysis with spatiotemporally aligned satellite images

Notifications You must be signed in to change notification settings

sebasmos/satellite.extractor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Satellite extractor: Access Satellite Imagery with Geographical and Temporal Control

Satellite Extractor provides users with the capability to retrieve satellite imagery for specific geographical coordinates and predefined timestamps. While it offers a powerful tool for accessing remote sensing data, it's important to note that the quality of the images may not always be perfect due to potential cloud interference, which users may need to filter or process as necessary..

Sentinelhub grant: Sponsoring request ID 1c081a: Towards a Smart Eco-epidemiological Model of Dengue in Colombia using Satellite in Collaboration with MIT Critical Data Colombia.
Project supported by ESA Network of Resources Initiative


Updates:

  • [2024] Colombian dataset v1 using this repository is posted in Physionet.
  • [2024] DengueNet: Dengue Prediction using Spatiotemporal Satellite Imagery for Resource-Limited Countries. paper

About this project

In this work, we introduce a data collection and processing framework to extract Sentinel-2 satellite 1 based on modified Copernicus Sentinel data. Satellite images of the ten cities are extracted from sentinel 2 through the SentinelHub API using a scalable dockerized framework that orchestrates Google Earth Engine (GEE) to generate regions of interest (ROI), which are afterwards used to download images. The framework also proposes a recursive noise artifact removal algorithm that reduces camera capturing noise generated by Sentinel 2-L1C orbit transit per week.

Installation

pip install satellite-extractor==0.7

Find in Pypi: https://pypi.org/project/satellite-extractor/

Quick-start:

import satellite_extractor as sat

sat.run(TIMESTAPS, CLIENT_ID, CLIENT_SECRET, IMAGE_FORMAT, COORDINATES_PATH )

  • see the download_images.ipynb notebook for learning how to initialize these variables.

Credentials

  1. Credentials for GCP: Please follow the instructions as explained here and add update your credentials as follows.

    1. Inside of src/satellite-extractor-dockerized/config.py, update service_account with your new service account.
    2. Store the GCP json key inside of src/satellite-extractor-dockerized/data_config
  2. Credentials for SentinelHub: The best of this project is that you can download data for free using the Free Tier from SentinelHub. Follow the instructions to create your username and password here. Please remember it is a free trial, access is limited!

Docker pipeline

If you want to download data using docker, please update the config file as desired and follow the next commands.

docker build -f Dockerfile -t docker .

Run with syncronized volume:

docker run -v /home/sebasmos/Desktop/satellite.extractor/src/satellite-extractor-dockerized:/Dengue -ti docker /bin/bash

Finally, run python satellite.extractor.py to download the satellites as customized.

Working locally

  1. Clone repository and install dependencies in pip install -r requirements.txt

  2. Create account on Sentinelhub to obtain credentials:

  3. Install sentinelhub API, follow up the official documentation.


Branch versioning

v0.7: optimized satellite-extractor functions

v.0.6: including dockerized version and adding cloud2cloudless scripts

methods_improvements: adding uint16 java-scripts

Use cases:

  1. Read GCP bucket to Google Colab
  2. Download satellite data for N cities
  3. PART_1_satellite_imagery_augmentation: exploring forward artifact removal
  4. PART_2_satellite_imagery_augmentation: exploring forward-backward artifcat removal
  5. satellite_images_hashing: evaluate dataset quality by quantifying the number of duplicates on your data
  6. viz_many_folders: explore the visualization of satellite images
  7. create_Cloud2CloudlesDataset: create cloud to cloudless paired image dataset

unsorted todos

  • update dockerized api
  • include Super-resolution into pipelines
  • include Cloud removal algorithms pipeline

Contributions

Feel free to contact me if want to collaborate on this project.

If you use this code for your research, please cite our papers.

@article{cajasmulti,
  title={A Multi-Modal Satellite Imagery Dataset for Public Health Analysis in Colombia},
  author={Cajas, Sebastian A and Restrepo, David and Moukheiber, Dana and Kuo, Kuan Ting and Wu, Chenwei and Chicangana, David Santiago Garcia and Paddo, Atika Rahman and Moukheiber, Mira and Moukheiber, Lama and Moukheiber, Sulaiman and others}
}

@article{kuo2024denguenet,
  title={DengueNet: Dengue Prediction using Spatiotemporal Satellite Imagery for Resource-Limited Countries},
  author={Kuo, Kuan-Ting and Moukheiber, Dana and Ordonez, Sebastian Cajas and Restrepo, David and Paddo, Atika Rahman and Chen, Tsung-Yu and Moukheiber, Lama and Moukheiber, Mira and Moukheiber, Sulaiman and Purkayastha, Saptarshi and others},
  journal={arXiv preprint arXiv:2401.11114},
  year={2024}
}

@article{moukheiber2024multimodal,
  title={A multimodal framework for extraction and fusion of satellite images and public health data},
  author={Moukheiber, Dana and Restrepo, David and Cajas, Sebasti{\'a}n Andr{\'e}s and Montoya, Mar{\'\i}a Patricia Arbel{\'a}ez and Celi, Leo Anthony and Kuo, Kuan-Ting and L{\'o}pez, Diego M and Moukheiber, Lama and Moukheiber, Mira and Moukheiber, Sulaiman and others},
  journal={Scientific Data},
  volume={11},
  number={1},
  pages={634},
  year={2024},
  publisher={Nature Publishing Group UK London}
}