Add logo, add intro to chapter one, add note about hardware requirements
|
|
@ -11,7 +11,8 @@ ENV JUPYTER_ENABLE_LAB=yes
|
||||||
RUN conda install -c conda-forge geopandas==0.8.1 && \
|
RUN conda install -c conda-forge geopandas==0.8.1 && \
|
||||||
pip install \
|
pip install \
|
||||||
descartes==1.1.0 sentinelsat==0.14 rasterio==1.2.0 folium==0.11.0 \
|
descartes==1.1.0 sentinelsat==0.14 rasterio==1.2.0 folium==0.11.0 \
|
||||||
jupyterlab-spellchecker \
|
jupyterlab-spellchecker nbdime \
|
||||||
jupyter-book 0.10.0 && \
|
jupyter-book==0.10.0 && \
|
||||||
fix-permissions $CONDA_DIR && \
|
fix-permissions $CONDA_DIR && \
|
||||||
fix-permissions /home/$NB_USER
|
fix-permissions /home/$NB_USER && \
|
||||||
|
nbdime extensions --enable
|
||||||
|
|
|
||||||
10
README.md
|
|
@ -1,4 +1,4 @@
|
||||||
# Remote sensing for journalism
|
# Remote Sensing for Journalism
|
||||||
|
|
||||||
This repository contains a series of notebooks describing interaction with the Copernicus Open Acces Hub in order to obtain and manipulate earth observation data.
|
This repository contains a series of notebooks describing interaction with the Copernicus Open Acces Hub in order to obtain and manipulate earth observation data.
|
||||||
The aim is to document common tasks that might make the data from the Copernicus Sentinel missions attractive for usage in data journalism reporting.
|
The aim is to document common tasks that might make the data from the Copernicus Sentinel missions attractive for usage in data journalism reporting.
|
||||||
|
|
@ -11,7 +11,7 @@ Copernicus Open Access Hub is the platform which is openly distributing the Terr
|
||||||
A (free) Scihub account is needed in order to follow this documentation interactively.
|
A (free) Scihub account is needed in order to follow this documentation interactively.
|
||||||
The registration form can be found at https://scihub.copernicus.eu/dhus/.
|
The registration form can be found at https://scihub.copernicus.eu/dhus/.
|
||||||
|
|
||||||
## Obtaining and running the code
|
## Obtaining and Running the Code
|
||||||
|
|
||||||
The source code lives at https://github.com/heyarne/remote-sensing-for-journalism.
|
The source code lives at https://github.com/heyarne/remote-sensing-for-journalism.
|
||||||
|
|
||||||
|
|
@ -39,6 +39,12 @@ This starts up a `JupyterLab` environment which allows you to interactively exec
|
||||||
The Docker image is based on the [jupyter/scipy-notebook](https://github.com/jupyter/docker-stacks/tree/master/scipy-notebook).
|
The Docker image is based on the [jupyter/scipy-notebook](https://github.com/jupyter/docker-stacks/tree/master/scipy-notebook).
|
||||||
Follow the link for more information on installed packages or other configuration details.
|
Follow the link for more information on installed packages or other configuration details.
|
||||||
|
|
||||||
|
## Hardware Requirements
|
||||||
|
|
||||||
|
Note that working with this kind of data is resource intensive.
|
||||||
|
These notebooks download or create roughly 50GB of data, most of which is occupied by compressed GeoTIFF files.
|
||||||
|
They have been executed and tested on a virtual server with 4 CPU cores at 2.6 GHz each and 32 GB of RAM.
|
||||||
|
|
||||||
## Building the Jupyter Book
|
## Building the Jupyter Book
|
||||||
|
|
||||||
The `jupyter-book` dependency is included in the `Dockerfile`.
|
The `jupyter-book` dependency is included in the `Dockerfile`.
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@
|
||||||
title: Remote Sensing for Journalism # The title of the book. Will be placed in the left navbar.
|
title: Remote Sensing for Journalism # The title of the book. Will be placed in the left navbar.
|
||||||
author: Arne Schlüter # The author of the book
|
author: Arne Schlüter # The author of the book
|
||||||
copyright: "CC-BY-SA 4.0 2021" # Copyright year to be placed in the footer
|
copyright: "CC-BY-SA 4.0 2021" # Copyright year to be placed in the footer
|
||||||
|
logo: great-forty-foot-telescope-wikipedia.png # A path to the book logo
|
||||||
execute:
|
execute:
|
||||||
execute_notebooks: "off"
|
execute_notebooks: "off"
|
||||||
|
|
||||||
# logo : logo.png # A path to the book logo
|
|
||||||
|
|
|
||||||
4
_static/custom.css
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
div.navbar-brand-box a.navbar-brand img {
|
||||||
|
max-height: unset !important;
|
||||||
|
max-width: 80%
|
||||||
|
}
|
||||||
9
_toc.yml
|
|
@ -3,7 +3,8 @@
|
||||||
- file: README
|
- file: README
|
||||||
- part: "Data retrieval and processing"
|
- part: "Data retrieval and processing"
|
||||||
chapters:
|
chapters:
|
||||||
- file: "remote-sensing-research/01a Download from Scihub.ipynb"
|
- file: "sources/01 Data retrieval and processing.md"
|
||||||
- file: "remote-sensing-research/01b Plot downloaded products.ipynb"
|
- file: "sources/01a Download from Scihub.ipynb"
|
||||||
- file: "remote-sensing-research/01c Coverage analysis.ipynb"
|
- file: "sources/01b Plot downloaded products.ipynb"
|
||||||
- file: "remote-sensing-research/01 True-color pipeline.ipynb"
|
- file: "sources/01c Coverage analysis.ipynb"
|
||||||
|
- file: "sources/01 True-color pipeline.ipynb"
|
||||||
|
|
|
||||||
BIN
great-forty-foot-telescope-wikipedia.png
Normal file
|
After Width: | Height: | Size: 755 KiB |
7
sources/01 Data retrieval and processing.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Data Retrieval and Processing
|
||||||
|
|
||||||
|
The first chapter contains notebooks that document the data retrieval process from the Copernicus Open Access Hub.
|
||||||
|
|
||||||
|
It explains how to use [`sentinelsat`](https://github.com/sentinelsat/sentinelsat) library to interact with the API: How to specify what kind of data we are interested in with the aide of open map data from [OpenStreetMap](https://www.openstreetmap.org/) and how to download it. It then goes on to show how to use [`rasterio`](https://rasterio.readthedocs.io/) and [`matplotlib`](https://matplotlib.org/stable/index.html) to work with the data.
|
||||||
|
|
||||||
|
The Sentinel-2 satellite captures light in visible and invisible parts of the spectrum. This can be used to derive different kinds of useful information about ground-level phenomena. This chapter will detail how to use it to create true-color images for different moments in time.
|
||||||
|
|
@ -1,21 +1,5 @@
|
||||||
{
|
{
|
||||||
"cells": [
|
"cells": [
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 32,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"import rasterio"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": []
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"PosixPath('input/raster/true_color_image/S2B_MSIL2A_20200602T100559_N0214_R022_T33UUU_20200602T135324.zip')"
|
"PosixPath('input/true_color_image/S2B_MSIL2A_20200602T100559_N0214_R022_T33UUU_20200602T135324.zip')"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 2,
|
"execution_count": 2,
|
||||||
|
|
@ -577,6 +577,13 @@
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.8.6"
|
"version": "3.8.6"
|
||||||
|
},
|
||||||
|
"widgets": {
|
||||||
|
"application/vnd.jupyter.widget-state+json": {
|
||||||
|
"state": {},
|
||||||
|
"version_major": 2,
|
||||||
|
"version_minor": 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |