Skip to main content

A python package for PROJECT AEDES by Xavier Puspus of Cirrolytix Research Services.

Project description

AEDES

This repository contains codes that demonstrate the use of Project AEDES for data collection on remote sensing using LANDSAT, MODIS and SENTINEL. Full repository is linked here.

Author: Xavier Puspus
Affiliation: Cirrolytix Research Services

Installation

Install using:

foo@bar:~$ pip install aedes

Satellite Data

Import the modules of the package using:

import aedes
from aedes.remote_sensing_utils import get_satellite_measures_from_AOI
from aedes.remote_sensing_utils import perform_clustering, visualize_on_map

from aedes.osm_utils import reverse_geocode_points

Authentication and Initialization

This packages uses Google Earth Engine (sign-up for access here) to query remote sensing data. To authenticate, simply use:

aedes.remote_sensing_utils.authenticate()

This script will open a google authenticator that uses your email (provided you've signed up earlier) to authenticate your script to query remote sensing data. After authentication, initialize access using:

aedes.remote_sensing_utils.initialize()

Area of Interest

First, find the bounding box geojson of an Area of Interest (AOI) of your choice using this link.

Bounding box example of Quezon City, Philippines

Get Normalized Difference Indices and Weather Data

Use the one-liner code get_satellite_measures_from_AOI to extract NDVI, NDWI, NDBI, Aerosol Index (Air Quality), Surface Temperature, Precipitation Rate and Relative Humidity for your preset number of points of interest sample_points within a specified date duration date_from to date_to.

%%time
QC_AOI = [[[120.98976275,14.58936896],
           [121.13383232,14.58936896],
           [121.13383232,14.77641364],
           [120.98976275,14.77641364],
           [120.98976275,14.58936896]]] # Quezon city

qc_df = get_satellite_measures_from_AOI(QC_AOI, 
                                              sample_points=200, 
                                              date_from='2017-07-01', 
                                              date_to='2017-09-30')

Reverse Geocoding

This package also provides an easy-to-use one-liner reverse geocoder that uses Nominatim

%%time
rev_geocode_qc_df = reverse_geocode_points(qc_df)
rev_geocode_qc_df.head()

Geospatial Clustering

This packages uses KMeans as the unsupervised learning technique of choice to perform clustering on the geospatial data enriched with normalized indices, air quality and surface temperatures with your chosen number of clusters.

rev_geocode_qc_df['labels'] = perform_clustering(rev_geocode_qc_df, 
                                     n_clusters=3)

Visualize Hotspots on a Map

This packages also provides the capability of visualizing all the points of interest with their proper labels using one line of code.

vizo = visualize_on_map(rev_geocode_qc_df)
vizo

Hotspot detection example of Quezon City, Philippines

OpenStreetMap Data

The package needed is imported as follows:

from aedes.osm_utils import initialize_OSM_network, get_OSM_network_data 

Spatial Data from Map Networks

In order to initialize and create an OpenStreetMap (OSM) network from a geojson of an AOI, use:

%%time
network = initialize_OSM_network(aoi_geojson)

Initializing an OSM network example of Quezon City, Philippines

Query Amenities Data

In order to pull data for, say, healthcare facilities (more documentation on amenities here), use this one-liner:

final_df, amenities_df, count_distance_df = get_OSM_network_data(network,
                     satellite_df,
                     aoi_geojson,
                    ['clinic', 'hospital', 'doctors'],
                    5,
                    5000,
                    show_viz=True)

Contraction heirarchy analysis example of Quezon City, Philippines

This function pulls the count and distance of each node from a possible healthcare facility (for this example). It also outputs the original dataframe concatenated with the count and distances. The actual amenities data is also returned. We can then pass the resulting final_df dataframe into another clustering algorithm to produce dengue risk clusters with the added health capacity features.

AEDES Demo Web Application

In order to demonstrate the functionalities of using the AEDES python package, we can use Streamlit to display a web application that takes in a geojson and outputs the hotspots and the recommended cities at risk. Clone this repository, cd into it and follow the instructions below.

Streamlit Setup

Install streamlit using:

foo@bar:~$ pip install streamlit

Run streamlit hello to see if the installation was successful.

Running the sample web application

Simply run the code below to run a local version of your web application that outputs the at-risk areas as hotspots on a map as well as a subsequent list of places to prioritize disease-related proactive measures.

The one below is for a dengue hotspot map for Quezon City, Philippines.

Web application pt1 for Quezon City

This other screenshot shows the web application demonstrating the use of the geospatial modelling in outputting locations of high-risk areas.

Web application p2 for Quezon City

Another example for Cotabato City, Philippines is shown below.

Web application pt1 for Quezon City Web application pt1 for Quezon City

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

aedes-0.0.13.tar.gz (8.8 MB view details)

Uploaded Source

File details

Details for the file aedes-0.0.13.tar.gz.

File metadata

  • Download URL: aedes-0.0.13.tar.gz
  • Upload date:
  • Size: 8.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for aedes-0.0.13.tar.gz
Algorithm Hash digest
SHA256 f5fe40d4c2baa12df1794c266e8acf01f90528b5cff51b7b98e329b1994ea676
MD5 dde2717e01997a7fa4565ef0879ff61d
BLAKE2b-256 6843b7210eb218925652ff842f02c39c97ce17e143497901470901125f38660f

See more details on using hashes here.

Provenance

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