• Stars
    star
    423
  • Rank 99,683 (Top 3 %)
  • Language
    Jupyter Notebook
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated 5 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Repository for Digital Earth Australia Jupyter Notebooks: tools and workflows for geospatial analysis with Open Data Cube and Xarray

Digital Earth Australia logo

Digital Earth Australia notebooks and tools repository

DOI Apache license PyPI Notebook testing

Contribute: We'd love your contribution! DEA Notebooks is an open-source project and welcomes contributions from everyone. Please use this handy template notebook to construct your contribution!

License: The code in this repository is licensed under the Apache License, Version 2.0. Digital Earth Australia data is licensed under the Creative Commons by Attribution 4.0 license.

Contact: If you need assistance with any of the Jupyter Notebooks or Python code in this repository, please post a question on the Open Data Cube Slack channel or on the GIS Stack Exchange using the open-data-cube tag (you can view previously asked questions here). If you would like to report an issue with this notebook, you can file one on Github.

Citing DEA Notebooks: If you use any of the notebooks, code or tools in this repository in your work, please reference them using the following citation:

Krause, C., Dunn, B., Bishop-Taylor, R., Adams, C., Burton, C., Alger, M., Chua, S., Phillips, C., Newey, V., Kouzoubov, K., Leith, A., Ayers, D., Hicks, A., DEA Notebooks contributors 2021. Digital Earth Australia notebooks and tools repository. Geoscience Australia, Canberra. https://doi.org/10.26186/145234

We encourage you to check out the other usages of our notebooks, code and tools at our USAGE page, and to add your paper, training course, creative work or other exciting project there as well!


The Digital Earth Australia notebooks and tools repository (dea-notebooks) hosts Jupyter Notebooks, Python scripts and workflows for analysing Digital Earth Australia (DEA) satellite data and derived products. This documentation is designed to provide a guide to getting started with DEA, and to showcase the wide range of geospatial analyses that can be achieved using DEA data and open-source software including Open Data Cube and xarray.

The repository is based around the following directory structure (from simple to increasingly complex applications):

  1. Beginners_guide: Introductory notebooks aimed at introducing Jupyter Notebooks and how to load, plot and interact with DEA data
  2. DEA_products: Notebooks introducing DEA's satellite datasets and derived products, including how to load each dataset and any special features of the data
  3. Interactive_apps: Interactive apps and widgets that require little or no coding to run
  4. How_to_guides: A recipe book of simple code examples demonstrating how to perform common geospatial analysis tasks using DEA and open-source software
  5. Real_world_examples: More complex case study workflows demonstrating how DEA can be used to address real-world problems

Supporting functions and data for the notebooks are kept in the following directories:

  • Tools: Python module dea-tools, containing functions and algorithms developed to assist in analysing DEA data (e.g. loading data, plotting, spatial analysis, machine learning)
  • Supplementary_data: Supplementary files required for the analyses above (e.g. images, rasters, shapefiles, training data)

The Jupyter notebooks on the stable branch of this repository are used to generate the Digital Earth Australia User Guide located at: https://docs.dea.ga.gov.au/

All notebooks in the dea-notebooks repository contain tags describing their functionality. If you are searching for a specific functionality, use the Tags Index to search for a suitable example. If there is a functionality that has not been documented that you think should be, please create an 'Issue' in the dea-notebooks repository.


Getting started with DEA Notebooks

To get started with using dea-notebooks, visit the DEA Notebooks Wiki page. This page includes guides for getting started on both the DEA Sandbox and NCI environments.

Once you're set up, there are two main options for interacting with dea-notebooks and contributing back to the repository:

  • DEA notebooks using git: Git is a version-control software designed to help track changes to files and collaborate with multiple users on a project. Using git is the recommended workflow for working with dea-notebooks as it makes it easy to stay up to date with the latest versions of functions and code and makes it impossible to lose your work.
  • DEA notebooks using Github: Alternatively, the Github website can be used to upload and modify the dea-notebooks repository directly. This can be a good way to get started with dea-notebooks.

Contributing to DEA Notebooks

Develop, stable and working branches

The dea-notebooks repository uses 'branches' to manage individuals' notebooks, and to allow easy publishing of notebooks ready to be shared. There are two main types of branches:

  • develop branch: The develop branch is the default branch where notebooks are put as they are being prepared to be shared publicly. Notebooks added to this branch will be periodically merged into the stable branch after testing and evaluation. The develop branch is protected and requires changes to be approved via a 'pull request' and review checklist before they appear on the branch.
  • stable branch: The stable branch contains DEA's collection of publicly available notebooks. Notebooks added to this branch will become part of the official DEA documentation and are published on the DEA User Guide. The stable branch is protected, and is periodically updated with new content from the develop branch via a 'pull request' (for develop > stable pull requests, merge using the 'Create a merge commit' option).
  • Working branches: All other branches in the repository are working spaces for users of dea-notebooks. They have a unique name (typically named after the user, e.g. ClaireK, BexDunn). The notebooks on these branches can be works-in-progress and do not need to be pretty or complete. By using a working branch, it is easy to use scripts and algorithms from dea-notebooks in your own work or share and collaborate on a working version of a notebook or code.

Publishing notebooks to the stable branch

Once you have a notebook that is ready to be published on the develop branch, you can submit a 'pull request' in the Pull requests tab at the top of the repository. The default pull request template contains a check-list to ensure that all stable branch Jupyter notebooks are consistent and well-documented so they can be understood by future users, and rendered correctly in the DEA User Guide. Please ensure that as many of these checklist items are complete as possible or leave a comment in the pull request asking for help with any remaining checklist items.

Draft pull requests

For pull requests you would like help with or that are a work in progress, consider using Github's draft pull request feature. This indicates that your work is still a draft, allowing you to get feedback from other DEA users before it is published on the ``develop` branch.

DEA Notebooks template notebook

A template notebook has been developed to make it easier to create new notebooks that meet all the pull request checklist requirements. The template notebook contains a simple structure and useful general advice on writing and formatting Jupyter notebooks. The template can be found here: DEA_notebooks_template.ipynb

Using the template is not required for working branch notebooks but is highly recommended as it will make it much easier to publish any notebooks on develop in the future.

Approving pull requests

Anyone with admin access to the dea-notebooks repository can approve 'pull requests'. You can see a list of the 'pull requests' ready for review in the Pull requests tab at the top of the repository. Click this tab, then click on the open pull request. You will need to review the code before you can approve the request. Ensure that all items in the pull request checklist have been ticked off and incorporated into the notebook. To make changes to someone else's pull request directly, first check out the branch you want to edit (e.g. pull_request_branch):

git pull
git checkout --track origin/pull_request_branch

Commit and push any changes you make, which will become part of the open pull request.

If the notebook meets all the checklist requirements, click the green 'Review' button and click 'Approve' (with an optional comment). You can also 'Request changes' here if any of the checklist items are not complete.

Once the pull request has been approved, you can merge it into the develop branch. Select the 'Squash and merge' option from the drop-down menu to the right of the green 'merge' button. Once you have merged the new branch in, you need to delete the branch. There is a button on the page that asks you if you would like to delete the now merged branch. Select 'Yes' to delete it.

See also wiki.

More Repositories

1

ginan

The Australian Government, through Positioning Australia (part of Geoscience Australia), is funding the design, development and operational service of a Global Navigation Satellite System (GNSS) position correction system - the Ginan service and toolkit. The application of the Ginan correction service by a GNSS device has the potential to increase positioning accuracy from meters to centimetres across Australia. The suite of software systems in this repository (the Ginan toolkit) will be used to create the service. It is available now under an open source licence. Ginan will give individuals and organisations no-cost access to the Ginan software and service as a public good.
C++
192
star
2

anuga_core

AnuGA for the simulation of the shallow water equation
Python
183
star
3

PyRate

A Python tool for estimating velocity and time-series from Interferometric Synthetic Aperture Radar (InSAR) data.
Python
182
star
4

GeodePy

A toolkit for Geodesy and Surveying in Python
Python
91
star
5

tcrm

A statistical-parametric model for assessing wind hazard from tropical cyclones
Python
77
star
6

earthsci

An Eclipse RCP platform for earth science visualisation, built on the NASA World Wind Java SDK.
Java
62
star
7

hiperseis

High Performance Seismologic Data and Metadata Processing System
Jupyter Notebook
56
star
8

dea-coastlines

Extracting tidally-constrained annual shorelines and robust rates of coastal change from freely available Earth observation data at continental scale
PLpgSQL
49
star
9

ga-worldwind-suite

A collection of tools created by the Geoscience Australia (GA) Movies and 3D Visualisation (M3DV) team. The tools are built around the NASA World Wind Java SDK, an open-source virtual globe toolkit.
Java
40
star
10

HiQGA.jl

High Quality Geophysical Analysis provides a general purpose Bayesian and deterministic inversion framework for various geophysical methods and spatially distributed / timeseries data
Julia
35
star
11

digitalearthau

Code and tools for Digital Earth Australia (a deployment of Open Data Cube)
Python
31
star
12

wagl

Python library for standardising satellite imagery into an Analysis Ready Data (ARD) form
Python
30
star
13

uncover-ml

Machine Learning system for Geoscience Australia uncover project
Jupyter Notebook
30
star
14

agdc

Repository for Australian Geoscience Data Cube (AGDC) code
Python
29
star
15

ga-aem

Modelling and Inversion of Airborne Electromagnetic (AEM) Data in 1D
C++
29
star
16

dea-airflow

Python
27
star
17

geophys_utils

A collection of utilities for discovering, accessing and using geophysics data via web services or from netCDF files
Python
22
star
18

rjmcmcmt

Reversible jump Markov Chain Monte Carlo inversion of magnetotelluric data
C++
20
star
19

ptha

Probabilistic Tsunami Hazard Assessment from major earthquake source-zones
R
19
star
20

CoRAL

Corner Reflector Analysis Library
Jupyter Notebook
17
star
21

dea-config

Config files for dea services
Python
16
star
22

dea-cogger

Convert NetCDFs to Cloud Optimized GeoTIFFs
Python
15
star
23

sun-glint-correction

Python
14
star
24

aws-dms-example

Creates an example AWS DMS for replicating an (on-prem) Oracle database to a cloud-based Postgres database
HCL
13
star
25

wofs

Water Observation From Space
Jupyter Notebook
12
star
26

dea-sandbox

Digital Earth Australia Sandbox config and planning
Python
12
star
27

hazimp

Hazard impact assessment tool
Python
12
star
28

gnssanalysis

basic python module for gnss analysis
Python
12
star
29

sira

Systemic Infrastructure Resilience Analysis
Python
11
star
30

fc

Fractional Cover
Python
11
star
31

burn-mapping

Landsat-Based Burn Extent and Severity Mapping
Jupyter Notebook
11
star
32

Nickel-Mineral-Potential-Modelling

A collection of ESRI ArcGIS tools to perform GIS-based mineral (Nickel) prospectivity analysis.
Python
10
star
33

dea-waterbodies

DEA Waterbodies is a product that maps and monitors open waterbodies across Australia. Once a polygon set has been generated corresponding to open waterbodies, each waterbody is tracked over time to record the change in wet surface area over time.
Jupyter Notebook
10
star
34

AusPIX_DGGS

Geoscience Australia rHealPIX version of DGGS
Python
9
star
35

dea-intertidal

Generating intertidal elevation, exposure and extents from satellite earth observation data and ocean tide modelling
Jupyter Notebook
9
star
36

PF3D

PF3D is a Python module that facilitates volcanic ash dispersal modelling using the FALL3D package
Python
9
star
37

Wind_multipliers

Wind multipliers
Python
8
star
38

NSHA2018

eq_hazard_tools for Regional Development Section - Community Safety Branch
Python
8
star
39

geochemical-levelling

Python
8
star
40

bluecap

Python
7
star
41

anuga-viewer

Viewer for ANUGA sww files
C++
7
star
42

gnss-mqtt

7
star
43

Geodesy-Web-Services

Java
7
star
44

stormwavecluster

project on storm wave clustering
R
6
star
45

interactive-maps

JavaScript
6
star
46

gdf

General Data Framework
Python
6
star
47

geo-web-toolkit

Javascript web mapping toolkit built on AngularJS/Bootstrap
JavaScript
6
star
48

mineral-stats-toolkit

Python
6
star
49

dea-vectoriser

Raster to Vector at scale
Python
6
star
50

ML-preprocessing

2D Wavelet decomposition/reconstruction for raster data
Python
6
star
51

dea-ecr-sync

GeoscienceAustralia Dockerhub to ECR Sync Lambda
Python
6
star
52

terraform-ecs

Infracode to create ECS cluster in AWS
HCL
6
star
53

cloudsploit-lambda

JavaScript
6
star
54

BAL

Bushfire Attack Level Toolbox - An ESRI ArcGIS toolbox to calculate severity of exposure to bushfire attack
Python
6
star
55

dea-knowledge-hub

DEA Knowledge Hub
JavaScript
5
star
56

egeodesy

Nix
5
star
57

gocad-projector

Java utility used to reproject GOCAD objects between different map projections
Java
5
star
58

eqrm

Automatically exported from code.google.com/p/eqrm
OpenEdge ABL
5
star
59

ga-wphase

W-Phase inversion software used at the National Earthquake Alerts Centre
Python
5
star
60

eo-tools

Collection of Earth Observation Tools
Python
5
star
61

vaws

VAWS: Vulnerability and Adaptation to Wind Simulation
Python
5
star
62

dea-conflux

Bulk polygon drills on the Open Data Cube.
Python
5
star
63

wit_tooling

Wetlands Insight Tool
Python
4
star
64

ellip-corr

Fortran
4
star
65

Geochemistry

Python
4
star
66

tesseract

N-D Labeled DataCubes in Python
Python
4
star
67

dea-orchestration

Python
4
star
68

ISO19115-profile

ISO19115 profile
Python
4
star
69

minpot-toolkit

Tools to facilitate mineral potential analysis, from spatial associations to feature engineering and fully integrated mineral potential mapping.
Python
4
star
70

pds-tools

PDS Tools
C
3
star
71

arcgis_conda_integration

arcgis_conda_integration
Python
3
star
72

ga_sar_workflow

InSAR processing workflow used by Geoscience Australia
Python
3
star
73

astro-code

C
3
star
74

DEA-CalVal-Phase1

Jupyter Notebook
3
star
75

DEA_ABS_collaborations

Jupyter Notebook
3
star
76

BatchHtoV

Python
3
star
77

fetch

Ancillary fetch daemon
Python
3
star
78

aws-openquake

Python (Boto3) script which installs, runs and downloads results from seismic hazard and risk software (OpenQuake Engine) on Amazon Web Services EC2.
Python
3
star
79

aws-cost-splitter

Split detailed billing data by tag
Python
3
star
80

geodesy-qc

GNSS Quality Checking using Anubis in AWS Lambda for Geodesy Archive
Python
3
star
81

gda2020

This repository contains all the code necessary for the monthly running of the GDA2020 update process. This includes the post-processing of the APREF time series combination solution, the NGCA processing, and the least-squares adjustment of the national geodetic network.
Python
3
star
82

tcha

Jupyter Notebook
3
star
83

SWHAQ

Severe Wind Hazard Assessment for Queensland
Jupyter Notebook
2
star
84

flowtools

R
2
star
85

arcgis_pro_addins

ArcGIS Pro Addins
C#
2
star
86

AS4590-codelists

AS4590-codelists
2
star
87

FSDF

FSDF - Foundation Base Spatial Data - Linked Data - High level models, information, etc
HTML
2
star
88

impact-forecast

Jupyter Notebook
2
star
89

Placenames-Ontology

Codes and other documentation for transformation, querying and managing the Place Names dataset in Linked Data format.
HTML
2
star
90

geosciml.org

HTML
2
star
91

FSDF-Metadata-Tool

FSDF - Metadata Tool. Holds codes and other components for the Metadata tool and associated templates.
Java
2
star
92

GeodesyMLConverter

Tools for converting between Geodesy XML Site Log and Text Site Log formats
Python
2
star
93

link-ont

Repository for the Web Ontology Language (OWL) ontology and documentation for the Location Information Knowledge Platform (http://link.fsdf.org.au/).
HTML
2
star
94

wistl

WISTL: Wind Impact Simulation on Transmission Lines
Python
2
star
95

arr

Australian Rainfall & Runoff publication
XSLT
2
star
96

geophys_kml_server

A collection of utilities for discovering, accessing and using geophysics data via web services or from netCDF files
Python
2
star
97

amazonia

MIRRORED FROM BITBUCKET
Python
2
star
98

EQIAT

Contains code for analysis of earthquake intensity data
Python
2
star
99

dea-dnsup

Makefile
2
star
100

dea-tsmask

Python
2
star